Các kỹ thuật phát hiệnxâm nhập truyền thống mặc dù phổ biến và hiệu quả trong việc giám sát,phát hiện và đưa ra các cảnh báo khi có cuộc tan công vào ứng dụng webnhưng vẫn còn nhiều hạn
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG
NGUYEN NHU QUYNH
LE NGUYEN MINH THU
KHOA LUAN TOT NGHIEP
An empirical study on detecting web application attacks using
deep learning
KY SU NGANH AN TOAN THONG TIN
TP HO CHi MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
NGUYEN NHƯ QUYNH - 17520966
LÊ NGUYEN MINH THU — 17521103
KHOA LUAN TOT NGHIEP
SU DUNG KY THUAT HOC SAU TRONG PHAT HIEN
TAN CONG UNG DUNG WEB
An empirical study on detecting web application attacks using
deep learning
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
TS NGUYEN NGOC TU
ThS NGUYEN THANH HOA
TP HO CHi MINH, 2021
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 463/QD-DHCNTT
ngày 23 tháng 7 năm 2021 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.
1 TS Lê Kim Hùng Chủ tịch
2 ThS Nguyễn Thanh Sơn Ủy viên
3 ThS Đỗ Hoàng Hiển Thư ký
Trang 4LỜI CÁM ƠN
Lời đầu tiên nhóm tác giả xin gửi lời cảm ơn chân thành và bày tỏ lòng
biết ơn sâu sắc đến các thầy cô trường Đại học Công nghệ Thông tin và các thầy cô Khoa Mạng máy tính và Truyền thông của trường đã tận tình
hướng dẫn, truyền đạt kiến thức trong những năm học tập vừa qua
Đặc biệt, từ tận đáy lòng, chúng tôi xin gửi lời cảm ơn sâu sắc đến hai thay
đã hướng dẫn chúng tôi là TS Nguyễn Ngọc Tự, ThS Nguyễn Thanh Hòa
đã tận tình chỉ bảo cho chúng tôi tìm ra hướng nghiên cứu, hướng dẫn và
tạo mọi điều kiện để chúng tôi có thể hoàn thành khóa luận tốt nhất
Cuối cùng, chúng tôi xin cảm ơn đến gia đình, người thân, bạn bè và nhóm
AISP đã luôn đồng hành, khích lệ, động viên chúng tôi hoàn thành dé tài
Trang 5Mục lục
1 MỞ ĐẦU 3
11 Đặtvấnđề 2 ee, 3
12 Muctiéunghiénettu ẶẶẶẶẶ So 4
13 Đốitượngnghincứu Ặ 5
14 Phạm vinghiêncỨu Ặ Ặ Ặ QC 5 1.5 Cấu trúc củakhóaluận ẶẶ 5
2 CƠ SỞ LÝ THUYET VÀ CÁC NGHIÊN CỨU LIEN QUAN 7 2.1 Học sâu và mạng nơ-ronnhântạo 7
2.1.1 Giớithệu ko 7 212 MạngnơronnhântạO 9
2.2 Mạngnơ-rontíchchập 000000080 e 17 2.2.1 Lớpđầuvào ee 18 2.2.2 Lóptchchập Ặ.ẶẶẶ Ặ 18 2.2.3 Lớốppoolng 2.0.0.0 xo 23 2.2.4 Flatenng HQ xo 24 2.2.5 Lớpkếtnốiđầyđủ 25
2.3 Các loại tấn công ứng dụng web phổbiến 26
2.4 Các kỹ thuật phát hiện tấn công web 28
2.5 Các nghiên cứu liên quan - 29
Trang 6MỤC LỤC
3 PHAN TÍCH VA THIẾT KẾ HE THONG
3.1 Thiết kế mô hình để huấn
luyện -3.2 Các tiêu chí đánh giámôhìnhh
3.2.1 Tilệcảnhbáogiả Ặ.Ặ.ẶẶẶẶẶẶ 3.2.2 Độchínhxác ẶẶ QẶ Q SỐ Q
3.2.3 False positive rate và False negatverafte
3.2.4 Confusion matrix 0.0.0.0 000000000848
3.2.5 Precision, Recall và FÏlscore
3.2.6 Tiêu chí đánh giá trong phân loại nhiều lớp
3.3 Thiết kế mô-đun ứng dụng web để tích hợp với mô hình đã huấn luyện 4 THỰC NGHIỆM VÀ DANH GIÁ KET QUA 4.1 Chuẩn bị tập đữliệu Ặ.ẶẶ
411 Thuthậpdữlệu
412 Xửlýdữliệu
4.2 Môi trường huấn luyệnmôhình
-4.3 Kết quả thực nghiệm và đánh
giá -4.3.1 Kétquathucnghiém
4.3.2 Sosanh 4.4 Triển khai mô-đun tích hợp mô hình đã huấn luyện vào ứng dung web 44.1 Xây dựng websiteminhhoa
4.4.2 Tích hợp mô-đun phát hiện tan công đã huấn luyện
4.4.3 Đánh giá hoạt động của mô-đun phát hiện tấn công
5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51 Kếtluận
5.2 Hướng phát triển
TÀI LIỆU THAM KHẢO
31
31
36 36 36 36
37
38
38
43
45
45
45
47
49
50
50
52
53
53 55 59
62
62 63
64
Trang 8Danh sách hình vẽ
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
Hình thể hiện học sâu là một nhánh của ML và DL [5] 2 8
Các lớp của mô hình ANN 10
Hoạt động trong một perceptron 11
Bimnay #2 @ \ 1 12
Sigmoid, Tanh, ReLu activation functionÌ - 12
Mô hình tổng quat ANN[10] 13
Kihệu Ay ¬ạm ge w fe ww ˆ 14
Các lớp của mô hình CNN [13] .- 17
RGB ` s.5Ẳ D c 18
Phép nhân tích chập [l4] 19
Nhân tích chập có độ sâu là 3 [l4] 20
Filter có bước nhảy s=2[l4] 21
Ma tran I khi thêm padding là 1 [l4] 21
Các bước của một lớp tích chập [14] 22
Gộp cực đại va gộp trung bình [l4] 23
Max pooling có chiều sâu [14] - 24
Flattening [l6] Q2 25 Lớp kết nối đầy đủ [13] - 25
Mô hình CNN tổng quát [16] - 26
Trang 9DANH SÁCH HÌNH VẼ
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
4.1
4.2
4.3
44
4.5
4.6
47
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
Kết quả so sánh CNN và LSTM trong bài báo [23] 32
Mô hình để xuất 33
Thuật toán Adam [29] .- 35
Confusion matrix phân loại nhiều lớp [31] 37
Ví du Confusion matrix phân loại ba lớp (BT, XSS, SQLi) 39
Sơ đồ hoạt động của ADM 43
Cài đặtADM Q Q Q ee ee 44 Gửi HTTP request đến ADM 44
Luu đồ xử lý dữ liệu và huấn luyện mô hình 49
Jupyter Lab gói Standard GPU trên Floyhub 50
Confusion matrix của mô hình nhóm tác giả - 52
Sơ đồ website minhhoạ 53
Giới thiệu trang tương tác với người dùng 54
Giới thiệu trang giao diện quản trỊ - 54
Sơ đồ hoạt động ADM trong thanh tìm kiếm website minh hoạ 55
Trang lỗi 403 ngăn chặn kẻ tấn công sử dụng chức năng search 56
Kết quả tìm kiếm trả về cho người dùng hợp lệ 56
Giới thiệu trang phát hiện tan công trong mục thống kê 57
Chi tiết dữ liệu được thống kê tại trang chi tiết phát hiện tấn công 58
Thông tin các tài khoản thuộc IP của kẻ tấn công 58
Trang đăng nhập web quản trị 59
Kết quả sau khi thực hiện truy vấn liên tiếp vào thanh tìm kiếm ba từ khoá ee 59 Kết quả quá trình thực thi các job trên terminal 60
Sơ đồ hoạt động ADM trong website đã tuỳ chỉnh 61
Kết qua dự đoán của một vài truy van tan công SQLi 61
Trang 10Danh sách bảng
3.1
3.2
3.3
4.1
4.2
4.3
4.4
4.5
Định nghĩa TP, FP,TN,FN 36
Giá trị TP, TN,EP,EN SẺ 39 Giá tri Precision, Recall, Fl score - 40
Số lượng mẫu lấy từ các nguồn 47
Số lượng mẫu của từng loại dữ liệu .- 47
Bảng chia tập dữ liệu 50
Kết quả dự đoán 51
So sánh môhình 52
Trang 11Danh mục từ viết tắt
AI Artificial Intelligence Trí tuệ nhân tạo
ANN _ Artificial Neural Networks Mang nơ ron nhân tao CNN Convolutional Neural Networks Mang nơ ron tích chap
DL Deep Learning Hoc sau
FC Fully Connected Layer Lớp kết nối đầy đủ
LSTM Long Short Term Memory Mang bộ nhớ dài ngắn
ML Machine Learning Học máy
RNN _ Recurrent Neural Network Mạng nơ ron hồi quy
ReLU Rectified Linear Unit Ham kich hoat ReLU
SQLi SQL Injection Tan cong SQL InjectionXSS Cross-site Scripting Tấn công XSS
Trang 12TÓM TẮT
Các ứng dụng web luôn là mục tiêu phổ biến cho các cuộc tấn mạng vì
chúng có thể dễ dàng truy cập và thường chứa các lỗ hổng trong quá trình
phát triển Vì vậy, phát hiện tắn công và bảo vệ ứng dụng web là một trongnhững quan tâm hàng đầu đối với an ninh mạng Các kỹ thuật phát hiệnxâm nhập truyền thống mặc dù phổ biến và hiệu quả trong việc giám sát,phát hiện và đưa ra các cảnh báo khi có cuộc tan công vào ứng dụng webnhưng vẫn còn nhiều hạn chế: Thứ nhất, các kỹ thuật truyền thống cần
các quy tắc định nghĩa từ trước (signatures) nên không có khả năng phát
hiện những tan công mới hoặc biến thể của các loại tan công Thứ hai, hệthống phải được cấu hình một cách thủ công Điều này làm tốn thời gian vàđòi hỏi những kiến thức chuyên sâu về bảo mật Học sâu (Deep Learning -
DL) là một phương pháp trong học máy (MachineLearning - ML) và trí tuệ
nhân tạo (Artificial Intelligence - AI) dang là hướng tiếp cận mới với hiệuquả vượt trội hơn những kỹ thuật phát hiện tấn công web truyền thống vàcòn giải quyết được nhiều bài toán mà những kỹ thuật học máy cũ khó làmđược Trong dé tai này nhóm tác giả thực hiện nghiên cứu, đánh giá tính
khả thi và áp dụng kỹ thuật mạng nơ-ron tích chập (Convolutional Neural
Network - CNN) - một kỹ thuật tiên tiễn của học sâu, để xây dựng giảipháp phát hiện tấn công Cross-site scripting (XSS) va SQL Injection Kếtqua cho thấy mô hình có độ chính xác cao với micro F1 là 0.9964 và macro
F1 là 0.9962 khi sử dụng tập kiểm tra mà nhóm tác giả thu thập Nhóm tác
Trang 13giả đã triển khai mô hình trong môi trường Docker Nhóm tác giả cũng đã
triển khai ứng dụng web và tích hợp với mô hình đã huấn luyện Mô hìnhcủa nhóm tác giả có thể ứng dụng vào thực tế và dễ dàng tích hợp vào ứng
dụng web.
Trang 141.1 Đặt van dé
Báo cáo của Gartner ghi nhận rằng có 75% các cuộc tan công được phát hiện ở lớp
ứng dụng và web server là mục tiêu chính của tin tặc trong các sự cố an ninh mạngnhững năm gần đây [1] Có hai lý do khiến web server bị tin tặc nhắm vào: Thứ nhất
là có hàng triệu thông tin nhạy cảm của người dùng được lưu trữ trên cơ sở dit liệu
của server, tin tặc có thể giả mạo hay bán những dữ liệu đánh cắp được Mặt khác, kẻ
tan công có thể chèn mã độc vào tài liệu nguồn của server và người dùng sẽ thành nạnnhân khi truy cập trình duyệt hay tải tài liệu mà không hề hay biết [1] Trong bối cảnh
mà các doanh nghiệp đang dần chuyển đổi số, lượng thông tin nhạy cảm càng tăng thìcác loại tấn công web ngày càng đa dạng Trong đó, SQL Injection đứng thứ nhất va
Cross-site Scripting (XSS) đứng thứ 7 trong danh sách 10 lỗ hỏng bảo mật web phổ
biến nhất theo chuẩn OWASP 2017 (OWASP Top Ten) [2] là những loại tấn công phổ
biến có thể vô hiệu hóa dịch vụ web, đánh cắp thông tin nhạy cảm của người dùng, gây
ra những tổn thất đáng kể cho cả nhà cung cấp dịch vụ và người dùng
Trang 15Trong 9 tháng đầu năm 2020, hệ thống CyStack Attack Map ghi nhận 343.365 vụtấn công vào website trên quy mô toàn cau Tin mừng là số lượng tan công trên đã giảm24,7% so với cùng kỳ năm trước [3] Điều này cho thấy các phương pháp phát hiện,phòng ngừa tấn công ứng dụng web đã được phát triển tích cực Các kỹ thuật phát hiệntấn công web như: Phân tích tĩnh, phát hiện bất thường, hệ thống phát hiện và ngăn
chặn xâm nhập (IDS/IPS), web application firewalls (WAFs), Honeypot/Honeynet,
khá phổ biến và hiệu quả nhưng vẫn còn nhiều hạn chế vì thiếu tính linh hoạt, cần cầu
hình thủ công nên tốn nhiễu thời gian, phụ thuộc vào các quy tắc được định nghĩa trước
và bị giới hạn trong việc phân biệt đoạn mã độc trong những đoạn mã vô hại hay các
dang tấn công biến thể Trong khi đó, những năm gần đây học sâu (Deep Learning
-DL) đang là kỹ thuật tiềm năng trong việc phát hiện tấn công ứng dụng web Học sâu
có thể khắc phục được những hạn chế của các phương pháp truyền thống Hơn nữa,
một số kỹ thuật trong hoc sâu như mạng nơron nhân tao (Artificial Neural Network
-ANN), mạng no-ron tích chập (Convolutional Neural Networ - CNN), mạng bộ nhớ dài
ngắn (Long Short-Term Memory - LSTM) dang thể hiện ưu việt của nó trong phát hiện
tan công ứng dụng web với độ chính xác cao
1.2 Mục tiêu nghiên cứu
Thông qua khóa luận này, nhóm tác giả muốn thực hiện được các mục tiêu sau:
» Nghiên cứu về các kỹ thuật học sâu, tập trung vào các kỹ thuật Artificial Neural
Network và Convolutional Neural Network.
* Thiết kế và triển khai mô hình thực nghiệm va sử dung kỹ thuật ConvolutionalNeural Network trong phát hiện tấn công ứng dụng web Tập trung vào hai tấn
công SQL Injection và Cross-site Scripting.
Trang 16¢ Đánh giá hiệu quả, cải thiện mô hình học sâu đã xây dựng va đưa ra định hướng
phát triển.
1.3 Đôi tượng nghiên cứu
Trong khóa luận này, nhóm tác giả sẽ nghiên cứu:
» Các kỹ thuật Deep Learning phổ biến
* Các nền tảng mã nguồn mở trong triển khai các mô hình Deep Learning
* Các loại tấn công ứng dụng web phổ biến Tập trung vào hai loại tan công phổ
biến là XSS và SOL Injection
1.4 Pham vi nghiên cứu
¢ Tap trung vào kỹ thuật mang nơ-ron nhân tao (Artificial Neural Network - ANN),
mạng nơ-ron tích chập (Convolutional Neural Network - CNN) va sử dung các
tập dữ liệu tan công ứng dụng web phổ biến, được chia sẻ và đánh giá cao bởi
cộng đồng nghiên cứu
» Tap trung vào hai loại tan công phổ biến là XSS va SOL Injection
1.5 Cấu trúc của khóa luận
Ngoài phần mục lục, danh mục các từ viết tắt, danh mục hình ảnh, danh mục bảng,
tài liệu tham khảo và phụ lục khóa luận được bố cục thành 5 chương như sau:
Trang 17Chương 1 - Mở đầu
Đặt vấn đề và trình bày sơ lược về mục đích, đối tượng và phạm vi nghiên cứu
Chương 2 - Cở sở lý thuyết và các nghiên cứu liên quan
Trình bày và giải thích các cơ sở lý thuyết liên quan đến học sâu, mạng nơ-ron nhântạo, mạng nơ-ron tích chập Trình bày khái niệm một số tấn công ứng dụng web phổbiến và nguy cơ của chúng Trình bày một số phương pháp phát hiện và ngăn chặn tancông ứng dụng web truyền thống Bên cạnh đó, trình bày về tình hình nghiên cứu vềphát hiện tan công ứng dụng web có sử dung học sâu
Chương 3 - Phân tích và thiết kế mô hình
Tiến hành phân tích và xây dựng mô hình để huấn luyện Giải thích các tiêu chí
đánh giá một mô hình Cách tính toán đánh giá một mô hình Thực hiện thiết kế và
triển khai môi trường thực nghiệm.
Chương 4 - Thực nghiệm
Trinh bày về các nguồn thu thập tập dữ liệu và cách xử lý dữ liệu Triển khai môitrường huấn luyện mô hình Dua ra đánh giá kết quả của mô hình đã huấn luyện với
các tiêu chí đã trình bày So sánh mô hình của nhóm tác giả với mô hình của nghiên
cứu khác bằng cách sử dụng cùng tập dữ liệu để huấn luyện và thực nghiệm.
Chương 5 - Kết luận và hướng phát triển
Tổng kết các nội dung đã nghiên cứu trong đề tài Từ đó đề xuất các hướng pháttriển của đề tài có thể tiếp tục thực hiện trong tương lai
Trang 18Chương 2
CƠ SỞ LÝ THUYET VA CÁC
NGHIÊN CỨU LIÊN QUAN
2.1 Học sâu và mang nơ-ron nhân tạo
2.1.1 Giới thiệu
Học sâu (Deep Learning - DL) là một phương pháp trong học máy (Machine
Learning - ML) và (Artificial Intelligence - AI) Trong những năm gần đây học sâuphát triển mạnh vì sự phát triển của dữ liệu lớn (Big data) và GPU cho phép giải quyếtnhiều bài toán phức tạp và nhanh
Theo [4], năm 2006, Geoffrey Hinton và các cộng sự đã xuất bản một bài báohướng dẫn cách huấn luyện một mạng nơ-ron sâu (deep neural network) có khả năngnhận dạng các chữ số viết tay với độ chính xác tối tân (> 98%) Họ đặt tên cho kỹ thuật
này là “Deep Learning” Bài báo này thu hút sự quan tâm của cộng đồng khoa học và
trước đó không lâu, nhiều bài báo mới đã chứng minh rằng học sâu có khả năng đạt
Trang 19được những thành tựu đáng kinh ngạc mà không có kỹ thuật học máy nào khác có thểđạt được (với sự trợ giúp của sức mạnh tính toán to lớn và một lượng lớn dữ liệu).
Hình 2.1: Hình thể hiện học sâu là một nhánh của ML va DL [5].
Học sâu không chỉ giải quyết được những bài toán của toán học truyền thốngtrong học máy như phân lớp (Classification), hồi quy (Regression), học tăng cường
(Reinforcement Learning) mà còn có khả năng:
«Biểu diễn dữ liệu dưới dang vector (Representation Learning): Ví du ta có hai từ
gần nghĩa với nhau khi biểu diễn ra vector thì hai vector phải gần nhau Đối với
Trang 20phương pháp học máy truyền thống khó làm được điều này.
* Có thể huấn luyện trên dữ liệu không được gán nhãn (Data Synthesis): Ví dụ đưa
vào một tập dữ liệu mặt người và mô hình sau khi huấn luyện có thể tự sinh ra
2.1.2 Mang nơ ron nhân tao
Mang nơ-ron nhân tao (Artificial Neural Network - ANN) là các hệ thông thần kinhnhân tạo được lấy cảm hứng từ các quá trình hoạt động của não người [6]
Theo [4], ANN đã tổn tại khá lâu và lần đầu tiên chúng được giới thiệu trở lại năm
1943 bởi Warren McCulloch và nhà toán hoc Walter Pitts Trong bài báo "A Logical
Calculus of Ideas Immanent in Nervous Activity", McCulloch va Pitts đã trình bày một
mô hình tinh toán đơn giản về cách các tế bao nơ-ron sinh hoc có thể hoạt động cùngnhau trong não động vật để thực hiện tính toán sử dung propositional logic Đây là kiếntrúc mạng nơ-ron nhân tạo đầu tiên Tuy nhiên ANN đã bị lãng quên trong một thờigian dài và ngày nay, sự phát triển của lượng dif liệu lớn và sự gia tăng mạnh mẽ về sứcmạnh tính toán, các thuật toán huấn luyện được cải thiện đã khiến cho ANN được quantâm trở lại và ngày càng tạo ra nhiều sản phẩm tuyệt vời
Trang 21Mô hình ANN
Một mô hình ANN gồm có lớp đầu vào (input layer), lớp ẩn (hidden layer) và lớpđầu ra (output layer) như hình 2.2 Lớp input và output chỉ có một lớp nhưng có thể cónhiều lớp ẩn Mỗi hình tròn trong hình 2.2 được gọi là một node
eat
Input Layer Hidden Layer Output Layer
Hình 2.2: Các lớp của mô hình ANN.
Perceptron
Hoạt động của mỗi node trong lớp ẩn còn được gọi là perceptron Perceptron là
một trong những kiến trúc ANN đơn giản nhất, được phát minh vào năm 1957 bởi
Frank Rosenblatt [4] Mạng nơ-ron một lớp cũng được gọi là perceptron Trong một
perceptron sẽ cho một đầu ra duy nhất Hoạt động của một perceptron được thể hiện
trong hình 2.3.
10
Trang 22n ẩ : a a
>» MiXi ƒ@) = "
i=0 Py
Hình 2.3: Hoạt động trong một perceptron.
Một mẫu dữ liệu đầu vào là một vector có n chiều gồm từ x; đến x, và 1 Các dữ
liệu đầu vào của một mô hình luôn có vector bằng nhau Một mẫu dé liệu có n chiều
thì perceptron có n trọng sô (weight) là các wo, w\, Wn Chú ý đầu vào còn có thêmmột hệ số 1
Tiếp theo ta tính tổng các weight và x tương ứng Nhận thấy 1 x wo luôn bằng wo,
giá trị wo này được gọi là bias Giả sử giá trị đầu ra của ta là y, rõ ràng y = w.x, đường
thang y = w.x luôn đi qua gốc tọa độ nên việc cộng thêm bias giúp mô hình linh hoạt
hơn.
Sau đó ta cho kết quả đó vào hàm kích hoạt (activation function) Ham này để giả
lập kích hoạt điện nơ-ron trong não người Khi cho kết quả đầu ra qua hàm này sẽ giúp
khống chế đầu ra trong khoảng [0,1] hay [-1, 1], tùy theo hàm kích hoạt mà ta sử dung.Nếu không có activation function thì mô hình rất lâu mới có thể hội tu Activationfunction trong ví dụ hình 2.3 là hàm binary Có một số hàm kích hoạt thông dung:
* Binary function: là một hàm kích hoạt dựa trên ngưỡng Nếu giá trị đầu vào caohơn hoặc thấp hơn một ngưỡng nhất định, tế bào thần kinh sẽ được kích hoạt và
gửi chính xác cùng một tín hiệu đến lớp tiếp theo
11
Trang 23f(x) 1 nếu x >
x)=
Onéux <= 0
Hinh 2.4: Binary.
¢ Sigmoid: là một hàm toán học có đường cong hình chữ “S” đặc trưng, đường
cong này nằm trong khoảng từ 0 đến 1.
¢ Tanh: có phạm vi trong khoảng [-1,1].
* ReLU (Rectified Linear Unit): là hàm kích hoạt được sử dụng nhiều nhất trong
CNN và ANN, có phạm vi từ 0 đến vô cùng [0, oo] ReLU đã trở nên rất phổ biếntrong vài năm gần đây, nó thường được triển khai trong các lớp ẩn của ANN, đặcbiệt là trong hầu hết các mạng nơ-ron tích chập [7]
Sigmoid Tanh ReLU
Trang 24* Softmax: là hàm kích hoạt thường thấy trong bài toán phân loại nhiều lớp trong
học sâu Softmax thường được dùng ở lớp output của mạng nơ-ron Hàm softmax
tính giá trị đầu ra là xác xuất của các lớp [8] Hàm softmax được định nghĩa như
sau [9]:
es
ve, c*
P(y = jx) = ,Với zj = w¿x, K là số lớp, z € R*
Mô hình tổng quát của ANN được thể hiện trong hình 2.6 Mỗi node trong lớp ẩn
(màu tim) và node trong lớp đầu ra (màu đỏ) được tính như cách hoạt động trong một
perceptron Kết quả đầu ra của lớp này lại là đầu vào của lớp tiếp theo Như vậy, mỗinode trong lớp ẩn và lớp đầu ra đều liên kết với tất cả các node ở lớp phía trước đó với
các hệ so weight va bias riêng.
input output
values values
Hình 2.6: Mô hình tổng quát ANN [10]
13
Trang 25Lan truyền tiễn (Forward Propagation)
Đầu tiên ta bat đầu với một số kí hiệu để đề cập đến các trọng số một cách rõ ràng.
Gọi wit là weight từ nơ-ron thứ k ở lớp (1-1) đến nơ-ron thứ j của lớp 1 Bias kí hiệu là
bi là vi tri bias để tính giá trị của node thứ j tại lớp 1 Giá trị tai một node tại vi trí thứ
k ở lớp I là dị Cách tính giá trị này đã được mô tả trong phần percepfron ở trên Hình
2.7 là ví dụ về các kí hiệu trên.
Hình 2.7: Kí hiệu.
Ta có công thức tổng quát tinh output cho node tại lớp | vị trí thứ j là:
l I I-14 pl
Ví du tai node thứ 1 của lớp thứ 2 của hình 2.7 ta thực hiện tinh như tính một
perceptron đã trình bay ở trên Ta tính tổng các weight và a (giá trị của một node)
tương ứng rồi cộng bias
14
Trang 26một lớp và máy tính sé random weight và bias Dé máy tự tìm được weight va bias tốt
cần sử dụng thuật toán lan truyền ngược
Lan truyền ngược (Back Propagation)
Cần một ham để đánh giá độ tốt của mô hình tức là giá tri dự đoán càng gần giá tri
thực tế càng tốt Sau khi có giá trị dự đoán của một đối tượng ta cần kiểm tra giá trị dựđoán sai số bao nhiêu so với giá trị thực tế Dé làm điều này ta sử dụng hàm mat mát(lost function) hay còn được gọi là hàm lỗi (error function) để kiểm tra Hàm mất máttrong bài này sẽ kí hiệu C là tổng giá trị hàm lỗi của các output Một ví dụ về hàm lỗi
là lỗi bình phương trung bình ( mean squared error cost function) [9].
C= 2 giá trị dự đoán — giá trị thực tế)”
Để dự đoán chính xác, người ta cần giảm thiểu sai số tính toán Rõ ràng giá trị lỗihay giá trị của loss function càng nhỏ càng tốt Giá trị này liên kết với tat cả các node
phía trước nó trong mạng nơ-ron, tức là nếu ta muốn giảm loss function ta cần điều
15
Trang 27chỉnh tất cả các trọng số Các trọng số được sửa đổi bằng cách sử dụng một hàm được
gọi là hàm tối ưu hóa (optimize function) kết hợp với phương pháp back propagation
Back propagation là ta sẽ bắt đầu từ node output quay ngược lại các node phía
trước nó đến input, thực hiện tính toán optimize function 6 từng node mà ta cần cậpnhật trọng số để điều chỉnh từng weight trong mạng theo tỉ lệ với mức độ đóng góp của
giá trị loss function chung Nếu chúng ta lặp đi lặp lại, giảm từng lỗi và cập nhật weight
cuối cùng chúng ta sẽ có một loạt các weight tạo ra một mạng có thể dự đoán tốt Hàm
tối ưu hóa có nhiều loại Các hàm tối ưu hóa thường tính toán gradient tức là dao hàm
riêng của hàm mat mát đối với trọng số và trọng số được sửa đổi theo hướng ngược lạivới gradient được tính toán Chu kỳ này được lặp lại cho đến khi hàm mat mát đạt cực
tiểu
Dưới đây là cách cập nhật trọng số sử dung gradient Trong đó learning rate viết tắt
là 7, u là cập nhật (update), p là dự đoán (predict), nu là need update (cần cập nhật)
Learning rate là tốc độ học được thiết lập bởi nhà thiết kế thuật toán Nếu chúng ta sử
dụng tốc độ học quá nhỏ sẽ khiến trọng số cập nhật rất chậm, không đạt được tiến độ.
Ngược lại, nếu chúng ta sử dụng tỷ lệ học tập cao quá mức chúng sé bi phân kỳ [11]
oCOWnu
Wy = Wp — xT]
Trong do: oc là dao hàm của ham mat mát theo weight cần cập nhật.
Ap dụng quy tắc chuỗi (chain rule*) để tính đạo hàm của hàm mat mát theo weight cần cập nhật Quy tắc được mô tả như sau nếu z = f(y) và y = g(x) hay z(ƒ(ø(z)) thì:
Trang 28Quá trình tính sóc của tất cả các weight trong mô hình lần lượt từ output trở về
input được gọi là lan truyền ngược
Các trọng số của mạng được chọn ngẫu nhiên, quá trình lan truyền tiến và lan truyềnngược sẽ thực hiện rồi lặp lại cho đến khi giá trị của hàm lỗi đủ nhỏ thì dừng [12]
2.2 Mạng nơ-ron tích chập
Mang nơ-ron tích chập (Convolutional Neural Network - CNN) được giới thiệu lầnđầu vào những năm 1980 bởi Yann LeCun - một nhà nghiên cứu khoa học máy tính.LeCun đã xây dựng dựa trên neocognitron - một mạng nơ-ron nhận dạng hình ảnh rat
cơ bản được thực hiện bởi Kunihiko Fukushima [4].
CNN gồm các lớp 4 lớp chính: đầu vào, lớp tích chập (Convolution), lớp gdp(Pooling), lớp kết nối đầy đủ (Fully Connected)
Convolutions Pooling Fully Connected
Hình 2.8: Các lớp của mô hình CNN [13].
17
Trang 29Có thể nói lớp tích chập là lớp cực ki quan trọng trong CNN, bởi vì lớp này thực
hiện mọi phép tính toán Mục tiêu của lớp tích chập là trích chọn các đặc trưng của đầu
vào Lớp tích chập sử dụng các ma trận bộ lọc (Filter - kernel) kích thước k x k, với
k là số lẻ, nhân tích chập với đầu vào Kết quả đầu ra gọi là bản đồ tính nang (featuremap) hay bản đồ kích hoạt (activation map)
Cách nhân tích chập được thể hiện trong ví dụ ở hình 2.10
18
Trang 30Ma trận bộ lọc F trong hình có kích thước 3 x 3 sẽ nhân với vùng ảnh được chon
A để tích chập (vùng màu đỏ trong phần I) Vùng ảnh được chọn để tích chập phải có
kích thước bằng với filter.
Kết quả đầu ra là ma trận O là phép nhân tích chập filter với từng ma trận A (tươngứng với kích thước filter và chiều sâu) được lay ra từ input Sau đó trượt s bước theochiều ngang và dọc để tiếp tục nhân tích chập rồi cộng lại
Trang 31Kí hiệu phép tinh convolution O = A&@ Ƒ
Giá trị mỗi phan tử ma trận O khi ma trận A nhân tích chập với ma trận F là tổngcác phan tử của phép tính element-wise của ma trận A và F
Ớii =AIiXửii +AI3 X Fla+Aha X F13 + ai X F2i + A22 X F22 + A23 X F23 + an X
HẠị + A32 X F32 + A33 x F33 = 4x I+9x 013 2x( 1) +5x1+6x04 2x ( 1) t
2x1+4x0+5xI=2
Tương tự, ta cũng tính được giá trị các phần tử còn lại của ma trận O
Độ sâu hay kênh (channels) của filter luôn bằng độ sâu của input Trường hợp có
thêm độ sâu ta nhân tích chập từng channel của filter với channel tưởng ứng của ma
trận A được lấy ra từ input rồi cộng lại như hình 2.11
Hình 2.11: Nhân tích chập có độ sâu là 3 [14].
b) Bước nhảy (Stride)
Với s =k, ta sẽ nhảy k bước theo chiều ngang và dọc của Input như hình 2.12
20
Trang 32Input Filter Result
: f=3 [i =2°1 + 5:04 3%1)+
-c~=~~~x=xee Stride: s= 2 2*1+4*0+3*(-1)+
p=o 5*1 + 4*0 + 2*(-1)
Dimension: 6 x 6
Filter with stride (s) = 2
Hình 2.12: Filter có bước nhảy s = 2 [14].
c) Dém (Padding)
Như ở trên thi mỗi lần thực hiện phép tinh convolution xong thì kích thước ma tranoutput đều nhỏ hơn input Tuy nhiên giờ ta muốn ma trận O thu được có kích thước
bang ma trận I => Thêm giá trị 0 ở viền ngoài ma trận I.
Với p =k, ta thêm k vector 0 vào trên dưới trái phải của input như hình 2.13.
Trang 33d) Sau khi tích chập
Lớp tiếp theo sau khi tích chập là phi tuyến tính (non linear function) Các phi tuyến
tính có thể được sử dung để điều chỉnh hoặc cắt bỏ output Lớp nay được áp dụng để
bão hòa đầu ra hoặc hạn chế sản lượng được tạo ra
Sau khi tính tích chập ta được đầu ra O Thực hiện như hình 2.14 Lay O + biasrồi tính hàm kích hoạt (activation function) của O + b Các hàm kích hoạt là hàm phituyến tính
22
Trang 34Tổng số tham số của layer: Mỗi kernel có kích thước F x F x D và có 1 hệ số bias,nên tổng tham số của một kernel là F x F x D~+ 1 Mà convolutional layer áp dụng Kfilter => Tổng số tham số trong layer này là K x (F x F x D+1).
Một convolution có thể có nhiều filter Số lượng filter bằng số lượng output Một
mô hình mạng CNN có thể có nhiều lớp tích chập
2.2.3 Lớp pooling
Ý tưởng chính của việc gộp (pooling) là lay mẫu nhỏ để giảm độ phức tap cho
các lớp tiếp theo Ví dụ như trong hình ảnh, pooling tương tự như giảm độ phân giải
Pooling không ảnh hưởng đến số lượng bộ loc (filter) Gộp tối đa (Max pooling) là một
trong những loại phổ biến nhất của phương pháp gdp Max pooling phân vùng hình ảnh
thành các vùng nhỏ hơn hình chữ nhật và chỉ trả về giá trị lớn nhất bên trong vùng đó
Một trong những kích thước phổ biến được sử dụng trong max pooling là 2 x 2 [15]
Có thể thấy trong hình 2.15, gộp tối đa được thực hiện trong các vùng 2 x 2, đầu tiên
là trên cùng bên trái (vùng màu tím), nó di chuyển 2 và thực hiện trên vùng màu vàng,
sau đó là vùng màu xanh lá cuối cùng là vùng xanh dương Điều này có nghĩa rằng
stride = 2 đã được sử dụng Ở lớp gộp, ta có thể áp dụng cả stride và padding Đôi với
average pooling, làm tương tự như max pooling, chỉ khác là thay vì lấy giá trị lớn nhấtbên trong vùng nhỏ ta lấy giá trị trung bình của tất cả phần tử trong vùng nhỏ đó như
hình 2.15:
Hình 2.15: Gộp cực dai va gộp trung bình [14].
23
Trang 35Trường hợp với input có chiều sâu ta cũng pooling tương tự từng channel như hình
2.16:
6x6öx43
Hình 2.16: Max pooling có chiều sâu [14]
Trong một số mô hình người ta dùng convolutional layer với stride lồn hơn 1 để
giảm kích thước dữ liệu thay vì sử dụng pooling layer.
Trang 36Hình 2.17: Flattening [16].
2.2.5 Lớp kết nói day đủ
Theo [15], lớp được kết nối day đủ (Fully Connected Layer - FC) tương tự như cách
mà các tế bào thần kinh được sắp xếp trong một mạng nơ-ron truyền thống Do đó, mỗi nút trong một lớp được kết nối đầy đủ được kết nối trực tiếp với mọi nút trong cả lớp
trước và lớp tiếp theo như trong 2.18 FC là lớp như mạng nơ-ron nhân tạo Ta đã biếtđầu vào của mạng nơ-ron nhân tạo là một vector, đó là lý do ta phải thực hiện flattening
trước đó.
25
Trang 37Tổng quan các lớp trong mạng nơ-ron tích chập được thể hiện trong hình 4.15:
2.3 Các loại tan công ứng dung web phổ biến
Open Web Application Security Project (OWASP) là một tổ chức phi lợi nhuận,
hoạt động để cải thiện tính bảo mật của phần mềm Thông qua các dự án phần mềm mãnguồn mở do các cộng đồng lãnh đạo, hàng trăm chi hội địa phương trên toàn thé giới
và hàng chục nghìn thành viên và các hội nghị giáo dục và đào tạo hàng đầu Nền tảngOWASP là nguồn cho các nhà phát triển và nhà công nghệ để bảo mật web OWASP
có một dự án được gọi là OWASP Top Ten để liệt kê 10 tấn công phổ biến nhất VớiOWASP Top Ten - 2017 [2], 10 tan công ứng dụng web đó là :
1 Injection
2 Broken Authentication
3 Sensitive Data Exposure
4 XML External Entities (XXE)
5 Broken Access Control
26
Trang 38Security Misconfiguration
Cross-Site Scripting XSS
Insecure Deserialization
Using Components with Known Vulnerabilities
Insufficient Logging and Monitoring
Theo kết qua báo cáo của Imperva Research Labs về mối de doa liên quan đến các
lỗ hổng cho các ứng dụng web và cơ sở dữ liệu trong năm 2020 [17], thì tấn công ứngdung web đứng thứ nhất và thứ bảy OWASP Top Ten là lỗ hỏng phổ biến nhất vào năm
2020 Cross-Site Scripting (XSS) chiêm 28% tổng sô lỗ hổng và đứng thứ hai là SOL
Injection với 15,66% Điều này cho thay XSS va SQL Injection là hai tan công ứngdụng web phổ biến trong những năm gần đây
1 SQL Injection:
Cấu trúc ngôn ngữ truy van dữ liệu (Structured Query Language - SQL) là một
ngôn ngữ thông dịch được sử dụng trong cơ sở dữ liệu của các ứng dụng web để
truy vấn, trích xuất, thay đổi dữ liệu Nếu điều này được thực hiện trong một cáchkhông an toàn, thì ứng dụng web có thể dễ bị tấn công tan công SQL Injection,
tức là nếu dif liệu do người dùng cung cấp không được xác thực đúng cách thìngười dùng có thể sửa đổi hoặc tạo ra một câu lệnh SQL và có thể thực thi mãtùy ý trên máy đích hoặc sửa đổi nội dung của cơ sở đữ liệu [18]
Cross-site Scripting
Kẻ tan công tự dựng máy chủ hoặc chèn mã tắn công được viết ở dang tĩnh hoặc
động với nội dung khác nhau như HTML, Java, JavaScript, ActiveX, Flash Khi
kẻ tan công yêu cầu trình duyệt của người dùng thực thi script, script sẽ chạy
27
Trang 39trong ngữ cảnh bảo mật (hoặc vùng) của trang web lưu trữ Với loại đặc quyềnnày, mã ứng dụng có khả năng đọc, thay đổi và truyền bắt kỳ dữ liệu quan trọngnào mà từ trình duyệt có thể truy cập được Một cuộc tấn công XSS thành côngcho phép kẻ tấn công chiếm đoạt tài khoản của người dùng thông qua cookie,chuyển hướng người dùng đến một trang web khác từ trang web đã truy cập vàtạo điều kiện cho các loại tan công khác như tan công lừa dao (Phishing) hoặctan công từng lần tải xuống (Drive-by-downloads) Kiểu tan công XSS gây ra rủi
ro đáng kể trong trường hợp trình duyệt tương tác chặt chẽ với các hệ thống tệptrên máy tính của người dùng để tải nội dung Các cuộc tấn công XSS thườngđược sử dụng để chiếm quyền điều khiển các phiên của người dùng truy cập các
trang web hỗ trợ thương mại điện tử, trong đó script độc hại hay code chạy trên
máy của người dùng và kẻ tấn công có thể nắm bắt cookie, thông tin về trình
duyệt của người dùng cho phép kẻ tan công chiếm quyén điều khiển phiên [18]
2.4 Các ky thuật phát hiện tan công web
Có nhiều kỹ thuật phát hiện và ngăn chặn tấn công web truyền thống như:
¢ Hé thống phát hiện và ngăn chặn xâm nhập (Intrusion Detection and Prevention
Systems - IDS/IPS): Chủ yêu được sử dung để xác định các mối de dọa có thể xảy
ra, ghi nhật ký thông tin về chúng, cố gắng ngăn chặn chúng và báo cáo thông tincho bộ phận an ninh các nhà quản trị IDPS có thể tự ngăn chặn cuộc tan công,
thay đổi môi trường bảo mật bằng cách cấu hình lại tường lửa hoặc thay đổi bản
chất của cuộc tan công IDPS cũng có thể ứng phó với sự xâm nhập trong thiết bị
di động mạng không dây phụ thuộc vào loại hoặc bản chất cụ thể của một cuộc
xâm nhập và các giao thức được sử dụng Công nghệ IDPS không chỉ phát hiện
hoạt động đáng ngờ mà còn ngăn nó thành công bằng các phản hồi tự động [19].
28
Trang 40¢ Tường lửa ứng dụng web (Web Application Firewall - WAF): giúp bảo vệ các
ứng dụng web bằng cách lọc và giám sát lưu lượng HTTP giữa ứng dụng web
va Internet WAF là một giao thức bảo vệ lớp ứng dung (application) trong môhình OSI WAF không được thiết kế để chống lại tat cả các loại tan công Phương
pháp giảm thiểu tan công này thường là một phần của bộ công cụ cùng nhau tao
ra một biện pháp phòng thủ toàn diện chống lại một loạt các cuộc tấn công
* Honeypot/honeynet: Spitzner định nghĩa honeypots như một tài nguyên hệ thống
thông tin mà giá trị của nó là khi nó bị sử dụng trái phép hoặc bất hợp pháp tài
nguyên đó Nó cũng có thể được định nghĩa là một tài nguyên máy tính có giá trị
khi bi tan công Một honeypot được cô tình cho phép tan công sau đó được phântích để kỹ thuật viên có thể tìm hiểu về các phương pháp, thủ tục và công cụ mà
kẻ tan công đã sử dụng Honeynet là mỏ rộng hon của honeypot, honeynet là mộtmạng lưới chứa nhiều honeypot [20]
Các kỹ thuật trên khá phổ biến và hiệu quả nhưng vẫn còn nhiều hạn chế vì thiếu
tính linh hoạt, cấu hình thủ công nên tốn nhiều thời gian, cần phụ thuộc vào các quy
tắc được định nghĩa trước và bị giới hạn trong việc phân biệt đoạn mã độc trong những
đoạn mã vô hại hay các dạng tan công biến thể
2.5 Các nghiên cứu liên quan
Yong Fang và các cộng sự [21] đã nghiên cứu mô hình phát hiện tan công Cross-site
Scripting ứng dụng kỹ thuật của học sâu là mạng bộ nhớ dài ngắn (Long Short Term
Memory - LSTM) và dat presicion 99,5 % va recall 97,9%.
Kahim và các cộng sự [22] đề xuất mô hình phát hiện tấn công XSS kết hợp hai kỹthuật CNN và LSTM để tạo ra một mô hình có thể sử dụng trong ứng dụng web Kết
29