Nghien Cuu Cac Phuong Phap Phat Hien Tan Cong Web Dua Tren Hoc MayNghien Cuu Cac Phuong Phap Phat Hien Tan Cong Web Dua Tren Hoc MayNghien Cuu Cac Phuong Phap Phat Hien Tan Cong Web Dua
Trang 1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN I
NGHIEN CUU CAC PHUONG PHAP PHAT HIEN
TAN CONG WEB DUA TREN HOC MAY
Sinh viên thực hiện : NGUYÊN NGỌC ĐOÀN
Hà Nội, tháng I nam 2022
Trang 2
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN I
NGHIEN CUU CAC PHUONG PHAP PHAT HIEN
TAN CONG WEB DUA TREN HOC MAY
Sinh viên thực hiện : NGUYÊN NGỌC ĐOÀN
Hà Nội, tháng I nam 2022
il
Trang 3LOI CAM ON
Loi dau, em xin được gửi lời cảm ơn đến toàn thê các thây cô giáo bộ môn,
các thây cô khoa Công nghệ thông tin nói chung, các thầy cô trong khoa An toàn
thông tin nói riêng, và đặc biệt là thầy giáo TS Hoàng Xuân Dậu Cảm ơn các thây,
cô đã giúp đỡ tận tình và tích cực truyền tải nhiều kiến thức bổ ích về học tập và cả
cuộc sông Những kiến thức em thu được trong suốt những tháng năm giảng đường
sẽ là những kiến thức quý báu nhất em dành được trong cuộc sông Xin cảm ơn thây
cô, và thật lòng mong thây, cô luôn hạnh phúc trong tương lai sau này
Gửi lời biết ơn đối với thay giáo TS Hoàng Xuân Dậu, đã nhận lời hỗ trợ em làm đô án, đã giup em vượt qua những khó khăn của việc thực hiện, và đã tin tưởng
em để hoàn thành đồ án này Trong thời gian học tập và làm việc với thầy, em luôn nhận được sự giúp đỡ kịp thời và những lời chỉ bảo tận tâm, Mong răng, thầy sẽ luôn
mạnh khỏe và thành công hơn nữa
Để đồ án đạt được kết quả như tot đẹp, em đã nhận được nhiều sự giúp đỡ từ g1a đình, bạn bè Với tình cảm chân thành, em xin được gửi lòng biết ơn sâu săc đến
những người đã tạo điều kiện, cũng như động viên và đồng hành cùng em trong những ngày tháng tại Học viện Công nghệ Bưu chính Viễn thông
Em xin chân thành cảm ơn!
Hà Nội, ngày 02 tháng 01 năm 2022
SINH VIÊN THỰC HIỆN
Nguyễn Ngọc Đoàn
Trang 4NHAN XET, DANH GIA, CHO DIEM
(của giảng viên hướng dan)
Ó CĐ ĐO ĐO ĐO ĐO CO ĐO ĐO 6 6 6 0 0 0600 000000900 0 0 0 00 0 0 0 0000 0 0 009 0 0 0 0 0 099 69 0 0 0 0 0 0 0009 0 0 0 0 0 09 0 0 0 0 0090 0 000900 0 009.909 06 0 0 06 %6 6 66 661116
9 Đ 9 0909069009009 0009090900909 9900909990009 00 009090900909 000909009 0909009090990 9090900 099099069069 6566 « 6A6
9 9999999999999 9999909999090 990909 9909090909099 909 9990990990990 990909090 9999099099099 9909909999990 0 9999099990909 90696966665 SẤS
Dong ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng châm tốt nghiệp?
Hà Nội, ngày tháng năm .2022
CÁN BỘ - GIẢNG VIÊN HƯỚNG DÂN
Trang 5NHẬN XÉT, ĐÁNH GIÁ, CHO DIEM
(của giảng viên phản biện)
Ó CĐ ĐO ĐO ĐO ĐO CO ĐO ĐO 6 6 6 0 0 0600 000000900 0 0 0 00 0 0 0 0000 0 0 009 0 0 0 0 0 099 69 0 0 0 0 0 0 0009 0 0 0 0 0 09 0 0 0 0 0090 0 000900 0 009.909 06 0 0 06 %6 6 66 661116
9 Đ 9090906909009 0009090900909 9900909990099 00 009090900909 0009090099999 009090090909 09 0009909909069 6s 66 «6 S6
9 9999999999999 9999909999090 990909 9909090909099 909 9990990990990 990909090 9999099099099 9909909999990 0 9999099990909 90696966665 SẤS
Dong ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng châm tốt nghiệp?
Hà Nội, ngày tháng năm .2022
CÁN BỘ - GIẢNG VIÊN PHẢN BIỆN
Trang 6MỤC LỤC
LỜI CẢM ƠN 26-5s E1 EE112211121112111 T11 T11 T1 TH Hàng ngưng ưng i NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIÊM (của giảng viên hướng dẫn) ii NHAN XET, DANHI GaidocCHO-DIEMG (citai gitinghvidn phidmbi4i)9 @hotmail.coriii
DANH MỤC BẢNG 2-26 tt E19 115E112711271271 1111111111111 111k tkerrked vi DANH MỤC HÌNH ẢNH .-. 2 2+ k£+EEESEEE£EEEEEEEEEEEEEEEEEEEErrrkrrrkeerkked vii DANH MỤC TỪ VIẾT TẮTT 2-2 ©£2EE££EEE£+EEEEEEEEEEEEEEEESEEEEEEkkrrrkerrke viii LOI MO DAU wicecceesscscssscssesssesssecssecssecssvcssuesssecssecssvessecsssecssecssscsssesstecssecsssesssessseessees X CHƯƠNG I CÁC PHƯƠNG PHÁP TẤN CONG UNG DỤNG WEB VÀ CÁCH PHONG CHÔNG -. 22 ©2S St E11 EE11211127111711711 1111111111111 11.1111 1
1.1 Tổng quan về ứng dụng web - ¿se ©++£++++2E++£Ek2EE+SEEkerrkeerrkerrke l 1.2 Các phương pháp tấn công ứng dụng web + xecx+erx+erxesrxeers 4
1.2.1 Top 10 OWASP 2021 [1] ceccccsscsesssesssesssessseesssesssecssessseesssessseesseesseessseesseen 4
1.2.2 Một số phương pháp tân cOng phO DIGI ecsesseesseesseesseessesseesssesseen 9
1.3 Cac phuong phap phong chéng va phat hiện tấn công web - 14
1.3.1 Tong quat ChUng cecceeccsssecssesssesssesssessvesssessvesssessessesssesssesssesssesssesseeen 14
1.3.2 Các phương pháp phòng chống tắn công ứng dụng web 15
1.4 Két ChUON veces eecccecssecssecsssessvessscssscssvesssessscssecssscssuecssscssecssuesssessssesseesseeesses 18
CHUONG 2 UNG DUNG HOC MAY VA CAC PHUONG PHAP TRICH XUAT DAC TRUNG TRONG XU LY VAN BAN VAO PHAT HIEN TAN CONG WEB
2.1 Khái quát về học máy và các thuật toán học máy - 2: 19 2.1.1 Khái quát về học máy - + ++tx+Ek++EEEEkEEEEEEEkEEEkEEEkerkrerkerre 19
2.1.2 Phân loại các thuật toán học máy - ¿+ +++s+++s£++x£+ex++xsss2 21
2.2 Các phương pháp trích xuất đặc trưng trong xử lý văn bản (feature
Trang 72.2.1 Bag of Words (Mô hình túi từ) c5 3S sseseereessererks 31 2.2.2 TF- IDF (term frequency-inverse document frequency) - 32 2.3 Mô hình phát hiện tân công web thông qua học máy và các phương pháp trích xuât đặc trưng trong xử lý văn bản - + * Sex 3S Evsersesesseeves 34
"8N G)(U08i0)(2)000) 0000) llng: 34
2.3.2 Các bước tiền xử lý dữ liệu - 5c se k+EeEEEEExeEEEerkkerkeerkerre 35 2.4 Kết chương - sc- tk SE 1 1111111110111 11 T1 TH Hà HH HH HH gygưy 36
CHUONG 3 CÀI ĐẶT VÀ THỨ NGHIỆM -ccvvccccsrrrrre 37
3.1 Giới thiệu tập dữ liệu thử nghiỆm - 5 5c 5c 3233 £vseseeeseeses 37
3.3 Quá trình huấn luyện và kiỂm tra - ¿+ x++ kt+EEtSEEEEEkeEEkerrxerrrers 38
3.5.1 Mô hình xử lý 2c ++++£2EE++EEE2EEEE2E112211E27112111211 11 1xerrrye 41
3.5.2 Tích hợp mô hình xử lý vào ứng dụng web «++-«++<s+++s+2 47
3.5.3 MOt $6 Két QUA eceesseecsesssesssecsssesssecssscssecssuesssecssvcssvesssesssecssecsseesssecssecen 49 3.6 Ket Chương - - s9 k9EEEE1EEEE12E11171171111111111711111 111.111 11x 52 KẾT LUẬN . 2 =2 E2 115111211121112111T11 11.11.1111 pH Hy ng 53 TÀI LIỆU THAM KHẢO -2 22 2 2SE£9EE2EEEEEEEEEEEEEEEEEEEEEEEEEEEEErkrrrkrertred 55
Trang 8DANH MỤC BẢNG
Bảng 3.1 Kết quả của thuật toán SVM với mô hình BoW -¿- 5 40
Bảng 3.2 Kết quả của thuật toán Decision Tree với mô hình BoW 4]
Bảng 3.3 Kết quả của thuật ton Logistic Regression với mô hình BoW 4]
Bảng 3.4 Kết quả của thuật toán KNN với mô hình BoW -.-¿-ccc¿¿ 42 Bảng 3.5 Kết quả của thuật toán Random Forest với mô hình BoW 42
Bảng 3.6 Kết quả của thuật toán Gradient Boosting với mô hình BoW 43
Bảng 3.7 Kết quả của thuật toán SVM với mô hình TF-IDE -.2 - 43
Bang 3.8 Két quả của thuật toán Decision Tree với mô hình TF-IDE 44
Bang 3.9 Kết quả của thuật ton Logistic Regression với mô hình TF-IDE 44
Bảng 3.10 Kết quả của thuật toán KNN với mô hình TE-IDF -. 45
Bảng 3.11 Kết quả của thuật toán Random Forest với mô hình TF-IDE 45
Bảng 3.12 Kết quả của thuật toán Gradient boosting với mô hình TE-IDF 46
Trang 9DANH MỤC HÌNH ANH
Hình I.I Mô hình client- server của một ứng dung Web .- - 5 «+«+<+xs+x++ | Hình 1.2 Tổng quan quá trình gửi nhận dữ liệu của web client và server 2 Hình 2.I Hình ảnh minh họa các bước trong quá trình học máy - 21
Hình 2.2 Hình ảnh minh họa về thuật toán hồi quy Logistic -. :- 23 Hình 2.3 Ví dụ về mô hình 1 hàm sigmod - 2-2 ++x+££x+££x++£x++£xe+rxe+reed 24
Hình 2.4 Hình ảnh minh họa cho thuật toán K-nearest neIghbors - 25 Hình 2.5 Mô tả cách hoạt động của Gradient Boosfing ¿5+5 +ssx++ 28
Hình 2.6 Mặt phân cách 2 lớp dữ liệu băng 1 hàm tuyến tính ‹ - 29 Hình 2.7 Mô hình cây quyết định 2: sc- s£ +£££ k£+Ek£+EEEEEEEeEEktrkesrkeerreed 20
Hình 2.§ So sánh giữa cây quyết định, Rừng ngẫu nhiên và Gradient Boosting 30
Hình 2.9 Ví dụ về mô hình túi từ -cccccc¿+ccEEkktterrrrrrrrrtrirrrrrrrrrrik 31
Hình 2.10 Mô hình phát hiện tắn công web dựa trên học máy và các phương pháp trích xuât đặc trưng trong xử lý văn bản - 5c s+seEE£EEeEEteEEeerkeerkerrked 34 Hình 3.1 Sơ đồ mô đun phát hiện tắn công web - 2 se ++xxe+rxeerxeed 47 Hinh 3.2 Cau tric tg dung Web o ccecccsecseessssscssessssessseessseesssecsssessseesssecsssessssessseessees 48 Hình 3.3 Mẫu thử “admin” cho kết quả valid 2 se +etx++£x++£xe+rxerxed 49 Hình 3.4 Mẫu thử “select admin 123” cho kết quả valid - se sz+cse¿ 49 Hinh 3.5 Mau thir “script alert” cho kết quả valid -s- se se£se+zxe+zxetrsed 30
Hình 3.6 Mẫu thử “etepwd” cho kết quả valid -sc- se2xee£zxevrxeerrseei 50
Hình 3.7 Mẫu thử “user123” cho kết quả valid 2 + s++£s++£x++rxezrx: 50
Hình 3.§ Mẫu thử “admin OR I=l; ” cho kết quả SQLI . se 5s+¿ 51
Hinh 3.9 Mau thir “ping —c 10 127.0.0.1” cho két qua CMDI . - 51 Hình 3.10 Mẫu thử “<script>alert(°admin')</seript>” cho kết quả XSS 51 Hình 3.11 Mẫu thử “ / /etc/pwd” cho kết quả Path-traversal -s 52 Hình 3.12 Mẫu thir “<script>console.log(‘user’)</script>” cho két qua XSS 52
Trang 10DANH MUC TU VIET TAT
¡ | apy | Application Programming | Giao din lập trình ứng dụng Interface
4 CD Continuous Delivery Triên khai liên tục
Giao diện công chung giữa
5 CGI Common Gateway Interface server và chương trình ` `
6 CI Continuous Integration Tich hop lién tuc
8 CMDI Command Injection Lô hông chèn mã dòng lệnh trong web
HyperText Markup
10 HTTP HyperText Transfer Giao thức truyen tải siêu văn
II Í HTTPS Hypertext Transfer Protocol | Giao thức bao mat HTTP an
12 IDF Inverse document frequency | Dao ngugc cua tan suất văn bản
13 KNN K-nearest neighbors Một thuật toán học máy
14 LDA Linear Discriminant Một phương pháp giảm chiêu
15 LFI Local file inclusion Một loại lễ hông web
16 | OWASP Open Web Application Dự án nguồn mở vỆ bảo mật
Security Project ung dung web
Principal Component Phuong phap phan tich thanh L7 PCA Analysis phan chinh x
18 RFI Remote file inclusion Một loại lễ hông web
19 SQLI SQL Injection Lé héng web chén mi sql
Vill
Trang 11
20 SSL Secure Sockets Layer Giao thurc bao mat SSL
21 SSRF | Server-side request forgery Một loại lỗ hông web
22 SVD Singular value Mot phuong phap giảm chiêu
decomposition dữ liệu
23 SVM Support Vector Machine Là một thuật toán học máy
24 TE Term Frequency Trọng sô của một từ trong văn
bản
25 TLS Transport Layer Security Bao mat tang truyén tải
26 URI Uniform Resource Identifier Nhan dang _ thông
27 URL Uniform Resource Locator | Dinh vi tai nguyén thong nhat
28 WAF Web Application Firewall Tường lửa ứng dụng web
29 XSRF_ | Cross Site Request Forgery Một loại lỗ hông web
30 XSS Cross-Site Scripting Mot loai lỗ hồng web
31 ZAP Zed Attack Proxy Mot trinh quét bao mat
Trang 12
LỜI MỞ ĐẦU
Cuộc cách mạng công nghệ 4.0 đang ngày càng phát triển, kéo theo sự phát triển của internet Và các ứng dụng web không năm ngoài cuộc phát triển này Trên nên tảng internet, các ứng dụng web đang chiếm tỷ lệ không hề nhỏ Các gã không
lồ công nghệ (Google, Facebook, Amazon ) đều có những ứng dụng web với số
lượng lên tới hàng tỉ người dùng Chính vì vậy mà yếu tố bảo mật và phòng chống
tắn công ứng dụng web trở nên quan trọng hơn bao giờ hết Với một số phương pháp
phòng chống tan công hiện nay, chủ yếu dựa vào các bộ lọc, các dữ liệu mẫu, các
luật hoặc dâu hiệu Phương pháp này tuy có ưu điểm là dễ dàng triển khai, nhanh chóng, tuy nhiên bên cạnh đó cũng khá hạn chế về khả năng phát hiện đa dạng kiểu tấn công Chính vì vậy, hướng phát hiện tấn công web dựa trên bất thường được ra đời, mang đến khả năng phát hiện đa dạng và nhanh chóng Đô án này sẽ trình bày một phương pháp dựa theo hướng đi trên, đó là phát hiện tắn công web dựa trên học
máy, với một khả năng phát hiện tan công vượt trội và độ chính xác cao Đồ án sẽ
được trình bày trong 3 chương
Với chương 1, sẽ đưa ra cái nhìn khái quát về ứng dụng web và các cách thức tắn công cũng như các phương pháp phòng chống chung, hoặc cho từng loại tấn công riêng biỆt
Đến chương 2, học máy và các phương pháp học máy sẽ được giới thiệu Bên cạnh đó, các phương pháp trích xuất đặc trưng trong văn bản sẽ được trình bày cụ thể, và cách thức kết hợp hai phương pháp trên để tạo ra một mô hình kết hợp cho
hiệu quả phát hiện tắn công cao
Cuối cùng, chương 3 sẽ thực hiện việc cài đặt và thử nghiệm, với tập dữ liệu
mẫu đủ lớn, đa dạng phương pháp học máy cũng như mô hình trích xuất đặc trưng văn bản đê có cái nhìn khách quan nhât
Trang 13Đồ án tốt nghiệp
CHƯƠNG 1 CÁC PHƯƠNG PHÁP TÂN CONG UNG DUNG WEB VA
CÁCH PHÒNG CHÓNG
1.1 Tổng quan về ứng dụng web
Ứng dụng web ngày càng phổ biến trong và không thê thiếu cuộc sông hiện
nay Một số ứng dụng web phố biến nhất có thể kế đến như facebook.com, google.com, Được ứng dụng vào nhiều lĩnh vực của cuộc sông như tải chính, ngân hàng, bất động sản, y tế, trường học, mua săm Ứng dụng web là một phân cốt lõi của thời đại công nghệ 4.0 Về cơ bản, mô hình phố biến của một ứng dụng web có dạng như sau:
Giải thích về mô hình, server trong mô hình được hiểu như web server- máy chủ web Máy chủ web là thành phân cốt lõi để website hoạt động, bao gôm các
thành phân con như cơ sở dữ liệu, các đoạn mã, tập lệnh và một số thành phân khác
Máy chủ web sẽ có vai trò phân tích và xử lý yêu cầu của client, đồng thời phân phôi
nội dung dén client thong qua cdc phuong thttc nhu HTTP (Hypertext Transfer Protocol) hoac phuong thitc truyén file như FTP (File Transfer Protocol)
Trang 14Đồ án tối nghiệp
Đôi với client, máy khách trong mô hình web client-server,có thể nói là một ứng dụng hoặc trình duyệt web (như Chrome, Opera, FIrefox, Safari ) được sử dụng
đề tương tác với các máy chủ Web theo yêu cầu của người dùng thông qua internet
Về cơ bản, máy khách là một ứng dụng đề gửi và nhận dữ liệu từ máy chủ
Việc giao tiếp giữa Client và Server được thực hiện theo các thông điệp (Message) Đầu tiên, Client sẽ gửi một yêu cầu ( Request Message), mô tả công việc
tới server Khi nhận được yêu câu, server tiễn hành phân tích để xác định công việc
cần phải thực thi Sau đó, Server sẽ gửi nó cho client trong một thông điệp trả lời (Reply Message) Dạng thức (format) và ý nghĩa của các thông điệp trao đôi giữa client và server được quy định rõ bởi giao thức (protocol) của ứng dụng
Tổng quan quá trình gửi - nhận dữ liệu có thể mô tả bằng lược đô như sau:
Request message
Quá trình bị nghẽn
Hình 1.2 Tổng quan quá trình gửi nhận dữ liệu của web client và server Cao thức chủ yếu đề giao tiép giữa web client và web server có thê kê đến là
giao thức HTTP/HTTPS Thành phân của các giao thức này bao gồm có request và
response Mot vi du cua HTTP/HTTPS request nhu sau:
authority: www.google.com
:method: GET
:path: /
:scheme: https
Trang 15Đồ án tốt nghiệp
accept:
text/html, application/xhtml+xml, application/xml;q=0.9,image/avif, imag e/webp, image/apng, */*;q=0.8,application/signed-exchange; v=b3 ; q=0 9 accept-encoding: gzip, deflate, br
accept-language: vi-VN, vi; q=9.9, en-US; q=0 8, en; q=0 7, fr-
FR; q=0 6, fr ; q=9.5
cache-control: max-age=0
cookie: _ga=test
user-agent: Mozilla/5.@ (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110
Safari/537.36
Trong request header có chứa day đủ thông tin về kết nói và thông tin cần truy
vấn như :
e URL can truy vân (tai vi du trén 1A www.google.com)
e Method: phuong thitc ma request sir dung, c6é thé 1a GET, POST, DELETE,
PUT
¢ Cookie: théng tin dé định danh người dùng và các thông tin khác
e User-agent: thông tin thiết bị và hệ điều hành, hoặc thông tin trình duyệt của
web client
e_ Ngoài ra còn một sô thông tin khác cho mỗi phương thức khác nhau
Khi đó, HTTP response trả về sẽ có dạng như sau:
Trang 16content-length: 266912
date: Thu, 23 Dec 2021 00:17:02 GMT
expires: Fri, 23 Dec 2022 00:17:02 GMT
last-modified: Wed, 15 Dec 2021 21:20:09 GMT
Thông tin trên thể hiện phiên bản HTTP đang sử dụng (HTTP/3), kiêu mã
trạng thái trả về (200: bình thường, 404: không tìm thấy trang, 500: lỗi server ) , và
các thông tin cân thiết như header, body tương ứng với yêu câu cua http request
Giao thức HTTP này cũng nằm trong số các giao thức dễ bị tân công trong
ứng dụng web Vì vậy, nên sử dụng giao thức HTTPS thay thế nhăm đảm bảo tính
bảo mật của thông tin truyền đi
1.2 Các phương pháp tấn công ứng dụng web
1.2.1 Top 10 OWASP 2021 [1]
Open Web Application Security Project (OWASP) 1a mét cong déng gdm tập hợp những chuyên gia an ninh mạng, thường xuất bản những bài báo, báo cáo, hay
những công cụ nhằm phục vụ mục đích bảo mật ứng dụng web Một trong những dự
án của họ bao gồm Top 10 OWASP Gần đây nhất là Top 10 OWASP 2021 (xuất
bản tháng 10/2021) là bản cập nhật mới nhất về những lỗi bảo mật hàng đầu của ứng
dụng web, được tông hợp từ nhiêu dữ liệu và hơn 40 đôi tác khác nhau
Trang 17Đồ án tôt nghiệp
A01- Broken access control (Lỗ hồng kiểm soát truy cập)
M6 ta: Access control:
e Authentication: xac thuc, kiém tra danh tinh người dùng
e_ Authorization: phân quyên, kiểm tra quyền hạn của người dùng
Broken access control:
e_ Với tập dữ liệu lớn, 94% ứng dụng web trong tập dữ liệu này được kiêm tra thi
có khoảng 3.81% mặc phải lỗ hồng này
e_ Lỗ hồng kiểm soát truy cập: một người dùng có thể truy cập vào các tài nguyên không được phép, hoặc người dùng chưa định danh (login) được phép truy cập
vào tài nguyên chỉ người dùng định danh mới có quyên
e Mot so vi du cé thé kê đên như:
e Aictng co thé c6 quyên truy cập đên các tài nguyên mà chi nguoi dung quan tri mới có quyên truy nhập
e_ Sửa đôi URL, hoặc APL, bằng cách truy cập trực tiếp vào các URL chỉ dành cho người dùng quản trị, ví dụ như : https://insecure-website.com/admin
e Cấu hình sai CORS
e© Kiếm soát truy nhập dựa trên tham sô URL (ví dụ: example.com,view?admin=])
e Sử dụng số định danh duy nhất của người dùng để thực hiện cấp quyên truy nhập
mà không có biện pháp xác thực ( ví dụ,/deleteaccount?Id=123)
Mot s6 16 hong CVE được khai thác từ lỗ hông này có thé kế đến như CVE- 2018-16476, CVE-2019-11063
A02- Cryptographic failure (L6 hong ma hod)
Ví dụ một số lỗ hông tiêu biểu có thé ké dén nhu Man in the middle, brute-force
© Đối với mọi thông tin khi truyền đi trên internet, cần được mã hoá đê đảm bảo tính toàn vẹn và bí mật, đặc biệt là với các thông tin nhạy cảm (như thông tin
thẻ tín dụng, thông tin cá nhân, mật khâu )
Trang 18Đồ án tốt nghiệp
e Điều này bao gồm các lỗi bảo mật khi dữ liệu đang được truyền đi hoặc được lưu trong database, chăng hạn như việc triển khai các thuật toán mật mã yếu, tao khóa kém hoặc lỏng léo, không có mã hoá hoặc mã hoá yếu, hoặc truyền dữ liệu
dưới dạng plaintext, cụ thể như:
e© Mật khâu/ thẻ tín dụng được lưu trong database dưới dang plaintext
e_ Sử dụng kết nối HTTP đề nhận và truyền dữ liệu
e_ Sử dụng thuật toán mã hoá kém hoặc đã lỗi thời, có thé dé dang bi
e_ Dữ liệu người dùng nhập vào không được xác thực hay kiểm tra
e_ Các câu lệnh truy vấn không an toàn, truy vấn trực tiếp từ những dữ liệu người dùng nhập mà không qua bộ lọc nào
e_ Và nhiều các trường hợp khác
e_ Ví dụ một số trường hợp như
http://example.com/search?q=%E2%80%9D%20or%201=1%20
e Các bộ lọc yếu, dữ liệu từ người dùng có thê dễ dàng vượt qua các bộ lọc này
và thực hiện chèn mã để tắn công ứng dụng web
A04- Insecure design (Lỗ hổng khiếm khuyết thiết kế)
Secure design: Vi du nhu kiém soat truy cập, phân tích flow người dùng, kiêm soát lỗi Tương tự nhu software design (thiết kế phần mêm), ứng dụng web cũng cần
có một thiết kế bảo mật
Trang 19Đồ án tốt nghiệp
Các lỗi chủ yêu về thiết kế và kiên trúc ứng dụng web, tạo ra lễ hông bảo mật Đây là lỗi mới, mới được tìm ra Lỗi này xảy ra khi ứng dụng web được thiết kê bởi người phát triển web không có ý tưởng/ khái niệm hoặc kiến thức nào về bảo mật
hay an toàn hệ thống, các lỗi này có thể là:
e©_ Lỗi tràn bộ đệm, thiếu các giới hạn/ bộ lọc cho các dữ liệu người dùng nhập
®© Sử dụng các API/ các hàm không an toàn: ví dụ hàm random không an toàn
e_ Quyên ứng dụng cao hơn quyên thực tế để thực thi
Cách thức phòng chồng:
e Thiết lập một vòng đời phát triển (software lifecycle), đồng thời có đánh giá va thiết kế an toàn cho những vấn đề về bảo mật và quyền riêng tư
e Viét cdc unit và functional test
A05- Security Misconfiguration (L6 héng cau hinh bao mat)
Các lỗi thường gặp của lỗi này:
e Thiếu bảo mật thích hợp: bảo mật không được đảm bảo trong ngăn xếp ứng dụng, đồng thời có thể cấu hình không đúng hoặc câu hình yếu ( mật khẩu yêu, không cài đặt quyên truy cập ) cho các dịch vụ cloud Từ đó dẫn đến việc ứng
dụng dễ bị tan cong
e Các tài khoản với tên tài khoản và mật khâu mặc định vẫn được sử dụng mà
không được thay đôi, hoặc tài khoản có những đặc quyền không cần thiết dẫn
đến việc gây ra lỗ hông A05
e_ Về vân đề xử lý lỗi: lỗi được hiển thi day đủ thông tin và quá cụ thể (về lỗi dòng
code, lỗi dữ liệu ứng dụng) , từ đó có thê gây ra hiển thị những thông tin không can thiết và có thê gây nguy hiêm cho ứng dụng web
© Cac cài đặt bảo mật không được thiết lập ( như mã hóa, password policy, restrict
ip address)
e_ Một vân đề có thể gặp phải đó là phần mềm lỗi thời, và các lỗ hong bao mat da
biệt chưa có bản vá
Trang 20Đồ án tôt nghiệp
A06- Vulnerable and Outdated Components (Cac thanh phan/ thư viện của ứng dung web bi lỗi bảo mật và đã lỗi thời)
Đây là một lỗi khá phố biên, các lỗi này có thê gây ra do:
Các bản thư viện lỗi thời: - khi quản trị viên/ lập trình viên không biết phiên bản thư viện đang dùng, hoặc những bản thư viện bên trong
Phân mêm lôi thời, đã ngừng hồ trợ hoặc có lô hông bảo mật nhưng chưa có bản
7
va
Không thường xuyên kiểm tra quét lỗ hồng bảo mật
A07- Identification and Authentication Failures ( Lỗ hồng nhận dạng và xác thực người dùng)
Sử dụng plaintext hoặc những mã hóa yêu cho mật khâu người dùng
Thiếu cấu hình ngăn chặn việc tan cong brute force
Sử dụng mật khâu yếu, như “PasswordI” hay “admin”
Thiêu xác thực 2 lớp
Sử dụng lại mã định danh phiên sau khi đăng nhập thành công
Không làm mất hiệu lực xác thực phiên sau khi đăng xuât
A08- Sofare and Data Integrity Failures (Lôi toàn vẹn dữ liệu và phân mêm)
Đây là một lôi mới, về việc cài đặt và triên khai các phân mêm hoặc phân cứng không đúng cách gây ra, ví dụ về việc triển khai CI/CD, hoặc CD không an toàn, gây
ra những lỗi bảo mật nghiêm trọng đến hệ thông
A09- Security Logging and Monitoring Failures (L6 hong loi ghỉ nhật ký bảo mật
và giám sát lôi)
Các hành động thực thi, như đăng nhập, sai dang nhập, các giao dịch có giá trị
không được ghi lại
Các cảnh báo lỗi không thể hiện cụ thê được lỗi
Các bản ghi chỉ được lưu cục bộ
Trang 21Đồ án tốt nghiệp
e_ Hệ thống không thể cảnh báo được khi có lỗi
Al0- Server Side Request Forgery (SSRF)
e Lỗi xảy ra khi ứng dụng web tìm nạp tài nguyên từ URL mà không được xác
dù mới được phát triển hay hay đã được phổ biến từ lâu Lỗi này thường ảnh hưởng
đến máy chủ web
Về cách hoạt động, lỗ hong SQL injection thường hướng đến các phân của ứng dụng web sẽ tương tác trực tiếp với cơ sở đữ liệu băng truy vấn động do người
dùng nhập vào Kẻ tắn công sẽ thực hiện các truy vấn độc hại, các truy vấn này có
thể được thực thi trong quá trình truy xuất, và gây ảnh hưởng đến tính bảo mật và
riêng tư của dữ liệu, nguy hiểm hơn, kẻ tân công có thể thực hiện thêm, sửa, xóa hoặc
thay đổi toàn bộ nội dung thông qua các câu lệnh truy vấn, gây ra thiệt hại lớn
Một ví dụ cơ bản của câu lénh SQL:
getUser= “SELECT * from users WHERE username= ‘$GET[ “username” ]’”;
Kẻ tắn công có thê nhập vào trường username như sau:
admin’ OR 1=1;
Lúc này, cau lénh SQL sé tro thành
SELECT * from users WHERE username= ‘admin’ OR 1=1;
Trang 22Đồ án tốt nghiệp
Dữ liệu sẽ trả về tất cả dữ liệu trong bảng User do câu lệnh 1=1 luôn đúng Đây chỉ là một ví dụ cơ bản nhất của lỗ hồng này, trong thực tế, SQL injection còn gây nhiều hậu quả nghiêm trọng hơn, như xóa toàn bộ cơ sở dữ liệu, thay đối dữ liệu
Một vài biện pháp hữu hiệu đề phòng chống lễ hồng này có thể kể đến như:
e Sử dụng các câu lệnh SQL được tham sô hóa: Các truy vẫn tham sô hóa sẽ yêu
cầu phải có câu lệnh SQL trước, sau đó dữ liệu được tham số hóa và truyền vào
cau lénh SQL Cach này sẽ giúp cơ sở dữ liệu phân biệt được đâu là cầu lệnh truy
van va đâu là dữ liệu người dùng nhập Câu lệnh này đảm bảo kẻ tấn công không thé thay đôi mục đích của câu truy vẫn, ngay cả khi các đoạn mã truy vấn độc hại
được nhập vào
e Str dung Stored Procedure: Tuy khong dam bao an toan tuyệt đôi trước các cuộc tan công chèn mã SQL, tuy nhiên Stored Procedure cũng có hiệu quả nhất định Cách hoạt động của Stored Procedure cũng khá tương tự như tham số hóa câu lệnh SQL, khác biệt ở đây là thay vì được lưu trữ trong mã của ứng dụng web,
Stored Procedure được lưu trữ trực tiếp trong cơ sở dữ liệu, và được gọi ra từ ứng dụng
e_ Xác thực đầu vào: Cách hữu hiệu nhât đê ngăn chặn chèn mã tân công SQL là xác thực đầu vào, trước khi thực hiện truy vân Có thê sử dụng các bộ lọc có sẵn, hoặc
các thư viện, hay các framework cũng là một cách hữu hiệu
e Khong hién thị các thông báo lỗi hoặc các ngoại lệ: Một trong những cách kẻ tắn
công dùng đó là dựa vào các thông báo lỗi đề thực hiện truy vết phiên bản cơ sở
dữ liệu, kiểu lưu trữ, vì vậy tốt hơn cả, không nên hiền thị chi tiết các thông báo
lỗi hay các ngoại lệ
e Tạo bản sao dữ liệu thường xuyên: Phòng trong trường hợp kẻ tấn công xóa hoặc thay đổi dữ liệu, ta luôn có một bản sao đề khôi phục về trạng thái ban đầu
1.2.2.2 XSS
Cross-site Scripting (XSS) 14 mét 16 héng kha phé bién ở thời điểm hiện tại Ngay cả các công ty lớn như Google (lỗ hông số CVE-2021-37999) hay Microsoft
Trang 23Đồ án tốt nghiệp
(lỗ hông sô CVE-2021-28459) đều mắc phải Cách hoạt động của lỗ hồng này là lợi
dụng các đoạn script để thực hiện tân công ở phía máy khách, nhăm mục đích lay
cắp cookie hay các thông tin khác Kịch bản của lỗ hồng này khá đa dạng, nhưng
nhìn chung, kẻ tan công sẽ có mục tiêu cân thực thi các đoạn mã scrIpt độc hại ở phía
trình duyệt của người dùng, dù chủ động hay bị động
Ví dụ, có một ứng dụng web có chức năng tìm kiếm như sau:
https : //example com/search?query=test
Kẻ tan cong có thể thực hiện lỗ hồng XSS theo cách như sau:
https://example.com/search?query=<script>alert( ‘hello’ );</script>
Luc nay, doan ma script trén sé duoc thuc thi 6 phia may khach
Một vài biện pháp phòng chống của lỗ hồng này có thể kế đến như:
e Lọc dữ liệu đầu vào: lọc dữ liệu đầu vào luôn là một trong những cách phòng chống hữu hiệu nhất cho những cuộc tấn công chèn mã Mọi dữ liệu người dùng
đều phải qua quá trình lọc và xác thực, đặc biệt chú ý đến những ký tự đặc biệt
e Str dung Entity Encode/ Escaped: Thay vi str dung truc tiếp các ký tự như “<,
‘>’ ta cd thé str dung cdc nhom ky tu mang y nghia tuong duong nhu <,
=, Cac ki tu nay sé ngan chan dugc viéc thuc thi doan ma script 6 phía máy khach
e Su dung cac thư viện Javascript: Các thư viện Javascript hién dai hau hét déu được tích hợp sẵn các bộ lọc/ Escaped JavascrIpt
1.2.2.3 CSRF
Cross site request forgery (CSRF) 18 mot lỗ hồng bảo mật cho phép kẻ tấn công lừa người dùng thực hiện các hành động mà họ không có ý định thực hiện trên ứng dụng web mà họ đã xác thực Các cuộc tấn công này thường kết hợp với
phishing, social engineering đề tiếp cận người dùng, lừa họ tải các URL một cách vô
thức, thông qua tấn công CSRE có thể thực hiện chuyền tiền, thay đôi địa chỉ nha, thay đổi thông tin đăng nhập
Một ví dụ cho việc tắn công CSRF như sau:
Trang 24Đồ án tôt nghiệp
Một URL có chức năng chuyền tiên có dạng như sau: GET http://example
.com/transfer Pusername=alice&amount=100 HTTP/1.1
Như vậy, chỉ cần người dùng click vào liên kết hay tải liên kết, khoản tiền
100$ sẽ được chuyên cho username=alice
Kẻ tân công có thể lừa người dùng bằng cách gửi cho người dùng liên kết thông qua email, ví dụ như:
<img src=”http: //examp le com/transfer ?username=alice&amount=100”/> hoặc
<a href=”http: //examp le com/transfer ?username=alice&amount=100/”>Free
gift</a>
Đôi với phương thức POST, tắn công CSRE có thể có dạng một biểu mẫu, ví
dụ như:
<form action="http://example.com/transfer" method="post">
Your name: <input type="text"><br>
Your age: <input type="text"><br>
<input type="submit">
<input type="hidden" name="amount" value="100">
<input type="hidden" name="username" value="alice">
Trang 25Đồ án tốt nghiệp
e_ Sử dụng các thư viện phòng chống CSRF
1.2.2.4 Path Traversal
Path Traversal là một lỗ hông bảo mật web cho phép kẻ tân công duyệt các
tệp trên máy chủ web Các thông tin có thể bao gồm như mã nguồn, dữ liệu, các
thông tin đăng nhập và các file hệ thống Trong một số trường hợp, kẻ tân công có
thể thêm, sửa, xóa dữ liệu có trên máy chủ, từ đó có thê dẫn tới tình huông xâu hơn
là kiểm soát hoàn toàn máy chủ Một vài ví dụ cụ thê của path-traversal có thê liệt
kê như:
https://example.com/?filename= / / /etc/passwd
Phương pháp phòng chông path-traversal cũng khá tương đông như các
phương pháp trên, bao gồm việc xác thực dữ liệu đầu vào, sử dụng một danh sách
các ký tự được phép, phân quyền truy cập file cho từng người dùng, hoặc chặn quyền truy cập đến các file nhạy cảm
1.2.2.5 XXE injection
XXE (XML external entity) injection la một lỗi khai thác từ các file XML, cho
phép kẻ tân công can thiệp vào quá trình xử lý file XML của ứng dụng web Lỗ hông này có thể gây ra một số tác hại như cho phép kẻ tấn công có thê thao tác với tệp trên
hệ thông, tương tác với hệ thông bên ngoài, hay thậm chí chiêm quyền điều khiển hệ
thống Cách hoạt động của lỗ hồng này hầu hết dựa vào việc chèn mã độc vào cú
pháp khai báo thực thể XML, sau đó trình đọc cú pháp XML sẽ xử lý các tác vụ nguy
hiểm đó, ví dụ như sau:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<version><id>&xxe;</id></version>
Lúc này, &xxe chính là giá trị của file etc/passwd, kết quả trả về của ứng dụng
web sau khi xử lý file XML này chính là file etc/passwd
Cách phòng chống lỗ hồng này đó là cân nhắc sử dụng một định dạng mới (ví
dụ như JSƠN), hoặc nếu không thé thay thé, viéc cập nhật trình đọc cú pháp XML
là điều cần thiết Ngoài ra, có thé vô hiệu hóa trình đọc thực thể bên ngoài của XML,
Trang 26Đồ án tốt nghiệp
hoặc dùng các thư viện của các ngôn ngữ đê đảm bảo an toàn cho ứng dụng web trước nguy cơ tấn công XXE
1.2.2.6 File inclusion
Đây là một lỗ hông cũng khá phố biến, lỗ hồng này cho phép tin tặc có thê
truy cập vào các tệp nhạy cảm ,hoặc cho phép tải và thực thi các tệp độc hại trên máy
chủ web Lỗ hông này thường lợi dụng cơ chế “include” tệp của một sô ngôn ngữ
lập trình để khai thác Các file độc hại có thê là tệp cục bộ (tân công Local Eile
Inclusion) hoặc tệp từ xa (tan cong Remote File inclusion) Mot vi du cho tan cong
File inclusion nhu sau:
Ngoài các lỗ hông nói trên, ứng dụng web còn gặp những lỗ hồng khác như Server side template injection (SSTI), Server-side request forgery (SSRF), Buffer overflow có cách hoạt động khá tương tự với các lỗ hồng trên
1.3 Các phương pháp phòng chống và phát hiện tấn công web
1.3.1 Tổng quát chung
Bảo mật ứng dụng web cân có 3 lớp thiết yéu: Lop bao mat mang (Network),
lớp bao mat may chu (Host) va lop bao mat ứng dụng (Application) [2]
Trang 27cơ sở dữ liệu, các phân mêm, tập tin
Lớp bảo mật ứng dụng: có nhiệm vụ đảm bảo an toàn và bảo mật cho người dùng và dữ liệu của họ trong ứng dụng web Các thành phân đó bao gôm các vân đê trao quyền, xác thực, cấu hình, ghi nhật ky
1.3.2 Các phương pháp phòng chỗng tấn công ứng dụng web
1.3.2.1 Cài đặt tường lửa ứng dụng web, các hệ thống phát hiện và ngăn chặn xâm
nhập
Một trong những cách hữu hiệu đề đảm bảo an toàn đó là tường lửa ứng dụng
web Là một thiết bị phân cứng hoặc phân mềm, Tường lửa ứng dụng web (WARF)
có chức năng lọc và giám sát, và chặn các lưu lượng từ giao thức HTTP đến từ các
máy khách WAF có khả năng bảo vệ ứng dụng web khá hiệu quả từ các lỗ hồng bảo
mat nhu XSS, CSRF, SQL injection Tất cả lưu lượng HTTP từ máy khách đều sẽ
đi qua WAF trước khi được xử lý ở máy chủ web, do đó, WAF cũng có khả năng bảo vệ máy chủ web khỏi các cuộc tân công khác nhau từ máy khách WAF thường hoạt động thông qua một loạt các quy tắc được định nghĩa sẵn, hay còn gọi là chính sách Chính sách này có thê dễ dàng thay đổi và cập nhật, do đó WAF có khả năng
phản ứng nhanh đối với các 16 hong bao mat mới
Giống như WAF, các hệ thống phát hiện xâm nhập (IDS) và ngăn chặn xâm
nhập (IPS) cũng có khả năng bảo vệ ứng dụng web khỏi các cuộc tấn công Khác với
WAE, IDS/IPS có khả năng phát hiện và ngăn chặn xâm nhập ở tầng mạng Sự khác
biệt giữa IDS/IPS đó là IDS chỉ có khả năng phát hiện tắn công, trong khi đó IPS có
cả khả năng phát hiện và ngăn chặn Cách hoạt động của IPS/TDS cũng khả tương
đồng với WAF, cũng cân một bộ quy tắc để kiểm tra và ngăn chặn các giao thức mạng không hợp lệ IPS⁄IDS thích hợp dé thu thap thong tin, diéu tra va Ứng cứu sự
Trang 28Đồ án tốt nghiệp
cô xảy ra ở tang mang IPS/IDS và WAF thường được kết hợp với nhau đê mang đến khả năng bảo mật tốt hơn cho các ứng dụng web
1.3.2.2 Cấu hình đúng cho ứng dụng web
Một biện pháp cơ bản nhưng cực kỳ hữu hiệu trong việc bảo vệ ứng dụng web,
đó là cấu hình đúng Cấu hình ứng dụng web được hiểu như việc cấp quyên truy
nhập, xác thực, trao quyền, và các câu hình về thành phân mặc định, cách cập nhật
hệ thông, cùng nhiều các thành phân khác Một số cấu hình an toàn có thê kế đến
như:
e_ Ngoại trừ các tài nguyên công cộng để tải trang web, chặn mọi truy cập đến các tài nguyên khác mà không có đúng quyên
e Trién khai các cơ chê kiêm soát truy cập đên trang web
e Tao quyén tdi thiéu cho những người dùng khác nhau đôi với môi bản ghị, thay vì mọi người đêu có thê chỉnh sửa và xóa bản ghi đó
e Tắt chức năng duyệt thư mục theo mặc định, và ngăn chặn truy nhập đến các thư mục hệ thống và thư mục câu hình/ cài đặt ứng dụng web
e_ Cấu hình ghi nhật ký cho mỗi kết nôi không thành công, hoặc lỗi xảy ra trong quá trình kêt nôi đên ứng dụng web
e_ Các phiên làm việc nên được xóa bỏ khi người dùng đăng xuât
e Các dữ liệu nhạy cảm nên được mã hóa băng một thuật toán mã hóa mạnh
trong cơ sở dữ liệu của ứng dụng web
e_ Cấu hình giao thức HTTPS thay vì HTTP
e Áp dụng các mẫu thiết kế an toàn
e Các môi trường khác nhau (môi trường người dùng, môi trường kiểm thử) nên được cấu hình giống nhau, và đảm bảo an toàn giữa các môi trường đó
e® Loại bỏ các thành phân không được sử dụng ở ứng dụng web, các thư viện bên
thứ ba, và thường xuyên cập nhật các thư viện cũng như thành phần nhăm đảm
bảo các bản vá bảo mật luôn có săn
Trang 29Đồ án tốt nghiệp
e Dam bao qua trinh phì log được diên ra đúng đủ và an toàn, phục vụ cho mục đích truy vêt và ứng cứu khân câp
e© Sử dụng chữ ký sô đôi với việc tải các tài nguyên bên thứ ba vào ứng dụng
web, đảm bảo việc tải tài nguyên là đúng nguồn và không bị thay đôi
ví dụ cơ bản cho trường hợp này, đó là kẻ tân công có thê tạo form nhập liệu riêng,
hoặc xóa các thành phần xác thực dữ liệu trên máy khách, tắt Javascript, hoặc phức
tạp hơn, gửi trực tiếp yêu cầu đến máy chủ mà không thông qua bất cứ khâu xác thực
`
nao
Các khâu xác thực dữ liệu đầu vào có thể kề đến như: kiểm tra kích thước dau
vào, định dạng đầu vào Ví dụ như, với dữ liệu yêu câu là định dạng ngày, thì định
dang cần thiết sẽ là dd/mm/yyyy Với dữ liệu có yêu cầu bắt buộc phải nhập, thì kích thước dữ liệu cần lớn hơn 0 Một số trường hợp đặc biệt có thể cần kiêm tra thêm nội
dung và tính hợp lý của dữ liệu Một sô bộ lọc săn có có thê lọc được các dữ liệu không hợp lệ, dữ liệu được phân loại là dữ liệu chứa mã tấn công, để đảm bảo dữ
liệu được xử lý là dữ liệu sạch và đúng Một số bộ lọc khá nồi tiếng có thê kể đến
như bộ lọc của OWASP, bộ lọc của CloudFlare hoặc một số bộ lọc công khai có trên
các trang web quản lý mã nguôn (như Github, Gitlab )
1.3.2.4 Triển khai các biện pháp bảo mật bồ sung
Phòng vệ nhiêu lớp theo chiêu sâu (Defense in depth) là phương pháp tiếp cận bảo mật hiệu quả cho ứng dụng web nói riêng và các hệ thống thông tin nói chung,
các lớp bảo mật thường được sử dụng cho ứng dụng web bao gôm: lớp bao mat mang,
lớp bảo mật máy chủ và lớp bảo mật ứng dụng Mỗi lớp bảo mật có tính năng tác dụng riêng và hỗ trợ cho nhau trong vấn đề đảm bảo an toàn tối đa cho ứng dụng
Trang 30Đồ án tốt nghiệp
web [2] Ngoài ra, các ứng dụng bảo mật web ( như các phan mém Acunetix, cdc hé thong cua CloudFlare, Microsoft ) cing nén duge cai dat để đảm bảo tối đa cho ứng dụng web
1.4 Kết chương
Chương này đã khái quát được về kiến trúc của ứng dụng web, các lỗ hông
bảo mật như Top 10 OWASP 2021, và một số lỗ hông tân công điền hình Bên cạnh
đó, chương 1 đã giới thiệu được các phương pháp phòng chống tân công ứng dụng web đôi hệ thông web cũng như đôi với mỗi lỗ hông bảo mật riêng
Chương 2 sẽ giới thiệu về học máy, và các phương pháp trích xuất đặc trưng
trong văn bản nhằm mục tiêu áp dụng vào việc phát hiện và phòng chống tắn công ứng dụng web
Trang 31Đồ án tối nghiệp
CHƯƠNG 2 ỨNG DỤNG HỌC MÁY VÀ CÁC PHƯƠNG PHÁP TRÍCH XUẤT ĐẶC TRUNG TRONG XU LY VAN BAN VAO PHAT HIEN TAN
CONG WEB
2.1 Khái quát về học máy và các thuật toán học máy
2.1.1 Khái quát vê học máy
Học máy hay machine learning là một kỹ thuật không còn xa lạ trong thời kỳ hiện nay Mọi tác vụ thường ngày (tìm kiếm thông tin, gửi thư điện tử, phân loại thư
điện tử, tìm kiếm hình ảnh, nhận diện khuôn mặt ) đều ứng dụng học máy Học may (Machine Learning) là một nhánh của lĩnh vực trí tuệ nhân tạo, khi máy có khả
năng tự “học” từ những dữ liệu có sẵn, thông qua các thuật toán học máy mà không
cân lập trình cụ thê
Về cơ bản, học máy là quá trình máy tính học hỏi từ những trải nghiệm E đôi
với một số công việc T, với một thước đo hiệu suất P, nếu hiệu suất ở các nhiệm vụ
trong T được đo bằng P và sẽ được cải thiện dựa trên các trải nghiệm E
Ví dụ như sau: phân loại thư rác, lúc này,
e E: cdc dit liéu đầu vào đã phân loại sẵn là thư rác/ hay không phải thư rác
e T: nhiém vu phan loại thư rác
e P: xdc suat thư được phân loại là thư rác hay không
Các bước giải quyết bài toán học máy được đưa ra bao gồm:
I Thu thập dữ liệu
Một trong những bước đâu tiên của quá trình học máy đó là thu thập dữ liệu
Dữ liệu thu thập được có thê đến từ các nguồn khác nhau, các định dạng khác nhau,
và phù hợp với vấn đề nêu ra
Trang 32Đồ án tốt nghiệp
thời giúp ta hiệu rõ hơn vê các môi liên hệ của dữ liệu và đảm bảo độ chính xác của
mô hình học máy Dữ liệu sau đó được chia thành các tập, bao gôm huân luyện và đánh giả
3 Huân luyện
Đây là giai đoạn quan trọng nhất trong việc giải quyết bài toán học máy Tập
dữ liệu sẽ được huân luyện băng một hoặc nhiêu thuật toán hoc may dé tim hiểu đưa
ra được mô hình học máy tôi ưu nhất, từ đó dự đoán được các kết quả đầu ra dựa trên
các dữ liệu đầu vào
4 Đánh giá
Sau khi trải qua quá trình training, mô hình học máy sẽ được thực hiện đánh
giá độ chính xác Với tập dữ liệu dùng để đánh giá (được đưa ra ở quá trình xử lý dữ
liệu), sẽ được đưa vào mô hình đề thực hiện dự đoán, và so sánh kết quả đầu ra của
mô hình với kết quả đữ liệu thực Từ đó đưa ra đánh giá qua các thông sô khác nhau,
từ đó kết luận được mô hình có đủ độ tin cậy/ độ chính xác hay không
5 Cải thiện mô hình
Cải thiện mô hình là một bước cần thiết của quá trình học máy, tại bước này,
mô hình sẽ được điêu chỉnh lại các thuật toán, hoặc các dữ liệu đâu vào, nhăm tăng
độ tin cậy/ độ chính xác của mô hình học máy
6 Triển khai mô hình học máy
Lúc này, mô hình học máy đã sẵn sàng dé có thể đưa ra sử dụng thông qua các
dữ liệu thực, bang cách cài đặt thành ứng dụng riêng hoặc tích hợp theo mô đun vào
một ứng dụng sẵn có Mô hình có thê tiếp tục được cải thiện trong tương lai
Trang 33Đồ án tôt nghiệp
- l » bớ c? liên —a af ˆ , tá | | Cai thién Trién khai
| Thu thập - Xu ly du liéu Huân luyện }— Đánh giá mô hình mô hình
Thay đổi thuật toán học máy/ Cài đặt/ tích hợp
Thêm dữ liệu/ xử lý lại dữ liệu
Hình 2.I Hình ảnh mình họa các bước trong quá trình học máy
2.1.2 Phân loại các thuật toán học máy
Dựa theo phương thức học:
Học có giám sát (Supervised Learning): là phương thức dự đoán đâu ra với
đầu vào là các tập dữ liệu (dữ liệu huấn luyện) đã được gắn nhãn, từ đó các thuật toán sẽ mô phỏng mối quan hệ giữa dữ liệu và nhãn, do đó có thê đưa ra dự đoán với
dữ liệu chưa từng gặp Các bài toán thường dùng cho kỹ thuật học có giám sát là:
e Regression (hồi quy): bài toán phân loại với tập dữ liệu có các nhãn không
được phân thành từng nhóm Đầu ra bài toán này có thể là một nhãn mới
Ví dụ như việc dự đoán tuôi của một người, dự đoán giá nhà
e Classification (phan loai): bai toan phan loai co đâu vào là dữ liệu đã được găn với một sô hữu hạn nhãn Ví dụ như việc phân loại email có phải là
spam hay không, hoặc phân loại một người là nam hay nữ
Học không giám sát (Unsupervised learning): là phương thức dự đoán đầu ra với đầu vào là các tập dữ liệu chưa được gắn nhãn Phương thức này sẽ dựa vào cau trúc của dữ liệu dé thực hiện phân cụm dữ liệu, hoặc giảm sô chiêu dữ liệu Học
không giám sát sẽ không đưa ra kết quả cụ thê cho câu trả lời có hay không, hoặc một nhãn cụ thể nào đó Các bài toán thường dùng cho học không giám sát là:
e Clustering (phân cụm): bài toán phân loại với tập dữ liệu X, tìm ra điểm
tương đồng/ sự liên quan dữ liệu đê phân nhóm Ví dụ như, việc phân loại gen thành các nhóm về màu da, màu mắt, màu tóc giông nhau