Tải bản đầy đủ (.pdf) (25 trang)

Nghiên cứu phát hiện lỗ hổng bảo mật Web và thử nghiệm (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (817.83 KB, 25 trang )

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
----------------------------------

NGUYỄN THỊ THÁI

NGHIÊN CỨU PHÁT HIỆN LỖ HỔNG
BẢO MẬT WEB VÀ THỬ NGHIỆM

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 8.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hƣớng ứng dụng)

HÀ NỘI – 2019


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. Vũ Văn Thỏa

Phản biện 1: ................................................

Phản biện 2: ...............................................

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn Thạc Sĩ tại
Học Viện Công Nghệ Bưu Chính Viễn Thông
Vào lúc: .......... giờ ......... ngày ........ tháng ......... năm ..........

Có thể tìm hiểu thêm luận văn tại:


- Thư viện của Học Viện Công Nghệ Bưu Chính Viễn Thông


1

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Vấn đề an toàn an ninh mạng hiện nay đang là vấn đề cấp bách, đặc biệt là việc tấn
công vào các website. Việc tấn công vào hệ thống mạng trong ứng dụng web ngày càng gia
tăng, cho thấy việc bảo mật an toàn thông tin trên website chưa thực sự đảm bảo.
Theo thống kê của BKAV[12] về an ninh mạng trong năm 2017, mức thiệt hại do virus
máy tính gây ra đối với người dùng Việt Nam lên tới 10.400 tỷ, vượt qua mức 8.700 tỷ đồng
năm 2016. Đây là kết quả từ chương trình đánh giá an ninh mạng được Tập đoàn công nghệ
Bkav thực hiện vào tháng 12/2017. Mã độc mã hóa dữ liệu Ransomware, virus lây qua
USB, vấn nạn tin nhắn rác và nguy cơ từ các cuộc tấn công có chủ đích APT là những chủ
điểm nóng nhất của năm 2017.
Cũng theo thống kê của Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam [13], năm
2017 Trung tâm này đã ghi nhận tổng số 134.375 sự cố tấn công mạng của cả 3 loại hình
Phishing (lừa đảo), Malware (mã độc) và Deface (thay đổi giao diện). So với năm 2016, số
lượng vụ tấn công mạng năm 2017 nhiều gấp hơn 4,2 lần (năm 2016 là 31.585), trong đó,
loại hình tấn công Phishing là 10.057 sự cố (gấp hơn 1,7 lần so với năm 2016), Malware là
46.664 sự cố (gấp gần 2,8 lần năm 2016) và Deface là 77.654 sự cố (gấp hơn 8,7 lần năm
2016). Mặt khác, theo khảo sát của Hiệp hội An toàn thông tin Việt Nam, chỉ số an toàn
thông tin của Việt Nam trong năm 2017 là 59,9%. Đây là bước tiến đáng kể trong những
năm qua, bởi năm 2016, con số này là 47,4%.
Đặc biệt theo thống kê của Microsoft, trong 5 nước đứng đầu toàn cầu về nguy cơ
nhiễm mã độc có 2 nước thuộc khu vực Đông Nam Á là Việt Nam và Indonesia. Đây là hai
nước có tỷ lệ nhiễm mã độc hơn 45% vào quý II/2016, gấp đôi so với mức trung bình cùng
kỳ là 21% của thế giới
Do nhu cầu phát triển các dịch vụ thông tin trên mạng internet ngày càng lớn, đòi hỏi

các cơ quan, tổ chức và doanh nghiệp phải đảm bảo an toàn cho các website của mình. Vì
vậy, vấn đề nghiên cứu các giải pháp phát hiện lỗ hổng bảo mật website có tính cấp thiết, có
ý nghĩa khoa học và thực tiễn.
Từ những lý do trên, học viên lựa chọn đề tài: “NGHIÊN CỨU PHÁT HIỆN LỖ
HỔNG BẢO MẬT WEB VÀ THỬ NGHIỆM” cho luận văn tốt nghiệp trình độ đào tạo
thạc sĩ.


2

2. Tổng quan về vấn đề nghiên cứu
World Wide Web (gọi tắt là Web hoặc WWW - mạng lưới toàn cầu) là một không
gian thông tin toàn cầu mà mọi người có thể truy cập (đọc và viết) qua các thiết bị kết nối
với mạng Internet. Website là một tập hợp các trang Web (web pages) bao gồm văn bản,
hình ảnh, video, flash, ..., thường chỉ nằm trong một tên miền (domain name) hoặc tên miền
phụ (subdomain).
Kể từ khi ra đời vào năm 1990, công nghệ WEB đã phát triển mạnh mẽ và là hạ tầng
cung cấp các dịch vụ phổ biến nhất trên Internet. Cho đến nay, đã có công nghệ WEB 1.0,
WEB 2.0 và thế giới đang hướng tới công nghệ WEB 3.0.
Trong thực tế, do thiếu Logging và Monitoring trong quá trình vận hành, khai thác
các dịch vụ WEB dẫn đến sự thiếu giám sát và phát hiện kịp thời các tấn công lỗ hổng bảo
mật Website. Sự phát triển đa dạng về chủng loại cũng như số lượng các thiết bị truy nhập
Website, trong nhiều trường hợp cũng gây ra khó khăn trong quá trình phát hiện lỗ hổng bảo
mật Website. Vì vậy, các vấn đề về bảo mật Website luôn được quan tâm do các tấn công
Website ngày càng phổ biến và gây nhiều hệ lụy khôn lường.
Các lỗ hổng bảo mật Website là các điểm yếu cho phép tin tặc tấn công đánh cắp dữ
liệu người dùng, dữ liệu hệ thống, kiểm soát ứng dụng web, hoặc thậm chí kiểm soát cả hệ
thống máy chủ chạy ứng dụng web. OWASP (Open Web Application Security Project ) là
một dự án cộng đồng mở hoạt động với mục đích tăng cường an toàn cho các ứng dụng
web. Từ những năm 2010 cho đến nay, OWASP khởi động dự án “OWASP Top 10” nhằm

đưa ra danh sách 10 lỗ hổng bảo mật nghiêm trọng nhất trong các ứng dụng web. Kết quả
của dự án này đã được công bố như sau [16]:
(1) Injection (Chèn mã).
(2) Broken Authentication and Session Management (Xác thực và quản phiên yếu).
(3) Cross-Site Scripting (XSS – Lỗi XSS).
(4) Insecure Direct Object References (Tham chiếu các đối tượng trực tiếp không an
toàn).
(5) Security Misconfiguration (Lỗi cấu hình an ninh).
(6) Sensitive Data Exposure (Rò rỉ dữ liệu nhạy cảm).
(7) Missing Function Level Access Control (Thiếu kiểm soát truy nhập ở mức tính
năng).
(8) Cross-Site Request Forgery (CSRF - Lỗi CSRF).


3

(9) Using Components with Known Vulnerabilities (Sử dụng các thành phần chứa lỗ
hổng đã biết).
(10) Unvalidated Redirects and Forwards (Tái định hướng và chuyển tiếp không
được kiểm tra).
Hiện nay, có nhiều tác giả trong và ngoài nước đã đề xuất nhiều giải pháp và công cụ
phát hiện lỗ hổng bảo mật Website để đảm bảo an toàn Website và quá trình cung cấp dịch
vụ WEB.
3. Mục đích nghiên cứu
Mục đích nghiên cứu của luận văn là nghiên cứu phát hiện các lỗ hổng bảo mật
website và thử nghiệm một số giải pháp phát hiện các lỗ hổng bảo mật website thường gặp.
4. Đối tƣợng và phạm vi nghiên cứu
Đối tượng và phạm vi nghiên cứu của luận văn là nghiên cứu các giải pháp và công
cụ phát hiện các lỗ hổng bảo mật website.
5. Phƣơng pháp nghiên cứu

- Về mặt lý thuyết: Thu thập, khảo sát, phân tích các tài liệu và thông tin có liên quan đến
phát hiện lỗ hổng bảo mật website.
- Về mặt thực nghiệm: Xây dựng một số chương trình để mô phỏng phát hiện lỗ hổng bảo
mật website.
Kết cấu của luận văn gồm 3 chương chính với các nội dung sau:
Chƣơng 1: Tổng quan về tấn công lỗ hổng bảo mật website
Nội dung của chương 1 sẽ tập trung vào khảo sát nền tảng công nghệ website và các
vấn đề liên quan đến phát hiện lỗ hổng bảo mật website.
Chƣơng 2: Nghiên cứu phát hiện một số dạng lỗ hổng bảo mật website
Nội dung của chương 2 là khảo sát một số giải pháp phát hiện một số lỗ hổng bảo mật
website và các vấn đề liên quan.
Chƣơng 3: Thử nghiệm
Trong chương 3 luận văn sẽ tiến hành thử nghiệm phát hiện một số dạng lỗ hổng bảo
mật website và các vấn đề liên quan.


4

CHƢƠNG 1: TỔNG QUAN VỀ TẤN CÔNG LỖ HỔNG BẢO MẬT
WEBSITE
Nội dung của chương 1 sẽ khảo sát tổng quan về công nghệ web, một số phương thức
tấn công lỗ hổng bảo mật website, một số nguyên nhân gây ra lỗ hổng bảo mật website và
một số vấn đề khác liên quan.
1.1. Tổng quan về công nghệ Web
1.1.1. Giới thiệu chung
Trang web (web page) trên mạng Internet là nơi giới thiệu những thông tin, hình ảnh
về doanh nghiệp và sản phẩm, dịch vụ của doanh nghiệp (hay giới thiệu bất cứ thông tin gì)
để khách hàng có thể truy cập ở bất kỳ nơi đâu, bất cứ lúc nào.
Website là tập hợp nhiều trang web. Khi doanh nghiệp xây dựng website nghĩa là
đang xây dựng nhiều trang thông tin, catalog sản phẩm, dịch vụ, .... Để tạo nên một website

cần phải có 3 yếu tố cơ bản [1]:
 Cần phải có tên miền (domain).
 Nơi lưu trữ website (hosting).
 Nội dung các trang thông tin [web page].
Hiện nay, hầu hết các doanh nghiệp đều sử dụng website động, thế hệ công nghệ website
được mọi người biết đến là web 2.0 [1].
- Tên miền (domain): Tên miền chính là địa chỉ website, trên internet chỉ tồn tại duy nhất
một địa chỉ (tức là tồn tại duy nhất một tên miền). Có 2 loại tên miền:
- Tên miền Quốc tế: là tên miền có dạng .com; .net; .org; .biz; .name ...
- Tên miền Việt Nam: là tên miền có dạng .vn; .com.vn; .net.vn; org.vn; .gov.vn;...
- Lưu trữ website: Dữ liệu thông tin của website phải được lưu trữ trên một máy tính (máy
chủ - server) luôn hoạt động và kết nối với mạng Internet. Một server có thể lưu trữ nhiều
website, nếu server này bị sự cố chẳng hạn tắt trong một thời điểm nào đó thì không ai có
thể truy cập được những website lưu trữ trên server tại thời điểm bị sự cố.
- Tùy theo nhu cầu lưu trữ thông tin mà doanh nghiệp có thể thuê dung lượng thích hợp cho
website [thuê dung lượng host].
- Dung lượng host: Là nơi để lưu cơ sở dữ liệu của website (hình ảnh, thông tin, …), đơn vị
đo dung lượng thường là MB hoặc GB.


5

- Băng thông hay dung lượng đường truyền: Là tổng số MB dữ liệu tải lên máy chủ hoặc tải
về từ máy chủ (download, upload) nơi đặt website, đơn vị đo thông thường là MB/giây.
1.1.2. Dịch vụ và cơ chế hoạt động Web
Dịch vụ Web là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở dữ
liệu và các mạng máy tính để tạo thành một cơ cấu tính toán ảo mà người sử dụng có thể
làm việc thông qua các trình duyệt mạng.
Web Service là một giao diện truy cập mạng đến các ứng dụng chức năng, được xây
dựng từ việc sử dụng các công nghệ chuẩn Internet [10]. Được minh hoạ trong hình 1.1 sau:


Hình 1.1. Dịch vụ Web Service[10].
Web Service cho phép truy cập tới các code ứng dụng sử dụng chuẩn công nghệ
Internet.
1.1.3. Công nghệ web 2.0
Khái niệm Web 2.0 đầu tiên được Dale Dougherty, phó chủ tịch của Oreilly Media,
đưa ra tại hội thảo Web 2.0 lần thứ nhất do OReilly Media và MediaLive International tổ
chức vào tháng 10/2004. Dougherty không đưa ra định nghĩa mà chỉ dùng các ví dụ so sánh,
phân biệt Web 1.0 và Web 2.0: "DoubleClick là Web 1.0; Google AdSense là Web 2.0.
Ofoto là Web 1.0; Flickr là Web 2.0. Britannica online là Web 1.0; Wikipedia là Web 2.0.
v.v...".
Web 2.0 là một cách tiếp cận mới để sử dụng web như là một nền tảng nơi mà người
dùng cùng nhau tham gia vào việc tạo ra, chỉnh sửa, và xuất bản thông tin thông qua những
công cụ hợp tác sáng tạo nội dung trên nền web. Web 2.0 liên quan tới người dùng không
phải chỉ ở chỗ người dùng tạo ra nội dung mà người dùng giúp thu thập, tổ chức, mô tả, cập
nhật, chia sẻ, truyền bá, sắp xếp lại, bình luận, hiệu chỉnh, và đóng gói lại nội dung
1.1.4. Công nghệ web 3.0
Web 3.0 còn có tên gọi là Semantic Web, được định nghĩa bởi Hiệp hội World Wide
Web (W3C) nhằm xác định một thế hệ web mới với những tính năng độc đáo, hiện đại hơn,
chú trọng vào việc sử dụng các định dạng dữ liệu và các giao thức chung để mọi trang web,
mọi dịch vụ online đều có thể giao tiếp với nhau một cách nhanh chóng, tiện lợi và dễ dàng.


6

1.2 Một số phƣơng thức tấn công lỗ hổng bảo mật website
1.2.1 Giới thiệu chung
Có thể được phân chia các dạng lỗ hổng bảo mật trên một hệ thống nói chung thành
ba cấp độ nguy hiểm như sau [2]:
Lỗ hổng loại C: các lỗ hổng loại này cho phép thực hiện các phương thức tấn công

theo DoS (Dinal of Services – Từ chối dịch vụ). Mức độ nguy hiểm thấp, chỉ ảnh hưởng tới
chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn hệ thống; không làm phá hỏng dữ liệu
hoặc đạt được quyền truy nhập bất hợp pháp.
Lỗ hổng loại B: Các lỗ hổng cho phép người sử dụng có thêm các quyền trên hệ
thống mà không cần thực hiện kiểm tra tính hợp lệ. Mức độ nguy hiểm trung bình; Những lỗ
hổng này thường có trong các ứng dụng trên hệ thống; có thể dẫn đến mất hoặc lộ thông tin
yêu cầu bảo mật.
Lỗ hổng loại A: Các lỗ hổng này cho phép người sử dụng ở ngoài có thể truy nhập
vào hệ thống bất hợp pháp. Lỗ hổng rất nguy hiểm, có thể làm phá hủy toàn bộ hệ thống.
Các lỗ hổng bảo mật Website là các điểm yếu của hệ thống cung cấp dịch vụ Web
cho phép tin tặc tấn công đánh cắp dữ liệu người dùng, dữ liệu hệ thống, kiểm soát ứng
dụng web, hoặc thậm chí kiểm soát cả hệ thống máy chủ chạy ứng dụng web. Các lỗ hổng
bảo mật Website rất đa dạng và bao gồm cả ba loại trên.
1.2.2 Các phương thức tấn công lỗ hổng bảo mật website
1.2.2.1. Tấn công SQL injection
1.2.2.2. Tấn công kiểu Broken Authentication And Session Management
1.2.2.3. Tấn công Cross Site Scripting (XSS)
1.2.2.4. Kiểu tấn công Insecure Direct Object References
1.2.2.5. Tấn công Security Misconfiguration
1.2.2.6. Tấn công Sensitive Data Exposure
1.2.2.7. Tấn công Missing Function Level Access Control
1.2.2.8. Tấn công Cross-Site Request Forgery (CSRF)
1.2.2.9. Tấn công Using Components with Known Vulnerabilities


7

1.2.2.10. Tấn công Unvalidated Redirects and Forwards
1.2.2.11. Tấn công APT
1.2.3 Nhận xét và đánh giá

Thực tế với tình hình hiện nay, các ứng dụng Web ngày một nhiều. Sự thay đổi
chóng mặt của công nghệ đã giúp ứng dụng Web được cải tiến nâng cao rất nhiều, và vấn đề
bảo mật cho ứng dụng Web không ngừng tăng lên. Một khi ứng dụng Web bị rò rỉ lỗ hổng,
các hacker sẽ dễ dàng chiếm quyền quản trị Web, ứng dụng và phần mềm của công ty.
Nguyên nhân dẫn đến các ứng dụng Web bị rò rỉ thông tin, các nguy cơ về lỗ hổng, là do
các đoạn mã lệnh, mã code không phù hợp trong ứng dụng Web. Chỉ cần một lỗ hổng,
hacker cũng có thể xâm nhập và truy cập vào cơ sở dữ liệu, thông tin và thực hiện các hành
vi sai trái như đánh cắp, thay đổi, chỉnh sửa, mã hóa dữ liệu…Đối với các doanh nghiệp, tổ
chức, cơ quan nhà nước, việc tăng lớp bảo mật, rà quét lỗ hổng ứng dụng là điều cần thiết.
1.3 Một số nguyên nhân gây ra các lỗ hổng bảo mật website
1.3.1 Nguyên nhân do nền tảng xây dựng website
Với sự bùng nổ của thương mại điện tử, có rất nhiều nền tảng website ra đời để đáp
ứng nhu cầu cho người dùng. Cũng chính vì vậy, sẽ gây khó khăn cho các tổ chức và cá
nhân để chọn riêng cho mình nền tảng website phù hợp. Rất nhiều nền tảng xây dựng
website hiện nay như: nền tảng tự code riêng, nền tảng wordpress, nền tảng Laravel, hoặc có
thể xây dựng công nghệ giữa web 2.0 và web 3.0 khi tham gia môi trường mạng internet
không tích hợp được các công nghệ hệ thống, dẫn đến làm suy giảm tính năng của ngôn ngữ
hoặc công nghệ, cũng làm cho rủi ro tiềm tàng của dịch vụ.
1.3.2 Nguyên nhân do hạ tầng cung cấp dịch vụ web
- Tính bí mật, những rủi ro sau là hiện hữu: thu lén trên đường truyền liên lạc, nhà cung cấp
tiếp cận những dữ liệu nhạy cảm, lộ lọt dữ liệu do nhà cung cấp dịch vụ; lộ lọt dữ liệu phía
nội bộ.
- Tính toàn vẹn, những rủi ro có thể là: thao tác dữ liệu đang truyền đưa, thao tác dữ liệu tại
phía nhà cung cấp dịch vụ, sửa đổi dữ liệu ngẫu nhiên khi đang truyền đưa, sửa đổi dữ liệu
ngẫu nhiên tại phía nhà cung cấp dịch vụ, sửa đổi dữ liệu tại hệ thống nội bộ.
- Tính khả dụng (sẵn sàng) thì những rủi ro sau đáng quan tâm: dịch vụ bị gián đoạn, thời
gian ngừng trệ không chủ ý, tấn công tính sẵn sàng, mất truy cập dữ liệu, mất dữ liệu ở phía
nhà cung cấp dịch vụ, thiếu tính khả dụng trong hệ thống nội bộ.



8

1.3.3 Nguyên nhân do người vận hành và sử dụng dịch vụ web
Đây là một nguyên nhân có thể dẫn đến những lỗ hổng bảo mật Website làm tiền đề
cho những hình thức tấn công nguy hiểm nhất và có thể dẫn tới những tổn thất hết sức khó
lường. Kẻ tấn công có thể liên lạc với người quản trị hệ thống thay đổi một số thông tin
nhằm tạo điều kiện cho các phương thức tấn công khác.
1.3.4 Nhận xét và đánh giá
Có thể rất nhiều nguyên nhân khác nhau dẫn đến rủi ro về lỗ hổng bảo mật web. Các
nguyên nhân chủ yếu là: những nguyên nhân về xây dựng nền tảng website bởi sự thay đổi
về công nghệ luôn được cập nhật; nguyên nhân về sự cung cấp hạ tầng dịch vụ website và
nguyên nhân do con người vận hành và sử dụng các dịch vụ website.
1.4. Kết luận chƣơng 1
Trong chương 1, luận văn đã khảo sát tổng quan về công nghệ web như công nghệ
web 2.0 và công nghệ web 3.0. Từ đó, luận văn đã tiến hành phân tích các phương thức tấn
công lỗ hổng bảo mật website thường gặp hiện nay cũng như một số nguyên nhân gây ra lỗ
hổng bảo mật website. Các kết quả nghiên cứu cho thấy rất nhiều tiềm tàng về rủi ro cho hệ
thống dịch vụ web trong hệ thống mạng internet toàn cầu hiện nay.
Vì vây, vấn đề phát hiện sớm các lỗ hổng bảo mật Website để có các biện pháp
phòng ngừa hữu hiệu đóng một vai trò hết sức quan trọng. Chương tiếp theo, luận văn sẽ
nghiên cứu các giải pháp phát hiện lỗ hổng bảo mật Website.


9

Chƣơng 2: NGHIÊN CỨU GIẢI PHÁP PHÁT HIỆN LỖ HỔNG BẢO
MẬT WEBSITE
Trong chương 2 luận văn sẽ nghiên cứu một số giải pháp phát hiện lỗ hổng bảo mật
website bao gồm: giải pháp sử dụng công cụ phần mềm, giải pháp sử dụng hệ thống IDS và
giải pháp sử dụng các kỹ thuật học máy.

2.1. Tổng quan về phát hiện lỗ hổng bảo mật Website
2.1.1 Giới thiệu chung
Hệ thống Website có thể hoạt động và cung cấp dịch vụ cho người dùng thường trải
qua các giai đoạn sau đây:
(1) Giai đoạn thiết kế hệ thống Website;
(2) Giai đoạn cài đặt hệ thống Website;
(3) Giai đoạn triển khai và vận hành khai thác hệ thống Website.
Trong cả ba giai đoạn trên đều có thể phát sinh các lỗ hổng bảo mật và cần phải có các
giải pháp phát hiện lỗ hổng bảo mật cho hệ thống Website.
2.1.2 Mô hình phát hiện lỗ hổng bảo mật Website

Hình 2.1. Mô hình tổng quát phát hiện lỗ hổng bảo mật Website


10

Theo hình 2.1, quá trình phát hiện lỗ hổng bảo mật Website được xây dựng bằng cách
thực hiện kiểm tra thụ động và kiểm tra thăm dò tích cực (active probe) các lỗ hổng. Trong
quá trình rà quét (scan), các phương tiện phân tích lỗ hổng bảo mật Website sẽ gửi yêu cầu
đến địa chỉ của Website (lên cổng máy chủ), phân tích các gói dữ liệu nhận được, sau đó
đưa ra các kết luận tương ứng về các lỗ hổng có thể tồn tại.
2.2. Giải pháp sử dụng công cụ phần mềm dò quét
2.2.1 Giới thiệu giải pháp
Một số tiêu chuẩn kiểm thử lỗ hổng bảo mật website điển hình:
– OWASP (Open Web Application Security Project).
– OSSTMM (Open Source Security Testing Methodology Manual) – Kiểm thử theo
phương thức mã nguồn mở.
– PTF (Penetration Testing Framework) – Dò quét lỗ hổng bảo mật hệ thống.
– ISSAF (Information Systems Security Assessment Framework) – Đánh giá bảo mật
Hệ thống thông tin.

2.2.2 Một số phần mềm phát hiện lỗ hổng bảo mật Website
Hiện nay có khá nhiều phần mềm miễn phí cũng như trả phí được phát hành. Một số
ứng dụng phát hiện lỗ hổng bảo mật Website khá phổ biến được liệt kê dưới đây.
- Google Safe Browsing Diagnostic: sẽ cho biết về tên miền và các đường dẫn liên
quan đến địa chỉ web muốn kiểm tra.
- URL Void: có chức năng quét địa chỉ web bằng hơn 30 công cụ khác nhau.
- UnMask Parasites: quét web cho biết nó chứa các mối nguy hiểm nào ví dụ đường
link, dòng lệnh đáng ngờ.
- PhishTank: cung cấp danh sách địa chỉ Web có nguy cơ phishing.
- UnShorten.it: đảm bảo an toàn cho người dùng khi truy cập vào các địa chỉ web rút
gọn.
- Phần mềm Havij: phát hiện lỗ hổng cơ sở dữ liệu SQL với ngôn ngữ lập trình web
là PHP.
- Phần mềm Rapid 7: có tính năng dò quét lỗ hổng toàn diện chuyên sâu trên cả phần
cứng và phần mềm.


11

- Phần mềm Acunetix: là chương trình tự động kiểm tra các ứng dụng Web để tìm
kiếm các lỗ hổng bảo mật như SQL Injection, hay Cross-Site Scripting,…

2.2.3 Nhận xét
Giải pháp sử dụng các công cụ phần mềm rà quét phát hiện lỗ hổng bảo mật Website
khá đơn giản và có thể tiến hành ngay từ giai đoạn thiết kế và cài đặt hệ thống website. Giải
pháp này có thể hỗ trợ cho cả các nhà phát triển, cung cấp dịch vụ Web lẫn các tổ chức, cá
nhân sử dụng hệ thống Website.
Tuy nhiên, lỗ hổng bảo mật Website ngày càng khó phát hiện, trong khi đó thủ đọan
của tin tặc ngày càng tinh vi và nguy hiểm. Do đó, việc sử dụng các phần mềm dò quét
thông thường có thể không mang lại hiệu quả như mong muốn, đặc biệt đối với các website

lớn, phức tạp. Vì vậy, cần phải có thêm các giải pháp hỗ trợ khác.
2.3 Giải pháp sử dụng hệ thống phát hiện xâm nhập
2.3.1 Giới thiệu hệ thống phát hiện xâm nhập
Hệ thống phát hiện xâm nhập (Intrusion Detection System – IDS) là một hệ thống
phần cứng hoặc ứng dụng phần mềm theo dõi, giám sát và thu thập thông tin từ các hoạt
động ra vào của mạng. Sau đó hệ thống sẽ phân tích để tìm dấu hiệu của sự xâm nhập hoặc
tấn công hệ thống trái phép và cảnh báo đến người quản trị hệ thống.
Nói cách khác, IDS là hệ thống phát hiện các dấu hiệu có nguy cơ làm tổn hại đến
tính đúng đắn, tính toàn vẹn, tính bảo mật của một hệ thống mạng hoặc máy tính, làm cơ sở
để đảm bảo cho an ninh hệ thống. Chúng có thể xác định những hoạt động xâm nhập bằng
việc kiểm tra sự đi lại của mạng, những host log, system call, và những khu vực khác khi
phát hiện ra những dấu hiệu xâm nhập. Do đó, IDS có khả năng ứng dụng phát hiện lỗ hổng
bảo mật Website.
2.3.2 Ứng dụng hệ thống IDS phát hiện lỗ hổng bảo mật Website
Hệ thống phát hiện xâm nhập IDS có khả năng ứng dụng phát hiện lỗ hổng bảo mật
Website dựa trên các dữ liệu thu thập được kết hợp với các kỹ thuật phát hiện tấn công.


12

1) Phát hiện tấn công dựa trên dấu hiệu
(2) Phát hiện tấn công dựa trên bất thƣờng
(3) Phát hiện tấn công dựa trên phân tích trạng thái giao thức
2.3.3 Nhận xét
Giải pháp sử dụng hệ thống IDS phát hiện lỗ hổng bảo mật Website dựa trên các cảnh
báo có sự xâm nhập trái phép. Đây là giải pháp khá hữu hiệu nhằm phát hiện các lỗ hổng
bảo mật cho hệ thống Website đang hoạt động.
Tuy nhiên, việc phân loại cụ thể các lỗ hổng bảo mật cho hệ thống Website. Vì vậy,
trong phần tiếp theo, luận văn sẽ nghiên cứu giải pháp ứng dụng các kỹ thuật học máy để
khắc phục nhược điểm này.

2.4 Giải pháp sử dụng các kỹ thuật học máy
2.4.1 Giới thiệu về học máy
Học máy là một trong các lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu
và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết
những vấn đề cụ thể. Theo nghĩa rộng: “học máy là một cụm từ dùng để chỉ khả năng một
chương trình máy tính để tăng tính thực thi dựa trên những kinh nghiêm đã trải qua” hoặc
“học máy là để chỉ khả năng một chương trình có thể phát sinh ra một cấu trúc dữ liệu mới
khác với các cấu trúc dữ liệu cũ”. Lợi điểm của các phương pháp học máy là nó phát sinh ra
các luật tường minh, có thể được sửa đổi, hoặc được huấn luyện trong một giới hạn nhất
định. Các phương pháp học máy hoạt động trên các dữ liệu có đặc tả thông tin.
Một tiến trình học máy gồm 2 giai đoạn [6]:
Giai đoạn học: hệ thống phân tích dữ liệu và nhận ra sự mối quan hệ (có thể là phi
tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu. Kết quả của việc học có thể là: nhóm các
đối tượng vào trong các lớp, tạo ra các luật, tiên đoán lớp cho các đối tượng mới.
Giai đoạn thử nghiệm (testing): Mối quan hệ (các luật, lớp...) được tạo ra phải được
kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần của tập dữ liệu huấn
luyện hoặc trên một tập dữ liệu lớn.
Các kỹ thuật học máy được chia làm 3 loại: học có giám sát, học không giám sát và
học bán giám sát.


13

Học có giám sát
Học không giám sát
Học bán giám sát
2.4.2 Ứng dụng các kỹ thuật học máy phát hiện lỗ hổng bảo mật Website
Trong thực tế, các kỹ thuật học máy thường được sử dung để phát hiện và phân loại
các lỗ hổng bảo mật Website. Đối với các loại lỗ hổng đã biết, các kỹ thuật học máy có
giám sát thường được lựa chọn để ứng dụng. Để phát hiện các loại lỗ hổng chưa biết, các kỹ

thuật học máy không giám sát thường được lựa chọn để ứng dụng. Trong trường hợp tổng
quát, các kỹ thuật học máy bán giám sát thường được lựa chọn để ứng dụng.
2.4.3 Nhận xét
Giải pháp sử dụng học máy phát hiện lỗ hổng bảo mật Website thường cho kết quả
phân loại các lỗ hổng bảo mật. Do đó sẽ hỗ trợ khả năng khắc phục, hạn chế nguy cơ của lỗ
hổng bảo mât.
Tuy nhiên, giải pháp xây dựng các mô hình phân loại cụ thể các lỗ hổng bảo mật cho
hệ thống Website dựa trên các kỹ thuật học máy đòi hỏi phải xây dựng các hệ thống phức
tạp. Cùng với sự phát triển của công nghệ, giải pháp này có nhiều triển vọng triển khai trong
thực tế.
2.4. Kết luận chƣơng 2.
Trong chương 2 luận văn đã khảo sát tổng quan về phát hiện lỗ hổng bảo mật website.
Luận văn đã đề xuất mô hình tổng quát phát hiện lỗ hổng bảo mật website. Từ đó, Luận văn
đã nghiên cứu ba giải pháp phát hiện lỗ hổng bảo mật website bao gồm: giải pháp sử dụng
công cụ phần mềm, giải pháp sử dụng hệ thống IDS và giải pháp sử dụng các kỹ thuật học
máy.
Trên cơ sở các kết quả đã đạt được của chương 2, trong chương tiếp theo luận văn sẽ
tiến hành thử nghiệm một số phương pháp phát hiện lỗ hổng bảo mật website.


14

Chƣơng 3: THỬ NGHIỆM
Trong chương 3 luận văn tiến hành thử nghiệm một số kịch bản phát hiện lỗ hổng
bảo mật website dựa trên các kết quả đã khảo sát trong các chương trước.

3.1. Yêu cầu thử nghiệm
3.1.1. Đặt bài toán
Trong các chương trước, luận văn đã khảo sát các giải pháp phát hiện lỗ hổng bảo mật
website. Để thực hiện kiểm nghiệm cho các giải pháp phát hiện các lỗ hổng bảo mật website

đã nghiên cứu, trong phần này luận văn sẽ tiến hành xây dựng và thử nghiệm một số kịch
bản phát hiện lỗ hổng bảo mật website. Do thời gian hạn chế, trong khuôn khổ luận văn sẽ
tiến hành các kịch bản thử nghiệm sau đây:
(1) Thử nghiệm dò quét các cổng website đang mở.
(2) Thử nghiệm tấn công website bằng phương thức DDoS.
(3) Thử nghiệm phát hiện lỗ hổng bảo mật SQL Injection.
(4) Thử nghiệm kiểm tra lỗi trang website bằng phương pháp Google Hacking.
(5) Thử nghiệm đề xuất hệ thống IDS sử dụng Snort.
Các thử nghiệm từ (1) đến (4) được xây dựng kịch bản và cài đặt dựa trên mã nguồn mở
Python.
Thử nghiệm (5) được cài đặt dựa theo tài liệu hướng dẫn bộ công cụ Pfsense [15].
Yêu cầu chung cho cài đặt thử nghiệm:
-

Phần cứng: Bộ xử lý 32 bit (x86) hoặc 64 bit (x64) có tốc độ 1 gigahertz (GHz) hoặc
nhanh hơn; RAM 2GB trở lên; Đĩa cứng có dung lượng trống 10 GB (64 bit).

-

Phần mềm: Cài đặt trên hệ thống window 7, 8, 10; Công cụ lập trình: Phần mềm
Python 2.7 trở lên hoặc phần mềm Pycham Community Edition 2017.2, trình duyệt
web firefox hoặc chrome

-

Dữ liệu giả định, tác giả tập trung khai thác trang web có tên miền là
và trang web www.nhuaphucthinh.com.vn để làm minh
chứng.



15

3.1.2. Giới thiệu chung về Python
Python là ngôn ngữ kịch bản hướng đối tượng (object-oriented scripting language).
Không chỉ vậy, nó còn là một ngôn ngữ cấp cao có khả năng thông dịch (interpreted
language) và có tính tương tác (interactive language) cao. Nhờ chức năng thông dịch mà
trình thông dịch (Interpreter) của Python có thể xử lý lệnh tại thời điểm chạy chương trình
(runtime). Nhờ đó mà ta không cần biên dịch chương trình trước khi thực hiện nó (tương tự
như Perl và PHP).
Từ những khảo sát trên, luận văn đã lựa chọn Python làm ngôn ngữ để tiến hành cài
đặt các thử nghiệm.
3.2. Kịch bản thử nghiệm 1: Thử nghiệm dò quét các cổng website đang mở
3.2.1. Bài toán thử nghiệm 1
Mục tiêu của bài toán thử nghiệm về quét các cổng webiste đang mở, thì trước khi
tiến hành khai thác hoặc tấn công vào một địa chỉ website nào đó, ta có thể biết website đó
đang mở đến những cổng kết nối nào.
Do đó, đầu vào là trang website cần thực hiện quét cổng và đầu ra cho biết được
website đó có bao nhiêu cổng đang được mở. Kịch bản với mục tiêu cho biết website đang
mở hoặc kết nối đến cổng nào trên bảng đã cho trên. Xây dựng các bước để thử nghiệm là:
Bước 1: Xây dựng chương trình thực hiện quét các cổng bằng ngôn ngữ Python
Bước 2: Thử nghiệm trên một tên miền hoặc địa chỉ IP của website, cụ thể lấy tên
miền và thực hiện kiểm tra, thấy địa chỉ host đang hoạt động bình
thường với địa chỉ IP: 125.235.8.201.
Bước 3: Tiến hành thực hiện chạy chương trình Python đã xây dựng và nhập địa chỉ
tên miền hoặc địa chỉ IP cần quét các cổng theo yêu cầu.
3.2.2. Kết quả thử nghiệm 1
Bƣớc 1: Xây dựng chương trình thực hiện quét các cổng bằng ngôn ngữ Python sau:
Bƣớc 2: Thực hiện kiểm tra địa chỉ Host cần quét còn hoạt động hay không, bằng cách nhập
địa chỉ tên miền trên cmd của windows. Hình dưới sau, tác giả lấy một tên miền bất kỳ,
chẳng hạn như: và thực hiện kiểm tra, thấy địa chỉ host đang hoạt

động bình thường với địa chỉ IP: 125.235.8.201


16

Bƣớc 3: Tiến hành thực hiện chạy chương trình Python đã xây dựng và nhập địa chỉ tên
miền hoặc địa chỉ IP cần quét các cổng theo yêu cầu. Hình 3.2 dưới cho ra kết quả thực hiện
các cổng đang mở kết nối tới địa chỉ đã nhập

Hình 3.3: Kết quả thực hiện quét các cổng của địa chỉ đã cho
3.2.3. Đánh giá kết quả thử nghiệm 1
Với đoạn code chương trình đã xây dựng trên, khi thực hiện chương trình có thể kiểm
tra được bất kỳ địa chỉ host nào đang kết nối tới cổng nào khi tham gia mạng máy tính, qua
đó cũng là tiền đề để Hacker có thể biết và khai thác các dịch vụ của host khi tham gia
mạng. Kết quả của ví dụ trên cho thấy địa chỉ host IP (125.235.8.201) sau thời gian 22 phút
29 giây đã thực hiện quét được các cổng có thể là tổng cộng 13 port đang mở.
3.3. Kịch bản thử nghiệm 2: Thử nghiệm tấn công website bằng phƣơng thức DoS
3.3.1. Bài toán thử nghiệm 2
Mục tiêu của bài toán là dùng chương trình thực hiện mã nguồn mở Python để thực
hiện tấn công vào một trang website bất kỳ và kết quả là làm cho website đó bị tê liệt hoặc
không thể truy cập được. Cụ thể trong trường hợp này thì đầu vào là một website có địa chỉ:
www.hunre.edu.vn hoặc có địa chỉ 125.235.8.201 và kết quả đầu ra là trang website bị lỗi.
Như vậy, tấn công từ chối dịch vụ phân tán DoS (Denial of Service) là kiểu tấn công
làm cho hệ thống máy tính hay hệ thống mạng quá tải, không thể cung cấp dịch vụ hoặc
phải dừng hoạt động. Xây dựng các bước để thử nghiệm là:
Bước 1: Xây dựng chương trình thực hiện tấn công DoS bằng ngôn ngữ Python và
thực hiện thử nghiệm tấn công vào địa chỉ trang website bất kỳ.
Bước 2: Chạy chương trình thực hiện tấn công DoS bằng ngôn ngữ Python đã được
viết và thực hiện các yêu cầu cần nhập vào các thông số như cổng tấn công, số lần thực
hiện,..

Bước 3: Kiểm nghiệm lại kết quả bằng cách truy cập trình duyệt để kiểm tra trạng
thái của trang web bị tấn công DoS


17

3.3.2. Kết quả thử nghiệm 2
Bƣớc 1: Xây dựng chương trình thực hiện tấn công DoS bằng ngôn ngữ Python và thực
hiện tấn công vào địa chỉ trang website: hunre.edu.vn
Bƣớc 2: Chạy chương trình viết trên, kết quả xuất hiện các yêu cầu cần nhập vào như:
Bảng 3.2: Bảng dữ liệu đầu vào thực hiện tấn công DoS
Nội dung yêu cầu
+ Nhập website cần tấn công DoS:
+ Cổng (port) muốn thực hiện tấn công DoS:
+ Nội dung muốn gửi thông báo:
+ Cho phép số lần tấn công:

Dữ liệu giả định

80
Xin thu mot lan cho biet….
100000000

Sau khi nhập đủ các thông tin theo yêu cầu, chương trình sẽ tự động thực hiện tấn
công đến đối tượng đã chỉ định. Kết quả sau một thời gian trang web đã bị tê liệt hoặc làm
gián đoạn không hoạt động, kết quả thấy trang web có địa chỉ đã
bị từ chối truy cập:
Bƣớc 3: Truy cập trình duyệt để kiểm tra trạng thái của trang web bị tấn công DoS:
3.3.3. Đánh giá kết quả thử nghiệm 2
Với chương trình trên được viết cho mục đích tấn công từ chối dịch vụ DoS có thể

thấy rằng bất kỳ địa chỉ host nào muốn thực hiện tấn công, chúng ta chỉ cần nhập tên miền
hoặc địa chỉ IP của trang web đó và thực hiện tấn công ở cổng 80 với nội dung được gửi đến
và số lần liên tiếp thực hiện tấn công trong một khoảng thời gian nhất định, điều đó sẽ làm
cho trang web không thể truy cập được hoặc làm gián đoạn sự truy cập, cụ thể trang web
trên đã báo lỗi khi truy cập.
3.4. Kịch bản thử nghiệm 3: Thử nghiệm phát hiện lỗ hổng bảo mật SQL Injection
3.4.1. Bài toán thử nghiệm 3
Mục tiêu của bài toán này là dùng các kỹ thuật kiểm tra bất kỳ một trang website nào
có kết nối đến cơ sở dữ liệu SQL bằng các kỹ thuật như là vượt kiểm tra lúc đăng nhập vào
website, tấn công webiste bằng cách các câu lệnh sử dụng lệnh truy vấn SQL, sử dụng các
store procedures của SQL server hoặc các câu lệnh chèn SQL,.. và kết quả đạt được có thể
lấy được thông tin bảo mật của hệ thống như tên đăng nhập và mật khẩu truy cập. Như vậy,
SQL

Injection



một

trong

những

kiểu hack web

bằng

cách


inject

các

mã SQL query/command vào input trước khi chuyển cho ứng dụng web xử lí, bạn có thể
login mà không cần username và password, remote execution (thực thi từ xa), dump data và


18

lấy root của SQL server. Công cụ dùng để tấn công là một trình duyệt web bất kì, chẳng hạn
như Internet Explorer, Firefox, Netscape, Lynx, ...Xây dựng các bước để thử nghiệm:
Bước 1: Xây dựng chương trình thực hiện kiểm tra lỗi trang web bằng ngôn ngữ
Python.
Bước 2: Thực hiện chạy chương trình được viết bằng ngôn ngữ Python trong bước 1
để kiểm tra kết quả các lỗ hổng website có dính lỗi SQL.
Bước 3: Thực hiện dùng các câu lệnh truy vấn SQL để thực hiện tấn công trang
website trên địa chỉ của trình duyệt web bất kỳ, trong đó sử dụng các câu lệnh Select truy
vấn.
3.4.2. Kết quả thử nghiệm 3
Bƣớc 1: Xây dựng chương trình thực hiện kiểm tra lỗi trang web bằng ngôn ngữ Python
Bƣớc 2: Thực hiện chạy chương trình để kiểm tra kết quả, trong kết quả này tác giả lấy
trang website có tên miền là để làm minh chứng. Kết
quả chương trình phát hiện website trên có lỗ hổng về cơ sở dữ liệu phần xử lý admin theo
kết quả sau:

Hình 3.7: Kết quả phát hiện lỗi trang web có tổn thƣơng SQL Injection
Bƣớc 3: Thực hiện dùng các câu lệnh truy vấn SQL để thực hiện tấn công trang website này
trên địa chỉ của trình duyệt web bất kỳ:
(1). Thực hiện thêm order by đằng sau đuôi trang website để kiểm tra xem web có

bao nhiêu bảng kết nối cơ sở dữ liệu SQL:
order by 11-- (2). Sau khi biết dò chính xác số bảng trong cơ sở dữ liệu SQL ta có thể truy cập vào
để biết được những bảng nào bị lỗi, từ đó thực hiện tấn công vào bảng bị lỗi:


19

UNION SELECT
1,2,3,4,5,6,7,8,9,10,11
UNION SELECT
1,2,group_concat(database()),4,5,6,7,8,9,10,11
UNION SELECT
1,2,group_concat(user()),4,5,6,7,8,9,10,11
UNION SELECT
1,2,group_concat(table_name),4,5,6,7,8,9,10,11 from information_schema.tables where
table_schema=database()
UNION SELECT
1,2,group_concat(AdmUsername,0x7c,AdmPassword),4,5,6,7,8,9,10,11 from
administrator
3.4.3. Đánh giá kết quả thử nghiệm 3
Với phương pháp sử dụng kỹ thuật tấn công SQL Injection này, tác giả mong muốn
khi thực hiện bất kỳ một trang web kiểm tra xem trang web đó có lỗ hổng bảo mật về cơ sở
dữ liệu hay không, các lỗi trang web hay gặp phải như một số lỗi sau: ('admin'or 1=1 or ''='",
"'=1\' or \'1\' = \'1\'", "'or 1=1", "'1 'or' 1 '=' 1", "'or 1=1#", "'0 'or' 0 '=' 0", "'admin'or 1=1 or
''='", "'admin' or 1=1", "'admin' or '1'='1", "'or 1=1/*", "'or 1=1--"). Tất cả những lỗi này rất
dễ hacker có thể dùng các kĩ thuật khai thác vào hệ thống được, thông qua lỗi trên, quản trị
có thể biết được và có hướng khắc phục.
3.5. Kịch bản thử nghiệm 4: Thử nghiệm kiểm tra lỗi trang website bằng phƣơng pháp
Google Hacking
3.5.1. Bài toán thử nghiệm 4

Mục đích của bài toán này là lợi dụng vào bộ máy tình kiếm Google để truy tìm tông
tích đối tượng, thậm chỉ là dùng Google để tấn công hệ thống. Với khả năng tìm kiếm lợi
hại của Google, người tấn công có thề tìm thấy nhiều thông tin hữu ích, cho quá trình theo
dõi mục tiêu và tấn công vào đối tượng. Kết quả là có thể tìm ra các lỗ hổng của Server: Lỗi
phiên bản, bug, … Các thông tin nhạy cảm từ các thông báo đưa ra, File chứa mật khẩu,
Thư mục nhạy cảm: thư mục chứa code lỗi, …Trang đăng nhập vào hệ thống, Trang chứa
thông tin về cấu hình mạng, firewall như log firewall, …Xây dựng các bước để thử nghiệm:
Bước 1: Nghiên cứu các từ khóa hoặc kết hợp các từ khóa để thực hiện tấn công


20

Bước 2: Sử dụng trang website google.com.vn để thực hiện tìm kiếm bằng các từ
khóa đã được xác định.
Bước 3: Tìm những website bị dính lỗi có khả năng truy cập hoặc khai thác thông tin
sau khi sử dụng các từ khóa đặc biệt tìm kiếm trên trang google.com.vn
3.5.2. Kết quả thử nghiệm 4
Dùng trang Google.com.vn để thực hiện khai thác tấn công vào những trang website
bị lỗi với cú pháp các câu lệnh kết hợp
Cụ thể trong thực nghiệm này, tác giả dùng câu lệnh dưới đây để khai thác những website
lỗi có truy xuất hình ảnh:
inurl:"index.php?option=com_media" site: tên miền

Hình 3.12: Hiển thị những trang website bị lỗi truy xuất hình ảnh
Với thay đổi đuôi của tên miền, ta có thể liệt kê được rất nhiều trang website bị lỗi. Nếu có
thể mở trang web đầu tiên của Hình 3.12 sau:
3.5.3. Đánh giá kết quả thử nghiệm 4
Với phương pháp Google Hacking, dùng trang web google.com.vn để thực hiện truy
vấn các trang website bị lỗi, ta có thể dễ dàng khai thác được một số lỗ hổng bảo mật web
như những website có truy xuất hình ảnh hoặc có thể truy cập trực tiếp vào cơ sở dữ liệu của

hệ thống cũng như lấy được các thông tin cần thiết. Với các tiếp cận này thì người tấn công
dễ dàng có thể thực hiện được các yêu cầu từ những lỗi của website. Do đó, Google là một
công cụ tìm kiếm mạnh mẽ mà nó trở thành một công cụ tấn công của Hacker.
3.6. Kịch bản thử nghiệm 5: Thử nghiệm đề xuất hệ thống IDS sử dụng Snort


21

3.6.1. Bài toán thử nghiệm 5
Trong mục này luận văn đề xuất mô hình hệ thống IDS sử dụng Snort để phát hiện lỗ
hổng bảo mật cho hệ thống Website dựa trên phát hiện xâm nhập mạng.
Mô hình thử nghiệm được trình bày trong hình 3.15.

Hình 3.15: Mô hình thử nghiệm hệ thống IDS sử dụng Snort
Trong mô hình trên, nếu hacker tấn công từ bên ngoài vào thì trước tiên chúng phải
đi qua hệ thống phân tích các gói tin IDS. Khi đó hệ thống IDS sẽ hoạt động và có các phản
ứng phù hợp với các tình huống khi bị tấn công vào các lỗ hổng bảo mật Website. Xây dựng
các bước thực hiện thử nghiệm sau:
Bước 1: Cài đặt mã nguồn mở Pfsense trên hệ điều hành Linux
Bước 2: Cài đặt và thiết lập cấu hình mã nguồn mở Snort để thực hiện giám sát và
ngăn chặn truy cập mạng trái phép.
Bước 3: Cấu hình hoặc xây dựng các luật (ruler) trên Snort
3.6.2. Kết quả thử nghiệm 5
Quá trình thử nghiệm được cài đặt dựa theo tài liệu hướng dẫn công cụ Pfsense [15].
Bƣớc 1: Vào menu System => Packages, Chọn thẻ Available Packages => tìm mục
Snort click vào dấu cộng. Sau khi cài đặt xong thì qua thẻ Installed Packages sẽ thấy gói
snort đã có ở đây.
Bƣớc 2: Cấu hình Snort. Vào Services => Snort.
Bƣớc 3: Trên giao diện Snort, chọn tab Global Settings. Tại đây sẽ thiết lập sử dụng
bộ Rules nào. Snort có 3 loại Rules: Snort VRT, Snort Comminity và Snort Subscribe.

Bƣớc 4: Cài đặt Rules. Chọn tab Update để tải Rules.


22

Bƣớc 5: Thiết laapk giao diện Snort. Sau các bước cài đặt rule xong, quay lại tab
Snort Interfaces => thiết lập Snort cho Interface bằng cách click “+”.
Kết quả thử nghiệm:
Sau khi giả lập các truy cập vào hệ thống Website, hệ thống Snort đã đưa ra kết quả
mô tả các cảnh báo như trong hình 3.21 dưới đây.

Hình 3.21: Kết quả thực hiện Snort
3.6.3. Đánh giá kết quả thử nghiệm 5
Luận văn đã tiến hành cài đặt Snot trên Pfsense và thiết lập các rules trên Snot nhằm
giả lập một hệ thống IDS giúp hệ thống phát hiện các xâm nhập, tấn công trái phép.
Kết quả cần đạt: Hệ thống với Snot sẽ giúp hệ thống phát hiện ra các xâm nhập, tấn
công trái phép, ngăn chặn chúng, đồng thời gửi báo cáo giúp có thể nhận biết và triển khai
các phương án phòng chống hiệu quả.
3.7. Kết luận chƣơng 3
Trong chương 3 luận văn đã tiến hành năm kịch bản thử nghiệm mô phỏng các giải
pháp phát hiện lỗ hổng bảo mật hệ thống Website.
Các kết quả thử nghiệm cho thấy các giải pháp phát hiện lỗ hổng bảo mật đề xuất có
thể triển khai trong thực tế và phù hợp với các yêu cầu đề ra.


23

KẾT LUẬN
Các kết quả đạt đƣợc của luận văn:
Với mục tiêu nghiên cứu các giải pháp phát hiện lỗ hổng bảo mật WEB và thử

nghiệm, luận văn đã đạt được một số kết quả sau đây:
- Nghiên cứu tổng quan về công nghệ Web và các vấn đề liên quan.
- Nghiên cứu tổng quan về tấn công các lỗ hổng bảo mật WEB.
- Nghiên cứu đề xuất mô hình tổng quát phát hiện lỗ hổng bảo mật WEB.
- Nghiên cứu ba giải pháp phát hiện lỗ hổng bảo mật WEB và các vấn đề liên quan.
- Xây dựng và tiến hành năm kịch bản thử nghiêm phát hiện lỗ hổng bảo mật WEB.
Hƣớng phát triển tiếp theo:
- Thực hiện xây dựng một số chương trình có khả năng phát hiện lỗ hổng các trang
web được viết bằng ngôn ngữ lập trình ASP.NET.
- Xây dựng các hệ thống có thể dò quét các lỗ hổng bảo mật và phân tích các lỗ hổng
chi tiết hơn nhằm hỗ trợ cho bảo đảm an toàn các hệ thống Website.


×