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

Nghiên cứu các phương pháp phát hiện tấn công web dựa trên học máy

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 (20.08 MB, 67 trang )

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)

Đ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

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¿++22E++zetttvxvzrrrrrrrseed 23

2.2 Các phương pháp trích xuất đặc trưng trong xử lý văn bản (feature
©XÍẨTACÍÏOH])..................

2G 0 11111 vn

it 3]
iv


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

E608:

0n, 0a.

ÐƯ©°-©.....

E040 TỐ.
.

Ốố
Shin

38

39

.......................... 39

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

KET LUAN
|Ÿ|L-]1:....
53
TÀI LIỆU THAM KHẢO...........................-----2¿¿£©V2222++222EEEE+2++ttEEEEEESvrrrrrrrrrkrcred 55


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:

:scheme:

GET
/
https


Nguyễn Ngọc Đoàn - BI7DCAT039

h

:path:

www.google.com


Đồ án tốt nghiệp
accept:

text/htm1, app1ication/xhtml1+xm1,
application/xm1 ; q=9. 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=0.9,en-US;q=0.8,en;q=0.7,fr-

FR; q=0.6,fr;q=0.5

cache-control:

cookie:

max-age=0

_ga=test

user-agent:

Mozilla/5.@

AppleWebKit/537.36

(Windows

(KHTML,

like

NT 10.0;
Gecko)

Win64;

x64)

Chrome/96.@.4664.110

Safari/537.36


Trong request header có chứa đầy đủ thơng tin về kết nói và thơng tin cần truy

vấn như :
e

URL cần truy vấn (tai vi du trén 1a www.google.com)

e© Method: phuong thtrc ma request sir dung, có thê 14 GET, POST, DELETE,
PUT...
°

Cookie: théng tin dé định danh người dùng và các thơng tin khác

©

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- Ngồ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:
HTTP/3

209

0K

accept-ranges:

vary:


bytes

Accept-Encoding

content-encoding:
content-type:

gzip

text/javascript;

charset=UTF-8

content-security-policy-report-only:
'script';

report-uri

require-trusted-types-for

/>
Nguyễn Ngọc Đồn - BI7DCAT039

3


Đồ án tốt nghiệp

cross-origin-resource-policy:

cross-origin-opener-policy:
report-to:

cross-origin
same-origin;

report-to="gws-team"

{"group":"gws-

team", "max_age": 2592000, "endpoints": [{"url":"hgoogle.c
om/csp/report-to/gws-team"}]}

content-length:
date:

Thu,

expires:

23

Fri,

last-modified:

266912
Dec

2021


23 Dec
Wed,

00:17:02

2022
15

Dec

x-content-type-options:
server:

00:17:02
2021

GMT

21:20:09

GMT

nosniff

sffe

x-xss-protection:
age:


GMT

@

233224

cache-control:

alt-svc:

public,

max-age=31536000

test

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

4


Đồ án tốt nghiệp

A01- Broken access control (Lỗ hồng kiểm soát truy cập)
MG ta: Access control:

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


© Si dung 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é dàng bị

bẻ khố (MD5...)



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©_ Sử dụng các API/ các hàm khơng an tồn: ví dụ hàm random khơng an tồn
e

Qun ứng dụng cao hon 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á 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)

© Mét van dé cé thé gặp phải đó là phần mềm lỗi thời, và các lỗ hông bảo mật đã

biết chưa có bản vá


Nguyễn Ngọc Đồn - BI7DCAT039

7


Đồ án tốt nghiệp

A06- Vulnerable and Outdated Components (Cac thanh phan/ thu vién cua tng

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

lỗi hay các ngoại lệ.


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.

Một vài biện pháp phịng chóng của lỗ hồng này có thê kể đến như:


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


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

13



×