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

Nghiên Cứu Giải Pháp Phát Hiện Tấn Công Website Dựa Vào Dấu Hiệu Bất Thường (LV thạc sĩ)

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 (2.01 MB, 78 trang )

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

HUỲNH VĂN THỊNH

NGHIÊN CỨU GIẢI PHÁP
PHÁT HIỆN TẤN CÔNG WEBSITE
DỰA VÀO DẤU HIỆU BẤT THƯỜNG

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

TP HỒ CHÍ MINH – 2017


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

HUỲNH VĂN THỊNH

NGHIÊN CỨU GIẢI PHÁP
PHÁT HIỆN TẤN CÔNG WEBSITE
DỰA VÀO DẤU HIỆU BẤT THƯỜNG

Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. NGUYỄN HỒNG SƠN


TP HỒ CHÍ MINH – 2017


i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công
bố trong bất kỳ công trình nào khác.
TP Hồ Chí Minh, ngày 22 tháng 5 năm 2017
Học viên thực hiện luận văn

Huỳnh Văn Thịnh


ii

LỜI CẢM ƠN
Trước tiên, tôi xin chân thành cảm ơn Thầy TS. Nguyễn Hồng Sơn đã tận tình
hướng dẫn và tạo mọi điều kiện thuận lợi để tôi hoàn thành tốt luận văn này. Tôi cũng
xin gửi lời cảm ơn đến Quý Thầy Cô tại Học Viện Công Nghệ Bưu Chính Viễn Thông
cơ sở Thành phố Hồ Chí Minh đã tận tình giảng dạy và trang bị cho tôi những kiến
thức quý báu trong quá trình tham gia học tập tại Trường.
Tôi chân thành biết ơn sâu sắc đến gia đình và bạn bè đã động viên và giúp đỡ
tôi hoàn thành khóa học này.
TP Hồ Chí Minh, ngày 22 tháng 5 năm 2017
Học viên thực hiện luận văn

Huỳnh Văn Thịnh



iii

MỤC LỤC

Lời cam đoan ................................................................................................................i
Lời cảm ơn ................................................................................................................. ii
Danh mục các thuật ngữ, chữ viết tắt .......................................................................... v
Danh sách bảng ..........................................................................................................vi
Danh sách hình vẽ .................................................................................................... vii
MỞ ĐẦU ..................................................................................................................... 1
CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT ......................................................................... 3
1.1 Ứng dụng web ................................................................................................... 3
1.1.1 Khái niệm ................................................................................................... 3
1.1.2 Vấn đề bảo mật ứng dụng web ................................................................... 4
1.2 Giao thức HTTP ................................................................................................ 6
1.2.1 HTTPs ........................................................................................................ 9
1.2.2 Các kỹ thuật lảng tránh HTTP ................................................................... 9
1.3 Ngôn ngữ PHP ................................................................................................10
1.4 Các rủi ro bảo mật cho ứng dụng web ............................................................11
1.4.1 Chèn mã ...................................................................................................12
1.4.2 Phá vỡ xác thực và quản lý phiên làm việc ..............................................12
1.4.3 Thực thi mã lệnh xấu................................................................................13
1.4.4 Tham chiếu đối tượng trực tiếp không an toàn ........................................14
1.4.5 Sai sót cấu hình bảo mật ..........................................................................15
1.4.6 Phơi bày dữ liệu nhạy cảm .......................................................................15
1.4.7 Thiếu chức năng điều khiển truy cập .......................................................16
1.4.8 Giả mạo yêu cầu .......................................................................................17
1.4.9 Sử dụng thành phần đã tồn tại lỗ hổng.....................................................17
1.4.10 Chuyển hướng và chuyển tiếp không kiểm tra ......................................18

1.5 Kỹ thuật nhận diện tấn công ứng dụng web....................................................19
CHƯƠNG 2 – XÂY DỰNG CÔNG CỤ PHÁT HIỆN TẤN CÔNG WEBSITE ....22
2.1 Các Profile .......................................................................................................22


iv

2.1.1 Profile 1 – Cấu trúc yêu cầu .....................................................................23
2.1.2 Profile 2 – Các giá trị của yêu cầu ...........................................................24
2.1.3 Profile 3 – Phản hồi của máy chủ ............................................................26
2.1.4 Profile 4 – Cấu trúc phiên ........................................................................27
2.1.5 Profile 5 – Hồ sơ người dùng ...................................................................29
2.1.6 Profile 6 – Tổng quan hệ thống ................................................................30
2.2 Đánh giá profile...............................................................................................32
2.3 Đề xuất profile.................................................................................................38
2.4 Nguồn dữ liệu huấn luyện ...............................................................................40
2.5 Profile Các yêu cầu của người dùng ...............................................................41
2.6 Xây dựng công cụ nhận dạng bất thường .......................................................42
CHƯƠNG 3 – THỰC NGHIỆM VÀ ĐÁNH GIÁ ...................................................51
3.1 Thực nghiệm ...................................................................................................51
3.2 Kết quả thực nghiệm và đánh giá....................................................................57
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................................61
TÀI LIỆU THAM KHẢO .........................................................................................62
Phụ lục 1. Danh sách mã trạng thái HTTP ................................................................65
Phụ lục 2. Định dạng nhật ký chung .........................................................................67
Phụ lục 3. Định dạng nhật ký kết hợp .......................................................................69


v


DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt
ASP
CMS
CSRF
DDoS
FQDN
HIDS

HQL
HTML
HTTP

ICD
IDS
IIS
JSP
LDAP

NFA
NIDS
OWASP
PHP

RBID
SQL
SSL
TCP
URL
URI

XML
XSS

Tiếng Anh

Tiếng Việt

Ngôn ngữ lập trình ASP
Hệ quản trị nội dung
Giả mạo yêu cầu
Tấn công từ chối dịch vụ phân tán
Địa chỉ tên miền đầy đủ
Hệ thống phát hiện xâm nhập trên
máy chủ
Ngôn ngữ truy vấn hibernate
Ngôn ngữ đánh dấu siêu văn bản
Giao thức truyền tải siêu văn bản
Sự phân bố ký tự lý tưởng
Hệ thống phát hiện xâm nhập
Dịch vụ máy chủ web chạy trên nền
hệ điều hành Windows
Java Server Pages
Ngôn ngữ lập trình JSP
Lightweight Directory Access
Giao thức truy cập nhanh các dịch
Protocol
vụ thư mục
Non-deterministic finite automaton Ôtômát hữu hạn không đơn định
Network-based Intrusion Detection Hệ thống phát hiện xâm nhập trên
System

mạng
Open Web Application Security
Dự án mở về bảo mật ứng dụng
Project
Web
Hypertext Preprocessor
Ngôn ngữ lập trình PHP
Rule-based Intrusion Detection
Phát hiện xâm nhập dựa vào các luật
Structured Query Language
Ngôn ngữ truy vấn cấu trúc
Secure Sockets Layer
Giao thức bảo mật SSL
Transmission Control Protocol
Giao thức điều khiển truyền vận
Uniform Resource Locator
Định vị tài nguyên thống nhất
Uniform Resource Identifier
Định dạng tài nguyên thống nhất
eXtensible Markup Language
Ngôn ngữ đánh dấu mở rộng
Cross-Site Scripting
Thực thi mã lệnh xấu
Active Server Pages
Content Management System
Cross-Site Request Forgery
Distributed Denial of Service
Fully Qualified Domain Name
Host-based Intrusion Detection
System

Hibernate Query Language
Hyper Text Markup
Hypertext Transfer Protocol
Idealized Character Distribution
Intrusion Detection System
Internet Information Services


vi

DANH SÁCH BẢNG
Bảng 2.1. Các mô hình của profile 1 – Cấu trúc yêu cầu

23

Bảng 2.2. Các mô hình của profile 2 – Các giá trị của yêu cầu

24

Bảng 2.3. Các mô hình của profile 3 – Phản hồi của máy chủ

26

Bảng 2.4. Các mô hình của profile 4 – Cấu trúc phiên

27

Bảng 2.5. Các mô hình của profile 5 – Hồ sơ người dùng

30


Bảng 2.6. Các mô hình của profile 6 – Tổng quan hệ thống

31

Bảng 2.7. Đánh giá profile 1 – Cấu trúc yêu cầu

33

Bảng 2.8. Đánh giá profile 2 – Các giá trị của yêu cầu

34

Bảng 2.9. Đánh giá profile 3 – Phản hồi máy chủ

35

Bảng 2.10. Đánh giá profile 4 – Cấu trúc phiên

36

Bảng 2.11. Đánh giá profile 5 – Hồ sơ người dùng

37

Bảng 2.12. Đánh giá profile 6 – Tổng quan hệ thống

38

Bảng 2.13. Profile đề xuất – Các yêu cầu của người dùng


40

Bảng 2.14. Ví dụ thống kê về từng thuộc tính của mỗi URL

45

Bảng 3.1: Thống kê mẫu dữ liệu trong tập dữ liệu kiểm tra
cho các trường hợp thử nghiệm khác nhau trên tập dữ liệu 1

52

Bảng 3.2. Thống kê mẫu dữ liệu trong tập dữ liệu kiểm tra
trường hợp 3.5 trên tập dữ liệu 1

53

Bảng 3.3. Thống kê mẫu dữ liệu trong tập dữ liệu kiểm tra trên tập dữ liệu 2

56

Bảng 3.4. Kết quả dự báo lớp thực hiện trong trường hợp 3.1 trên tập dữ liệu 1 57
Bảng 3.5. Kết quả dự báo lớp thực hiện trong trường hợp 3.2 trên tập dữ liệu 1 57
Bảng 3.6. Kết quả dự báo lớp thực hiện trong trường hợp 3.3 trên tập dữ liệu 1 57
Bảng 3.7. Kết quả dự báo lớp thực hiện trong trường hợp 3.4 trên tập dữ liệu 1 58
Bảng 3.8. Kết quả dự báo lớp thực hiện trong trường hợp 3.5 trên tập dữ liệu 1
và trên tập dữ liệu 2

58



vii

DANH SÁCH HÌNH VẼ
Hình 1.1. Mô hình hoạt động của ứng dụng web

3

Hình 1.2. Mô hình hoạt động chi tiết của ứng dụng web

4

Hình 1.3. Các bước tấn công vào ứng dụng web

5

Hình 1.4. Kỹ thuật phát hiện tấn công ứng dụng web

19

Hình 2.1. Thông tin chi tiết một lỗ hổng đối với WordPress Plugin
Apptha Slider Gallery v1.0 ngày 09/3/2017 bị tấn công SQL Injection

39

Hình 2.2. Ví dụ một phần tử trong nhật ký truy cập của máy chủ web

41

Hình 2.3. Mô hình chức năng nhận dạng bất thường sử dụng

profile “Các yêu cầu của người dùng”

43

Hình 2.4. Mô hình chi tiết giai đoạn dự báo lớp

50

Hình 3.1. Giao diện công cụ thực nghiệm

51

Hình 3.2. Tiền xử lý dữ liệu huấn luyện

53

Hình 3.3. Tiền xử lý dữ liệu kiểm tra

54

Hình 3.4. Sử dụng dữ liệu huấn luyện để dựng mô hình

54

Hình 3.5. Sử dụng mô hình sau khi huấn luyện để dự báo lớp
cho dữ liệu kiểm tra

55

Hình 3.6. Tỉ lệ dự đoán đúng và dự đoán sai trong các trường hợp khác nhau

trên tập dữ liệu 1

59

Hình 3.7. Tỉ lệ dự đoán đúng và dự đoán sai của từng loại tấn công
trong trường hợp 3.5 trên tập dữ liệu 1 và trên tập dữ liệu 2

59


1

MỞ ĐẦU
Ngày nay, số lỗ hổng bảo mật được tìm thấy trong các ứng dụng cao hơn nhiều
so với số lỗ hổng được tìm thấy trong các hệ điều hành. Các cuộc tấn công nhằm vào
các ứng dụng web đang khai thác các lỗ hổng ở lớp ứng dụng và không phải ở lớp
truyền tải hoặc lớp mạng như các cuộc tấn công thông thường trong quá khứ. Đồng
thời, số lượng và mức độ tác động của các lỗ hổng bảo mật trong các ứng dụng như
vậy ngày càng tăng cao.
Không có nghi ngờ rằng bảo mật ứng dụng web là một chủ đề phổ biến và có
giá trị. Nó liên quan đến tất cả: Các doanh nghiệp mà doanh thu tăng từ thương mại
điện tử trên Internet, những người dùng tin tưởng các ứng dụng web với các thông tin
nhạy cảm, và các tội phạm có thể kiếm nhiều tiền bằng cách đánh cắp các dữ liệu
thanh toán hoặc xâm nhập vào các tài khoản ngân hàng. Danh tiếng đóng một vai trò
quan trọng, hầu như không ai muốn kinh doanh với một website không an toàn, rất ít
tổ chức muốn tiết lộ các chi tiết về các lỗ hổng bảo mật riêng của họ hoặc tình trạng
bị xâm nhập. Vì thế, nghiên cứu giải pháp phát hiện tấn công cho ứng dụng web luôn
là một chủ để cần thiết. Theo thống kê của w3techs.com [20] cho thấy rằng PHP
chiếm 81,9% trong tất cả các website sử dụng ngôn ngữ lập trình server-side. Viết
ứng dụng PHP là khá dễ dàng, nhưng số đông các lập trình viên lại bỏ qua khía cạnh

an ninh hoặc quan tâm không đúng mức. Hiện tại, ngôn ngữ lập trình PHP được hỗ
trợ trong hầu hết các máy chủ web của nhiều nhà cung cấp dịch vụ web hosting, vì
thế viết công cụ phát hiện tấn công cho ứng dụng web bằng PHP là một lợi thế lớn.
Đề tài này tập trung nghiên cứu và xây dựng công cụ phát hiện tấn công cho
ứng dụng web PHP dựa vào dấu hiệu bất thường và công nghệ học máy, bằng cách
xây dựng profile và sử dụng các mô hình positive (các mô hình học các hành vi bình
thường).


2

Theo tìm hiểu, các công trình nghiên cứu hiện tại trong và ngoài nước theo
hướng tiếp cận của đề tài chỉ dừng lại ở mức cơ bản “đề xuất một số mô hình phát
hiện”.
Về ý nghĩa khoa học, kết quả nghiên cứu có thể làm tài liệu tham khảo, tài liệu
kỹ thuật cho việc xây dựng hệ thống nhận dạng bất thường, phát hiện xâm nhập cho
các ứng dụng web.
Về ý nghĩa thực tiễn, sản phẩm đạt hiệu quả cao sẽ là cơ sở để xây dựng hệ
thống đảm bảo an toàn thông tin cho cho các ứng dụng web.
Luận văn này được chia thành ba chương: chương 1 trình bày các cơ sở lý
thuyết, chương 2 trình bày các bước xây dựng công cụ phát hiện tấn công, và tiếp
theo là chương 3 trình bày cách thức và kết quả thực nghiệm từ công cụ được xây
dựng. Sau cùng luận văn kết thúc qua một số tổng kết trong phần kết luận và hướng
phát triển.


3

CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT
Chương này trình bày cácGiai đoạn dựng mô hình:

Sử dụng tệp tin có phần mở rộng là *.train để xử lý, tệp tin kết quả có phần
mở rộng là *.model.

Hình 3.4: Sử dụng dữ liệu huấn luyện để dựng mô hình

Theo báo cáo trong [8] thì nhận dạng bất thường dựa vào sự phân bố ký tự lý
tưởng ICD trong mô hình Attribute character distribution là không được tốt. Trong
quá trình dựng mô hình (huấn luyện) và dự báo lớp (phát hiện), để tăng cường hiệu
quả cho ICD, theo [4], với chuỗi giá trị của thuộc tính đầu vào, các ký tự chữ số sẽ
chuyển thành N, các ký tự chữ cái sẽ chuyển thành A, các ký tự khác sẽ được giữ
nguyên. Ví dụ với chuỗi đầu vào là “Pass-word-123@” thì sẽ chuyển thành “AAAAAAAA-NNN@”.
Trong mô hình Value length, chiều dài giá trị của thuộc tính có thể xem xét ở
hai khả năng: Thứ nhất là tính các ký tự trong chuỗi, ví dụ chuỗi “password” trong
trường hợp này có chiều dài bằng 8 - tương ứng tập ký tự {p, a, s, s, w, o, r, d}; Thứ
hai là chỉ giữ lại số ký tự duy nhất trong chuỗi, ví dụ chuỗi “password” trong trường
hợp này có chiều dài bằng 7 - tương ứng tập ký tự {p, a, s, w, o, r, d}, vì có hai ký tự
“s” chỉ cần tính là một. Trong thực nghiệm này thì sử dụng trường hợp thứ nhất.


55

+ Giai đoạn dự báo lớp:
Sử dụng tệp tin mô hình có phần mở rộng là *.model và tệp tin cần kiểm tra
có phần mở rộng là *.test để xử lý. Sau giai đoạn này thì tệp tin kết quả có phần mở
rộng là *.predict.

Hình 3.5: Sử dụng mô hình sau khi huấn luyện để dự báo lớp cho dữ liệu kiểm tra

- Với Tập dữ liệu 2
Đây là tập dữ liệu được thu thập từ nhật ký web thực tế của website

hoinongdankhanhhoa.org.vn, một website được triển khai bởi tác giả luận văn nên sẽ
có nhiều thuận lợi hơn cho việc hiểu, phân tích và đánh giá trong quá trình thử
nghiệm. Việc thực nghiệm trên tập dữ liệu này cũng tương tự như Tập dữ liệu 1.
Dữ liệu dùng để huấn luyện: Là một tệp tin nhật ký truy cập web chứa các yêu
cầu (request) thu thập được trong vòng một tháng của Hội Nông dân tỉnh Khánh Hòa
tại địa chỉ với hơn 40000 truy vấn đến 3 chương
trình là index.php, component/sendmail/home.php và /component/print/home.php.
Dữ liệu dùng để kiểm tra: Là một tệp tin nhật ký web có chứa 200 yêu cầu,
100 yêu cầu đầu là các truy vấn bình thường được trích xuất từ các yêu cầu thu thập
được trong tháng tiếp theo của website 100 truy
vấn sau chứa các loại tấn công khác nhau bao gồm: SQL Injection, XSS, Directory
Traversal, Buffer Overflow và các tấn công khác mà không nhận thức được tính lôgic
của chương trình (Duplicated Attribute, Missing Attribute, Attribute Order, Missing
Path) được thu thập từ nhiều nguồn khác nhau bao gồm:


56

/> /> và một số tấn công được trích xuất từ tập
Anomalous Traffic (Test) của tập dữ liệu 1.
Bảng 3.3: Thống kê mẫu dữ liệu trong tập dữ liệu kiểm tra
trên tập dữ liệu 2
Yêu cầu

Số lượng

Bình thường

Tấn công


100
SQL Injection

20

XSS

20

Directory Traversal

10

Buffer Overflow

10

Duplicated Attribute

10

Missing Attribute

10

Attribute Order

10

Missing Path


10
Tổng cộng 200

+ Giai đoạn tiền xử lý:
Tiền xử lý dữ liệu đầu ra để sử dụng cho giai đoạn dựng mô hình: Sử dụng tệp
tin “hoinongdankhanhhoa.org.vn-Training.log” để xử lý. Sau khi xử lý thì giữ lại
được hơn 500 yêu cầu hợp lệ, tệp tin kết quả có phần mở rộng là *.train.
Tiền xử lý dữ liệu đầu ra để sử dụng cho giai đoạn dự báo lớp: Sử dụng tệp tin
“hoinongdankhanhhoa.org.vn-Test.log” để xử lý, tệp tin kết quả có phần mở rộng là
*.test.
+ Giai đoạn dựng mô hình:
Sử dụng tệp tin có phần mở rộng là *.train để xử lý, tệp tin kết quả có phần
mở rộng là *.model.


57

+ Giai đoạn dự báo lớp:
Sử dụng tệp tin mô hình có phần mở rộng là *.model và tệp tin cần kiểm tra
có phần mở rộng là *.test để xử lý, tệp tin kết quả có phần mở rộng là *.predict.

3.2 Kết quả thực nghiệm và đánh giá
Trong tệp tin kết quả, các yêu cầu được gán nhãn bằng 0 là các yêu cầu bình
thường, ngược lại, các yêu cầu lớn hơn 0 là bất thường.
Bảng 3.4: Kết quả dự báo lớp thực hiện
trong trường hợp 3.1 trên tập dữ liệu 1
Dự đoán đúng

Yêu cầu


TP
Bình thường

TN

776

Dự đoán sai
FP

FN

224

Tấn công

827
Tỉ lệ

173

80.15%

19,85%

TP: True Positive, TN: True Negative, TN: False Positive, FN: False Negative

Bảng 3.5: Kết quả dự báo lớp thực hiện
trong trường hợp 3.2 trên tập dữ liệu 1

Dự đoán đúng

Yêu cầu

TP
Bình thường

TN

389

Dự đoán sai
FP

FN

111

Tấn công

412
Tỉ lệ

88

80,1%

19,9%

Bảng 3.6: Kết quả dự báo lớp thực hiện

trong trường hợp 3.3 trên tập dữ liệu 1
Dự đoán đúng

Yêu cầu

TP
Bình thường

TN

554

Dự đoán sai
FP

FN

146

Tấn công

246
Tỉ lệ

80%

54
20%



58

Bảng 3.7: Kết quả dự báo lớp thực hiện
trong trường hợp 3.4 trên tập dữ liệu 1
Dự đoán đúng

Yêu cầu

TP
Bình thường

Dự đoán sai

TN

FP

230

FN

70

Tấn công

576
Tỉ lệ

124


80,6%

19,4%

Bảng 3.8: Kết quả dự báo lớp thực hiện
trong trường hợp 3.5 trên tập dữ liệu 1 và trên tập dữ liệu 2
Trường hợp 3.5

Tập dữ liệu 2

trên tập dữ liệu 1
Yêu cầu

Dự đoán đúng
TP

Bình thường

TN

79

Dự đoán sai
FP

FN

21

Dự đoán đúng

TP

TN

95

Dự đoán sai
FP

FN

5

SQL
Injection

18

2

8

12

XSS

16

4


11

9

Directory
Traversal

10

0

10

0

Buffer
Overflow

10

0

5

5

10

0


10

0

Missing
Attribute

10

0

10

0

Attribute
Order

10

0

10

0

Missing
Path

10


0

10

0

Tấn
công Duplicated
Attribute

Tỉ lệ

86,5%

13,5%

84%

16%


59

Trường hợp 3.5
Trường hợp 3.4
Trường hợp 3.3
Trường hợp 3.2
Trường hợp 3.1
0


20

Dự đoán đúng (%)

40

60

80

100

Dự đoán sai (%)

Hình 3.6: Tỉ lệ dự đoán đúng và dự đoán sai trong các trường hợp khác nhau
trên tập dữ liệu 1

Missing Path

Missing Path

Attribute Order

Attribute Order

Missing Attribute

Missing Attribute


Duplicated Attribute

Duplicated Attribute

Buffer Overflow

Buffer Overflow

Directory Traversal

Directory Traversal

XSS

XSS

SQL injection

SQL Injection
0

20

Dự đoán đúng (%)

40

60

80 100 120


Dự đoán sai (%)

a) Trường hợp 3.5 trên tập dữ liệu 1

0

20

Dự đoán đúng (%)

40

60

80 100 120

Dự đoán sai (%)

b) Tập dữ liệu 2

Hình 3.7: Tỉ lệ dự đoán đúng và dự đoán sai của từng loại tấn công
trong trường hợp 3.5 trên tập dữ liệu 1 và trên tập dữ liệu 2


60

Dựa vào các kết quả thực nghiệm ở trên, chúng ta có thể có một số nhận xét
như sau:
- Profile “Các yêu cầu của người dùng” có thể phát hiện được nhiều loại tấn

công khác nhau như SQL Injection, XSS, Directory Traversal, Buffer Overflow và
các tấn công khác mà không nhận thức được tính lôgic của chương trình.
- Các tấn công mà không nhận thức được tính lôgic của chương trình bao gồm
Duplicated Attribute, Missing Attribute, Attribute Order, Missing Path được dự báo
rất chính xác.
- Trong trường hợp 3.5 trên tập dữ liệu 1 thì phát hiện các dạng tấn công SQL
Injection, XSS, Directory Traversal, Buffer Overflow cho kết quả tốt hơn. Nguyên
nhân chính dẫn đến kết quả này là do sự phân bố chiều dài giá trị thuộc tính của tập
dữ liệu 1 là ngắn và đều hơn so với tập dữ liệu 2.
- Tỉ lệ true positive là rất cao, với tập dữ 2 thì kết quả của tỉ lệ này tốt hơn so
với trường hợp 3.5 trên tập dữ liệu 1.
- Kết quả dự báo lớp đúng trên tập dữ liệu 1 là khá tốt trên 80%. Một số nghiên
cứu gần đây tiến hành thực nghiệm trên tập dữ liệu này như [16] sử dụng n-gram cho
kết quả đúng trung bình là 82.342%; các thực nghiệm trong [6] sử dụng các thuật toán
K-means, K-means + ID3, ID3, Random Forest lần lượt cho các kết quả gần 75%,
gần 90%, gần 80%, gần 95%.
- Với tập dữ liệu 2 thì các nhận diện sai chủ yếu liên quan đến tấn công SQL
Injection.
- Dữ liệu dùng để huấn luyện (kết quả của tiền xử lý) không nên quá lớn trên
20000 yêu cầu, thời gian huấn luyện sẽ lâu.


61

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Luận văn đã trình bày khá đầy đủ giải pháp phát hiện tấn công website dựa
vào dấu hiệu bất thường theo hướng sử dụng profile.
Kết quả luận văn đạt được:
- Luận văn đã trình bày tổng quan về vấn đề phát hiện tấn công website dựa
vào dấu hiệu bất thường như: Vấn đề bảo mật ứng dụng web, các rủi ro bảo mật cho

ứng dụng web, các kỹ thuật nhận diện tấn công ứng dụng.
- Luận văn đã tìm hiểu về các profile có thể được sử dụng trong một chương
trình phát hiện xâm nhập dựa vào dấu hiệu bất thường, đánh giá và đề xuất một profile
phù hợp để tiến hành xây dựng công cụ phát hiện tấn công.
- Luận văn đã tìm hiểu về nguồn dữ liệu để huấn luyện là sử dụng nhật ký web.
- Một công cụ phát hiện tấn công cho ứng dụng web PHP dựa vào dấu hiệu
bất thường, bằng cách sử dụng profile đã đề xuất và sử dụng các mô hình học các
hành vi bình thường được xây dựng.
Hướng phát triển tiếp theo:
- Nghiên cứu cải thiện khả năng phát hiện của profile “Các yêu cầu của người
dùng” bằng cách điều chỉnh trọng số và ngưỡng của các mô hình trong profile.
- Nghiên cứu kết hợp với các profile khác.
- Xây dựng công cụ tích hợp vào các ứng dụng web phổ biến như: Joomla,
Wordpress, Drupal, NukeViet…
- Nghiên cứu triển khai trên các ứng dụng web viết bằng các ngôn ngữ lập
trình khác như: ASP.net, Java…


62

TÀI LIỆU THAM KHẢO
[1]

Anup K. Ghosh, Aaron Schwartzbard, and Michael Schatz (1999), “Learning
program behavior profiles for intrusion detection” In Proceedings of the
Workshop on Intrusion Detection and Network Monitoring, Berkeley.

[2]

Christopher Kruegel, Giovanni Vigna, William Robertson (2005), “A multimodel approach to the detection of web-based attacks” Computer Networks,

Volume 48, Issue 5, pp. 717-738.

[3]

Christopher Kruegel, Giovanni Vigna (2003), “Anomaly Detection of Webbased Attacks” Proceedings of the 10th ACM conference on Computer and
communications security, pp. 251-261.

[4]

Corona, I., Ariu, D. & Giacinto G. (2009), “HMM-Web: A Framework for
the Detection of Attacks Against Web Applications” In: IEEE International
Conference on Communications, ICC’09, IEEE, pp. 1-6.

[5]

Dafydd Stuttard, Marcus Pinto (2011), The Web Application Hacker's
Handbook Second Edition Finding and Exploiting Security Flaws, Wiley
Puslishing.

[6]

Eiei Han (2015) “Analyzing And Classifying Web Application Attacks”
International Journal of Advances in Electronics and Computer Science,
Volume 2, Issue 4, pp. 14-17.

[7]

Fielding, et al. (1999), RFC 2616: Hypertext Transfer Protocol – HTTP/1.1,
Available: />
[8]


Kenneth L. Ingham, and Hajime Inoue (2007), “Comparing Anomaly
Detection Techniques for HTTP” RAID 2007: Recent Advances in Intrusion
Detection, pp. 42-62.

[9]

Nanhay Singh, Achin Jain, Ram Shringar Raw and Rahul Raman (2014),
“Detection of Web-Based Attacks by Analyzing Web Server Log Files” In:
Advances in Intelligent Systems and Computing, Volume 243, pp. 101-109.


63

[10] OWASP Top Ten Project (2013), OWASP Top 10 - 2013 The Ten Most
Critical Web Application Security Risks, Available:
/>[11] Roger Meyer (2008), Detecting Attacks on Web Applicationsfrom Log Files,
SANS Institute, Available: />[12] Ryan C. Barnett (2013), The Web Application Defender’s Cookbook Battling
Hackers and Protecting Users, Wiley Puslishing.
[13] Snigdha Agrawal, Priya Gupta (2015), “Detection and Implementation of
Web-based Attacks using Attribute Length Method” International Journal of
Computer Applications (0975 – 8887), Volume 120 - Number 3, pp. 25-29.
[14] Wenke Lee, Salvatore J. Stolfo, Kui W. Mok (1999), “A data mining
framework for constructing features and models for intrusion detection
systems” Computer Science Department, Columbia University.
[15] Wenke Lee and Salvatore J. Stolfo (2000), “A framework for constructing
features and models for intrusion detection systems” Information and System
Security, pp. 227-261.
[16] Zhaoxuan Zhang, Roy George, Khalil Shujaee (2016), “Efficient Detection of
Anomolous HTTP Payloads in Networks” Department of Computer and

Information Science, Clark Atlanta University Atlanta.
Website
[17] truy cập ngày 16/10/2016
[18] truy nhập ngày 16/10/2016
[19] truy nhập ngày 10/10/2016
[20] , truy nhập ngày 10/10/2016
[21] truy nhập ngày
01/03/2017
[22] truy nhập ngày 01/03/2017


64

[23] />L/guide/c-logs.html, truy nhập ngày 01/03/2017
[24] truy nhập ngày
10/10/2016


65

PHỤ LỤC 1.
DANH SÁCH MÃ TRẠNG THÁI HTTP
Danh sách mã trạng thái HTTP được trình bày chi tiết trong [12]:
Mã trạng thái HTTP
(HTTP Status Codes)

Mô tả

100


Informational

100

Continue

101

Switching Protocols

102

Processing

200

Success

200

OK

201

Created

202

Accepted


203

Non-Authoritative Information

204

No Content

205

Reset Content

206

Partial Content

207

Multi-Status

208

Already Reported

226

IM Used

300


Redirection

300

Multiple Choices

301

Moved Permanently

302

Found

303

See Other

304

Not Modified

305

Use Proxy

307

Temporary Redirect


308

Permanent Redirect


66

400

Client errors

400

Bad Request

401

Unauthorized

402

Payment Required

403

Forbidden

404

Not Found


405

Method Not Allowed

406

Not Acceptable

407

Proxy Authentication Required

408

Request Timeout

409

Conflict

410

Gone

411

Length Required

412


Precondition Failed

413

Request Entity Too Largeq

414

Request-URI Too Long

415

Unsupported Media Type

416

Request Range Not Satisfiable

417

Expectation Failed

500

Server errors

500

Internal Server Error


501

Not Implemented

502

Bad Gateway

503

Service Unavailable

504

Gateway Timeout

505

HTTP Version Not Supported


67

PHỤ LỤC 2.
ĐỊNH DẠNG NHẬT KÝ CHUNG
Định dạng nhật ký chung (CLF - Common Log Format) là một định dạng
chuẩn để ghi lại các yêu cầu được xử lý bởi các máy chủ web. Nó có thể được tạo ra
bởi nhiều máy chủ web khác nhau, và đọc được bởi nhiều chương trình phân tích nhật
ký. CLF có định dạng như sau [21]:

remotehost rfc931 authuser [date] "request" status bytes

Ý nghĩa của các thuộc tính khác nhau được giải thích trong danh sách dưới
đây [21], [22]:
remotehost: Đây là địa chỉ IP của máy khách mà đã yêu cầu phục vụ. Nếu
một chỉ thị HostnameLookups được bật, máy chủ sẽ cố gắng phân giải và ghi nhật ký
hostname để thay thế. Ngoài ra, nếu một máy chủ proxy tồn tại giữa máy khách và
máy chủ, thì đây sẽ là địa chỉ của proxy, chứ không phải là IP của máy khách ban
đầu.
rfc931: RFC 1413 nhận diện máy khách. Thông tin này không có độ tin cậy
cao và một số máy chủ, chẳng hạn như máy chủ HTTP Apache, không ghi lại thông
tin này trừ khi được chỉ thị rõ ràng để làm như vậy.
authuser: Định danh người dùng của người yêu cầu tài nguyên, được xác định
bằng xác thực HTTP. Nếu mã trạng thái của yêu cầu là 401, thì không nên tin tưởng
giá trị này vì máy khách chưa được xác thực.
date: Ngày và giờ máy chủ hoàn tất xử lý yêu cầu. Một ví dụ về định dạng
mặc định cho máy chủ HTTP Apache là:
[05/Jan/2016:08:09:03 +0100]

request: Dòng yêu cầu chính xác như đến từ máy khách. Đầu tiên, phương
thức được sử dụng bởi máy khác được ghi lại. Tiếp theo, tài nguyên yêu cầu được ghi


×