Các công cụ kiểm thử tự động không có các chiến lược biến đổi nhằm cố gắng tấn công vào các hệ thống phòng thủ khác nhau, phương pháp sử dụng chuyên gia để kiểm thử giải quyết được điều
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
LE MINH KHAN - 20521430
KHOA LUAN TOT NGHIEP
MOT HUONG TIEP CAN DUA TREN GAN DE SINH MAU SQLI DOI KHANG TRON TRANH TUONG LUA
UNG DUNG WEB
A GAN-BASED APPROACH FOR ADVERSARIAL SQL
INJECTION SAMPLE GENERATION AGAINST WAF
CU NHAN NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
THS DO HOANG HIEN
TP HO CHi MINH, 2024
Trang 2LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành nhất đến quý thầy cô khoa Mạng máy tinh và Truyền thông, Trường Dai học Công Nghé Thông Tin — Đại học Quốc gia thành phố Hồ Chí Minh đã tạo điều kiện cho em được học tập, rèn luyện và tích lũy kiến thức, kỹ năng dé có thé hoàn thành được khóa luận này.
Đặc biệt, em xin gửi lời cảm ơn sâu sắc nhất đến Thầy Giảng viên hướng dẫn Th.S Đỗ Hoàng Hiển, đã dành rất nhiều thời gian quý báu dé theo dõi, hỗ trợ, tận tâm chỉ dẫn, đưa ra những lời khuyên vô cùng giá trị, gỡ rối rất nhiều khúc mắc và van dé gặp phải trong quá trình nghiên cứu khóa luận Điều này có ý nghĩa rất lớn
trong việc hoàn thành khóa luận của em.
Do kiến thức và kinh nghiệm còn hạn chế, em đã cố gan hết sức dé tìm tòi, học hỏi các kiến thức mới để xây dựng và hoàn thành khóa luận, tuy nhiên không thé tránh được thiếu sót Em rất mong nhận được những góp ý, chỉ day giá trị, quý báu từ quý Thay Cô.
Một lần nữa, em xin gửi đến toàn thể quý Thầy Cô, kính chúc quý Thầy Cô
có thật nhiều sức khỏe và đạt được nhiều thành công, thành tựu hơn nữa trong sự
nghiệp Em xin trân trọng cảm ơn.
Lê Minh Khan
Trang 3Mục lục
TÓM TẮT KHOÁ LUẬN
1 TONG QUAN ĐỀ TÀI
11 Datvandél eee
1.3 Phuong pháp nghiên
cứu| -1.4 Tính khoa hoc, tinh mới của dé tài
15 Đối tượng và phạm vi nghiên
cứu| -15.1 Đối tượng nghiên cứu|
15.2
Phạmvinghiêncứu| -1.6 Cấu trúc Khóa luận
tốtnghiệp| 2_ CƠ SỞ LÝ THUYET 2.1 Tường lửa ứng dụng webl
2.1.1 Tổng quanl ẶẶ co 2.1.2 Phuong pháp xây dựng WAH
Dua trên bộ quy
tắc| -. Dua trên phương pháp học máy|
2.2 Tấn công SQLinjection|
2.2.1 Tổng quanl Ặ co 2.2.2 Cau trúc của một câu lệnh SOL|
2.2.3 Cách thức tấncông|
Ọaa In-band SQLi (ClassicSOLI)|
Inferential SQLi (Blind SOLI)|
Lee eee ee 2.3 Thư viện
Trang 4libinjection| -2.41 GiớithệuvềGAN| 14
Le ee 15
“ 16
2.6 Tân công đối kháng| Ặ.Ặ 17
2.6.1 Tân công đầu độc| - 172.6.2 Tấn công nétránh| 17
2.7 Các công trình nghiên cứu liên quan| - 18
3 PHƯƠNG PHÁP THỰC HIỆN 21
3.1 Kiến trúc tổng quat) © eee 21
3.1.1 Luông hoạt động của mô hình GAN| 26
sS×_ — 27
3.2.1 Tiền xử lý dữ liệu cho bộ phân loại (Classifier) 28
3.2.2 Tiền xử lý dữ liệu cho mô hình GAN 283.2.3 Tiền xử lý mảng quyết định chiên lược biên đổi 29
Z4 | / 313.3.1 Bộ trích xuất thông tin token| 313.3.2 Bộ xử lý biến đổi định dạng chuỗi tan công
thong phòng thủ| c co 373.6 Bảo toàn khả nang tân công của mẫu| 43
4_ THỰC NGHIỆM VÀ DANHH GIÁ 45
4.1 Xây dựng mô hình từ phương pháp đề xuất| 45
4.1.1 Chuẩn bị thư viện, môi trường và bộ dữ liệu 45
Trang 54.14 MôhinhcGAN| 52
TNNWaHHHI na eee 52
Xây dựng mô hình phân biệt của mô hình cGAN| 52
BILSIM| 59
¬ KỶ 59
41.6 Cấu hình mô phỏng hệ thống WAF ModSecurity| 624.2 _ Kết quả thựcnghiệm| eee 63
4.2.1 Thực nghiệm sinh và biến đổi mẫu trên bộ dữ liệu huấn
luyện GAN] 0 0 eee 63
4.2.2 Thực nghiệm sinh và biến đổi mẫu trên bộ dữ liệu đánh giá
GAN lay từ kho chia sẽ dữ liệu Kaggle|' - 67
5 KÊT LUẬN VÀ HƯỚNG PHÁT TRIEN 71
5.1 Kếtluận ay Z2 ,àV Ì / 715.2_ So sánh phương pháp đề xuất với các công trình nghiên cứu liên
Trang 6Danh sách hình ve
1.1 10 lỗ hổng bảo mật ứng dụng web hàng dau
3.7 Lưu đồ của thuật toán trích xuất khung payload get_frame của
mẫu tân công SQL injection| - 38
3.8 Áp dụng mô hình để sinh mẫu né tránh WAFRl 39
Trang 74.12 Một ví dụ về mau được biến đổi
1X
Trang 8Danh sách bảng
Bang các chiến lược biến đổi định dang mẫu tan công với giá trị
Bảng các chiến lược biên đổi định dạng mẫu tấn công với giá trịcủa mảng quyết định chiến lược biến đổi có giá trị 2
Bảng các chiến lược biên đổi định dạng mẫu tấn công với giá trị
của mảng quyết định chiến lược biến đổi có giá trị 3Bảng các chiến lược biến đổi định dạng mẫu tân công với giá trịcủa mảng quyết định chiến lược biên đổi có giá trị 4
Bảng các chiên lược biến đổi định dang mẫu tan công với giá trị
của mảng quyét định chiến lược biến đổi có giá trị 5
Bang các chiên lược biến đổi định dạng mau tan công với giá trịcủa mảng quyết định chiến lược biên đổi có giá trị 6
Bảng các chiến lược biên đổi định dạng mẫu tan công với giá trịcủa mảng quyết định chiến lược biến đổi có giá trị 7 và 8
4.1 Thuộc tính cua dataset HttpParam| 47
4.2_ Thuộc tính của SYED SAQLAIN HUSSAIN SHAH dataset| 47
4.3 Thông số và giá trị để huấn luyện mô hình phân loại của WAFR|
4.4 Bảng thể hiện tỷ lệ dương tính chính xác của bộ phân loại học máy
Trang 9của tường lửa qua các lần biên đổi định dạng từ dữ liệu tạo từ bộ
bái
Trang 10Danh mục từ viết tắt
SQL Structured Query Language
SQLi SQL injection
WAF Web Application Firewall
DNS Domain Name Control
ML Machine Learning GAN Generative Adversarial Network cGAN _ Conditional Generative Adversarial Network CNN Convolutional Neural Network
RNN Recurrent Neural Network
BiLSTM Bidirectional Long Short-Term Memory
GRU Gated Recurrent Unit
G Generator
D Discriminator
xii
Trang 11Giá tri mat mát
Hành động Ham kích hoạt
Hàm mat mát
Danh mục từ tạm dịch
Loss value Action
Activation function Loss function
Học sâu Deep learning
Lớp đầu vào Input layerLớp đầu ra Output layer
Lớp ẩn Hidden layer
Don vi Unit
Mang no ron Neural network
Trọng số mạng Weight
Dựa trên quy tắc Signature base
Tường lửa ứng dụng web Web Application Firewall
Ung dụng web phía người dùng Webclient
Máy chủ ứng dụng web Webserver
Từ khóa Keyword
Biểu thức Expressions
Hàm Function
Từ thô Bareword Chú thích Comment
Biểu mẫu Form
Tén mién Domain name
Doan ma Token Nhận dạng đặc trưng Fingerprints
xiii
Trang 13TÓM TẮT KHOÁ LUẬN
Để ngăn chặn, hạn chế những rủi ro tồn tại ở các ứng dụng web, đã có nhiều
phương pháp bảo mật được nghiên cứu và áp dụng, tường lửa ứng dụng (WAF)
là một trong số đó Mặc dù vậy các WAF vẫn có khả năng bị qua mặt bởi bên tan
công bằng nhiều phương pháp khác nhau, để đảm bảo nâng cao khả năng phòng
thủ của WAF thì việc đánh giá điểm yếu của nó là cực kỳ quan trọng Để làm
được điều này, các phương pháp kiểm thử WAF đã được sinh ra từ tự động đến
kỹ năng con người, tuy nhiên cả hai phương pháp này đều có hạn chế riêng Các
công cụ kiểm thử tự động không có các chiến lược biến đổi nhằm cố gắng tấn
công vào các hệ thống phòng thủ khác nhau, phương pháp sử dụng chuyên gia
để kiểm thử giải quyết được điều này, tuy nhiên, mắt đi tính tự động hóa, hiệuquả của chiến dịch kiểm thử phụ thuộc nhiều vào kỹ năng của chuyên gia, vànhân lực có chuyên môn cao là không nhiều
Nghiên cứu này có mục tiêu đưa ra một hướng mới về phương pháp né tránh
hệ thống tường lửa ứng dụng nhằm biết được các điểm yếu của hệ thống phòng
thủ, phương pháp này hướng đến việc xây dựng một chiến lược kiểm thử, đánhgiá tự động hóa các hệ thống phòng thủ, kết hợp phương pháp học đối kháng
để linh hoạt biến đổi chiến lược tùy thuộc vào hệ thống phòng thủ Nghiên cứu
sử dụng mô hình học đối kháng cụ thể là cGAN để hiện thực mục tiêu trên, môhình sinh ra các chiến lược biến đổi định dạng mẫu tấn công, từ đó đưa ra cácmẫu mới có khả năng né tránh WAF Phương pháp được đánh giá hiệu suất trêncác bộ dữ liệu công khai và hệ thống phòng thủ mô phỏng Kết quả thu được chothay mô hình đề xuất của dé tài có khả năng né tránh được các mô hình phân loạihọc sâu và cả ModSecurity WAF, cho thấy mô hình có khả năng thực tiễn, từ đó
đưa ra hướng phát triển tiếp theo nhằm từng bước hoàn thiện phương pháp này
trong tương lai.
Trang 14Chương 1
TONG QUAN DE TÀI
Tom tat chuong
Ở chương này, tác giả nêu ra bài toán mà trên thực tế dang gặp phải về phương
pháp né tránh hệ thống tường lửa ứng dụng web một cách tự động và linh hoạttheo các chiến lược biến đổi mẫu tấn công SQL injection Đồng thời xác định các
phương pháp đã được nghiên cứu, từ đó đưa ra hướng giải quyết, xác định hướng
nghiên cứu và phạm vi nghiên cứu của khóa luận Ở phần này, tác giả cũng xác
định rõ mục iêu mà khóa luận hướng tới.
11 Đặt vấn đề
Tan công mạng nói chung và tan công web nói riêng là vấn để ngày càng nóng
trên toàn thế giới và đặc biệt là ở Việt Nam Các chiến dịch tấn công nhằm khaithác các lỗ hổng của website luôn là chủ dé luôn được nhắc tới trong các cuộc bàn
luận và phân tích Sở di, như vậy là do hầu hết các doanh nghiệp, tổ chức hay
thậm chí là cá nhân hiện nay đều xây dựng cho họ một hệ thống các trang web để
phục vụ cho các công việc như kinh doanh, quản lý, điều hành Chính vì vậy, hầu
như các hệ thống triển khai các website này đều chứa các dữ liệu và tài nguyên
vô cùng quan trọng của tổ chức, cá nhân, do đó, các hệ thống này cần phải đượcbảo vệ an toàn một cách cẩn trọng và toàn diện nhất có thể
Việc áp dụng rộng rãi các thành tựu công nghệ mà ở đây đang nói đến là hệthống các website trực tuyến đã dẫn đến việc số lượng các cuộc tấn công nhắmđến lỗ hổng của các trang web ngày càng lớn Theo thống kê, riêng ở Việt Nam cóhon 13.900 cuộc tan công xảy ra ở năm 2023, tăng 9,5% so với năm 2022 [12] Can
2
Trang 15Chương 1 TỔNG QUAN ĐỀ TÀI
lưu ý rằng, các hệ thống trang web được thiết kế với nhiều mục đích khác nhau,
tuy nhiên, điểm chung của chúng là nơi mà mọi đối tượng đều có thể tương tác,việc kiểm soát hành vi của người dùng là vô cùng khó khăn
Một trong những lỗ hổng phổ biến của các website hiện nay là SQL injection,đây là lỗ hổng có thể dẫn đến các thiệt hại cực kỳ nghiêm trọng bên cạnh độ phổbiến của nó Trên toàn cầu, theo báo cáo của OWASP có khoảng 274.000 cuộc tancông SQL injection xảy ra mỗi ngày trong năm 2022, điều đáng ngạc nhiên hơn
là thời gian để có thể phát hiện ra lỗ hỏng và tiến hành tấn công SQL injection
trung bình mắt chưa tới 10 giây [9] Với độ nguy hiểm và phổ biến rất cao, SQL
injection luôn nằm trong TOP 10 lỗ hổng web phổ biến được OWASP công bó
như hình[I.1]
2017 2021 A01:2017-Injection A01:2021-Broken Access Control
A02:2017-Broken Authentication A02:2021-Cryptographic Failures
A03:2017-Sensitive Data Exposure ~» A03:2021-Injection
A04: : ternal Entities (XXE) (N@w) A04:2021-Insecure Design
X3 m=- A05:2021-Security Misconfiguration
A05:2017-Broken Access Control
A06:2017-Security Misconfiguration A06:2021-Vulnerable and Outdated Components
.A07:2017-Cross-Site Scripting (XSS) A07:2021-Identification and Authentication Failures
.A08:2017-Insecure Deserialization =e {New} A08:2021-Software and Data Integrity Failures
A09:2017-Using Components with Known Vulnerabilities 4 FE=—7?” A09:2021-Security Logging and Monitoring Failures* A10:2017-Insufficient Logging & Monitoring (New) A10:2021-Server-Side Request Forgery (SSRF)*
* From the Survey
HÌNH 1.1: 10 lỗ hổng bảo mật ứng dung web hang đầu
Để chống lại các cuộc tan công này, nhiều nhà nghiên cứu da rất nổ lực để
phát triển các phương pháp bảo vệ khác nhau như các hệ thống phát hiện dựatrên đặc trưng (signature-based) hay dựa trên các mô hình máy học từ cơ bản đến
phức tạp Tuy nhiên, một số nghiên cứu chỉ chỉ áp dụng các biện pháp học máy
và học sâu để phát hiện sớm dấu hiệu của các chiến dịch tấn công thông qua lỗhổng SQL injection mà chưa đánh giá, giải quyết các van dé liên quan đến việccác bên tan công có thể sử dụng các mẫu đối kháng để tác động xấu vào hệ thống
phòng thủ nhằm phá vỡ lớp phòng thủ và thực hiện các chiến dịch tan công
Để giải quyết vân đề này, công tác kiểm thử thâm nhập để dánh giá khả năng
phòng thủ của các hệ thống bảo vệ là cần thiết Trên thực tế, đã có một số biệnpháp kiểm thử thâm nhập tự động, đa số dựa trên phương thức kiểm thử hộp
đen bằng cách xây dựng một bộ dữ liệu đầu vào gồm nhiều payload tấn công
Tuy vậy, phương pháp này hoàn toàn không có khả năng tư duy, biến đổi mẫu
Trang 16Chương 1 TỔNG QUAN ĐỀ TÀI
khi gặp các hệ thống phòng thủ như khi thực hiện kiểm thử bởi con người Mặtkhác, nếu không sử dụng các công cụ tự động thì sẽ phải có đội ngũ với kỹ năng
và chuyên môn cao để có thể tiền hành kiểm thử và đánh giá hiệu quả nhất
1.2 Mục tiêu để tài
Qua những van dé đã được dé cập, có thể nhận thấy rằng, việc thực hiện kiểm
thử thâm nhập các hệ thống phòng thủ một cách tự động, linh hoạt là điều cực
kỳ quan trọng, đặc biệt là đối với lỗ hổng SQL injection Dé tài này hướng tới một
cách tiếp cận mới bằng việc kết hợp học máy, học sâu vào lĩnh vực an toàn thông
tin.
e Ap dụng các phương pháp học máy, hoc sâu để tiến hành biến đổi định
dạng của mẫu tấn công ban đầu để qua mặt các hệ thống phòng thủ như
WAF.
* Các mẫu tan công đã được biến đổi định dang vẫn phải đảm bảo được chức
năng và mục đích tan công ban dau
¢ Dua ra được các chiến lược biến đổi tối ưu nhằm qua mặt được hệ thống
phòng thủ như WAF Tiến hành sinh các mẫu tấn công né tránh WAF nhằm
đánh giá độ khả thi, hiệu quả của mô hình.
1.3 Phương pháp nghiên cứu
Để đạt được mục tiêu cuối cùng của đề tài, tác giả sử dụng phương pháp học đốikháng (GAN) để tiến hành sinh ra các chiến lược biến đổi và áp dụng nó vào mẫu
tấn công gốc, mẫu tấn công này được đảm bảo tiêu chí né tránh được hệ thống
phòng thủ như WAE, và chức năng tan công ban đầu được đảm bao Tìm hiểu,phân tích và đưa ra các biến đổi định dạng của mẫu ban đầu bao gồm: biến đổilogic, biến đổi kiểu biểu diễn dữ liệu, biến đổi định dang ký tự, thay thé ký tự,các biến đổi này đảm bảo không làm thay đổi chức năng tấn công, khả năng tấncông của mẫu ban đầu Phân tích các mẫu ban đầu để có các chiến lược biến đổiphù hợp đối với từng loại Xây dựng bộ phân biệt và huấn luyện cho phản ứng
Trang 17Chương 1 TỔNG QUAN ĐỀ TÀI
giống với hệ thống phòng thủ (WAF) nhất có thể Huan luyện mô hình đối khángvới bộ sinh và bộ phân biệt được huấn luyện đồng thời Mẫu sinh ra của mô hìnhGAN là các chiến lược biến đổi, chiến lược này có thể áp dụng lên nhiều payloadgốc khác nhau và vẫn đảm bảo được mục đích né tránh WAF, đảm bảo khả năng
và mục đích tấn công
1.4 Tính khoa học, tính mới của đề tài
Đề tài hướng tới mục đích cụ thể là phát triển một phương pháp biến đổi mẫutấn công SQL injection né tránh hệ thống phòng thủ có thể áp dung để phục vụkiểm thử xâm nhập Phương pháp được xây dựng với sự kết hợp giữa kỹ thuật
học máy hiện đại với lĩnh vực an toàn thông tin Xây dựng phương pháp tự động
nhưng vẫn có khả năng linh hoạt áp dụng chiến lược tấn công Hơn nữa, xây
dựng mô hình học đối kháng không chỉ với mục tiêu là vượt qua được hệ thống
phát hiện mà còn với mục tiêu cố gắng giữ được khả năng tấn công của mẫu vàmục đích ban đầu của mẫu tân công SQL injection
Vẫn với mục đích là kiểm tra và đánh giá khả năng né tránh của các payload
tấn công SQL injection vào các tưởng lửa ứng dụng web và các bộ phát hiện tancông ứng dung web, dé tài xây dựng một mô hình có chức năng sinh ra các chiến
lược biến đổi định dang các mẫu tấn công nhắm cụ thể vào lỗ hổng SQL injection
Phương pháp này mang lại tiềm năng ứng dụng thực tiễn, đặc biệt là trong việcgiữ được tính hiệu quả và mục tiêu tấn công ban đầu của mẫu trong môi trườngthực tế
1.5 Đối tượng và phạm vi nghiên cứu
1.5.1 Đối tượng nghiên cứu
e Tan công SQL injection, các loại tan công SQL injection phổ biến
¢ Tường lửa ứng dụng web (WAF) được xây dựng dựa trên các phương pháp
học máy, học sâu.
* Các phương pháp học máy đối kháng (GAN)
Trang 18Chương 1 TỔNG QUAN ĐỀ TÀI
Các biến đối trong tan công SQLi
1.5.2 Phạm vi nghiên cứu
Phương pháp học máy nhằm biến đổi định dang mẫu tan công SQL injection đảm
bảo chức năng của mẫu tấn công nhằm qua mặt hệ thống nhận dang, phát hiện
tan công, WAF
1.6 Cau trúc Khóa luận tốt nghiệp
Khóa luận được tổ chức trong 6 chương như sau:
Chương[I| TONG QUAN ĐỀ TÀI
Nêu ra các bài toán thực tế, từ đó đề xuất hướng nghiên cứu của dé tài khóa
luận.
Chương|2| CƠ SỞ LÝ THUYET
Mô tả các khái niệm, công nghệ, các kiến thức nền tảng phục vụ cho đề tàinghiên cứu Đưa ra các nghiên cứu tương tự đã tạo tiền để để xây dựng,
hiện thức khóa luận Phân tích tình hình các nghiên cứu đã có, tìm ra được
các đặc điểm của các nghiên cứu này Từ đó đưa ra hướng nghiên cứu tiếp
cận mới.
Chương|3| PHƯƠNG PHÁP THỰC HIEN
Với các bài toán đã đưa ra, dé xuất một mô hình đáp ứng day đủ các yêu tố
can thiết
Chương] HIỆN THỰC, ĐÁNH GIÁ VÀ THẢO LUẬN
Từ mô hình dé xuất, tiến hành kiểm ra tính khả thi của mô hình bằng cáchtính toán đưa ra số liệu dựa trên các mẫu mới được sinh ra bởi mô hình
Chương] KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Đưa ra kết luận từ các kiết quả thu được, ý nghĩa của nghiên cứu mang lại
và hướng phát triển trong tương lai của đề tài
Trang 192.1 Tường lửa ứng dụng web
2.1.1 Tổng quan
Tường lửa ứng dụng web (Web Application Firewall viết tat là WAF) là một loại
tường lửa hoạt động ở lớp ứng dụng (lớp 7 của mô hình OSD), nó chịu trách nhiệm lọc, xử lý, giám sát lưu lượng, nội dung HTTP/HTTPS, đây là một giải pháp bảo
mật được áp dụng để đảm bảo an toàn cho ứng dụng web trước nhiều loại tan
công như SQL Injection, Cross Site Scripting (XSS) hay Cross-site Request Forgery
- CSRE Giải pháp bảo mật này được ứng dung trong hệ thống của nhiều lĩnh vựcthuộc nhiều doanh nghiệp, tổ chức khác nhau
WAF được triển khai ở vùng giao tiếp giữa internet và ứng dung web Khác
với tường lửa, WAF được đặt giữa webclient và webserver thay vì chỉ đặt giữa các
server Trong khi proxy thông thường được triển khai nhằm bảo vệ người dùng
khi truy cập vào internet thì WAF được triển khai như một reverse-proxy bảo vệ
máy chủ web trước các lưu lượng truy cập từ internet hay cụ thể hơn là từ người
dùng.
Trang 20Chương 2 COSO LY THUYẾT
Dựa vào các tinh chat của các cuộc tan công web như, thuộc tính các mẫu tấncông (ký tự, độ dai, các ký tự trong danh sách den, ), hành vi của các cuộc tan
công (số lượng gói tin, cố truy cập vào các vùng dữ liệu không được phép, )
Với tân công SQL injection, WAF có thể sử dụng phương pháp phân tích cú pháp,đặc điểm ký tự của gói tin yêu cầu để xác định tấn công Các kỹ thuật phân tíchngày càng đa dạng và hiện đại, với mục đích tăng tối đa tính chính xác khi phân
tích các lưu lượng đi vào máy chủ web Có 2 phương pháp chính để WAF phát
hiện tan công SQL injection là dựa trên bộ quy tắc được định nghĩa và phươngpháp áp dụng học máy để phân tích, phân loại, phát hiện tấn công
2.1.2 Phương pháp xây dựng WAF
Dựa trên bộ quy tắc
Phương pháp này được sử dụng rộng rãi trong các giải pháp WAF truyền thống,
các nhà cung cấp dịch vụ WAF hiện nay chủ yêu dùng phương pháp này để xây
dựng một giải pháp WAF mạnh mẽ Phương pháp này sử dụng các cơ sở dữ liệu
khổng 16, nơi các chính sách được định nghĩa sẵn bởi các chuyên gia hoặc từ cộngđồng, các chính sách dựa trên những đặc điểm của các cuộc tấn công để pháthiện, xác định nó, như số lượng ký tự, chuỗi định dạng, số lượng gói tin, các ký
tự trong danh sách den, , phân tích cú pháp, xác định dựa trên hành vi Tùy vào
loại tan công, tùy vào từng hệ thống mà các chính sách này có thể được tùy chỉnh
cho phù hợp, độ chính xác của phương pháp này được khẳng định bởi nhiều nhàcung cấp lớn hiện nay
Một số giải pháp WAF lớn, phổ biến, mạnh mẽ sử dụng phương pháp này tiêu
biểu như ModSecurity, F5, CloudFlare, Fortinet, Wallarm, WAFaaS.
Điểm mạnh của phương pháp này là các cuộc tan công đã biết va xác định
thuộc tinh sẽ duoc xây dựng thành các chính sách chặc chẽ, tốc độ phân tích, xử
lý rất nhanh và tỷ lệ phát hiện chính xác rất cao, cơ sở dữ liệu được cập nhật liên
tục nhằm đảm bảo các chính sách bao phủ tối đa các dấu hiệu của tấn công
Tuy nhiên, đối với các lưu lượng tân công mới, các chính sách chưa được địnhnghĩa trong cơ sở dữ liệu cho mẫu tan công đó thì khả năng phát hiện rất thấp
Trang 21Chương 2 COSO LY THUYẾT
Dua trên phương pháp học máy
Cùng với phương pháp trên, một hướng tiếp cận hiện đại hơn được áp dụng vàocác nắm gần đây là áp dụng các phương pháp học máy để xây dựng các giải pháp
WAF (ML-based) Nhiều nghiên cứu được thực hiện nhằm nâng cao khả năng
phát hiện các lưu lượng tấn công web của giải pháp
Giống với các giải pháp WAF xây dung bằng phương pháp dựa trên quy tắc,
mục đích của phương pháp này cũng nhằm tối ưu khả năng phát hiện dấu hiệucủa các cuộc tan công, riêng về tấn công SQL injection, phương pháp sử dụng học
máy, học sâu có nhiều ưu điểm nhờ vào khả năng phân tích chuỗi mạnh mẽ củacác mô hình học máy, các thành phan, ký tự, cú pháp của mẫu tan công được xemxét trên nhiều khía cạnh để phân loại
Tuy vậy, khác với các WAF xây dựng bằng phương pháp dựa trên quy tắc, khi
dùng phương pháp áp dụng học máy có khả năng phát hiện các mẫu tấn côngmới, không có trong cơ sở dữ liệu Phương pháp này tuy hiện đại và có nhiều ưuđiểm, song vẫn tồn tại một số điểm yếu, do được xây dựng với mô hình hoc máy,vẫn có tỷ lệ âm tính giả (mẫu tân công nhưng nhận dạng là mẫu bình thường) vàdương tính giả (mẫu bình thường nhưng phát hiện là mẫu tan công)
Do các giải pháp WAF đều có kha năng bị qua mặt, những bên tắn công cóthé lợi dụng điều này để tìm ra cách biến đổi mẫu tan công như SQL injection đểtấn công vào trang web mà không bị phát hiện và ngăn chặn, từ đó, thực hiện tấn
công sâu vào bên trong ứng dung web.
2.2 Tấn công SQL injection
2.2.1 Tong quan
Tan cong SQL injention hay goi tat là tan công SQLi là một trong những loại tancông vào trang web thông qua các lỗ hổng tổn tại trong quá trình xây dung trangweb Có rất nhiều loại tấn công thông qua lỗ hổng trên trang web nhưng có thể
nói SQLi là một trong những loại tấn công nguy hiểm nhất, nó ảnh hưởng trực
tiếp đến cơ sở dữ liệu, nơi lưu trữ toàn bộ thông tin của tổ chức, doanh nghiệp, cánhân, khách hàng Bên cạnh đó, SQLi lại càng nguy hiểm hơn với cách thức tấn
công vô cùng đa dạng Ảnh hưởng có nó lên các hệ thống là cực kỳ lớn, các bộ dữ
Trang 22Chương 2 COSO LY THUYẾT
iéu chứa các thông tin quan trọng có thé bi đánh cắp và trao đổi trái phép thông
qua lỗ hổng này, gây thiệt hại cực kỳ nghiêm trọng.
Các chiến dịch tấn công SQLi nhắm vào các lỗ hổng ở các đầu vào của ứng
dụng web, có thể là ô nhập thông tin, url hay qua các gói tin mà tin tặc bắt được,chỉnh sửa và gửi đến máy chủ ứng dụng web
Dưới tác động lớn lên toàn bộ dữ liệu, lỗ hổng này có thể bị khai thác với nhiều
mục đích của bên tân công như đánh cắp đữ liệu, xáo trộn dữ liệu, cản trở hoạt
động của hệ thống, dẫn đến các dịch vụ trì trệ hoặc thậm chí dừng hoạt động
2.2.2 Cau trúc của một câu lệnh SQL
Câu lệnh truy van của SQL được cau thành từ các thành phan chinh nhu:
° Keyword: Day là các lệnh được định nghĩa sẵn để thực hiện các thao tác lên
cơ sở dữ liệu.
Ví dụ: ADD, ADD CONSTRAINT, ALL, ALTER, ALTER COLUMN, UNION, UNION ALL, UNIQUE, UPDATE, VALUES, VIEW, WHERE.,
® Expressions: Đây là một biểu thức với sự kết hợp giữa các giá trị, hàm va
toán từ nhằm đưa về một giá trị nhất định, nó thường đứng sau các keyword
như SELECT, WHERE, HAVING, ORDER BY
¢ Function: Các hàm dùng để xử ly hoặc điều khiển quá trình thực thi của cơ
sở dữ liệu
Ví dụ: pg_sleep(), sleep(), WAITFOR DELAY, WAITEFOR TIME, , COUNT(), ROUND(), SUM(), MAX(),
© Bareword: Day là các phần như tên bảng, tên cột,
* Comment: Phan chú thích, không ảnh hưởng đến quá trình thực thi chuỗi
truy vấn
® Ngoài ra còn có các thành phần khác như các ý tự đặc biệt, ở mỗi cơ sở dữ
liệu cũng có các đặc trưng khác nhau.
10
Trang 23Chương 2 COSO LY THUYẾT
2.2.3 Cách thức tan công
Kẻ tấn công nhắm vào các điểm dit liệu đầu vào của ứng dụng, ở đây, dữ liệu từ
người dùng được xử lý và truy vấn vào cơ sở đữ liệu Chính vì vậy, đây là nơi
nhạy cảm nhất, rất dé tồn tại lỗ hổng gây ảnh hưởng đến toàn bộ cơ sở dữ liệunếu không được thiết kế đúng cách
Có 3 hình thức mà kẻ tan công có thê thực hiện:
° Ứng dụng cho phép thực thi trực tiếp câu truy van đầy đủ từ người dùng,
điều này giúp cho bên tấn công thực thi các lệnh tùy ý, cực kỳ nguy hiểm
Ví dụ: SELECT * FROM Table;
Kẻ tấn công thực thi trực tiếp câu truy vấn thông qua các đầu vào của ứngdụng web Trả về toàn bộ thông tin của bảng, điều này thực sự nguy hiểm
hơn với các thao tác xóa, sửa dữ liệu.
¢ Đóng chuỗi truy van chuẩn bị sẵn bằng dau nháy đơn, bên tan công có thể
đóng dấu nháy đơn, kết thúc xác định giá trị truy vân và thực hiện các hàm
Ví dụ: SELECT * FROM Users WHERE username = ‘admin’ AND password
= wy OR
“-Trong ví dụ này, bên tan công có thể qua mặt câu lệnh xác thực và có thể
truy vẫn với user admin
¢ Đóng chuỗi truy vấn chuẩn bị sẵn bằng dấu nháy kép, tương tự khi thực
hiện với dấu nháy đơn, kẻ tấn công cũng có thể thực thi lệnh bên cạnh câutruy vân được thiết kế sẵn
Ví dụ: SELECT * FROM Users WHERE username = "admin" AND password
=" OR "1"="1';
Tương tự với thủ thuật đóng vùng nhặp dữ liệu bằng dấu nháy đơn, kỹ thuật
đóng bằng dấu nháy kép cũng có chức năng và mục đích tương tự
Đây chỉ là 3 hình thể chính để thực hiện khai thác lỗ hổng SQL injection, ngoài
ra, tuy vào loại cơ sở dữ liệu và phiên bản của nó mà còn có thể áp dụng các kỹ
thuật khác.
11
Trang 24Chương 2 COSO LY THUYẾT
2.2.4 Các loại tan công SQL injection
In-band SQLi (Classic SQLi)
In-band SQLi là loại tan công cơ bản nhất thông qua các lỗ hổng SQL injection,như khái niệm của lỗ hổng SQL injection, kẻ tấn công sẽ lợi dụng các điểm đầu
vào của ứng dụng web, nơi các dữ liệu được đưa vào như form đăng nhập, thanh
tìm kiếm, hoặc URL, không được xử lý đúng cách làm xuất hiện lỗ hổng SOLinjection Trạng thái của ứng dụng khi bi tan công sẽ thể hiện lên chính nơi mabên tan công thực hiện khai thác, có thé dé dang quan sát kết quả khi tan công
Có hai phân loại tan công là Error-based SQLi va Union-based SOLi
¢ Error-based SQLi Hình thức tấn công này dựa trên thông điệp thông báo
lỗi của ứng dụng khi bên tan công đưa vào dữ liệu không hợp lệ là cho cơ
sở dữ liệu gặp lỗi khi thực thi Điều nguy hiểm là thông điệp thông báo lỗiđược hiện trực tiếp trên giao diện người dùng và nó chứa rất nhiều thôngtin hữu ích cho kẻ tan công Đầu tiên, bên tấn công có thể biết được trangweb này tôn tại lỗ hổng SQL injection, hơn nữa các thông tin có thể bị lộ ranhư phiên bản của cơ sở dữ liệu, cau trúc cơ sở dữ liệu, từ những thông
tin này, bên tấn công có thể tiền hành các bước tiếp theo nhằm khai thác sâu
hơn lỗ hổng.
* Union-based SQLi Bên tấn công sử dụng lệnh UNION để kết hợp kết qua
của nhiều lệnh SELECT lại thành 1 và hiển thị ra màn hình, với kỹ thuật này,
bên tan công có thể lay được dữ liệu từ cơ sở dữ liệu bằng cách sử dụng hàm
SELECT vào cơ sở dữ liệu của ứng dụng và kết hợp nó với lệnh SELECT có
cau trúc Loại tan công này có thể làm lộ cơ sở dữ liệu cho bên tan công
Inferential SOLi (Blind SQLi)
Khác với In-band SQLi (Classic SQLi), tan công Inferential SQLi có cách thức khai
thác phức tạp hơn Bên tắn công không thể nhận biết kết quả tan công thành cônghay không thông qua giao diện người dùng, loại tấn công này áp dụng cho các lỗhổng mà không in bat kỳ dữ liệu nào trực tiếp ra màn hình của người dùng màbên tấn công phải nhận biết thông qua các dấu hiệu khác Thay vì việc xác định
lỗ hổng thông qua dữ liệu trả vẻ, bên tan công có thể xác định và biết được cấu
12
Trang 25Chương 2 COSO LY THUYẾT
trúc của cơ sở dữ liệu thông qua dấu hiệu thời gian phan hồi, các phản hồi của
trang web.
Có hai hình thức xác định của tan công Inferential SQLi là Boolean-based va
Time-based.
* Boolean-based (content-based) Blind SQLi Ở loại tấn công này, bên tan
công sẽ mat nhiều thời gian để tìm hiểu cấu trúc thiết kế cơ sở đữ liệu do
phải thử qua rất nhiều mẫu tấn công đầu vào với mong muốn ứng dụng
phản hồi lại một số dấu hiệu nhân biết từ phản hồi của gói HTTP Từ cácphản hồi này, kẻ tấn công có thể suy luận ra cách thức tiến hành các bướckhai thác tiếp theo
e Time-based Blind SOLi
Một cách thức khác là dựa vào thời gian phan hồi từ ứng dụng khi thực thicác hàm chỉ định độ trễ của cơ sở dữ liệu Bên tấn công xác định sự tổn tại
của lỗ hổng bằng cách suy luận lỗ hổng có tôn tại hay không do cơ sở dữ
liệu sẽ thực thi lệnh được chèn vào.
Out-of-band SOLi
Khác với các cách thức tan công In-band SQLi, khi không thể quan sát kết quả
thông qua giao diện người dùng hoặc qua các phản ứng của ứng dụng để suy luận thì bên tấn công sẽ thực hiện phương pháp tấn công Out-of-band SQLi Với
phương pháp tan công này, kẻ ấn công sẽ phải thông qua những kênh truyền dữliệu khác để quan sát kết quả như DNS, bên tan công có thể chèn kết quả trả vềvào domain name và có thể xem được từ DNS server
2.3 Thư viện libinjection
Đây là thư viện mã nguồn mở được viết bằng ngôn ngữ C được phát triển bởi
Nick Galbreath (21, với mục đích phân tích chuỗi đầu vào phát hiện mẫu tấn
công SQL injection thông qua các bộ quy tắc, chuỗi định nghĩa cấu trúc Được sử
dụng bởi ModSecurity, Ironbee WAF, Glastopf Honeypot.
Đây là một thư viện mạnh mẽ trong việc phân tích các mẫu tan công SQLi, cụ
thể, cách thức hoạt động của thư viện như sau:
13
Trang 26Chương 2 COSO LY THUYẾT
© Tokenization: chuyển payload thành một day các token bao gồm các từ, ky
tự riêng lẻ.
® Duyệt qua toàn bộ cơ sở dữ liệu để phân loại các token và gắn nhãn cho
chúng.
s® Nhóm các token đặc biệt thành 1 token phức tạp hơn, nhóm nay đã được
định nghĩa có định thành một chuỗi loại token, được gọi là fingerprints
* So sánh các nhãn này với một bộ đặc trưng được định nghĩa sẵn để xác định
xem đây có phải là tấn công SQLi hay không
Các loại token mà thư viện libinjection có thể phân loại là:
variable, string, regular operator, unknown, number, comment, keyword,
group-like operation, union-like operator, logical operator, function, comma, semi-colon, left parens, right parens
Tuy nhiên thu viện này van có một số hạn chế khi phân tích các chuỗi truy
vấn cơ sở dit liệu PGSQL / Oracle và các payload có kích thước quá lớn
Đây là một thư viện hiệu quả trong việc phân tích mẫu tấn công, có thể sửdụng khả năng phân tích này vào nhiều mục đích khác nhau Trong nghiên cứu
này, tác gia ứng dụng khả năng phân tích token của thư viện này để phân tích các
mau tân công SQLi thành các phan có phân loại nhất định nhằm phục vụ bước
biến đổi payload cũng như bước trích xuất dữ liệu huấn luyện
2.4 GAN
2.4.1 Giới thiệu về GAN
GAN là viết tắt của Generative Adversarial Networks là một mô hình học sâu, mô
hình này được phát triển bởi lan J Goodfellow, Jean Pouget-Abadie, Mehdi Mirza,
Bing Xu, David Warde-Farley, Sherjil Ozairt, Aaron Courville, Yoshua Bengio BÌ.
Như tên gọi của nó, mô hình này có khả năng sinh ra các dữ liệu dựa trên các
dit liệu có sẵn Mô hình này gồm có 2 thành phần chính là bộ sinh và bộ phânbiệt Bộ sinh có nhiệm vụ sinh ra mẫu sao cho giống với dữ liệu mục tiêu nhất,
14
Trang 27Chương 2 COSO LY THUYẾT
bộ phân biệt sé cải thiện và tang cường độ chính xác trong việc phan biệt dữ liệu
mà bộ sinh sinh ra Qua thời gian huấn luyện, khi cả 2 bộ đều được tối ưu thì dữliệu sinh ra từ bộ sinh sẽ càng chất lượng
Công thức hàm mục tiêu của GAN như sau:
min max V(D,G) = Ex~p„„„(x) [log D(x)]
+ Ez~p,(z)[log(1— D(G(2)))) (2.1)
Trong đó, G là mang sinh, D là mang phân biệt Ham mục tiêu trên sẽ la mục
tiêu huấn luyện của mô hình, ở đây G sẽ tối thiểu hóa khả năng nhận diện của D
và D sẽ tăng cường khả năng phân biệt của nó.
© x là dữ liệu được lay từ bộ dữ liệu thật
e z là dữ liệu nhiễu.
* logD(x): đây là Logarit của xác suất mà D phân biệt va gán nhãn cho dữ liệu
thật.
* log(1-D(G(z))): đây là Logarit của xác suất mà D phân biệt và gan nhãn cho
dữ liệu sinh ra bởi G và dữ liệu nhiễu.
2.4.2 cGAN
cGAN là viết tat của Conditional Generative Adversarial Networks (6 , day la
một mô hình biến thể của GAN Cũng với các khái niệm cơ bản kế thừa từ GAN,
cGAN cũng là mô hình hướng tới sinh ra các dữ liệu dựa trên các bộ dữ liệu có
sẵn Tuy nhiên, cGAN có điểm cải tiến so với GAN truyền thống với thêm mộtđầu vào điều kiện vào cho cả bộ sinh và bộ phân biệt Điều kiện này có thể là bat
cứ thứ gì của loại dữ liệu, tùy vào ý đồ thiết kế của nhà nghiên cứu, ví dụ như
nhãn hay thuộc tính của mẫu, nó giúp dữ liệu được sinh ra có kiểm soát hơn.
Cũng vì vậy, hàm mục tiêu của cGAN cũng có sự khác biệt:
15
Trang 28Chương 2 COSO LY THUYẾT
min max V(D, G) = Ex, y~paata(x,y) [10g D(X, y)]
GD
+ Ez~p,(z),y~p(y) |!09(1— D(G(Z, y), y))] (2.2)
Nhu có thể thấy, việc tính toán của G và D còn phụ thuộc thêm vào y, y ở đâychính là đầu vào điều kiện của mô hình cGAN
Trong dé tài này, tác giả dua vào mô hình cGAN để xây dựng nên phươngpháp đề xuất với mục tiêu tạo ra một mô hình có khả năng sinh ra các chiến lượcbiến đổi định dang để áp dụng thay đổi định dang của mẫu tan công, từ đó nétránh được hệ thống tường lửa
2.5 Thư viện Tensorflow
Tensorflow là một thư viện mã nguồn mở được kế thừa từ TensorFlow được kếthừa từ DistBelief do nhóm Google Brain của Google phát triển và công bố năm
2015 Thư viện này được áp dụng rất phổ biến cho các sản phẩm, nghiên cứu ứng
dụng xây dựng mô hình học sâu, học máy.
Thư viện Tensorflow được viết bằng ngôn ngữ C++ và Python, được tối ưu
cả về hiệu suất và tính dễ sử dụng của nó Thư viện này hỗ trợ nhiều ngôn ngữ
lập trình khác nhau như Python, Javascript, chứ không chỉ hỗ trợ C++ như các
thư viện học máy khác Nguyên lý hoạt động dựa trên khái niệm đồ thị tính toán
(Computational Graphs) Kiến trúc của dé thị này gồm có các nút và các cạnh
Mỗi nút đại diện cho các phép tính toán và các cạnh đại diện cho luồng dw liệu
Tensorflow cho phép người sử dụng thiết kế một mô hình tùy chỉnh hoặcnhiều lớp mạng các nút Nhà phát triển có thể tự định nghĩa cách mà dữ liệuđược lan truyền qua các nút Các dit liệu được tính toán qua các nút có dang làmột mảng đa chiều hay được gọi là tensor
Thư viện này có thể hoạt động trên hiéu nền tang va phan cứng khác nhau, cóthể tối ưu huấn luyện khi sử dụng GPU để huấn luyện
Đây là một thư viện mạnh mẽ và tối ưu cho người sử dụng, có thể can thiệp
ở nhiều mức độ phức tạp của mô hình, tận dụng được các thành phần đã nghiên
1ó
Trang 29Chương 2 COSO LY THUYẾT
cứu va thiết kế sẵn giúp giảm rat nhiều thời gian để xây dung một mô hình hoc
máy mà vẫn đảm bảo linh hoạt cho mục đích sử dụng.
Chính vì thế, đây là một thư viện được ứng dụng cho rất nhiều công trìnhnghiên cứu trong nhiều lĩnh vực, đặc biệt là học máy và học sâu Việc kết hợp thưviện này vào lĩnh vực an toàn thông tin cũng đã được rất nhiều nghiên cứu thựchiện, tuy nhiên, ở mỗi nghiên cứu sẽ có cách tiếp cận và mcuj đích khác nhau
Ở đề tài này, tác giả tận dụng sức mạnh mà thư viện này mang lại để xây dựng
mô hình học sâu, đạt được mục đích của nghiên cứu.
2.6 Tan công đối kháng
Đây là loại tan công nhắm vào các mô hình học máy Như đã biết, các mô hìnhhọc máy rất mạnh mẽ và chính xác trong phân loại các loại dữ liệu, đặc biệt làphân lại các tấn công web dựa trên các đặc trưng của nó Tấn công đối khángnhắm vào mục tiêu làm giảm tính chính xác của các hệ thống học máy, từ đó làmgiảm đi sức mạnh của hệ thống phòng thủ, sau đó tấn công vào thông qua cácđiểm yếu của hệ thống mà không bị phát hiện và ngăn chặn Đối với WAF được
xây dựng bằng các phương pháp học máy, bên tan công nhắm tới mục tiêu làm
cho hệ thống phòng thủ không thể nhận dạng và ngăn chặn các mẫu tấn công,giúp cho kẻ tan công có thể khai thác các lỗ hổng của ứng dụng
Tấn công đối kháng được chia làm hai loại chính, tấn công đầu độc và tấn
công né tránh.
2.6.1 Tan công đầu độc
Cũng giống với tên gọi của loại tấn công đối kháng này, tấn công đầu độc là quá
trình tấn công mà bên tan công cố gắng đưa một lượng các dữ liệu giả mạo, sai
lệch, gây nhiễu vào hệ thống phòng thủ máy học Mục tiêu của loại tan công nay
là làm cho mô hình dự đoán lệch lạc, giảm độ chính xác của dự đoán.
2.6.2 Tấn công né tránh
Tan công né tránh là kỹ thuật tan công mà bên tan công cố gắng thực hiện các
thao tác lên dữ liệu đầu vào, các thao tác này được thiết kế dac biệt nhằm vượt
17
Trang 30Chương 2 COSO LY THUYẾT
qua các hệ thống phòng thủ Mục tiêu của loại tan công này là lam cho mô hìnhphòng thủ học máy không thể phát hiện hoặc phân loại không chính xác đầu vào
là mẫu tấn công nguy hiểm Đây là loại tan công cực kỳ nguy hiểm do các mẫutấn công này một khi không thể bị phát hiện và ngăn chặn sẽ tác động trực tiếp
vào ứng dụng web.
Đối với các tường lửa ứng dụng WAF được huấn luyện để phát hiện tan côngdựa trên mô hình học máy, phương thức tấn công né tránh có thể được bên tấncông áp dung để tiến hành các chiến dich tan công
Đối với lỗ hổng SQL injection các mẫu tân công đầu vào hoàn toàn có thể thayđổi về định dạng ký tự, cau trúc, độ dai, với một mô hình tường lửa ứng dụnghọc máy không đủ mạnh mẽ, các mẫu tan công có thể dé dang né tránh, bỏ qua vatác động sâu hơn vào ứng dụng Chính vì vậy, việc giảm đến tối thiểu khả năng
bỏ qua hệ thống phòng thủ của các hệ thống phòng thủ là cực kỳ quan trọng, để
làm được điều đó, cần đánh giá điểm yếu mà mô hình đang mắc phải, tìm được
các biến đổi có khả năng qua mặt hệ thống phòng thủ để huấn luyện tường lửa
ứng dụng web mạnh mẽ hơn, chính xác hơn
2.7 Các công trinh nghiên cứu liên quan
Có không ít các nghiên cứu về các biện pháp để đánh giá khả năng nhận diện
của hệ thống phát hiện các mẫu tấn công độc hại Tiêu biểu như nghiên cứu sinhmẫu tấn công bằng phương pháp học tăng cường do nhóm tác giả Yuting Guan
(4Ì, nghiên cứu sử dụng thuật toán soft actor-critic (SAC) kèm với phương pháp
xử lý vector tinh và động cho mục đích tiền xử lý mẫu tấn công gốc Đầu tiên,mẫu tấn công sẽ được đưa về định dạng gốc ban đầu (chưa áp dụng bat cứ chiếnthuật biến đổi ký tự nào vào mẫu), sau đó biến đổi mẫu tân công, biến đổi địnhdạng mẫu bằng cách thêm ký tự, biến đổi ký tự dựa trên mẫu tấn công gốc nhưngphải đảm bảo chức năng, mục đích tấn công của mẫu ban đầu Để đạt được mụctiêu tấn công vào các hệ thống phát hiện tan công, tác giả đã sử dung SAC với
môi trường là hệ thống phát hiện tấn công được xây dựng và huấn luyện các
mô hình phát hiện (dựa trên các thuật toán MLP, CNN, LSTM, SVM, AdaBoost,
RandomForest, XGBoost, GradientBoost) sau đó đánh giá hiệu suất của phương
18
Trang 31Chương 2 COSO LY THUYẾT
pháp được nghiên cứu, kết quả cho thấy hiệu suất của hệ thống phát hiện mẫutấn công SQL injection là có hiệu quả hơn rõ rệt
Bên cạnh nghiên cứu trên, một nghiên cứu về phương pháp sử dụng mạngsinh đối kháng để tiến hành tạo mẫu tấn công XSS do nhóm tác giả AnkurChowdhary thực hiện ñl, với mục tiêu dùng mô hình mạng sinh đối kháng(GAN) để biến đổi định dang mẫu tan công XSS né tránh hệ thống nhận dang,
phát hiện tan công Ở nghiên cứu này, tác giả dùng phương pháp tách các phần
của một mẫu tấn công XSS (XSS payload) và phân loại theo vị trí tương ứng nhưphan đầu, phần thân, phần đuôi của các mẫu tan công để tạo nên bộ dữ liệu huấnluyện, sau đó tiến hành sinh mẫu bằng cách ghép các phần lại tạo thành một mẫutấn công hoàn chỉnh mới, đánh giá khả năng vượt qua hệ thống phát hiện tancông và khả năng tấn công của mẫu được sinh ra Để làm được điều này, tác giả
đã áp dụng kỹ thuật Monte Carlo (MC) search quá trình sinh mẫu tan công
Gần đây nhất, vào tháng 1 năm 2024, nhóm tác giả gồm Zhenging Qu, Xiang
Ling, Ting Wang, Xiang Chen, Shouling Ji, Chunming Wu <tác giả > cũng có
nghiên cứu liên quan đến phương pháp sinh mẫu tan công SQL injection bằng
các phương pháp học máy Ở nghiên cứu này, tác giả đã sử dụng kỹ thuật quy
luật biến đổi logic, biến đổi ký tự của chuỗi truy van SQL query để thay đổi định
dang chuỗi tan công Tuy nhiên, so với hai nghiên cứu trước, thì tác giả đã ápdung cách tiếp cận khác Cu thể, tác giả đã tiến hành phân tích chuỗi tấn côngSQL injection thành các phần khác nhau gọi là token và phân loại chúng theo vaitrò trong câu truy van Tiếp đến tác giả áp dụng các quy tắt được gọi là Context-free Grammar cho từng phần này trên và lưu các biến đổi của từng phần vào một
ma trận 2 chiều, chiều thứ nhất thể hiện phân loại token, chiều thứ hai thể hiệncác kết quả có thể thay thế cho token đó Sau đó tác giả áp dụng phương pháphọc tăng cường MCTS để tìm ra các tahy thế tối ưu để né tránh
Cả ba nghiên cứu đều nhắm tới việc tạo ra mẫu tấn công nhắm vào mục tiêuđánh lừa, qua mặt được hệ thống phát hiện tấn công nhưng vẫn đảm bảo được
khả năng tấn công của mẫu Tuy nhiên, mỗi nghiên cứu lại có hướng đi khônggiống nhau, với nghiên cứu của nhóm tác giả Yuting Guan sinh ra mẫu tấn côngnhắm vào lỗ hỏng SQL injection với yêu cầu mẫu mới được tạo từ mô hình phảigiữ được mục đích chức năng ban dau của bên tan công, sự thay đổi về định dang
không làm thay đổi mong muốn và khả năng tấn công ban đầu của mẫu Tiếp cận
19
Trang 32Chương 2 COSO LY THUYẾT
theo hướng khác, nghiên cứu của nhóm tác giả Ankur Chowdhary, Kritshekhar
Jha, va Ming Zhao đưa ra mô hình sinh mẫu nhắm vào lỗ hổng XSS bằng phương
pháp phân tích mẫu tan công trong bộ dữ liệu thành các phần, sau đó ghép các
phan của một payload tan công lại thành một mẫu tan công hoàn chỉnh, sau đókiểm tra khả năng tấn công của mẫu vào thực tế để đánh giá hiệu quả của mô
hình Ở nghiên cứu thứ 3 của nhóm tác giả Zhenging cũng hướng tới tan công
SQL injection và vẫn giữ được mục đích tân công, tuy nhiên áp dụng cách thứbiến đổi mới thông qua Context-free Grammar
20
Trang 33Chương 3
PHƯƠNG PHÁP THỰC HIỆN
Tóm tắt chương
Ở chương này, tác giả xin trình bày chỉ tiết phương pháp đề xuất mà đề tài hướng
tới, từ mô hình tổng quan đến chỉ tiết các thành phần bộ phân loại học máy củatường lửa ứng dụng web, bộ biến đổi định dạng và mô hình cGAN được sử dụng
để huấn luyện mô hình học máy sinh mẫu tan công né tránh WAF
3.1 Kiến trúc tổng quát
Trong nghiên cứu này, tác giả sử dụng mô hình học máy đối kháng làm phương
pháp để hiện thực hóa của để tài Dựa trên đặc tính cạnh tranh giữa hai thành
phần của mô hình này là bộ sinh và bộ phân biệt để xây dựng nên một phươngpháp sinh mẫu, đạt được mục tiêu né tránh được hệ thống phân loại của tườnglửa ứng dụng web, cụ thé là tan công SQL injection
Dé đạt được mục đích của dé tài, tác giả tiến hành xây dung mô hình GAN va
huấn luyện nhằm tối ưu cả bộ sinh và bộ phân biệt
Với bộ phân biệt, mô hình học máy dược xây dựng hướng tới mục tiêu trả ra
kết quả dự đoán tương đồng nhất với bộ phân loại của hệ thống tường lửa ứngdụng web Nghĩa là cùng kết quả đầu vào, cả mô hình phân loại của hệ thống
tường lửa ứng dung web và bộ phân biệt của mô hình GAN sẽ cho ra nhãn dự
đoán giống nhau, kết quả dự đoán của 2 mô hình này càng tương đồng thì bộphân biệt càng tối ưu và mô hình GAN sẽ huấn luyện càng chính xác
21
Trang 34Chương 3 PHƯƠNG PHÁP THỤC HIỆN
Với bộ sinh, hướng tới mục tiêu sinh ra các mảng quyết định chiến lược biếnđổi tối ưu nhất để áp dụng vào bộ chuyển đổi, biến đổi định dạng mẫu tấn cônggốc
Với việc sử dụng mô hình cGAN, các mảng sinh ra được tối ưu cho từng mẫu
có đặc trưng khác nhau (các đặc trưng này được trình bày ở phần tiền xử lý)
Mang quyết định chiến lược biến đổi càng tối ưu khi sinh ra mẫu có tỷ lệ bịphát hiện là tan công SQL injection càng thấp
Đồng thời khi huấn luyện bộ phân biệt càng tương đồng thì bộ sinh sẽ càng
sinh ra được các mẫu có chất lượng Nghĩa là khi làm cho mẫu gốc biến đổi định
dạng vượt qua được bộ phân biệt của mô hình GAN thì cũng sẽ né tránh được bộ
phân biệt của hệ thống tường lửa ứng dụng thực tế
Với ý tưởng và mục tiêu trên, tác giả tiến hành xây dựng một mô hình huấnluyện gồm 3 thành phần chính:
* Classifier: bộ phân loại payload tan công
¢ Generator: mô hình sinh
¢ Discriminator: mô hình phân biệt
Như hình|3.1|Các thành phần của mô hình bao gồm:
1 Preprocess payload
2 Preprocess feature
3 Bộ sinh (Generator)
4 Bộ phân biệt (Discriminator)
5 Bộ phân loại chuỗi mẫu
6 Original Payload
7 Noise
8 Action array được sinh ra bởi bộ sinh (Generator)
9 Labels sinh ra từ dự đoán của bộ phân loại (Classifier)
22
Trang 35Chương 3 PHƯƠNG PHÁP THỤC HIỆN
Trang 36Chương 3 PHƯƠNG PHÁP THỤC HIỆN
10 Processed feature chứa các đặc trưng được trích xuất của payload
11 Dữ liệu huấn luyện bộ phân biệt tạo bởi bộ sinh
Cụ thể, các phần này có ý nghĩa như sau:
Bộ sinh (Generator): Mô hình học sâu được xây dựng từ nhiều lớp Dense
nhằm sinh ra các dữ liệu Bộ sinh cố gắng sinh ra các dữ liệu tối ưu nhất để vượt
qua bộ phân biệt Mục đích hướng tới là có thể áp dụng cho nhiều bộ payloadkhác nhau chứ không chỉ bộ payload được huấn luyện
Bộ phân biệt (Discriminator): Đây là mô hình học sâu được xây dựng từ
nhiều lớp Dense Bộ phân biệt có nhiệm vụ mô phỏng chính xác nhất phản ứngcủa bộ phân loại (Classifier) khi nhận các biến đổi áp dụng lên payload gốc được
mô tả như hình cùng một đầu vào sẽ cho ra cùng kết quả, mục đích là để tối
ưu chất lượng dữ liệu sinh ra từ bộ sinh như hình|B.2}
Trong mô hình của phương pháp dé xuất này, bộ sinh và bộ phân biệt đềuthuộc một mô hình GAN Các lớp giữa bộ sinh và bộ phân biệt có liên kết Gradientvới nhau thông qua hàm mat mát Hai mô hình này được huấn luyện đống thời
Bộ phân loại (Classifier): Được xây dựng bằng các mô hình học sâu, dùng đểtạo môi trường thử nghiệp cho phương pháp đề xuất Bộ phân loại mẫu (Classi-fier) là một mô hình riêng biệt, đã được huấn luyện trước, đầu vào của mô hình
này là một chuỗi payload của bộ dữ liệu.
Original Payload: Chuỗi tấn công gốc, các chuỗi này được cung cấp bởi các
bộ dataset có sẵn, đây cũng là bộ dữ liệu chính để huấn luyện bộ phân loại
(Clas-sifier) và mô hình cGAN trong đề tài.
Noise: Dữ liệu nhiễu được đưa vào bộ sinh để sinh ra dữ liệu tạo nên mảng
quyết định chiến lược biến đổi Labels sinh ra từ dự đoán của bộ phân loại, dữ
liệu này sẽ dùng để đánh nhãn cho từng mục dùng để huấn luyện bộ phân biệt
Action array hay có thể gọi là mảng quyết định chiến lược biến đổi định dạng.Được sinh ra bởi bộ sinh giống với Random action choise array, tuy nhiên, dữ liệu
nay được sinh ra từ bộ sinh của mô hình cGAN.
Processed feature chứa các đặc trưng được trích xuất của payload, dữ liệu này
là đầu vào điều kiện của bộ sinh và bộ phân biệt trong mô hình cGAN nhằm sinh
ra các chiến lược biến đổi trên từng payload có đặc trưng khác nhau
Dữ liệu huấn luyện bộ phân biệt, dữ liệu này có cấu trúc tương tự dữ liệu
huấn luyện thực tế, tuy nhiên Processed feature được đưa vào bộ sinh để sinh ra
24
Trang 37Chương 3 PHƯƠNG PHÁP THỤC HIỆN
Transform Preprocess WAF classifier
payload
Original
payload Discriminator
model
HÌNH 3.2: Mục tiêu huấn luyện của bộ phân biệt trong mô hình
GAN a) Classifier và Discriminator dùng đưa ra dự đoán Normal
với cùng đầu vào; b) Classifier và Discriminator dùng đưa ra dự
đoán Attack với cùng đầu vào;
25
Trang 38Chương 3 PHƯƠNG PHÁP THỤC HIỆN
mảng quyết định chiến lược biến đổi tương ứng, 2 dữ liệu này sẽ được kết hợp và
đưa vào bộ phân biện để đáng giá và cải thiện
3.1.1 Luong hoạt động của mô hình GAN
Cụ thể luồng hoạt động của mô hình cGAN trong để tài như sau: Dataset sẽ được
chia làm 2 phần:
© Phan thứ nhất huấn luyện mô hình phân loại (Classifier)
se Phần thứ hai dùng để huấn luyện mô hình GAN
Phần dữ liệu huấn luyện mô hình phân loại sẽ có mẫu tấn công SQL inhection
và tất cả các mẫu bình thường
Phan dữ liệu huấn luyện mô hình GAN chỉ gồm các payload tấn công SQL
injection với sô lượng khoảng hơn 5000 mẫu tấn công trong tổng số các mẫu tấn
công SQL injection trong dataset.
Mô hình phân loại học may (Classifier) được huấn luyện trước, chuẩn bị môitrường để huấn luyện mô hình GAN Sau khi huấn luyện đảm bảo tỷ lệ phát hiện
chính xác của mô hình tiệm cận 100% khi thử bằng bộ dir liệu huấn luyện mô
hình GAN.
Với phan dữ liệu huấn luyện GAN sẽ được xử lý để trích xuất ra các đặc trưng
(feature).
Ở mỗi vòng huấn luyện sẽ thực hiện các bước sau:
© Bước 1: Lấy ngẫu nhiên 1 batch gồm N mẫu từ phan dataset huấn luyện
GAN thu được tập đữ liệu D, với N là số lượng mẫu trong mỗi batch Cácchuỗi tấn công được trích xuất feature và lưu tương ứng vào D tạo ngẫunhiên N mảng quyết định chiến lược biến đổi tương ứng va cũng được tiền
xử lý.
© Bước 2: Dua chuỗi payload trong D va mảng này vào hàm biến đổi để trả
về các chuỗi biến đổi đã xử lý, đưa các chuỗi này vào mô hình tiền xử lý,
sau đó đưa vào bộ phân loại và thu được nhãn tương ứng cho từng mẫu dữ
liệu, lưu danh sách các nhãn.
26
Trang 39Chương 3 PHƯƠNG PHÁP THỤC HIỆN
© Bước 3: Tiến hành X bước huấn luyện bộ phân biệt của mô hình cGAN với
đầu vào là feature của các mẫu, cùng với mảng quyết định chiến lược biếnđổi định dạng ở bước 1 và nhãn tương ứng của các mẫu này ở bước 2
Ở 3 bước đầu này, mục đích là để bộ phân biệt được huấn luyện trước với
phản hỏi từ bộ phân biệt, tránh trường hợp chỉ huấn luyện với dữ liệu sinh
ra từ bộ sinh, gây ra hiện tượng overfiting.
© Bước 4: Lay ngẫu nhiên batch gồm N’ mẫu từ phan dữ liệu feature đã được
trích xuất, tạo N’ noise tương ứng, đưa 2 dữ liệu này vào mô hình sinh Bộsinh tạo ra N’ mảng quyết định chiến lược biến đổi tương ứng, kết hợp các
mảng được sinh ra này và các feature tương ứng, sau đó đưa vào bộ phân
biệt để đánh giá và cập nhật trọng số
© Bước 5: Lấy N’ chuỗi payload gốc tương ứng từ batch được lấy ở bước 4
Ap dụng chiến lược biến đổi được sinh ra tương ứng ở bước 4 thu được
chuỗi tấn công SQL injection đã biến đổi định dạng, đưa các mẫu này vào
bộ phân loại để thu được nhãn thực tế, dùng nhãn này để huấn luyện khả
năng phân biệt.
® Bước 6: Lap lại từ bước 1.
3.2 Tien xử lý dữ liệu
Đối với dữ liệu đầu vào từ dataset, cần lấy hai thuộc tính từ bộ dataset được sử
dụng:
1 Nội dung: Bản gốc của chuỗi payload, các chuỗi này là các mẫu tấn công
hoặc các input bình thường.
2 Nhãn: Phân loại thực tế chuỗi này là tấn công hay bình thường
Từ các dữ liệu được chọn, tiền hành tiền xử lý để phù hợp với đầu vào của các
mô hình.
27
Trang 40Chương 3 PHƯƠNG PHÁP THỤC HIỆN
3.2.1 Tiền xử lý dix liệu cho bộ phân loại (Classifier)
Các chuỗi payload gốc được chuẩn hóa về các giá trị số dựa trên các ký tự có
trong chuỗi Các chuỗi này trước tiên sẽ được đưa về dạng viết thường, tiếp theo,
trích xuất về giá trị số nguyên của ký tự tại từng vj trí tương ứng trong chuỗi.Sau đó đưa về khoảng giá trị trong khoảng [0;1] để đưa vào huấn luyện mô hình
phân loại.
Các ký tự này bao gồm:
abcdefghijklmnopqrstuvwxyz0123456789-»3 eb Pr 7 "USN | _ CER > &*~ 6 +-= <> CO) TIC}
Với mô hình phân loại xây dựng lại dựa trên mô hình phân loại của tác gia Xiang Zhang, Junbo Zhao, Yann LeCun, dữ liệu được xử lý và đưa ra hình dạng
dữ liệu là (400)
Các dữ liệu sau khi được xử lý và đưa vào mô hình phân loại học máy để huấn
luyện.
3.2.2 Tiền xử lý dữ liệu cho mô hình GAN
Đối với mô hình GAN, đữ liệu sẽ được tiền xử lý theo các đặt trưng về loại và
số lượng của token trong payload Dữ liệu này sẽ là đầu vào điều kiện cho cả bộsinh và bộ phân biệt trong mô hình cGAN Cau trúc các thuộc tính như sau:
payloads, union, where, unlike ,like, space, true, false, t, f, and, or,
y, inlinecommand, slc, slr
Với các thuộc tính có ý nghĩa như sau:
1 Payloads: Chita chuỗi tân công SQL injection
2 Union: Số lượng lệnh union trong chuỗi
3 Where: Số lượng lệnh where trong chuỗi
4 Unlike: Số lượng toán tử so sánh khác trong chuỗi
5 Like: Số lượng toán tử so sánh bằng trong chuỗi
28