Bối cảnh và vấn đề nghiên cứu
Sự bùng nổ của mạng Internet, các phương tiện truyền tin và thiết bị kỹ thuật đã mang lại nhiều tiện ích cho đời sống xã hội và công việc của con người, đặc biệt trong giai đoạn nhu cầu hoạt động trực tuyến gia tăng mạnh mẽ do tác động của đại dịch COVID-19. Tuy nhiên, sự phát triển này cũng đi kèm với nguy cơ mất an toàn thông tin khi các hệ thống mạng liên tục đối mặt với các cuộc tấn công khai thác lỗ hổng bảo mật nhằm đánh cắp dữ liệu, thông tin cá nhân và tài khoản người dùng. Trong các loại lỗ hổng ứng dụng web, tấn công Cross-Site Scripting (XSS) được ghi nhận là một trong những dạng tấn công phổ biến, nguy hiểm và dễ bị khai thác nhất. XSS cho phép đối tượng tấn công chèn các đoạn mã độc kịch bản (chủ yếu là JavaScript) vào ứng dụng web để thực thi trên trình duyệt của máy khách (client), từ đó chiếm đoạt mã định danh phiên (session tokens), thông tin cookie hoặc điều khiển luồng hoạt động của trình duyệt.
Xuất phát từ thực tế đó, tác giả Dương Tuấn Anh đã thực hiện đồ án tốt nghiệp đại học ngành Công nghệ thông tin (chuyên ngành Mạng và An toàn hệ thống) tại Trường Đại học Mở Hà Nội (2022) với đề tài: "Nghiên cứu giải pháp chống dạng tấn công cross-site scripting (XSS)", dưới sự hướng dẫn của ThS. Vũ Xuân Hạnh.
Theo văn bản giao nhiệm vụ và tóm tắt đồ án, nghiên cứu đặt ra hai nhiệm vụ chính:
- Nghiên cứu lý thuyết và tài liệu hóa chi tiết về bản chất kỹ thuật của tấn công XSS, phân loại các biến thể tấn công, cơ chế khai thác và mức độ ảnh hưởng của chúng đối với an toàn ứng dụng web.
- Nghiên cứu, thực nghiệm và xây dựng giải pháp kỹ thuật phòng chống dạng tấn công XSS dành cho người quản trị ứng dụng mạng, bao gồm việc tích hợp tường lửa ứng dụng web và ứng dụng thuật toán học máy có giám sát.
Về đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Lỗ hổng bảo mật Cross-Site Scripting (XSS) trên ứng dụng web, các kỹ thuật phòng thủ truyền thống (lọc đầu vào, mã hóa ký tự, thiết lập chính sách bảo mật nội dung) và giải pháp phòng thủ hiện đại (tường lửa ứng dụng web ModSecurity, mô hình phân loại học máy).
- Phạm vi không gian và công nghệ: Nghiên cứu tập trung vào môi trường ứng dụng web cục bộ thông qua nền tảng máy chủ thử nghiệm XAMPP, ứng dụng web mẫu có lỗ hổng DVWA (Damn Vulnerable Web Application), mô hình tường lửa ModSecurity của OWASP và môi trường lập trình phân tích dữ liệu Python cùng phần mềm học máy Weka.
- Phạm vi thời gian: Đồ án được hoàn thành và bảo vệ vào năm 2022, tổng hợp các dữ liệu tấn công và nghiên cứu an ninh mạng từ thập niên 1990 đến năm 2020.
Cơ sở lý thuyết và phương pháp nghiên cứu
Nghiên cứu xây dựng trên nền tảng lý thuyết bảo mật mạng, kiến trúc ứng dụng web và các kỹ thuật an toàn thông tin lớp ứng dụng:
- Mô hình bảo mật ba thành phần (CIA Triad): Đồ án dựa trên ba nguyên tắc cốt lõi: Tính bảo mật (Confidentiality) ngăn chặn lộ lọt thông tin; Tính toàn vẹn (Integrity) bảo vệ dữ liệu khỏi việc chỉnh sửa hoặc xóa bỏ trái phép nhờ mã hóa và hàm băm; Tính sẵn sàng (Availability) đảm bảo tài nguyên hệ thống luôn sẵn sàng phục vụ người dùng hợp lệ.
- Phân loại tác nhân tấn công và cấp độ lỗ hổng: Tác giả phân chia hacker thành ba nhóm (mũ đen, mũ trắng, mũ xám) và phân loại lỗ hổng bảo mật thành ba mức: Lỗ hổng loại A (rất nguy hiểm, cho phép truy cập trái phép và phá hủy hệ thống), Lỗ hổng loại B (nguy hiểm tầm trung, cho phép nâng quyền trái phép), Lỗ hổng loại C (nguy hiểm thấp, gây gián đoạn dịch vụ mà không phá hỏng dữ liệu).
- Kiến trúc ứng dụng web và các thành phần phụ thuộc: Nghiên cứu phân tích luồng xử lý yêu cầu/phản hồi HTTP/HTTPS giữa trình duyệt máy khách, máy chủ web (Web Server), máy chủ ứng dụng (Application Server) và hệ quản trị cơ sở dữ liệu (Database). Các khái niệm liên quan đến trạng thái ứng dụng như Phiên làm việc (Session ID), Cookie HTTP, Máy chủ trung gian (Proxy Server) và Tường lửa (Firewall) được sử dụng để làm rõ cơ chế bị tấn công và phòng vệ.
- Phương pháp nghiên cứu thực nghiệm và kỹ thuật:
- Phương pháp phân tích - tổng hợp tài liệu: Nghiên cứu lịch sử phát triển của thuật ngữ XSS (được kỹ sư bảo mật của Microsoft công bố lần đầu vào tháng 1/2000), khảo sát các sự cố bảo mật lớn và đánh giá các giải pháp phòng thủ của các công trình công bố quốc tế.
- Phương pháp kiểm thử thực nghiệm (Penetration Testing): Thực hiện quy trình kiểm tra lỗ hổng XSS 5 bước trên ứng dụng web thông qua kỹ thuật chèn tải trọng độc hại (payload injection).
- Phương pháp thiết kế hệ thống phòng thủ đa tầng: Thiết lập tường lửa ứng dụng web ModSecurity kết hợp bộ quy tắc của OWASP đóng vai trò là một Reverse Proxy kiểm soát ở Tầng 7 (Application Layer) của mô hình OSI.
- Phương pháp học máy có giám sát (Supervised Machine Learning): Sử dụng phần mềm Weka và ngôn ngữ Python để xử lý tập dữ liệu, trích chọn các vector đặc trưng của chuỗi yêu cầu và huấn luyện mô hình phân loại bằng thuật toán Rừng ngẫu nhiên (Random Forest).
- Nguồn dữ liệu: Dữ liệu nghiên cứu bao gồm thống kê các cuộc tấn công XSS giai đoạn 2010–2018 từ các nguồn tài liệu an ninh mạng; 02 bộ dữ liệu (dataset1 và dataset2) chứa các vector tấn công XSS độc hại và chuỗi dữ liệu lành tính phục vụ cho quá trình huấn luyện và kiểm thử thuật toán học máy.
Thiết kế và triển khai giải pháp kỹ thuật
Đồ án xây dựng hai trụ cột giải pháp kỹ thuật nhằm phát hiện và ngăn chặn tấn công XSS trên môi trường ứng dụng web:
1. Triển khai Tường lửa ứng dụng web ModSecurity (OWASP)
Tác giả đề xuất đặt ModSecurity hoạt động như một reverse proxy phía trước máy chủ ứng dụng web trong môi trường XAMPP (Apache, MariaDB, PHP, Perl). WAF hoạt động ở tầng ứng dụng (Lớp 7 OSI), phân tích cả phần tiêu đề (headers) và nội dung gói tin của các yêu cầu HTTP (GET/POST) nhằm lọc bỏ lưu lượng độc hại trước khi chuyển tiếp đến máy chủ đích.
Mô hình bảo vệ của WAF được phân tích dựa trên hai cơ chế:
- Mô hình bảo mật khẳng định (Positive security model / Whitelist): Chỉ chấp nhận các dữ liệu và hành động nằm trong danh sách cho phép, chặn toàn bộ dữ liệu còn lại. Mô hình này ngăn chặn tốt các dạng tấn công chưa biết (zero-day).
- Mô hình bảo mật phủ định (Negative security model / Blacklist): Sử dụng tập luật để nhận diện và từ chối các dấu hiệu tấn công đã biết.
ModSecurity được cấu hình bằng các biến và tập luật xử lý chi tiết:
- Hệ thống biến: Bao gồm biến yêu cầu (Request variables), biến máy chủ (Server variables), biến phản hồi (Response variables), biến thu thập (Collection variables), biến thời gian (Time variables), biến hỗn hợp (Miscellaneous variables) và các cờ phân tích cú pháp (Parsing flags).
- Toán tử xử lý: Toán tử so trùng chuỗi văn bản, toán tử số học, toán tử xác thực và toán tử logic kết hợp.
- Hành động (Actions): Hành động làm gián đoạn (Disruptive actions như từ chối truy cập), hành động điều khiển luồng (Flow actions), hành động siêu dữ liệu (Metadata actions), hành động biến (Variable actions), hành động ghi vết (Logging actions) và các hành động đặc biệt (Special actions).
- Cơ chế bản vá ảo (Virtual Patching): Cho phép người quản trị thiết lập quy tắc ngăn chặn các lỗ hổng đã phát hiện trên ứng dụng web ngay tại tầng WAF mà không cần can thiệp trực tiếp vào mã nguồn của ứng dụng.
2. Triển khai mô hình Học máy có giám sát phát hiện XSS
Bên cạnh việc dùng luật cố định, tác giả ứng dụng giải pháp học máy với thuật toán Rừng ngẫu nhiên (Random Forest) được lập trình bằng Python và kiểm thử thông qua Weka:
- Trích chọn đặc trưng: Phân tách và trích xuất các vector đặc trưng từ chuỗi đầu vào (độ dài chuỗi, sự hiện diện của các ký tự đặc biệt, thẻ HTML, hàm JavaScript).
- Xây dựng module huấn luyện và ứng dụng kiểm thử: Dữ liệu được chia thành tập huấn luyện (training set) và tập kiểm thử (testing set). Hệ thống chạy thử nghiệm trên hai bộ dữ liệu (dataset1 và dataset2), đồng thời đánh giá sự thay đổi của các chỉ số hiệu suất khi thay đổi số lượng cây quyết định trong mô hình Random Forest. Ứng dụng viết bằng Python cho phép nhập dữ liệu trực tiếp, trích xuất đặc trưng và đưa ra cảnh báo chính xác đối với dữ liệu lành tính hoặc dữ liệu chứa mã độc XSS.
Nội dung chính theo từng chương
Chương 1: Tổng quan về an ninh mạng, ứng dụng web
Chương mở đầu hệ thống hóa các khái niệm nền tảng trong lĩnh vực an toàn thông tin và cơ chế vận hành của hệ thống web:
- An ninh mạng và bộ ba CIA: Định nghĩa an ninh mạng là hoạt động bảo vệ hệ thống và dữ liệu khỏi các mối đe dọa kỹ thuật số. Phân tích chi tiết ba thuộc tính cơ bản: tính bảo mật, tính toàn vẹn và tính sẵn sàng.
- Phân loại tin tặc và lỗ hổng: Làm rõ đặc điểm của hacker mũ đen (phá hoại, đánh cắp vì mục đích bất chính), hacker mũ trắng (kiểm tra an ninh có thẩm quyền để bảo vệ hệ thống) và hacker mũ xám (xâm nhập không xin phép nhưng không phá hoại, thường báo lỗi cho quản trị viên). Phân cấp lỗ hổng thành ba loại A, B, C dựa trên mức độ nguy hiểm đối với hệ thống.
- Cơ chế hoạt động của ứng dụng web: Mô tả chu trình 5 bước xử lý yêu cầu của ứng dụng web từ khi người dùng nhập URL trên trình duyệt (Chrome, Firefox...), gửi yêu cầu tới máy chủ web, chuyển tiếp qua máy chủ ứng dụng để xử lý dữ liệu/truy vấn cơ sở dữ liệu, nhận kết quả và phản hồi hiển thị lại cho máy khách.
- Các thuật ngữ kỹ thuật cốt lõi: Định nghĩa chi tiết về Session (phiên làm việc kèm định danh Session ID), giao thức truyền siêu văn bản HTTP, tệp tin Cookie HTTP dùng để lưu trữ trạng thái người dùng, Máy chủ proxy (đóng vai trò trung gian định tuyến bảo vệ máy khách) và Tường lửa (Firewall - thiết lập rào cản lọc gói tin mạng dựa trên quy tắc).
Chương 2: Tổng quan về kỹ thuật tấn công XSS
Chương 2 đi sâu vào bản chất kỹ thuật, phân loại và các giải pháp đối phó với XSS:
- Bản chất tấn công XSS: Là dạng tấn công xâm nhập bằng cách tiêm mã JavaScript độc hại qua các tham số đầu vào của người dùng do ứng dụng thiếu cơ chế kiểm tra và lọc dữ liệu. Mã độc được thực thi trong ngữ cảnh trình duyệt của nạn nhân, cho phép tin tặc đánh cắp phiên làm việc và dữ liệu nhạy cảm.
- Quy trình kiểm thử thủ công phát hiện XSS (5 bước):
- Bước 1: Tìm kiếm các trường nhập dữ liệu khả dụng trên giao diện web.
- Bước 2: Nhập chuỗi ký tự kiểm tra vào trường định danh và gửi đi; tìm kiếm chuỗi này trong mã nguồn trang (HTML source).
- Bước 3: Xác định chuỗi nhập có được hiển thị nguyên vẹn trên trang kết quả hay không.
- Bước 4: Nhập đoạn mã thử nghiệm:
<script>alert("XSS");</script> và gửi yêu cầu.
- Bước 5: Kiểm tra xem hộp thoại thông báo có bật lên hay không. Nếu có hộp thoại xuất hiện, ứng dụng web tồn tại lỗ hổng XSS.
- Phân loại ba dạng tấn công XSS:
- Stored XSS (Persistent XSS): Dạng nguy hiểm nhất; mã độc được lưu trữ vĩnh viễn trong cơ sở dữ liệu hoặc hệ thống của máy chủ web (như qua bình luận bài viết, thông tin hồ sơ). Mọi người dùng truy cập trang sau đó đều bị nhiễm mã độc mà không cần tương tác với đường dẫn độc lập nào.
- Reflected XSS (Non-persistent XSS): Mã độc không được lưu trữ trên máy chủ mà được phản hồi ngay lập tức qua nội dung trả về (thường đính kèm trong các liên kết URL độc hại gửi qua email hoặc tin nhắn). Cuộc tấn công chỉ thành công khi nạn nhân nhấp vào đường dẫn.
- DOM-based XSS: Dạng tấn công diễn ra hoàn toàn ở phía máy khách. Mã độc làm thay đổi cấu trúc cây DOM (Document Object Model) của trang web thông qua các thuộc tính nguy hiểm như
document.write hoặc document.anchors, không làm thay đổi nội dung phản hồi từ máy chủ web, gây khó khăn cho việc phát hiện trên đường truyền.
| Ký tự gốc |
Ký tự thay thế an toàn (Escaped Entity) |
< |
< |
> |
> |
( |
( |
) |
) |
# |
# |
- Các kỹ thuật phòng chống cơ bản: Thoát dữ liệu đầu vào (Escaping input - chuyển đổi các ký tự điều khiển theo bảng mã tương ứng), Xác thực dữ liệu đầu vào (Input validation - kiểm tra tính hợp lệ của kiểu dữ liệu), Làm sạch dữ liệu đầu vào (Sanitizing input - lọc bỏ các thẻ nguy hiểm), Sử dụng danh sách trắng (Whitelisting values), và Thiết lập chính sách bảo mật nội dung (Content-Security Policy - CSP nhằm ngăn chặn chạy mã JavaScript nội tuyến).
- Tổng quan nghiên cứu liên quan: Phân tích ưu nhược điểm của các công trình công bố:
- Nagarjun & Shaik Shakeel Ahamad: Sử dụng các phương pháp học tổng hợp (Bagging, Boosting, Stacking) trên tập dữ liệu 154.626 mẫu; mô hình Histogram-based Gradient Boosting Classification (HGBC) đạt độ chính xác 0.9989.
- B. Gupta & Pooja Chaudhary: Kỹ thuật phân cụm và tách khung hình (frame-breaking) trên 5 mạng xã hội thực nghiệm (Elgg, Humhub, WordPress, Drupal, Joomla) với 127 vector tấn công, chỉ số F-measure đạt trên 0.9.
- Annu Choudhary et al.: Kỹ thuật làm sạch mã (code sanitization) vượt qua lỗ hổng XSS trên 3 mức bảo mật.
- Mahmoud Mohammadi et al.: Kiểm thử đơn vị tự động (Automated Unit Testing) với ngữ pháp BNF và công cụ JwebUnit trên các tệp JSP nhằm giảm thiểu dương tính giả và âm tính giả.
Chương 3: Triển khai ứng dụng và xây dựng phương án phòng chống dạng tấn công XSS
Chương này mô tả chi tiết quá trình thiết lập môi trường, công cụ và kết quả thực nghiệm phương án phòng thủ:
- Môi trường và công cụ sử dụng: Triển khai phần mềm máy chủ cục bộ XAMPP; phần mềm mã nguồn mở Weka cung cấp giao diện đồ họa (GUI), giao diện dòng lệnh (CLI) và Java API cho việc phân tích dữ liệu; ngôn ngữ lập trình Python để xây dựng module trích chọn đặc trưng và ứng dụng phân loại; ứng dụng thử nghiệm lỗ hổng DVWA.
- Cấu hình WAF ModSecurity: Mô tả chi tiết nguyên lý hoạt động của WAF lớp 7 với các tính năng cơ sở dữ liệu mẫu tấn công, phân tích mô hình lưu lượng qua AI, lập hồ sơ ứng dụng, công cụ tương quan và tích hợp CDN/nền tảng chống DDoS. Thiết lập bộ quy tắc giám sát, nhật ký và bản vá ảo nhằm ngăn chặn yêu cầu độc hại gửi tới DVWA.
- Thực nghiệm mô hình Học máy có giám sát (Supervised Machine Learning):
- Xây dựng quy trình xử lý bao gồm mô hình phát hiện đề xuất, module trích chọn đặc trưng, module huấn luyện bằng thuật toán Random Forest và giao diện kiểm thử ứng dụng.
- Tiến hành đánh giá, so sánh hiệu năng trên hai tập dữ liệu (dataset1 và dataset2) dựa trên 6 độ đo phân loại tương ứng với từng số lượng cây quyết định (Decision Trees) khác nhau.
- Thử nghiệm trên ứng dụng thực tế bằng cách nhập tải trọng lành tính và tải trọng chứa mã XSS, ghi nhận khả năng phát hiện chính xác của mô hình.
Kết quả và đóng góp
Nghiên cứu đạt được các kết quả kỹ thuật và đóng góp học thuật cụ thể sau:
1. Kết quả hệ thống hóa các cuộc tấn công XSS thực tế
Đồ án đã tổng hợp danh mục các sự cố an ninh mạng nghiêm trọng liên quan đến lỗ hổng XSS trên các hệ sinh thái phần mềm và nền tảng trực tuyến lớn trong giai đoạn 2010–2018:
| Năm |
Ứng dụng mạng bị tấn công |
Ảnh hưởng và hậu quả thực tế |
| 2018 |
Evernote trên Windows |
Máy tính của nạn nhân bị chiếm quyền truy cập từ xa. |
| 2017 |
Trend Micro OfficeScan |
Thông tin nhạy cảm bị rò rỉ. |
| 2017 |
Cisco Prime Infrastructure |
Cho phép truy cập dữ liệu bảo mật trên trình duyệt dẫn tới chiếm đoạt tài khoản. |
| 2016 |
Cisco ASA VPN Portal |
Lấy trộm chứng chỉ xác thực của người dùng qua cổng VPN. |
| 2016 |
Drupal |
Chiếm đoạt tài khoản người dùng hệ thống quản trị nội dung. |
| 2016 |
Ebay |
Tin tặc chèn mã ký sinh trên trang đăng nhập để chiếm đoạt thông tin người dùng. |
| 2016 |
Square API |
Tiêm nhiễm mã độc qua cổng đăng nhập dẫn đến tiếp quản ứng dụng. |
| 2015 |
NASA |
Vector XSS được phát hiện trong đơn yêu cầu thông tin kỹ thuật và khoa học gây sai lệch thông tin. |
| 2015 |
Facebook |
Lỗi XSS trong mạng trung chuyển nội dung cho phép chiếm đoạt tài khoản người dùng. |
| 2015 |
WordPress |
Thông tin người dùng bị rò rỉ. |
| 2015 |
Paypal |
Lỗ hổng Stored XSS trong dịch vụ giao dịch điện tử cho phép chèn mã thực thi tấn công. |
| 2014 |
Ebay |
Tấn công lừa đảo (Phishing). |
| 2014 |
UK Parliament Web Site |
Sai lệch nội dung thông tin công bố. |
| 2014 |
RadEditor HTML Editor |
Dữ liệu bảo vệ sai quy cách dẫn đến mất thông tin cá nhân và tấn công drive-by-download. |
| 2013 |
Yahoo Mail |
Khai thác DOM-based XSS để chiếm đoạt tài khoản người dùng. |
| 2013 |
Internet Explorer |
Vượt qua bộ lọc XSS từ IE8 trở lên bằng cách tiêm JavaScript vào thuộc tính đối tượng. |
| 2012 |
Ebay |
Chèn mã độc vào danh sách sản phẩm gây sai lệch thông tin. |
| 2012 |
McAfee |
Cho phép thực thi tấn công lây nhiễm mã độc tự động (drive-by-download). |
| 2011 |
Hotmail |
Đánh cắp tài khoản, cookie và chiếm phiên làm việc của người dùng. |
| 2010 |
Amazon |
Đánh cắp ID session để chiếm quyền tài khoản khi nhấp vào liên kết chứa mã độc. |
| 2010 |
Facebook |
Chiếm đoạt tài khoản qua việc phát tán các bài đăng và bình luận độc hại. |
| 2010 |
Orkut |
Hình thành các nhóm lây lan mã độc tự động. |
| 2010 |
Youtube |
Tấn công lây nhiễm mã độc tự động (drive-by-download). |
2. Phân loại tác hại toàn diện của XSS
Đồ án đã tổng kết và phân loại 7 nhóm tác hại chính của tấn công XSS trên hệ thống máy khách:
- Trộm Cookie (Cookie Stealing): Chiếm đoạt định danh phiên (session ID) do máy chủ gửi về nhằm mạo danh người dùng hợp lệ.
- Chiếm đoạt tài khoản (Account Hijacking): Xâm nhập tài khoản cá nhân, cơ sở dữ liệu và máy chủ ứng dụng mạng xã hội trực tuyến (OSN).
- Sai lệch thông tin (Misinformation): Theo dõi thống kê luồng dữ liệu người dùng làm mất quyền riêng tư và thay đổi nội dung trang gây tổn hại tính toàn vẹn.
- Tấn công từ chối dịch vụ (Denial of Service - DoS): Điều hướng người dùng sang trang giả mạo hoặc chặn dịch vụ vô thời hạn bằng cách hiển thị pop-ups liên tục.
- Khai thác trình duyệt (Browser Exploitation): Điều hướng trình duyệt về máy chủ của tin tặc để cài đặt phần mềm độc hại (virus, trojan horse).
- Điều khiển hệ thống từ xa (Remote Control on System): Mở đường cho việc thực thi mã độc truy cập từ xa, biến thiết bị nạn nhân thành mạng máy tính ma (botnet army).
- Tấn công lừa đảo (Phishing): Dẫn dụ người dùng truy cập trang web mạo danh do tin tặc thiết kế để thu thập thông tin đăng nhập và thông tin tài chính.
3. Đóng góp kỹ thuật của đồ án
- Xây dựng giải pháp phòng thủ tích hợp: Kết hợp giữa WAF ModSecurity lớp 7 theo chuẩn OWASP và mô hình phân loại học máy Random Forest. Giải pháp khắc phục được nhược điểm của các bộ lọc truyền thống (vốn chỉ dựa vào blacklist ký tự cố định).
- Thực nghiệm kiểm chứng độ chính xác: Thực hiện so sánh hiệu suất trên hai bộ dữ liệu (dataset1 và dataset2) qua 6 độ đo phân loại, chứng minh tính khả thi của thuật toán Random Forest trong việc phân tách dữ liệu lành tính và chuỗi chứa mã độc XSS trên ứng dụng thực tế.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên nội dung phân tích và phạm vi nghiên cứu được công bố trong văn bản, đồ án ghi nhận một số điểm hạn chế và hướng mở rộng:
-
Hạn chế:
- Quy mô thử nghiệm giải pháp WAF và mô hình học máy được triển khai trong môi trường máy chủ cục bộ (XAMPP với DVWA), chưa được đánh giá tải và hiệu năng thực tế trên các hệ thống hạ tầng phân tán chịu lưu lượng truy cập lớn (high-traffic production environment).
- Phương pháp phòng thủ bằng tường lửa ModSecurity dựa trên danh sách đen (negative model) đòi hỏi phải liên tục cập nhật các bộ luật đặc trưng mới để ngăn ngừa nguy cơ bị vượt qua bởi các biến thể mã độc làm rối mã (obfuscation).
- Mô hình học máy dựa trên thuật toán Random Forest tuy đạt độ chính xác cao nhưng đòi hỏi chi phí tính toán trích xuất đặc trưng và phụ thuộc vào tính đại diện của dữ liệu huấn luyện (dataset1 và dataset2).
-
Hướng nghiên cứu tiếp:
- Mở rộng tập dữ liệu huấn luyện với các biến thể vector tấn công XSS phức tạp hơn, kết hợp với các kỹ thuật học sâu (Deep Learning) hoặc mô hình học tổng hợp đa tầng (HGBC, Extra-Trees, AdaBoost) nhằm nâng cao tỷ lệ phát hiện.
- Tối ưu hóa thời gian phân tích gói tin của module học máy để tích hợp trực tiếp theo thời gian thực (real-time inline inspection) vào quy trình xử lý của ModSecurity hoặc các máy chủ biên (Edge Computing).
- Tự động hóa quá trình sinh bản vá ảo (automatic virtual patching) dựa trên kết quả phát hiện của mô hình AI.
Giá trị tham khảo
Đồ án tốt nghiệp của tác giả Dương Tuấn Anh có giá trị học liệu và ứng dụng thực tiễn rõ rệt đối với các nhóm đối tượng sau:
- Sinh viên chuyên ngành Công nghệ thông tin, An toàn thông tin, Mạng máy tính: Tài liệu cung cấp bức tranh chi tiết về cơ chế tấn công lớp ứng dụng web, phương pháp phân tích cây DOM, các bước kiểm thử thâm nhập thủ công cũng như quy trình làm sạch dữ liệu đầu vào.
- Lập trình viên và kỹ sư phát triển phần mềm web (Web Developers): Bảng tổng hợp các cách thoát ký tự đặc biệt (
<, >, (, ), #), cơ chế cấu hình Content-Security Policy (CSP) và kỹ thuật xác thực danh sách trắng (whitelisting) là tài liệu tham khảo trực tiếp để chuẩn hóa quy trình viết mã an toàn (Secure Coding).
- Quản trị viên hệ thống mạng (System/Security Administrators): Cấu trúc phân tích hệ thống biến, toán tử và nhóm hành động trong ModSecurity của OWASP cung cấp hướng dẫn hữu ích để cấu hình WAF và thiết lập cơ chế bản vá ảo (Virtual Patching) bảo vệ ứng dụng mà không cần sửa đổi mã nguồn.
- Nhà nghiên cứu về bảo mật ứng dụng trí tuệ nhân tạo: Các phân tích so sánh về mô hình học máy Random Forest và các nghiên cứu của Nagarjun, B. Gupta cung cấp khung khái niệm để tiếp tục phát triển các hệ thống phát hiện xâm nhập thông minh.
Câu hỏi thường gặp
1. Tấn công Cross-Site Scripting (XSS) là gì và mục tiêu chính của kẻ tấn công khi khai thác lỗ hổng này là gì?
Tấn công XSS là dạng tấn công xâm nhập bằng cách chèn các đoạn mã kịch bản độc hại (chủ yếu là JavaScript) thông qua các tham số đầu vào của ứng dụng web do bộ lọc dữ liệu không phù hợp. Mã độc sau đó được thực thi trên trình duyệt của người dùng. Mục đích chính của cuộc tấn công là đánh cắp dữ liệu nhận dạng của người dùng như thông tin cookie, mã thông báo phiên làm việc (session tokens), chiếm đoạt tài khoản hoặc chuyển hướng người dùng đến các trang web độc hại.
2. Khóa luận phân loại tấn công XSS thành những dạng nào và dạng nào nguy hiểm nhất?
Khóa luận phân loại XSS thành ba dạng chính:
- Persistent XSS (Stored XSS): Mã độc được lưu trữ vĩnh viễn trên máy chủ web/cơ sở dữ liệu.
- Non-persistent XSS (Reflected XSS): Mã độc được phản hồi trực tiếp qua máy chủ về trình duyệt người dùng thông qua các đường dẫn độc hại mà không được lưu trữ.
- DOM-based XSS: Mã độc làm biến đổi cấu trúc Document Object Model (DOM) ngay trên trình duyệt máy khách.
Trong đó, Stored XSS là dạng nguy hiểm nhất vì kẻ tấn công chỉ cần tiêm mã độc vào máy chủ một lần duy nhất nhưng có thể tự động gây ảnh hưởng đến hàng loạt người dùng truy cập trang mà không cần tương tác riêng lẻ.
3. Quy trình 5 bước để kiểm tra thủ công xem một trang web có lỗ hổng XSS hay không được tác giả mô tả ra sao?
Quy trình gồm 5 bước:
- Bước 1: Tìm kiếm trường đầu vào khả dụng trên trang mạng.
- Bước 2: Nhập một chuỗi ký tự bất kỳ vào trường đó, gửi đi và tìm kiếm chuỗi này trong phần mã nguồn trang.
- Bước 3: Kiểm tra xem chuỗi nhập có hiển thị trên trang hay không (nếu có là dấu hiệu tiềm ẩn lỗ hổng).
- Bước 4: Nhập đoạn mã thử nghiệm độc hại
<script>alert("XSS");</script> và gửi đi.
- Bước 5: Quan sát nếu trình duyệt thực thi đoạn mã và làm xuất hiện một hộp thoại thông báo thì xác nhận trang web tồn tại lỗ hổng XSS.
4. Hai cơ chế phòng vệ chính được tác giả đề xuất và triển khai trong Chương 3 là gì?
Tác giả đề xuất phương án phòng chống kết hợp gồm hai thành phần:
- Tường lửa ứng dụng web ModSecurity của OWASP: Triển khai hoạt động như một reverse proxy ở Lớp 7 OSI nhằm giám sát, ghi nhật ký, kiểm soát lưu lượng HTTP/HTTPS thời gian thực và áp dụng kỹ thuật bản vá ảo (Virtual patching).
- Phương pháp học máy có giám sát (Supervised Machine Learning): Ứng dụng thuật toán Rừng ngẫu nhiên (Random Forest) kết hợp công cụ Weka và ngôn ngữ Python để trích chọn đặc trưng chuỗi đầu vào và phân loại chính xác các yêu cầu chứa mã độc XSS so với dữ liệu lành tính.
5. Cơ chế Bản vá ảo (Virtual Patching) trên ModSecurity mang lại lợi ích gì cho người quản trị?
Bản vá ảo là kỹ thuật hạn chế và ngăn chặn lỗ hổng bảo mật tại một lớp trung gian độc lập (tầng WAF). Cơ chế này cho phép người quản trị mạng khắc phục nhanh sự cố và ngăn chặn hành vi khai thác lỗ hổng từ bên ngoài mà không cần phải can thiệp trực tiếp hoặc chỉnh sửa mã nguồn của ứng dụng web.
Kết luận
Đồ án tốt nghiệp của tác giả Dương Tuấn Anh đã nghiên cứu toàn diện về mặt lý thuyết và thực tiễn kỹ thuật đối với lỗ hổng Cross-Site Scripting (XSS), làm rõ cơ chế phát sinh, các phương thức tấn công và mức độ thiệt hại nghiêm trọng của chúng đối với an toàn ứng dụng web. Nghiên cứu đã xây dựng thành công mô hình phòng vệ kết hợp giữa tường lửa ứng dụng web ModSecurity (OWASP) và mô hình học máy có giám sát sử dụng thuật toán Random Forest, mang lại giải pháp ngăn chặn hiệu quả cả các mẫu tấn công đã biết lẫn dữ liệu bất thường. Công trình đóng vai trò là một tài liệu kỹ thuật có giá trị tham khảo thiết thực cho công tác đào tạo học thuật, phát triển phần mềm an toàn và quản trị bảo mật hệ thống thông tin.