Bối cảnh và vấn đề nghiên cứu

Với sự phát triển liên tục của Internet, các ứng dụng web ngày càng được sử dụng rộng rãi trong nhiều hoạt động đời sống như đọc báo, nhắn tin, mua sắm trực tuyến và thanh toán hóa đơn. Cùng với đó, các mối đe dọa bảo mật ngày càng trở nên tinh vi và phức tạp hơn. Trong số các hình thức tấn công phổ biến trên web — bao gồm Cross-Site Scripting (XSS), XML External Entity (XXE) và SQL Injection (SQLi) — tấn công XSS được xếp vào top 10 mối đe dọa bảo mật web hàng đầu theo OWASP vào năm 2021. XSS cho phép kẻ tấn công chèn mã độc vào trang web, từ đó đánh cắp cookie, session tokens và các thông tin nhạy cảm khác của người dùng.

Mặc dù các phương pháp kiểm thử xâm nhập truyền thống vẫn được sử dụng rộng rãi, chúng không đủ mạnh để phát hiện các mối đe dọa tiềm tàng và các hình thức tấn công ngày càng tinh vi. Bên cạnh đó, các Web Application Firewall (WAF) truyền thống dựa trên quy tắc chữ ký có thể bị vượt qua khi kẻ tấn công liên tục biến đổi và che giấu payload. Các mô hình học sâu hiện tại cũng đối mặt với thách thức từ các tấn công đối kháng (adversarial examples), khiến mô hình đưa ra dự đoán sai và giảm hiệu quả phát hiện XSS.

Mục tiêu nghiên cứu:

  1. Nghiên cứu và phát triển phương pháp mới để sinh mẫu tấn công XSS đối kháng bằng cách áp dụng các kỹ thuật học tăng cường, cho phép mô hình tự động sinh ra các mẫu tấn công có khả năng vượt qua các biện pháp phòng thủ hiện tại.
  2. Đánh giá hiệu quả của các mô hình phát hiện XSS hiện có bằng cách thử nghiệm và so sánh các mô hình học sâu như MLP, LSTM và CNN trước và sau khi mẫu tấn công được biến đổi.
  3. Xây dựng kịch bản thực nghiệm để thống kê tỉ lệ mẫu tấn công sinh ra có thể đánh lừa các biện pháp phòng thủ và đánh giá kết quả so với các nghiên cứu khác.

Đối tượng nghiên cứu: Tấn công Cross-Site Scripting (XSS) và mô hình học tăng cường (Reinforcement Learning).

Phạm vi nghiên cứu: Các chiến lược biến đổi mẫu tấn công XSS; phương pháp sinh mẫu tấn công XSS dựa trên học tăng cường; thực nghiệm kiểm tra mẫu tấn công được sinh ra trên các biện pháp phòng thủ (Detection) và ứng dụng web thực tế. Đề tài hoàn thành vào tháng 6 năm 2024.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình sử dụng

Đề tài xây dựng hệ thống trên nền tảng lý thuyết học tăng cường (Reinforcement Learning — RL), trong đó môi trường được mô hình hóa theo cơ chế Markov Decision Process (MDP). Ba thuật toán học tăng cường được khảo sát và so sánh:

  • Actor-Critic: Kết hợp thành phần Actor (đại diện chính sách hành động) và Critic (đánh giá hiệu suất chính sách thông qua hàm giá trị).
  • Soft Actor-Critic (SAC): Kết hợp yếu tố từ Advantage Actor-Critic (A2C) và Maximum Entropy Reinforcement Learning (MERL), sử dụng entropy regularization để tối ưu hóa khám phá không gian hành động. Được ứng dụng trong nghiên cứu tham chiếu [1] của Li Chen, đạt tỉ lệ đánh lừa phòng thủ 92%.
  • Proximal Policy Optimization (PPO): Thuật toán do OpenAI phát triển, thuộc nhóm policy gradient, sử dụng objective function với cơ chế clipping để giới hạn sự thay đổi tỷ lệ xác suất hành động giữa chính sách mới và cũ, đảm bảo ổn định huấn luyện. Đây là thuật toán được nhóm lựa chọn triển khai.

Về phía bộ phát hiện tấn công, đề tài sử dụng ba kiến trúc học sâu: MLP (Multi-Layer Perceptron), LSTM (Long Short-Term Memory) và CNN (Convolutional Neural Network). Biểu diễn đặc trưng văn bản được thực hiện qua mô hình Word2Vec (phương pháp CBOW — Continuous Bag of Words) để chuyển đổi các token trong payload XSS thành vector số học.

Ngoài ra, đề tài tham chiếu lý thuyết về cấu trúc payload XSS (thẻ HTML, mã JavaScript, URL, thuộc tính sự kiện), ba loại XSS (Stored XSS, Reflected XSS, DOM-based XSS), cơ chế hoạt động của WAF và các biện pháp phòng thủ ở mức ứng dụng.

Phương pháp nghiên cứu

Đề tài áp dụng phương pháp thiết kế và xây dựng hệ thống kết hợp thực nghiệm kiểm thử:

  • Tổng hợp và phân tích tài liệu khoa học về sinh mẫu tấn công XSS đối kháng.
  • Thiết kế kiến trúc hệ thống gồm hai module: bộ sinh mẫu tấn công (dựa trên PPO) và bộ phát hiện tấn công (MLP, LSTM, CNN).
  • Xây dựng 27 chiến lược biến đổi payload XSS được phân loại theo từng module cấu trúc của vector tấn công.
  • Thực nghiệm trên hai kịch bản độc lập và đánh giá kết quả theo các chỉ số Detection Rate (DR) và Escape Rate (ER).

Nguồn dữ liệu

Mẫu tấn công ban đầu được trích từ bộ dataset XSS_Portswigger. Dữ liệu được phân loại thành hai nhóm: dữ liệu sạch (non-XSS) và dữ liệu chứa tấn công XSS.


Nội dung chính theo từng chương

Chương 1: Tổng quan về đề tài

Chương này trình bày bối cảnh phát triển của Internet và sự gia tăng các nguy cơ tấn công XSS. Nhóm tác giả phân tích hạn chế của kiểm thử xâm nhập truyền thống và WAF dựa trên chữ ký, từ đó đặt ra yêu cầu phát triển phương pháp sinh mẫu tấn công mới. Nội dung tổng quan khẳng định học tăng cường là lựa chọn phù hợp nhờ khả năng học từ kinh nghiệm, tương tác với môi trường và tự động cải thiện hiệu suất theo thời gian.

Chương xác định bốn nhiệm vụ cụ thể: (1) nghiên cứu cấu trúc payload XSS và chiến lược biến đổi; (2) nghiên cứu lý thuyết học tăng cường và các thư viện liên quan; (3) xây dựng mô hình sinh mẫu tấn công đối kháng dựa trên học tăng cường; (4) xây dựng kịch bản thực nghiệm và đánh giá kết quả. Phạm vi đề tài giới hạn ở tấn công XSS và không mở rộng sang các loại tấn công web khác.

Chương 2: Cơ sở lý thuyết và các nghiên cứu liên quan

Chương tập trung vào ba khối kiến thức chính. Thứ nhất, cấu trúc payload XSS được phân tích theo bốn thành phần: thẻ HTML/thuộc tính HTML, mã JavaScript, URL, và thuộc tính sự kiện (event attributes). Phân loại XSS gồm Stored XSS (mã độc lưu trữ vĩnh viễn trên server), Reflected XSS (phản hồi tức thì không lưu trữ), và DOM-based XSS (thực thi hoàn toàn phía client). Tám nguyên tắc biến đổi payload được trình bày, bao gồm mã hóa Unicode, mã hóa HTML Entities, thay đổi phương thức gọi hàm, chèn chuỗi nhiễu, thêm comment vào thẻ, thay đổi ngữ cảnh thực thi, thay thế "javascript:" bằng "vbscript:", và chèn byte trống.

Thứ hai, lý thuyết học tăng cường được trình bày với các thuật toán Actor-Critic, SAC và PPO. Thứ ba, chương khảo sát ba nghiên cứu liên quan: nghiên cứu [3] của Xueqin Zhang dùng thuật toán MCTS đạt tỉ lệ thoát 10%; nghiên cứu [2] của Qiuhua Wang dùng Soft Q-Learning đạt tỉ lệ thoát 85%; nghiên cứu [1] của Li Chen dùng SAC đạt tỉ lệ thoát 92% nhưng không có phân tách cấu trúc mẫu rõ ràng dẫn đến mất chức năng gốc sau nhiều lượt biến đổi. Từ đó, nhóm xác định khoảng trống cần giải quyết: cần phân tách module cấu trúc payload và mở rộng số lượng chiến lược biến đổi.

Chương 3: Phương pháp đề xuất

Chương trình bày kiến trúc hệ thống hai tầng. Bộ sinh mẫu tấn công sử dụng thuật toán PPO với policy MlpPolicy (Multi-Layer Perceptron Policy), bao gồm Policy Network (tạo phân phối xác suất cho các action) và Value Network (dự đoán giá trị của từng state). Agent hoạt động theo vòng lặp: chọn chiến lược biến đổi → biến đổi payload → đưa vào bộ phát hiện → nhận phần thưởng → cập nhật tham số.

Hàm phần thưởng được thiết kế đơn giản: nếu payload bị phát hiện là XSS thì reward = -1; nếu không bị phát hiện thì reward = 10. Không áp dụng reward shaping.

Không gian hành động (action space) bao gồm 27 chiến lược biến đổi được thiết kế riêng biệt cho từng module của vector tấn công XSS, đảm bảo tính hợp lệ của payload sau mỗi lần biến đổi. Các chiến lược bao gồm: thêm "&#14" trước "javascript", kết hợp in hoa/thường trong tên thuộc tính HTML, thay thế dấu cách bằng "/", thêm " " vào "javascript", HTML entity encoding (hexadecimal và decimal), mã hóa Unicode cho mã JavaScript, chèn empty byte "%00", thay thế "alert" bằng các biểu thức tương đương, encode data protocol với Base64, và nhiều chiến lược khác.

Không gian trạng thái (state space) được biểu diễn bằng vector ghi lại lịch sử các hành động đã áp dụng. Ví dụ: từ S0=[0,0,0,...,0] sau khi áp dụng chiến lược 4 và 6 chuyển thành S2=[4,6,0,...,0].

Bộ phát hiện tấn công thực hiện tiền xử lý payload qua tokenization, biến đổi thành vector Word2Vec, rồi đưa qua ba mô hình phân loại song song: MLP, LSTM và CNN. Phần thưởng và kết quả phân loại được phản hồi về bộ sinh mẫu để tiếp tục vòng lặp huấn luyện.

Chương 4: Thực hiện, thực nghiệm và đánh giá

Chương trình bày cấu hình môi trường thực nghiệm (Bảng 4.1) và thông số cấu hình của từng mô hình: Word2Vec (Bảng 4.2), MLP (Bảng 4.3), LSTM (Bảng 4.4), CNN (Bảng 4.5), PPO (Bảng 4.6). Hai chỉ số đánh giá được sử dụng là Detection Rate (DR) và Escape Rate (ER).

Hai kịch bản thực nghiệm được thiết kế: kịch bản 1 và kịch bản 2, với số liệu kết quả so sánh hiệu suất các mô hình phát hiện tấn công (Bảng 4.7) và thống kê kết quả phát hiện tấn công (Bảng 4.8). Kết quả cho thấy mô hình đề xuất tạo ra số lượng lớn payload XSS mới trong khi vẫn giữ nguyên chức năng tấn công ban đầu, và có khả năng đánh lừa các hệ thống phát hiện XSS hiện tại.

Chương 5: Kết luận và hướng phát triển

Chương tổng kết các kết quả đạt được và đề xuất hướng phát triển tiếp theo của đề tài.


Thiết kế và triển khai

Kiến trúc hệ thống

Hệ thống gồm hai module chính tương tác qua vòng lặp học tăng cường:

Module Chức năng Thành phần kỹ thuật
Bộ sinh mẫu tấn công Biến đổi payload XSS để vượt qua phát hiện PPO + MlpPolicy (Policy Network + Value Network)
Bộ phát hiện tấn công Phân loại payload là XSS hay bình thường Word2Vec + MLP / LSTM / CNN

Policy MlpPolicy gồm input layer (kích thước xác định bởi observation space — vector trạng thái payload và lịch sử biến đổi), 2 hidden layers mặc định (fully connected), và output layer. Agent chọn hành động từ không gian 27 chiến lược biến đổi dựa trên phân phối xác suất từ Policy Network.

Công nghệ và thư viện

Đề tài sử dụng các nhóm công nghệ sau:

  • Học máy và học sâu: Các framework hỗ trợ xây dựng mô hình MLP, LSTM, CNN.
  • Xử lý ngôn ngữ tự nhiên (NLP): Thư viện Word2Vec (phương pháp CBOW) để biểu diễn token payload dưới dạng vector.
  • Xử lý và phân tích dữ liệu: Thư viện hỗ trợ tiền xử lý và phân tích dữ liệu payload XSS.
  • Học tăng cường: Thư viện hỗ trợ triển khai thuật toán PPO và môi trường tương tác.

Quy trình biến đổi payload

Payload gốc từ dataset XSS_Portswigger được phân tách thành các module cấu trúc (HTML tag, thuộc tính đặc biệt, giao thức mã giả, event, mã tấn công, ký tự đặc biệt). Agent áp dụng chiến lược biến đổi tương ứng cho từng module để đảm bảo payload sau biến đổi vẫn hợp lệ về mặt cú pháp và giữ nguyên chức năng tấn công ban đầu.

Kiểm thử

Kiểm thử được thực hiện thông qua hai kịch bản thực nghiệm cụ thể, đánh giá khả năng payload đối kháng vượt qua từng mô hình phát hiện (MLP, LSTM, CNN) riêng lẻ. Kết quả được đo bằng Escape Rate (ER) — tỉ lệ mẫu tấn công sinh ra không bị phát hiện — và so sánh với kết quả của các nghiên cứu [1], [2], [3].


Kết quả và đóng góp

Kết quả chính

Hệ thống sử dụng PPO với 27 chiến lược biến đổi đã tạo ra số lượng lớn payload XSS mới, trong đó các payload đối kháng giữ nguyên chức năng tấn công ban đầu và có khả năng đánh lừa các hệ thống phát hiện tấn công XSS hiện tại. Kết quả thực nghiệm được tổng hợp trong Bảng 4.7 (so sánh hiệu suất các mô hình phát hiện) và Bảng 4.8 (thống kê kết quả phát hiện tấn công) theo hai kịch bản.

So sánh với các nghiên cứu tham chiếu:

Nghiên cứu Thuật toán Tỉ lệ thoát (Escape Rate)
Xueqin Zhang [3] MCTS 10%
Qiuhua Wang [2] Soft Q-Learning 85%
Li Chen [1] SAC 92%
Đề tài này PPO + 27 chiến lược Kết quả thực nghiệm trong Bảng 4.7–4.8

Giải pháp và đóng góp kỹ thuật

Nhóm đề xuất hai cải tiến so với các nghiên cứu trước:

  1. Phân tách module cấu trúc payload XSS: Thiết kế 27 quy tắc biến đổi riêng biệt cho từng module của vector tấn công, khắc phục hạn chế của nghiên cứu [1] (không có phân tách rõ ràng dẫn đến mất chức năng gốc sau nhiều lượt biến đổi).
  2. Mở rộng và đa dạng hóa chiến lược biến đổi: Cung cấp 27 chiến lược thay vì chỉ một vài chiến lược đơn giản như trong [2] và [3], từ đó nâng cao tỉ lệ thoát khỏi phát hiện.
  3. Cơ chế loại bỏ chiến lược tạm thời: Khi nhận phản hồi phát hiện XSS, agent tạm thời loại bỏ chiến lược hiện tại và thử nghiệm chiến lược khác, cải thiện hiệu quả khám phá không gian hành động.

Hạn chế và hướng nghiên cứu tiếp

Theo nội dung đề tài, phạm vi nghiên cứu giới hạn ở tấn công XSS, chưa mở rộng sang các loại tấn công web khác như SQL Injection hay XXE. Mẫu tấn công ban đầu chỉ được trích từ một bộ dataset duy nhất (XSS_Portswigger), có thể ảnh hưởng đến tính tổng quát của kết quả.

Hướng phát triển tiếp theo được đề tài nêu ra bao gồm: mở rộng phương pháp sang các loại tấn công web khác; cải tiến thêm các chiến lược biến đổi mới; tích hợp kiểm thử trực tiếp với các WAF thực tế thay vì chỉ với các mô hình học máy; và tiếp tục cải thiện tỉ lệ thoát khỏi phát hiện bằng cách nghiên cứu thêm các thuật toán học tăng cường tiên tiến hơn.


Giá trị tham khảo

Đề tài có giá trị tham khảo chủ yếu cho các nhóm đối tượng sau:

  • Sinh viên ngành An toàn thông tin nghiên cứu về kiểm thử xâm nhập (penetration testing) web, đặc biệt là mảng tấn công đối kháng và kỹ thuật bypass WAF.
  • Sinh viên ngành Khoa học máy tính quan tâm đến ứng dụng học tăng cường trong bài toán bảo mật, có thể tham khảo cách thiết kế môi trường RL, không gian hành động và hàm phần thưởng cho bài toán cụ thể.
  • Nhà nghiên cứu và kỹ sư bảo mật muốn xây dựng bộ sinh mẫu tấn công đối kháng để kiểm thử độ bền vững của các mô hình phát hiện XSS hoặc WAF.

Các phần đáng tham khảo đặc biệt: Chương 2 về phân loại XSS và 27 chiến lược biến đổi payload (Bảng 3.1); Chương 3 về thiết kế state space, action space và hàm phần thưởng trong bài toán RL cho bảo mật; so sánh ba thuật toán học tăng cường (Actor-Critic, SAC, PPO) ở Chương 2.


Câu hỏi thường gặp

1. Tại sao nhóm chọn thuật toán PPO thay vì SAC — vốn đạt tỉ lệ thoát 92% trong nghiên cứu [1]? PPO được đánh giá cao nhờ tính đơn giản, dễ triển khai, ít cần tinh chỉnh siêu tham số và duy trì ổn định huấn luyện thông qua cơ chế clipping. Nghiên cứu [1] dùng SAC nhưng không có phân tách module cấu trúc payload rõ ràng, dẫn đến payload có thể mất chức năng gốc sau nhiều lượt biến đổi — đây là hạn chế mà đề tài giải quyết bằng kiến trúc 27 chiến lược biến đổi gắn với từng module.

2. Hàm phần thưởng trong hệ thống được thiết lập như thế nào và tại sao không áp dụng reward shaping? Hàm phần thưởng được thiết kế đơn giản: reward = -1 nếu bộ phát hiện xác định payload là XSS, và reward = 10 nếu payload không bị phát hiện. Nhóm lựa chọn cách thiết kế đơn giản nhất và hiệu quả nhất sau một loạt so sánh thực nghiệm, vì phần thưởng chỉ nên truyền đạt mục tiêu cần đạt được, không phải cách đạt mục tiêu đó.

3. Làm thế nào để đảm bảo payload XSS sau khi biến đổi vẫn giữ nguyên chức năng tấn công ban đầu? Nhóm thiết kế 27 quy tắc biến đổi riêng biệt cho từng module cụ thể của vector tấn công XSS (HTML tag, thuộc tính đặc biệt, giao thức mã giả, event, mã tấn công, ký tự đặc biệt). Nếu không có module nào trong payload hiện tại phù hợp với chiến lược được chọn, agent sẽ chọn lại hành động khác. Cơ chế này ngăn việc áp dụng chiến lược sai module làm hỏng cấu trúc payload.

4. Bộ phát hiện tấn công xử lý payload XSS dưới dạng nào trước khi đưa vào các mô hình MLP, LSTM, CNN? Payload được tiền xử lý qua tokenization, sau đó các token được biểu diễn thành vector bằng mô hình Word2Vec (phương pháp CBOW). Kết quả là mỗi payload được chuyển thành một chuỗi vector số học phản ánh ngữ nghĩa của các từ trong payload. Ba mô hình phân loại (MLP, LSTM, CNN) nhận cùng đầu vào này và thực hiện phân loại độc lập.

5. Điểm khác biệt cụ thể giữa kịch bản thực nghiệm 1 và kịch bản thực nghiệm 2 là gì? Đề tài tổ chức hai kịch bản thực nghiệm riêng biệt với kết quả được thống kê trong Bảng 4.7 và Bảng 4.8. Các chỉ số đánh giá áp dụng là Detection Rate (DR) và Escape Rate (ER) — tỉ lệ mẫu tấn công sinh ra có thể đánh lừa các mô hình phát hiện, đồng thời có phần nhận xét và đánh giá so sánh với kết quả của các nghiên cứu [1], [2], [3] được trình bày trong Chương 4.


Kết luận

Đề tài đề xuất và xây dựng phương pháp sinh mẫu tấn công XSS đối kháng dựa trên thuật toán Proximal Policy Optimization (PPO), kết hợp với bộ phát hiện tấn công gồm ba mô hình học sâu MLP, LSTM và CNN. Điểm cải tiến cốt lõi so với các nghiên cứu trước là thiết kế 27 chiến lược biến đổi được gắn với từng module cấu trúc của vector tấn công XSS, đảm bảo tính hợp lệ và khả năng tấn công của payload trong suốt quá trình biến đổi. Kết quả thực nghiệm cho thấy hệ thống có khả năng tạo ra số lượng lớn payload đối kháng có thể vượt qua các hệ thống phát hiện XSS hiện tại, đồng thời đặt nền tảng cho các nghiên cứu tiếp theo về cải thiện hiệu quả phát hiện và phòng ngừa tấn công XSS trong bối cảnh ứng dụng web ngày càng phức tạp.