-1-
MỞ DẦU
Internet ra đời thực sự là một cuộc cách mạng vĩ đại về công nghệ, internet
không chỉ kết nối hàng tỉ ngƣời trên thế giới lại với nhau, mà còn là một thƣ viện
bách khoa khổng lồ của nhân loại. Giờ đây chúng ta có thể tìm bất cứ thơng tin gì
trên internet chỉ bằng vài từ khóa. Tuy nhiên song song với những thuận lợi đó,
chúng ta phải đối mặt với nhiều thách thức, một trong những thách thức đó là virus,
tấn cơng, xâm nhập, … Do đó các kỹ thuật phát hiện tấn công, xâm nhập ngày càng
đƣợc quan tâm và chú trọng phát triển. Thực tế, đã có nhiều phƣơng pháp và các
cách để tăng cƣờng tính bảo mật và an tồn thơng tin cho một hệ thống mạng, phải
kể đến trong đó là việc triển khai Firewall, đồng thời kết hợp với các chƣơng trình
diệt virus, trojan,... Và một thành phần tác giả muốn đề cập đến ở đây là hệ thống
phát hiện xâm nhập (IDS) sử dụng công nghệ phát hiện tấn công, xâm nhập. Tuy ra
đời chƣa lâu nhƣng nó đã giúp cho việc xử lí các bài tốn cơng nghệ thơng tin.
Phƣơng pháp đƣợc áp dụng trong luận văn là ứng dụng bản đồ tự tổ chức-Self
Organizing Map (SOM) phát hiện tấn cơng, xâm nhập dựa vào hành vi. Phƣơng
pháp này có khả năng phát hiện tấn công, xâm nhập, virus,… thông qua hành vi đã
biết trƣớc đó. Chúng khơng loại trừ những phƣơng pháp nhận dạng tấn công dựa
vào mẫu tấn công đã biết truyền thống, mà chỉ thêm vào một kênh hữu ích cho
ngƣời quản trị mạng biết đƣợc những tấn công bất thƣờng đang diễn ra trong hệ
thống mạng của mình.
Luận văn xây dựng và triển khai với những phần nhƣ: bắt gói dữ liệu trên
mạng xây dựng và gán các thông số đặc trƣng, huấn luyện dữ liệu, dị tìm tấn cơng
online va offline.
Mặc dù có nhiều cố gắng nhƣng khơng tránh khỏi trong luận văn cịn nhiều
thiếu sót và hạn chế do nhiều yếu tố nhƣ: thời gian, kỷ thuật, tài chính… Hy vọng
thời gian sắp tới tác giả có nhiều thời gian để phát triển thêm luận văn này. Rất
mong sự góp ý của quý Thầy cô và các anh chị đồng nghiệp.
-2-
CHƢƠNG 1: TỔNG QUAN
Nội dung của chương 1: Trình bày tổng quan “Hệ thống phát hiện xâm
nhập”, phân loại IDS, giới thiệu ưu điểm và nhược điểm của từng loại IDS. Đồng
thời, chương này nêu lên mục đích, nội dung và những đóng góp của đề tài.
1.1. Giới thiệu
Với sự phát triển nhanh chóng của internet, tính đến tháng 01/2011 thế giới
đã có hơn 2 tỷ ngƣời sử dụng internet, Việt Nam có hơn 27 triệu ngƣời dùng
internet (31,7% dân số); nhiều công cụ hƣớng dẫn tấn công, xâm nhập hệ thống
mạng máy tính có sẵn trên internet và dễ sử dụng hơn. Bên cạnh đó sâu máy tính,
virus, spyware, trojan horse,… với tốc độ xuất hiện mới ngày càng nhanh. Những
vấn đề trên làm cho an toàn hệ thống mạng đƣợc quan tâm hơn bao giờ hết. Trong
đó, phát hiện tấn công xâm nhập đƣợc chú trọng nghiên cứu nhiều nhất từ các nhà
khoa học, an ninh mạng, điển hình là Hội nghị quốc tế RAID (Recent Advances in
Intrusion Detection) về phát hiện tấn công xâm nhập mỗi năm tổ chức đều đặn, và
lần thứ 14 diễn ra tại Menlo Park, California, USA vào tháng 09-2011 [13].
Hình 1.1: Số Web Server bi tấn công từ năm 2003 đến 2011.
Ngày nay các công ty phải đối mặt với nhiều vấn đề bảo mật và các cuộc tấn
công ngày càng tinh vi hơn. Những nguy hiểm này có thể từ bên ngồi hay từ các
nhân viên trong cơng ty. Các cơng ty phải có các biện pháp bảo vệ sự tồn vẹn, tính
-3-
bảo mật, tính sẵn sàng của dữ liệu trong hệ thống, trong khi vẫn phải xây dựng kết
nối tới hệ thống các chi nhánh.
Việc phát hiện các cuộc tấn công hay xâm nhập dựa vào các hành vi “bất
thƣờng” trong hoạt động của máy chủ Web là một trong những hƣớng nghiên cứu
đã và đang đƣợc rất nhiều chuyên gia quan tâm. Cách thức phân biệt giữa một hoạt
động “bình thƣờng” hay “bất thƣờng” rất phức tạp. Các nhà nghiên cứu đã áp dụng
nhiều thuật toán khác nhau trong lĩnh vực “Trí tuệ nhân tạo” nhƣ: Mơ hình Markov
ẩn, Nạve Bayesian, thuật toán di truyền… để giải quyết một số khía cạnh của bài
tốn trên: lọc thƣ điện tử spam, dị tìm spyware, trojan...
Đề tài này đề xuất một hƣớng nghiên cứu: ứng dụng thuật toán Bản đồ tự tổ
chức – Self Organizing Map (SOM) để phát hiện tấn công Máy chủ Web thông qua
hành vi đã biết.
1.2. Hệ thống phát hiện xâm nhập IDS (Intrusion Detecsion Systems)
Hệ thống phát hiện xâm nhập IDS là một hệ thống giám sát lƣu thông mạng,
các hoạt động khả nghi và cảnh báo cho hệ thống, nhà quản trị . Ngoài ra IDS cũng
đảm nhận việc phản ứng lại với các lƣu thông bất thƣờng hay có hại bằng cách hành
động đã đƣợc thiết lập trƣớc nhƣ khóa tài khoản ngƣời dùng hay địa chỉ IP nguồn
đó truy cập hệ thống mạng, …
IDS cũng có thể phân biệt giữa những tấn cơng từ bên trong (từ những ngƣời
trong công ty) hay tấn công từ bên ngoài (từ các hacker). IDS phát hiện dựa trên các
dấu hiệu hành vi đặc biệt về các nguy cơ tấn công, xâm nhập đã biết (giống nhƣ
cách các phần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và diệt
virus) hay dựa trên so sánh lƣu thông mạng hiện tại với thông số đo đạc chuẩn của
hệ thống (baseline ) để tìm ra các dấu hiệu khác thƣờng.
Ngồi ra cịn có hệ thống phịng chống xâm nhập IPS (Intrusion Prevention
System) là một kỹ thuật an ninh mới, kết hợp các ƣu điểm của kỹ thuật tƣờng lửa
-4-
với hệ thống phát hiện xâm nhập IDS. Hệ thống IPS có khả năng phát hiện các cuộc
tấn cơng và tự động ngăn chặn các cuộc tấn cơng đó.
Hình 1.2: Mơ hình hoạt động của 1 hệ thống IDS.
1.3. Phân loại IDS
Tùy vào việc quan sát và nơi đặt mà IDS đƣợc phân thành 2 loại khác nhau:
1.3.1. Hệ thống phát hiện xâm nhập mạng - Network based IDS (NIDS ).
Hệ thống phân tích tải mạng để so sánh dữ liệu hiện tại với cơ sở dữ liệu đã
biết của các dấu hiệu tấn công vào hệ điều hành và ứng dụng. Khi phát hiện dấu
hiệu “bất thƣờng”, NIDS có thể phản ứng lại bằng cách ghi hiện trạng, cảnh báo nhà
quản trị, chấm dứt phiên làm việc (session) đó và có thể đƣa vào tƣờng lửa.
* Ƣu điểm:
o Quan sát đƣợc những trao đổi, các kết nối mạng…
o Quản lý đƣợc cả một network segment (gồm nhiều host).
o Cài đặt và bảo trì đơn giản, khơng ảnh hƣởng tới mạng.
o Tránh DoS ảnh hƣởng tới một host nào đó.
o Có khả năng xác định lỗi ở tầng Network (trong mơ hình OSI).
* Nhƣợc điểm:
o Khó quan sát đƣợc nội dung các gói dữ liệu mạng đã đƣợc mã hóa.
-5-
o Có thể xảy ra trƣờng hợp báo động giả (false positive), tức khơng có tấn
cơng xâm nhập mà NIDS báo là có tấn cơng xâm nhập.
o NIDS địi hỏi phải đƣợc cập nhật các signature mới nhất để thực sự an
toàn
1.3.2. Hệ thống phát hiện xâm nhập máy chủ – Host based IDS (HIDS).
Hệ thống phân tích nhật kí của hệ điều hành và ứng dụng của hệ thống. Sau
đó, nó so sánh sự kiện với cơ sở dữ liệu “bất thƣờng” đã biết. Hệ thống xem xét
nhật kí của hệ điều hành, nhật kí truy nhập, nhật kí của ứng dụng, cũng nhƣ các
chính sách của ứng dụng do ngƣời dùng định nghĩa. Nếu hệ thống thấy có vi phạm,
nó có thể phản ứng bằng cách ghi lại hành động đó, cảnh báo cho nhà quản trị và
trong một số trƣờng hợp có thể ngừng hành động ngay lập tức.
Ƣu điểm:
o Quan sát đƣợc những gì đang thực sự diễn ra trên máy tính.
o Có khả năng xác định user liên quan tới một sự kiện nào đó.
o Có thể phân tích các dữ liệu mã hố.
o Cung cấp các thông tin về host trong lúc cuộc tấn công diễn ra trên host
này.
Nhƣợc điểm:
o Không biết đƣợc trạng thái hoạt động của toàn mạng.
o HIDS phải đƣợc thiết lập trên từng host cần giám sát .
o HIDS không có khả năng phát hiện các cuộc dị qt mạng (Nmap,
Netcat…).
o HIDS cần tài nguyên trên host để hoạt động.
o HIDS có thể khơng hiệu quả khi bị DoS.
Tùy theo phƣơng pháp phát hiện tấn cơng, xâm nhập mà có thể phân hai loại
Host-based IDS và Network-based IDS ra những loại nhỏ hơn. Phƣơng pháp truyền
-6-
thống về phát hiện tấn công, xâm nhập dựa trên việc lƣu lại các mẫu đã biết của các
cuộc tấn công, chúng so sánh các đặc trƣng kết nối mạng với mẫu tấn công để phát
hiện ra tấn công xâm nhập.
1.4. Cơ chế hoạt động của một IDS
Có hai cách tiếp cận cơ bản đối với việc phát hiện và phòng chống xâm nhập
là: phát hiện sự lạm dụng (Misuse Detection) và phát hiện sự bất thƣờng (Anomaly
Detection)
Misuse Detection: hệ thống sẽ phát hiện sự tấn công xâm nhập bằng tìm
kiếm các hành động tƣơng ứng với các kỹ thuật tấn công xâm nhập đã đƣợc biết đến
dựa trên các dấu hiệu (Signatures) hoặc các điểm dễ bị tấn công của hệ thống.
Anomaly Detection: hệ thống phát hiện tấn công xâm nhập bằng cách tìm
kiếm cách hành động khác với hành vi thơng thƣờng của ngƣời dùng hệ thống.
Hình 1.3: Sự khác nhau giữa Misuse Detection và Anomaly Detection
1.4.1. Misuse based IDS - Hệ thống phát hiện xâm nhập theo dấu hiệu
cho trƣớc.
Hệ thống phát hiện những kẻ xâm nhập đang cố gắng đột nhập vào hệ thống
mà sử dụng một số kỹ thuật đã biết. Nó liên quan đến việc mô tả các đặc điểm các
-7-
cách thức xâm nhập vào hệ thống đã đƣợc biết đến, mỗi cách thức này đã đƣợc mô
tả nhƣ một mẫu. Hệ thống chỉ thực hiện kiểm soát đối với các mẫu đã rõ ràng. Mẫu
có thể là một bit cố định, một tiến trình,… dùng để mơ tả một tập hay một chuỗi các
hành động nghi ngờ.
Hệ thống sẽ liên tục so sánh hành động của hệ thống hiện tại với một tập các
kịch bản xâm nhập đã biết để cố gắng dò ra các kịch bản đang tiến hành. Hệ thống
này có thể xem xét các hành động hiện tại của hệ thống đƣợc bảo vệ trong thời gian
thực hoặc có thể là các bản ghi kiểm tra đƣợc ghi lại bởi hệ điều hành.
Ƣu điểm:
o
Dễ triển khai.
o
Cho phản hồi chính xác về cảnh báo.
o
Yêu cầu ít tài ngun tính tốn.
Nhƣợc điểm:
o Mơ tả về cuộc tấn cơng thƣờng ở mức độ thấp, khó hiểu.
o Mỗi cuộc tấn cơng hay biến thể của nó đều cần thêm dấu hiệu đƣa vào cơ
sở dữ liệu, nên kích cỡ của nó sẽ trở nên rất lớn.
o Dấu hiệu càng cụ thể thì càng tạo ra ít cảnh báo nhầm, nhƣng càng khó
phát hiện những biến thể của nó.
1.4.2. Anomaly based IDS - Hệ thống phát hiện xâm nhập bất thƣờng
Hệ thống dựa trên định nghĩa và mô tả đặc điểm của các hành vi có thể chấp
nhận của hệ thống để phân biệt chúng với các hành vi không mong muốn hay bất
thƣờng nhằm tìm ra các hành vi bất hợp pháp.
Nhƣ vậy, hệ thống phát hiện xâm nhập bất thƣờng phải có khả năng phân
biệt giữa hiện tƣợng “bình thƣờng” và hiện tƣợng “bất thƣờng”.
Ƣu điểm: Có khả năng nhận biết các dạng tấn công xâm nhập chƣa biết.
-8-
Nhƣợc điểm: Thƣờng sinh ra nhiều cảnh báo sai do định nghĩa quá chung về
cuộc tấn công.
1.5. Hành động của IDS
Sau khi các hệ IDS đã phát hiện ra tấn cơng xâm nhập thì có một trong hai
hành động sau đây:
Gởi tín hiệu đến firewall để ngăn chặn tấn cơng, hoặc gởi tín hiệu đến
switch để chuyển port nơi phát sinh ra tấn công vào VLAN riêng để xử lý.
Trƣờng hợp này gọi là hệ thống phát hiện và ngăn chặn xâm nhập (IPS).
Chỉ đƣa ra cảnh báo cho ngƣời quản trị mạng xử lý.
1.6. Nhu cầu thực tế
Việc so sánh và phát hiện hành vi “bất thƣờng” là rất khó, vì các kiểu tấn
cơng mới có khả năng giả mạo hành động hợp pháp mà không bị phát hiện. Do đó,
việc nghiên cứu và triển khai một hệ thống IDS phát hiện xâm nhập với các yếu tố:
“thực hiện nhanh, đƣa ra cảnh báo chính xác, giá thành hợp lí” là vấn đề cấp thiết
trong nghiên cứu cũng nhƣ yêu cầu ứng dụng trong thực tế.
1.7. Mục tiêu của luận văn
Luận văn tập trung nghiên cứu một số vấn đề sau:
Nghiên cứu hệ thống phát hiện xâm nhập IDS.
Tìm hiểu máy chủ web trong mơi trƣờng Linux. Đồng thời, nghiên cứu
các cách tấn công phổ biến đối với máy chủ web.
Tìm hiểu một số phần mềm tấn công Web Server phổ biến hiện nay.
Khảo sát, phân tích thuật tốn “Bản đồ tự tổ chức”.
Nghiên cứu và cài đặt cách lấy các tham số đặc trƣng của máy chủ Web
trong hệ thống mạng. Qua đó, đề xuất bộ tham số đặc trƣng cho hệ thống
máy chủ Web.
-9-
Xây dựng dấu hiệu bất thƣờng do tấn công qua thực nghiệm, sau đó rút
trích thơng tin qua “bản đồ tự tổ chức SOM” và cảnh báo tấn công khi có
bất thƣờng giống nhƣ những bất thƣờng đã đƣợc học.
1.8. Ý tƣởng thực hiện
Xây dựng web server.
Xác định các tham số liên quan tới hệ thống máy chủ Web cần bảo vệ.
Cách thức lấy thông tin liên quan tới các tham số đã xác định.
Xây dựng hệ thống mạng để làm Lab, giả lập tấn công.
Xác định phần mềm sinh ra tấn công thử nghiệm.
Triển khai tấn công giả lập và ghi nhận thông tin, kết quả là hệ thống
vector để học.
Sử dụng chƣơng trình SOM + vector học + nơron sinh ngẫu nhiên để đƣợc
nơron sau khi học.
Tấn công thử nghiệm lại và ghi nhận kết quả cảnh báo. Qua đó hiệu chỉnh
bán kính IDS cho phù hợp nhất.
Bình luận, đánh giá kết quả của IDS.
1.9. Nội dung luận văn
Chƣơng 1: Tổng quan
Trình bày tổng quan “Hệ thống phát hiện xâm nhập”, phân loại IDS, giới
thiệu ưu điểm và nhược điểm của từng loại IDS. Đồng thời, chương này nêu lên
mục đích, nội dung của đề tài.
Chƣơng 2: Máy chủ Web
Trình bày tổng quan về máy chủ Web. Giới thiệu một số lỗ hổng phổ biến
trên máy chủ Web. Các kỹ thuật phát hiện tấn công, xâm nhập. Đồng thời chương
này cũng trình bày các kỹ thuật tấn cơng, xâm nhập.
- 10 -
Chƣơng 3: Thuật toán bản đồ tự chức - Self Organizing Map (SOM)
Trình bày tổng quan về kiến trúc của thuật toán bản đồ tự tổ chức.
Chƣơng 4: Xây dựng các đặc trƣng
Trình bày cách thức lấy thơng tin hệ thống máy chủ Web. Đề xuất các tham
số đặc trưng. Phương pháp xây dựng, cũng như chuẩn hóa, gán trọng số các đặc
trưng.
Chƣơng 5: Thiết kế, cài đặt thực nghiệm và đánh giá chƣơng trình
Trình bày tổng quan về mơ hình chương trình chạy giám sát máy chủ Web.
Phân tích hệ thống đề xuất, thử nghiệm chương trình IDS với các tấn công đã biết.
Chƣơng 6: Kết luận và hƣớng phát triển
- 11 -
CHƢƠNG 2: MÁY CHỦ WEB (WEB SERVER)
Nội dung chương 2: Trình bày tổng quan về máy chủ Web. Giới thiệu một
số lỗ hổng phổ biến trên Web Server. Các kỹ thuật phát hiện tấn công, xâm nhập.
Đồng thời chương này cũng trình bày các kỹ thuật tấn công xâm nhập.
2.1. Tổng quan về máy chủ Web.
2.1.1. Máy chủ là gì ?
Máy chủ (server) là một máy tính đƣợc nối mạng, có IP tỉnh, có năng lực xử
lý cao và trên máy đó ngƣời ta cài đặt các phần mềm để phục vụ cho các máy tính
khác (máy trạm) truy cập để yêu cầu cung cấp các dịch vụ và tài nguyên.
2.1.2. Máy chủ Web là gì ?
Web Server (máy chủ web): là máy tính mà trên đó cài đặt phần mềm phục
vụ Web.
Tất cả các Web Server đều hiểu và chạy đƣợc các file: .htm và .html, tuy
nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn nhƣ IIS
của Microsoft dành cho .asp, .aspx; Apache dành cho .php; Sun Java System Web
Server của SUN dành cho .jsp.
Hình 2.1: Mơ hình máy chủ Web và máy trạm.
- 12 -
2.1.3. Hoạt động của máy chủ Web
Các bƣớc cơ bản trong tiến trình truyền tải trang Web đến màn hình của bạn
đƣợc thể hiện theo mơ hình 2.2:
Hình 2.2: Mơ hình hoạt động của máy chủ web.
Theo mơ hình trên, trình duyệt web thực hiện một kết nối tới máy chủ Web,
yêu cầu một trang web và nhận lại nó.
Ví dụ: khi ta truy cập website thứ tự từng
bƣớc cơ bản xảy đến đằng sau màn hình nhƣ sau:
Trình duyệt web tách địa chỉ website làm 3 phần:
1. Phần giao thức: “http”
2. Máy chủ tên miền: “www.abc.com”
3. Tên tập tin: “my_index.php”
Trình duyệt liên hệ với máy chủ tên miền để chuyển đổi tên miền ra địa chỉ
IP (Internet Protocol): "www.abc.com".
Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ có địa chỉ IP tƣơng
ứng qua cổng 80.
Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu “GET” đến máy chủ, yêu
cầu tập tin (cookies cũng sẽ đƣợc gửi kèm theo từ trình duyệt web đến máy
chủ): “ />
Máy chủ sẽ gửi đoạn văn bản dạng HTML đến trình duyệt web.
- 13
Trình duyệt web đọc các thẻ HTML, định dạng trang web và hiển thị ra màn
hình.
Ngày nay rất nhiều máy chủ Web đƣa thêm các chế độ bảo mật trong nhiều
tiến trình xử lý.
Ví dụ: khi bạn truy cập vào một trang web và trình duyệt đƣa ra một hộp hội
thoại yêu cầu bạn đƣa vào tên truy cập và mật khẩu, lúc này trang web mà bạn truy
cập đã đƣợc bảo vệ bằng mật khẩu. Máy chủ Web hỗ trợ ngƣời quản lý trang Web
duy trì một danh sách tên và mật khẩu cho phép những ngƣời đƣợc phép truy cập
vào trang web.
Đó là tất cả những vấn đề cơ bản mà Máy chủ Web hoạt động để truyền tải
các trang Web chuẩn hay còn gọi là trang Web tĩnh. Các trang Web tĩnh là những
trang Web không thay đổi, trừ khi ngƣời tạo ra trang Web đó thay đổi lại.
Đối với các trang Web động: máy chủ Web khơng chỉ đơn giản là “tìm kiếm
một tập tin”. Nó thực sự là một q trình xử lý thông tin rồi kết xuất ra trang Web
dựa trên các kết quả truy vấn. Trong hầu hết các trƣờng hợp trên, máy chủ Web
thƣờng sử dụng các đoạn chƣơng trình ASP, JSP, PHP và các đoạn mã CGI scripts
để giải quyết bài toán.
2.1.4. Dịch vụ web
Dịch vụ Web (Web Service): là một phƣơng thức tích hợp các ứng dụng trên
nền Web. Mỗi ứng dụng trên nền Web có thể sử dụng các thành phần khác nhau để
tạo thành một dịch vụ Web.
Ví dụ nhƣ máy chủ chạy một trang Web thƣơng mại điện tử kết nối với cổng
thanh toán điện tử qua một giao diện lập trình ứng dụng (API). Nếu ta tạo một ứng
dụng Web bởi công nghệ .NET của Microsoft thì thành phần trên máy chủ chính là
hệ thống cung cấp trang HTML (IIS: Internet Information System), còn các thành
phần thanh toán và các thành phần .NET đƣợc coi là các cấu kiện bên ngoài.
- 14 -
Dịch vụ Web cho phép các tổ chức thực hiện truyền thơng dữ liệu mà khơng
cần phải có kiến thức về hệ thống tin học bị che giấu ở phía sau tƣờng lửa. Một số
dịch vụ web hiện nay có sẵn hoặc thậm chí miễn phí và càng ngày càng hƣớng dần
vào phục vụ các cơ quan và doanh nghiệp.
2.2. Một số lỗ hổng phổ biến trên máy chủ Web.
Theo thống kê gần đây của tổ chức uy tín The Open Web Application
Security Project (www.owasp.org), đến 75% các cuộc tấn công thành công hiện nay
dựa trên các lỗ hổng trong ứng dụng web.
Với xu thế phát triển nhanh chóng của ngành thƣơng mại điện tử hiện nay,
rất nhiều doanh nghiệp hiện đang sử dụng các ứng dụng Web để cung cấp dịch vụ
thƣơng mại trực tuyến, kết nối khách hàng, đối tác và nhân viên một cách hiệu quả
nhất. Tuy nhiên, ứng dụng Web cũng đem đến những rủi ro mới ảnh hƣởng đến sự
an toàn của hệ thống và dữ liệu. Đa số các ứng dụng Web có thể bị những lỗi mà
các phƣơng cách phịng chống mạng thông thƣờng không bảo vệ đƣợc. Lỗi và lỗ
hổng trong mã nguồn của ứng dụng Web có thể gây ra những hậu quả nghiêm trọng
nhƣ lộ dữ liệu nhạy cảm, gây tổn thƣơng đến toàn hệ thống hạ tầng Công nghệ
thông tin. Sự cố bảo mật trong ứng dụng web có thể ảnh hƣởng đến danh tiếng, uy
tín của cơng ty đối với khách hàng làm thất thốt tài chính của cơng ty và các vấn
đề liên quan đến ràng buộc pháp lí.
2.2.1. Dữ liệu đầu vào khơng đƣợc kiểm tra
Thông tin và dữ liệu từ các truy cập HTTP không đƣợc kiểm tra trƣớc khi
đƣợc sử dụng bởi ứng dụng Web. Tin tặc có thể tận dụng những lỗi này nhằm tấn
cơng các lớp ứng dụng phía sau thông qua ứng dụng Web.
Ứng dụng Web sử dụng dữ liệu đầu vào trong các truy cập HTTP nhằm xác
định kết quả phản hồi. Tin tặc có thể sửa đổi bất kỳ phần nào của một truy xuất
HTTP, bao gồm URL, querystring, headers, cookies, form fields, và thậm chí field
ẩn (hidden fields), nhằm vƣợt qua các cơ chế bảo mật.
- 15 -
2.2.2. Lỗi kiểm soát truy cập nguồn tài nguyên
Những giới hạn về quyền truy cập tài nguyên của ngƣời sử dụng khơng đƣợc
thi hành đúng. Tin tặc có thể tận dụng những lỗi này nhằm truy cập vào tài khoản
của ngƣời khác, xem các tập tin nhạy cảm, hoặc thi hành những chức năng không
cho phép.
2.2.3. Lỗi liên quan đến quá trình quản lý xác thực và phiên truy cập
Quá trình xác thực và quản lý phiên truy cập khơng đƣợc bảo vệ tốt có thể
dẫn đến việc thông tin tài khoản bị mất cắp.
Xác thực ngƣời dùng trên ứng dụng web thƣờng bao gồm sử dụng một
username và password. Những phƣơng pháp xác thực khác mạnh hơn bao gồm các
giải pháp phần cứng hoặc mềm dựa trên các token mã hóa hoặc dùng phƣơng pháp
sinh trắc học (biometrics). Tuy nhiên những phƣơng pháp này có phần hạn chế do
giá thành cao. Một số lƣợng lớn lỗi ứng dụng trong các hàm quản lý tài khoản và
phiên truy cập có thể dẫn đến mối nguy cơ lộ tài khoản ngƣời sử dụng và thậm chí
tài khoản của ngƣời quản trị.
2.2.4. Lỗi Cross Site Scripting
Lỗi Cross-site scripting (thƣờng đƣợc gọi tắt là XSS) xảy ra khi một ứng
dụng Web bị lợi dụng để gửi dữ liệu xấu (thƣờng là đoạn mã script) đến trình duyệt
của ngƣời sử dụng. Những lỗ hổng này rất phổ biến và xảy ra trong bất cứ phần nào
của ứng dụng Web có sử dụng dữ liệu từ ngƣời dùng trong các giá trị phản hồi mà
khơng kiểm tra tính hợp lệ.
Một tin tặc có thể sử dụng lỗ hổng này để gửi các đoạn mã đến ngƣời dùng.
Trình duyệt trong máy ngƣời dùng khơng thể biết đƣợc nên tin hay không tin đoạn
mã nào, và sẽ thi hành đoạn script này. Bởi vì trình duyệt tin rằng đoạn mã đến từ
một nguồn tin tƣởng, đoạn mã script có thể truy cập đến cookies, session tokens,
hoặc bất kỳ thông tin nhạy cảm nào đƣợc lƣu lại trong trình duyệt có liên quan đến
- 16 -
trang web đang truy cập. Những đoạn mã này cịn có thể sửa đổi nội dung trang
web.
2.2.5. Lỗi tràn bộ đệm
Một số module của ứng dụng Web khi đƣợc phát triển bằng những ngôn ngữ
không kiểm tra dữ liệu đầu vào có thể bị crashed, và trong một số trƣờng hợp, có
thể bị lợi dụng để chiếm đoạt quyển kiểm sốt của một process hoặc tồn bộ máy
chủ. Những module này có thể bao gồm CGI, thƣ viện, drivers, và những module
của máy chủ.
Tin tặc sử dụng lỗi tràn bộ đệm nhằm ảnh hƣởng đến dòng lệnh thực thi của
ứng dụng Web. Bằng cách gửi một đoạn mã đƣợc thiết kế đặc biệt đến ứng dụng,
tin tặc có thể làm cho ứng dụng Web thi hành bất kỳ đoạn mã nào, điều này tƣơng
đƣơng với việc chiếm quyền làm chủ máy server.
2.2.6. Lỗi Injection
Lỗi injection cho phép tin tặc lợi dụng lỗ hổng trong ứng dụng Web làm
phƣơng tiện để gửi các đoạn mã nguy hiểm đến hệ thống. Những cuộc tấn công
dạng này bao gồm các mã gọi hàm đến hệ điều hành, gọi các ứng dụng qua lệnh
shell, và các hàm gọi đến cơ sở dữ liệu (SQL injection). Những đoạn mã nguy hiểm
đƣợc viết bằng perl, python và ngơn ngữ khác có thể đƣợc chuyển đến và thực thi
bởi ứng dụng web, hệ điều hành hoặc các ứng dụng khác.
Một trong những dạng phổ biến nhất của lỗi injection là lỗi sql injection. Lỗi
này xảy ra khi ứng dụng sử dụng những dữ liệu đầu vào không đƣợc kiểm tra làm
tham số để xây dựng chuỗi lệnh SQL. Bằng cách sử dụng những đoạn mã SQL đặc
biệt, hacker có thể gây ra những hậu quả nghiêm trọng nhƣ:
Vƣợt qua hệ thống xác thực login mà không cần sử dụng password hoặc
username
Truy cập vào một phần hoặc tất cả các thông tin trong CSDL
Lấy đƣợc thông tin về cấu trúc của cơ sở dữ liệu
- 17
Sửa đổi hoặc xóa thơng tin trong CSDL
Chạy các lệnh trong hệ điều hành trên máy chủ CSDL
2.2.7. Quy trình quản lý có lỗi
Quy trình xử lý báo lỗi có thể gây ra nhiều vấn đề bảo mật cho một trang
Web. Vấn đề thông thƣờng nhất là khi các thơng báo lỗi có chứa các thơng tin nhạy
cảm nhƣ stack traces, thông tin cơ sở dữ liệu, và các mã lỗi đƣợc thông báo cho
ngƣời dùng. Những lỗi này cung cấp các thông tin về hệ thống, ứng dụng ở mức độ
thấp và thông tin này phải đƣợc bảo mật. Sử dụng những thơng tin này, hacker có
thể dị tìm ra những lỗi khác của ứng dụng.
2.2.8. Lƣu trữ thiếu an toàn
Đa số các ứng dụng Web cần lƣu trữ dữ liệu nhạy cảm, trong cơ sở dữ liệu
hoặc trong một tập tin nào đó trong hệ thống. Thơng tin nhạy cảm bao gồm: mật
khẩu, số thẻ tín dụng, thông tin tài khoản, hoặc các thông tin cần bảo vệ khác. Các
cơ chế mã hóa thƣờng đƣợc sử dụng để bảo vệ những thông tin này. Mặc dù sử
dụng các hàm mã hóa khơng khó cho các lập trình viên, tuy nhiên các lập trình viên
vẫn thƣờng mắc những lỗi cơ bản khi áp dụng vào ứng dụng Web do khơng hiểu rõ
hết các đặc điểm mã hóa. Những lỗi thơng thƣờng bao gồm:
Khơng mã hóa dữ liệu quan trọng nhƣ khóa và mật khẩu
Lƣu trữ các khóa bảo mật trong bộ nhớ bằng các cơ chế không an tồn
Cơ chế tạo số ngẫu nhiên khơng đảm bảo
Sử dụng sai thuật tốn
Tạo một thuật tốn mã hóa khơng đảm bảo
2.2.9. Cấu hình máy chủ thiếu an tồn
Cấu hình của máy chủ và các phần mềm hỗ trợ dịch vụ web là một yếu tố
quan trọng trong vấn đề bảo mật của ứng dụng. Máy chủ cung cấp nền tản phục vụ
cho việc cung cấp nội dung và các dịch vụ mà ứng dụng web cần sử dụng, bao gồm
lƣu trữ, dịch vụ directory, email. Do là nền tản cung cấp các chức năng cơ bản cho
- 18 -
ứng dụng. Những vấn đề về cấu hình của máy chủ có thể dẫn đến vấn đề bảo mật
của ứng dụng.
Theo các thống kê hiện nay (tham khảo www.owasp.com), các lỗ hổng liên
quan đến cấu hình máy chủ bao gồm:
Các phần mềm và hệ điều hành trên máy chủ không đƣợc cập nhật với bản
vá lỗi bảo mật mới nhất.
Những tập tin mặc định, tập tin tạo ra để test nhƣ script, tập tin cấu hình
khơng đƣợc xóa đi trong thƣ mục của trang Web. Những tập tin này
thƣờng có độ bảo mật yếu và có thể chứa những thông tin quan trọng.
Không phân đúng quyền cho các thƣ mục và tập tin trong trang Web.
Phần mềm Web Server đăng quá nhiều thông tin trong trang báo lỗi.
2.3. Kỹ thuật tấn công và xâm nhập
Theo [7] [10] khi một mạng máy tính bị hacker tấn cơng nó sẽ chiếm một
lƣợng lớn tài nguyên trên máy chủ nhƣ: dung lƣợng ổ cứng, bộ nhớ RAM, CPU,
băng thơng... Khi đó, máy chủ sẽ không thể đáp ứng hết những yêu cầu từ những
máy trạm của những ngƣời sử dụng, từ đó máy chủ có thể sẽ nhanh chóng bị ngừng
hoạt động, hƣ hỏng hoặc bị khởi động lại gây thiệt hại lớn về tài chính và ảnh
hƣởng đến uy tính của các công ty và tổ chức.
Dựa vào những lỗ hổng bảo mật ứng dụng Web đã nêu ở trên, các hacker sử
dụng nhiều kỹ thuật để tấn công vào hệ thống mạng nhƣ: Trojans, backdoor,
sniffers, exploits, buffer overflows, SQL injection, Deny of Service (DoS),…
Mục đích kẻ tấn cơng là làm sao để khai thác một trong bốn đặc tính về bảo
mật:
- Tính bí mật.
- Tính xác thực.
- Tính tồn vẹn.
- 19 -
- Tính sẵn sàng.
Dựa vào hành động của tấn cơng mà có thể phân tấn cơng ra làm 2 loại là:
chủ động (active attack), bị động (passive attack):
Active attack: thay đổi hệ thống khi tấn công làm ảnh hƣởng đến tính tồn
vẹn, sẵn sàng, và xác thực của dữ liệu.
Passive attack: cố gắng thu thập thông tin từ hệ thống làm phá vỡ tính bí
mật dữ liệu.
Dựa vào nguồn gốc tấn cơng có thể phân loại tấn công làm 2 loại: tấn công từ
bên trong, và tấn cơng từ bên ngồi:
Tấn cơng từ bên trong: thƣờng ngƣời tấn công ở ngay trong hệ thống
mạng. Ngƣời sử dụng muốn truy cập, lấy thông tin nhiều hơn quyền cho
phép.
Tấn cơng từ bên ngồi: tấn cơng từ bên ngồi Internet hay các kết nối truy
cập từ xa.
Có 5 pha tấn công, xâm nhập mà các kẻ tấn công thƣờng dùng:
* Pha 1: Khảo sát thu thập thông tin
Thu thập thông tin về nơi cần tấn công nhƣ phát hiện các host, địa chỉ IP, các
dịch vụ mạng.
* Pha 2: Dị tìm
Sử dụng các thơng tin thu thập đƣợc từ pha 1 để sử dụng tìm kiếm thêm
thơng tin lỗ hổng, điểm yếu của hệ thống mạng. Các cơng cụ thƣờng đƣợc sử dụng
cho q trình này là: các công cụ dùng quét cổng, quét dãy địa chỉ IP, dị tìm lỗ
hổng,…
- 20 -
* Pha 3: Xâm nhập
Các lỗ hổng, điểm yếu đƣợc dị tìm trong 2 pha trên đƣợc sử dụng khai thác
để xâm nhập vào hệ thống. Ở pha này kẻ tấn cơng có thể dùng các kỹ thuật nhƣ:
tràn vùng đệm dựa trên stack, từ chối dịch vụ (DoS – Denial of Service) và bắt cóc
phiên làm việc (session hijacking).
* Pha 4: Duy trì xâm nhập
Một khi kẻ tấn công đã xâm nhập đƣợc vào hệ thống, bƣớc tiếp theo là làm
sao để duy trì các xâm nhập này để có thể khai thác và xâm nhập tiếp trong tƣơng
lai. Một vài kỹ thuật nhƣ backdoors, Trojans. Một khi kẻ tấn cơng đã làm chủ hệ
thống chúng có thể sử dụng hệ thống để tấn công vào hệ thống khác, trƣờng hợp
này hệ thống bị lợi dụng gọi là: zombie system.
* Pha 5: Che đậy, xóa dấu vết
Một khi kẻ tấn công đã xâm nhập và cố gắng duy trì xâm nhập. Bƣớc tiếp
theo là phải làm sao xóa hết dấu vết để khơng cịn chứng cứ pháp lý xâm nhập. Kẻ
tấn cơng phải xóa các tập tin log, xóa các cảnh báo từ hệ thống phát hiện xâm nhập.
Pha 2 (dị tìm) và pha 3 (xâm nhập) kẻ tấn công thƣờng làm lƣu lƣợng, kết
nối mạng thay đổi khác với lúc mạng bình thƣờng rất nhiều. Nếu phân tích kỹ các
bất thƣờng này để rút trích ra các đặc trƣng hữu ích của mạng có thể từ đó phân
tích, phát hiện các xâm nhập nhƣ: qt cổng, quét dãy địa chỉ IP, tấn công từ chối
dịch vụ (DoS),…
Hầu hết các cuộc tấn công đều tiến hành tuần tự 5 pha trên. Làm sao để nhận
biết tấn công, xâm nhập ngay từ hai pha đầu tiên (khảo sát thơng tin và dị tìm thơng
tin) là hết sức quan trọng, vì sẽ hạn chế tấn cơng, xâm nhập ở những pha tiếp theo.
Ngay tại pha thứ 3 là xâm nhập, pha này không dễ dàng đối với kẻ tấn công. Do
vậy, khi không thể xâm nhập đƣợc vào hệ thống, để phá hoại có nhiều khả năng kẻ