HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIÊN THƠNG KHOA CONG NGHE THONG TIN I
7
ĐỎ ÁN TÓT NGHIỆP ĐÈ TÀI
NGHIÊN CỨU CÁC PHƯƠNG PHÁP PHÁT HIỆN
TAN CONG WEB DUA TREN HOC MAY Giảng viên hướng dẫn
: TS. HOANG XUAN DAU
Sinh viên thực hiện
: NGUYEN NGQC DOAN
Ma sinh vién
: B17DCAT039
Lớp Khóa Hệ
: DI7CQAT03-B : 2017 - 2022 : ĐẠI HỌC CHÍNH QUY
Hà Nội, tháng 1 nam 2022
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIÊN THƠNG KHOA CONG NGHE THONG TIN I
7
ĐỎ ÁN TÓT NGHIỆP ĐÈ TÀI
NGHIÊN CỨU CÁC PHƯƠNG PHÁP PHÁT HIỆN
TAN CONG WEB DUA TREN HOC MAY Giảng viên hướng dẫn
: TS. HOANG XUAN DAU
Sinh viên thực hiện
: NGUYEN NGQC DOAN
Ma sinh vién
: B17DCAT039
Lớp Khóa Hệ
: DI7CQAT03-B : 2017 - 2022 : ĐẠI HỌC CHÍNH QUY
Hà Nội, tháng 1 nam 2022
ii
LOI CAM ON Lời đầu, em xin được gửi lời cảm ơn đến tồ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 tồ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 thầy giáo TS. Hoàng Xuân Dậu, đã nhận lời hỗ trợ em làm đồ án, đã giúp 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ư tốt đẹp, em đã nhận được nhiều sự giúp đỡ từ gia đì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
NHAN XET, DANH GIA, CHO DIEM (của giảng viên hướng dẫn)
Điểm:................... (Bằng chữ:..................... L0 n ST SH n ng ng
)
Đồng ý/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
li
NHAN XET, DANH GIA, CHO DIEM (của giảng viên phan biện)
Đồng ý/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
CAN BO - GIANG VIEN PHAN BIEN
iil
0009) 09m ......................
i
NHẬN XÉT, DANH GIA, CHO ĐIÊM (của giảng viên hướng dẫn)...................... ii NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIÊM (của giảng viên phản biện) ...................... iii \1898 Bồi ®lMiiẳ4aẢ...........
iv
M90 0090:79c.................... vi M.9I:0 0095000600007 ..................... vii DANH MỤC TỪ VIẾT TÁT..........................-:2222ttttz+ttttttttttttttttrtrrrrrrrrrrrrrrrie viii 900006210 ........................ x CHUONG 1. CAC PHUONG PHAP TAN CONG UNG DUNG WEB VA CACH IJ0i9))1629si9) SIỪŨOOD
1
1.1 Téng quan vé ting dung Web. ...cccsccccessssssessssssesssssecssssseesssseessssseessssseesssseeessseeess 1
1.2 Các phương pháp tan céng tng dung Web.......ccccesscsssessssseessssseesssseeesssseeessseees 4 1.2.1 Top 10 OWASP 2021 [LV]... eeeeeeeseeseeseteseseeeeteneaeseeseenenseneseneneaeeey 4 1.2.2 Một số phương pháp tân cơng phổ biến......................---..---- 22252: 9 1.3 Các phương pháp phịng chống và phát hiện tân công web........................... 14 1.3.1 Tổng quát chung.........................-----+£+E++++2EE++t+EEE+EtEEEEEEEEEEEtrrrkkrrrrrkrree 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 chương ......................-----2sc+22EE+++22E22121122211111122711112271112 1221111... re. 18
CHƯƠNG 2. ỨNG DỤNG 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 VÀO PHÁT HIỆN TÂN CÔNG WEB L1 111111111111
TT
TT
TT TT TT TT
T111 T110.
Tre
19
2.1 Khái quát về học máy và các thuật toán học máy........................--.---- 19
2.1.1 Khái quát vé HOC MAY ...e.ecsscesssssesssssessssssessssseccssssecsssseesssssessssseceesseeesssses 19 2.1.2 Phân loại các thuật toán học máy...........................-- ---¿-+++++++x+exex+exexevxexeesee 21
2.1.3 Một số thuật toán học máyy.........................--
2.2.1 Bag of Words (Mơ hình túi từ) oe eeeseseeeeeeseseeneteeeeseseeseneseeeeees 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...................... ----- 65c S+ St + ‡xexexeerereerrre 34
2.3.1 Giới thiệu mô hình .......................- + + +k*k#k#k+kekekekekekekekekekekererererrrke 34
2.3.2 Các bước tiền xử lý đữ liệu.....................----¿-2++e++22E+vzerrtrrkeerrrrrrkeree 35 2.4 Kt ChUON woe.ecsccsscssseesssssessssssescsssecsssssessssssecssssecssssessssssecssssueesssseeesssseessssseesen 36
CHƯƠNG 3. CAI DAT VA THỬ NGHIỆM...............................................c.cc.e 37 3.1 Giới thiệu tập dữ liệu thử nghiGM oe
eceeeeeeeeteteeeteeeeseseseneseseneeesenees 37
3.2 Tiền xử lý dữ liệu.......................----+ ++2EEx2EEXEE2E112711E2E11 2.11... 38 3.3 Quá trình huấn luyện và KiỂm tTa...............c6 5cc t2 2E EEEE1EEEEEE11EEEEErrrrret 38
3.4.1 Các mơ hình thử nghiỆm........................ --- -- - 25255 +t+tEexexexetserererexeeexes 39
3.4.2 Một số Két Qua s..ccceccccecssscssseccsssecsssecssssecsssscssssecssssessssecsssecssssessssseesseessaes 40 3.4.3 Nhận XÉ( .........................- -- L2. Q11
1 01T TH TH TT TH TH TH TT TH
HH
46
3.5 Cài đặt và thử nghiệm mơ hình phát hiện tấn cơng web dựa trên học máy...47
3.5.1 Mơ hình xử lý......................----¿--+22V2+222+2222E1112212222711112 12101111... 41 3.5.2 Tích hợp mơ hình xử lý vào ứng dung web........................... + ccex+xsxss 47
3.5.3 Một số K6t QUA .....ccsssessssssssessssssssssessssusssssssssssessssiseessssssesessssuessesssseeeesssseed 49 3.6 Két CHUONG ..cceeccesecssesssseesssssessssecssseesssvecssssessssecsssecsssvecssssessseesssseessseesssseessseeen 52
DANH MUC BANG Bảng 3.1 Kết quả của thuật toán SVM với mơ hình BoW............................- 40 Bang 3.2 Kết quả của thuật tốn Decision Tree với mơ hình BoW......................... 4] Bang 3.3 Kết quả của thuật todn Logistic Regression với mơ hình BoW ............... 4]
Bang 3.4 Kết quả của thuật toán KNN với mơ hình BoW............................-+: 42
Bảng 3.5 Kết quả của thuật tốn Random Forest với mơ hình BoW....................... 42 Bang 3.6 Kết quả của thuật tốn Gradient Boosting với mơ hình BoW.................. 43 Bảng 3.7 Kết quả của thuật tốn SVM với mơ hình TF-IDF............................-------: 43
Bang 3.8 Kết quả của thuật toán Decision Tree với mơ hình TF-IDE..................... 44 Bảng 3.9 Kết quả của thuật tốn Logistic Regression với mơ hình TF-IDE........... 4 Bảng 3.10 Kết quả của thuật tốn KNN với mơ hình TF-IDF............................-.---- 45
Bảng 3.11 Kết quả của thuật tốn Random Forest với mơ hình TF-IDF................. 45 Bảng 3.12 Kết quả của thuật tốn Gradient boosting với mơ hình TF-IDF............ 46
VI
DANH MUC HINH ANH Hình 1.1 M6 hinh client- server của một ứng dụng web ............................ 5 -«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.1 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 tốn hồi quy Logistic.........................-------: 23
Hình 2.3 Ví dụ về mơ hình 1 hàm sigmod...........................---¿-¿++2+z+++2v+zc+zee 24 Hình 2.4 Hình ảnh minh họa cho thuật tốn K-nearest neighbors..........................--- 25 Hình 2.5 Mơ tả cách hoạt động của Gradient Boosting...................... ..------ 55+ 5+2 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...........................-.----¿+V+2£++22E++z+t+tEE+zerrrrrrverrree 29 Hình 2.8 So sánh giữa cây quyết định, Rừng ngẫu nhiên va Gradient Boosting ....30
Hình 2.9 Ví dụ về mơ hình túi từ............................--
22+++222EV+++++tttt2EExverrrrrrrrkkecred 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......................2: c¿2++e2EE++ttExxerrrxeeree 34 Hình 3.1 Sơ đồ mô đun phát hiện tấn công web........................2: ¿¿+sz++ssczeẻ 47 Hinh 3.2 Cau trtic tng dung Web ....ccccsccssssessssssssesssssssecesssssseessssssecessssssecessssseeesssssees 48 Hình 3.3 Mẫu thir “admin” cho két qua valid ........ssssscssssssseesssssssessssssssesessssseeeessssees 49 Hinh 3.4 Mau thir “select admin 123” cho két qua valid......cccsscsssssssssssseessessseeees 49 Hinh 3.5 Mau thir “script_alert” cho két qua Valid ....cc..ccssscsssssssessssssssessssssseeeeesssees 50 Hinh 3.6 Mau thir “etcpwd” cho két qua valid .....cccccsssssssssessssssseesssssseesessssseeessessees 50
Hình 3.7 Mẫu thử “user123” cho kết quả valid........................---¿- cz+cvsee+czssczee 50 Hình 3.8 Mẫu thử “admin OR 1=1;--” cho kết quả SQLI...........................-.--55555 51
Hình 3.9 Mau thir “ping —c 10 127.0.0.1” cho kết quả CMDI...............................- 51 Hinh 3.10 Mau thir “<script>alert(‘admin’)</script>” cho kết quả XSS................ 51 Hinh 3.11 Mau thir “../../ete/pwd” cho két qua Path-traversal........................----- 52 Hinh 3.12 Mau thir “<script>console.log(‘user’)</script>” cho két quả XSS........ 52
VI
DANH MUC TU VIET TAT STT|
Từ viêt
Tiếng Anh
Tiếng Việt/Giải thích
1
Apr | PPHcaton Frogramming | œ¡ › điện lập trình ứng dụng Interface
2
BoW
Bag of Words
mơ hình túi từ
4
CD
Continuous Delivery
Trién khai lién tuc
5
CGI
Common Gateway Interface
Giao diện cơng chung giữa ` `
6
CI
Continuous Integration
Tích hợp liên tục
8
CMDI
Command Injection
Lơ hơng chèn mã dòng lệnh
9
HTML
10
HTTP
II |
HTTPS
Hyper Text Markup
Language
HyperText Transfer Protocol Hypertext Transfer Protocol |
Secure
server và chương trình
trong web
HyperText Markup Language Giao thức truyền tải siêu văn bản Giao thức bao mat HTTP an
toan
12
IDF
13
KNN
K-nearest neighbors
Một thuật toán học may
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
Open Web Application Security Project
Du an nguôn mở vệ bảo mật ung dung web
16 | OWASP
Inverse document frequency | Dao nguoc của tan suat văn bản
Analysis
đữ liệu
17
PCA
Principal Component Analysis
Phuong phap phan tich thanh À he phan chinh
18
RFI
Remote file inclusion
Một loại lỗ hông web
19
SQLI
SQL Injection
Lỗ hông web chèn mã sql Viil
20
SSL
Secure Sockets Layer
Giao thức bảo mat SSL
21
SSRF
23
SVM
Support Vector Machine
24
TE
Term Frequency
Trọng số của một từ trong văn
25
TLS
Transport Layer Security
Bao mit tang truyền tải
26
URI
Uniform Resource Identifier
27
URL
Uniform Resource Locator |
28
WAF
Web Application Firewall
29
XSRE_
30
XSS
Cross-Site Scripting
Một loại lỗ hơng web
31
ZAP
Zed Attack Proxy
Một trình qt bảo mật
| Server-side request forgery
2 | sv |
Gani
Một loại lỗ hồng web
| Miiphong i i is
| Cross Site Request Forgery
Là một thuật toán học máy
bản
Nhận dạng Nguyện
thông
Định vị tài nguyên thống nhật Tường lửa ứng dung web Một loại lỗ hồng web
ix
LOI MO DAU 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 ngồ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 bat 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 tấn 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.
Đồ án tốt nghiệp
CHƯƠNG 1. CÁC PHƯƠNG PHAP TAN CONG UNG DUNG WEB VA CACH PHONG CHONG. 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,
øoogle.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 hang, bat độ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ó dang như sau:
L
OS
@—
Internet
cm Se
ee
server
Hinh 1.1 Mo hinh client- server cua mot ung dung web
Mô hình client- server là một trong những mơ hình phổ biến nhất tại thời diém hiện tại. Không chỉ mang lại tính sẵn sàng cao, mơ hình này cũng có khả năng mở rộng và phân phôi nội dung tuyệt vời, chỉ cân người dùng có kết nơi Internet. 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 dé 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ý u cầu của client, đồng thời phân phối nội dung đến client thông qua các phương thức như HTTP (Hypertext Transfr Protocol) hoặc phương thức truyén file nhu FTP (File Transfer Protocol).
Nguyén Ngoc Doan — B17DCAT039
I
Đồ án tốt 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 cau, 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 q trình gửi - nhận dữ liệu có thê mô tả bằng lược đồ như sau:
Client
Sever
Request message
Reply execusion
Wait
Quá trình bị nghẽn Reply message Py 9
Quá trình đang thực thi
Hình 1.2 Tổng quan quá trình gửi nhận dữ liệu của web client va server
Giao 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: sauthority: smethod:
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 cau 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 mot cong đồng gồm 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. Nguyễn Ngọc Đoàn - B17DCAT039
Authentication: xác thực, kiêm tra danh tinh người dùng Authorization: phan quyén, kiểm tra quyền hạn của người dùng Broken access control:
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 thì
có khoảng 3.81% mắc phải lỗ hơng này Lỗ hồng kiểm số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ó qun Một sơ ví dụ có thê kê đên như:
AI cũng có thê có quyên truy cập đên các tài nguyên mà chỉ người dùng quản tri mới có qun truy nhập Sửa đơi URL, hoặc API, bằng cách truy cập trực tiếp vào các URL chỉ dành cho người dùng quan tri, vi du nhu : /> Cau hinh sai CORS
Kiểm soát truy nhập dựa trên tham số URL (ví dụ: example.com,view?admin=1)
Sử dụng số định danh duy nhất của người dùng dé 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)
Một số lỗ hông CVE được khai thác từ lỗ hồng này có thê kế đến như CVE2018-16476, CVE-2019-11063 A02- Cryptographic failure (Lỗ hồng mã hố)
Ví dụ một số lỗ hồng tiêu biéu có thê kế đến như 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ã hố dé dam bao tính tồ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...) Nguyễn Ngọc Đoàn - BI7DCAT039
5
Đồ á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 tốn mật mã yếu, tạo
khóa kém hoặc lỏng lẻo, khơng có mã hố hoặc mã hố u, hoặc truyền dữ liệu dưới dạng plaintext, cụ thể như:
e_ Mật khâu/ thẻ tín dung được lưu trong database dưới dang plaintext
Sử dụng mã hố mạnh nhưng khoá dễ đoán, hoặc khoá được tái sử dụng
e
Thuat toán sinh ngẫu nhiên chưa đủ mạnh
A03- Injection (Lỗ hồng chèn mã) Một trong những lỗ hồng nghiêm trọng nhất, thường thấy trong ứng dụng web. Xảy ra do một sô nguyên nhân chủ yêu như: Dữ liệu người dùng nhập vào không được xác thực hay kiểm tra
Các câu lệnh truy vẫn khơng an tồ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
Và nhiều các trường hợp khác Ví dụ một số trường hợp như 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 dụ như kiểm sốt truy cập, phân tích flow người dùng, kiêm sốt lỗi. Tương tự như 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. Nguyễn Ngọc Đoàn - BI7DCAT039
6
Đồ á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
e Thiết lập một vòng đời phát triển (software lifecycle), đồng thời có đánh giá và thiết kế an tồn cho những vấn đề về bảo mật và quyền riêng tư e_
Viết các unit va functional test
A05- Security Misconfiguration (Lỗ hồng cấu hình bảo mật)
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é cau hình khơng đúng hoặc cấu hình yếu ( mật khẩu u, khơng cài đặt quyền truy cập..) cho các dịch vu cloud. Ti dé dẫn đến việc ứng
dụng dễ bị tắn công 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 đữ liệu ứng dụng) , từ đó có thé gây ra hiền thị những thơng tin khơng cần thiết và có thể gây nguy hiểm cho ứng dụng web
e
Các cài đặt bảo mật khơng được thiết lập ( như mã hóa, password policy, restrict ip address)
dụng web bị 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: e
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
e- 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
va
Z
¢ Khong thường xun kiểm tra qt 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)
e_
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 tân cong brute force
Sử dụng mật khâu yếu, như “Passwordl” 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. e_
Không làm mất hiệu lực xác thực phiên sau khi đăng xuất
A08- Software and Data Integrity Failures (Lỗi toàn vẹn dit liéu va phan 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 tồ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 (Lỗ hồng lỗi ghi nhật ký bảo mật
và giám sát lỗi) e
Cac hanh động thực thi, như đăng nhập, sai đăng nhập, các giao dịch có giá trị
khơng được ghi lại
e Các cảnh báo lỗi không thê hiện cụ thê được lỗi e
Cac ban phi chỉ được lưu cục bộ
Nguyễn Ngọc Đoàn - BI7DCAT039
8
Đồ án tốt nghiệp
e_ Hệ thống không thê cảnh báo được khi có lỗi A10- 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 thực từ trước
e
Lỗi này có thể xảy ra ngay cả khi hệ thống có tường lửa, hệ thống kiêm sốt truy nhập và ngăn chặn tấn cơng
e
Tỉ lệ SSRF ngày càng cao do các dịch vụ đám mây được sử dụng ngày càng phô biến và kiến trúc trở nên phức tạp hơn
1.2.2 Một số phương pháp tắn cơng phổ biến 1.2.2.1 SQL injection Một lỗi điển hình của ứng dụng web đó là SQL injection. Đây là một lỗi cơ
bản, được biết đến rộng rãi và luôn xuất hién trong Top 10 OWASP.
Tuy pho bién,
nhưng lỗi SQLi vẫn có nhiều ảnh hưởng qua nhiều năm đối với các ứng dụng web,
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ỗ hồng 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 van độ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 q 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 tồ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, câu lệnh SQL sé tro thanh SELECT
* from
users
WHERE
Nguyén Ngoc Doan — B17DCAT039
username=
‘admin’
OR
1=1;
--
9
Đồ án tốt nghiệp
Dữ liệu sẽ trả về tất cả đữ liệu trong bảng User do câu lệnh I=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 cdn gây nhiêu hậu quả nghiêm trọng hơn, như xóa tồn bộ cơ sở dữ liệu, thay đổi dit
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 câu lệnh SQL. Cách này sẽ giúp cơ sở dữ liệu phân biệt được đâu là câu lệnh truy
vấn và đâu là đữ 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
Sw dung Stored Procedure: Tuy khong dam bao an toan tuyệt đối trước các cuộc
tan céng chén ma SQL, tuy nhién Stored Procedure cũng có hiệu quả nhất định. Cách hoạt động của Stored Procedure cing kha 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ở đữ 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ã tan cong SQL là xác thuc dau 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_
Không 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ở đữ liệu, kiểu lưu trữ,... vì vậy tốt hơn cả, khơng nên hiển thi chi tiết các thơng báo
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 ln có một ban sao dé khôi phục về trạng thái ban đầu.
1.2.2.2 XSS
Cross-site Scripting (XSS) là một lỗ hông khá phố biến ở thời điểm hiện tai. Ngay cả các công ty lớn như Google (lỗ hồng số CVE-2021-37999) hay Microsoft Nguyễn Ngọc Đoàn - BI7DCAT039
10
Đồ á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 dé thực hiện tắn cơng ở phía máy khách, nhằm mục đích lấy 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ẻ tấn 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ẻ tắn cơng có thể thực hiện lỗ hồng XSS theo cách như sau: />‘hello’ );</script>
Lúc này, đoạn mã scrIpt trên sẽ được thực thi ở phía máy khách.
Sử dụng Entity Encode/ Escaped: Thay vì sử dụng trực tiếp các ký tự như “<,
“>',.... ta có thể sử dụng các nhóm ký tự mang ý nghĩa tương đương như <, @ I,... Các kí tự này sẽ ngăn chặn được việc thực thi đoạn mã script ở phía máy khách e
Sử dụng các thư viện Javascript: Cac thư viện Javascript hiện đại hầu hết đề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) 14 mot 16 héng bảo mật cho phép kẻ tan 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 dé tiép can 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ỉ nhà, thay đôi thông tin đăng nhập... Một ví dụ cho việc tan cong CSRF nhu sau: Nguyén Ngoc Doan — B17DCAT039
I
Đồ án tốt nghiệp
Một URL có chức năng chuyền tiền có dạng như sau: GET .com/transfer ?username=alice&amount=100
http://example
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 chun 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ư: src=”" ?username=alice&amount=100”/>
hoặc href=" ?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ư:
action=" /> Your
name:
Your
age:
method="post">
type="text">
type="text">
type="submit">
type="hidden"
name="amount"
type="hidden"
name="username"
value="100"> value="alice">
</form>
Như vậy, việc người dùng điền thơng tin cũng có thể giúp kẻ tấn cơng thực hiện CSRF Cách phòng chống CSRE:
e
Sử dụng một chuỗi token giữa máy chủ và máy khách: khi máy khách gửi
request, chudi token này sẽ được kiểm tra để xác thực xem có đúng là yêu cầu chính chủ
e
Sw dung captcha
e
Cau hinh trong header: cai dat các thuộc tính như SameSite, HTTPOnly,
Secure... Nguyén Ngoc Doan — B17DCAT039
12
Đồ án tốt nghiệp
e
Sir dung cac thư viện phòng chống CSRF
1.2.2.4 Path Traversal Path Traversal
1a 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 x4u hon
là kiểm sốt hồn tồn máy chủ. Một vài ví dụ cụ thê của path-traversal có thể liệt kê như: /> 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 14 mot 16i khai thác từ các file XML, cho phép kẻ tấn cơng can thiệp vào q 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 ngồ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:
version="1.0"
foo
encoding="UTF-8"?>
[ 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ư JSON), 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. Ngồi ra, có thé vơ hiệu hóa trình đọc thực thê bên ngoai cua XML, Nguyén Ngoc Doan — B17DCAT039