Tổng quan luận án
Luận án tiến sĩ kỹ thuật phần mềm của nghiên cứu sinh Nguyễn Hạnh Phúc với đề tài "Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web", mã số chuyên ngành 9480103.01, được thực hiện tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội dưới sự hướng dẫn khoa học của PGS. Trương Ninh Thuận vào năm 2024.
Tính cấp thiết và khoảng trống nghiên cứu
Các phần mềm trên nền Web hiện nay được phân phối rộng rãi qua Internet và trở thành hạ tầng vận hành quan trọng trong nhiều lĩnh vực như kinh tế, y tế, giáo dục và quân sự nhờ các đặc tính như khả năng truy cập từ xa 24/7, tương thích đa nền tảng và chu kỳ phát triển nhanh. Tuy nhiên, môi trường web luôn đối mặt với những nguy cơ tấn công an ninh và khai thác tài nguyên trái phép. Các nguy cơ này xuất hiện trên cả hệ thống xây dựng theo mô hình truyền thống (MVC, MVVM) lẫn hệ thống phân tán theo kiến trúc hướng sự kiện (Event-Driven Architecture - EDA). Những hiểm họa an ninh phổ biến bao gồm tấn công từ chối dịch vụ (DoS), từ chối dịch vụ phân tán (DDoS) và tấn công giả mạo yêu cầu qua tập lệnh chéo trang (XSS), nhằm mục đích đánh cắp dữ liệu cá nhân, chiếm quyền kiểm soát hệ thống hoặc làm gián đoạn tính sẵn sàng của dịch vụ. Đồng thời, trong các hệ thống EDA có xử lý thời gian thực, sự vi phạm về thứ tự và khoảng thời gian thực thi của các sự kiện có thể dẫn đến những sai lệch nghiêm trọng về chức năng và bảo mật.
Văn bản luận án chỉ ra các biện pháp bảo vệ hiện hành tồn tại những khoảng trống kỹ thuật rõ rệt:
- Tường lửa và công cụ mạng: Thường có chi phí vận hành cao, độ chính xác chưa tuyệt đối và không có khả năng phát hiện các cuộc tấn công chưa xác định.
- Mã hóa và kiểm tra dữ liệu đầu vào: Số lượng lỗ hổng liên quan đến xác thực và làm sạch dữ liệu đầu vào vẫn gia tăng; các công cụ quét lỗ hổng tĩnh không phải lúc nào cũng đáng tin cậy.
- Chứng thực và kiểm soát truy cập: Các mô hình kiểm soát truy cập truyền thống dựa trên quy tắc cố định không còn thích ứng đầy đủ với môi trường web phân tán phức tạp.
Do đó, việc phát triển các phương pháp và công cụ kiểm thử, kiểm chứng tự động nhằm phát hiện sớm các nguy cơ tấn công mạng và vi phạm thời gian thực thi trước khi đưa hệ thống vào vận hành là yêu cầu cần thiết nhằm giảm thiểu chi phí sửa lỗi và hạn chế thiệt hại.
Mục tiêu nghiên cứu
Luận án xác định hai mục tiêu nghiên cứu cụ thể được đánh số như sau:
- Nghiên cứu các vấn đề liên quan đến tính an ninh (tính bảo mật, tính toàn vẹn) và các ràng buộc thời gian thực thi của ứng dụng trên nền Web. Từ đó, đề xuất, xây dựng các phương pháp nhằm hỗ trợ quá trình kiểm thử, kiểm chứng để phát hiện, cảnh báo một số dạng tấn công, lỗ hổng và các vi phạm về thời gian trong ứng dụng trên nền Web.
- Phát triển các công cụ để hỗ trợ quá trình kiểm thử tự động.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Các hệ thống phần mềm trên nền Web có xử lý thời gian thực, phân tán và các ứng dụng trên nền Web truyền thống; các cơ chế bảo đảm tính an ninh, bảo mật, toàn vẹn và các ràng buộc thời gian thực thi của sự kiện.
- Phạm vi nghiên cứu:
- Về an ninh hệ thống: Tập trung vào kỹ thuật phân tích nhật ký truy cập (log files) để phát hiện tấn công DoS/DDoS theo thời gian thực; kỹ thuật sinh đường dẫn và ca kiểm thử tự động nhằm phát hiện lỗ hổng XSS trên ứng dụng web.
- Về ràng buộc thời gian: Tập trung vào kiểm chứng tiến trình và mối quan hệ thời gian của các sự kiện tại thời điểm thực thi trong kiến trúc hướng sự kiện (EDA).
- Phạm vi thực nghiệm: Triển khai giải pháp phòng chống DDoS trên hệ thống thực tế của Shopbase (sử dụng Apache Spark, Apache Kafka, Kubernetes); đánh giá kiểm thử XSS thông qua khung jFAT; kiểm chứng thời gian thực trên mô hình Hệ thống giám sát giao thông đường bộ thông minh (ITS).
Tổng quan tài liệu và vị trí của luận án
Luận án đã khảo cứu và hệ thống hóa các công trình nghiên cứu trong nước và quốc tế liên quan đến ba trục nội dung chính:
Các hướng nghiên cứu trước được điểm lại
-
Phát hiện và phòng chống tấn công DoS/DDoS:
- Zhao (2014) [107]: Thiết kế hệ thống phát hiện DDoS sử dụng mạng nơ-ron nhân tạo triển khai trên cụm Apache Hadoop và HBase, lựa chọn đa yếu tố như mức sử dụng CPU, kích thước gói và tổng số kết nối TCP để nhận diện tấn công.
- Berral và cộng sự (2014) [14]: Mở rộng khung phát hiện DDoS dựa trên học máy của Zhang, kết hợp thuật toán tổng tích lũy (Cumulative Sum) và bộ phân loại Naive Bayes nhằm phân biệt lưu lượng thông thường và lưu lượng bất thường.
- Meitei (2017) [66]: Đề xuất mô hình phát hiện tấn công DDoS khuếch đại (amplification attack) trên lưu lượng DNS bằng mạng nơ-ron nhân tạo và các thuật toán học máy (Cây quyết định, MLP, Naive Bayes, SVM), trong đó Cây quyết định đạt hiệu quả vượt trội dựa trên các đặc trưng như thời gian đến gói tiếp theo, xác suất xuất hiện IP và kích thước gói tin.
- Yavanoglu và cộng sự (2017) [106]: Khảo sát, so sánh các bộ dữ liệu chuẩn được sử dụng trong trí tuệ nhân tạo và học máy phục vụ phân tích lưu lượng mạng và phát hiện bất thường.
- Nghiên cứu của nhóm tác giả [28]: Chia bài toán DDoS thành ba giai đoạn (phát hiện, giảm thiểu, truy vết IP), sử dụng kỹ thuật giới hạn tốc độ (rate-limiting) và truy vết IP để ngăn chặn tấn công ở tầng mạng và tầng ứng dụng.
- Vishwakarm (2020) [101]: Nghiên cứu tấn công DDoS nhắm vào tính khả dụng của máy chủ trong mạng Internet vạn vật (IoT) do các thiết bị botnet phân tán thực hiện.
- Marta Catillo và cộng sự (2020) [19]: Đề xuất mô-đun phòng thủ DoS dựa trên việc đo lường tần suất truy cập, tự động chặn địa chỉ IP gửi yêu cầu vượt quá ngưỡng đồng thời hoặc gửi nhiều yêu cầu tới cùng một trang trong thời gian dưới một giây.
- Andre Brandao và cộng sự (2020) [16]: Xây dựng hệ thống phát hiện xâm nhập dựa trên nhật ký (LIDS), tổng hợp log đa nguồn về bảng điều khiển trung tâm và thực nghiệm trên tập dữ liệu KDD Cup 1999.
- Alashhab và cộng sự (2021) [4]: Tổng hợp các cơ chế học máy và học sâu nhằm bảo vệ mạng do phần mềm xác định (SDN) trước các cuộc tấn công từ chối dịch vụ tốc độ thấp (LDDoS).
-
Kiểm thử tự động và phát hiện lỗ hổng XSS:
- Khảo sát các kỹ thuật kiểm thử thâm nhập (Penetration Testing) theo ba hướng tiếp cận hộp đen, hộp trắng và hộp xám; kỹ thuật kiểm thử mờ (Fuzz Testing) tự động sinh đầu vào dị thường để phát hiện các lỗi tràn bộ đệm, tiêm mã SQL và XSS.
- Các nghiên cứu ứng dụng học tăng cường (Reinforcement Learning), đặc biệt là thuật toán Q-learning trong việc tối ưu hóa đường đi kiểm thử trên đồ thị trạng thái của ứng dụng web.
-
Kiểm chứng hệ thống hướng sự kiện (EDA):
- Các công trình về kiểm chứng mô hình thời gian thực, giám sát tiến trình thực thi của hệ thống tại thời điểm chạy (runtime verification) để đối chiếu các đặc tả quan hệ thời gian.
Khoảng trống luận án lựa chọn giải quyết
Mặc dù các nghiên cứu trước đã đạt nhiều kết quả, luận án chỉ ra các hạn chế cần giải quyết:
- Các giải pháp phòng chống DDoS dựa trên IP hiện hữu phần lớn chỉ xử lý đơn lẻ từng gói tin hoặc chặn cứng theo địa chỉ mà chưa phân tích đa chiều các tiêu chí hành vi trích xuất từ nhật ký trong cửa sổ thời gian trượt theo thời gian thực trên quy mô cụm phân tán.
- Quá trình kiểm thử xâm nhập XSS tự động thường gặp bùng nổ không gian trạng thái khi sinh ca kiểm thử, đòi hỏi giải pháp tối ưu hóa ma trận phần thưởng để định hướng sinh đường dẫn nhanh chóng.
- Thiếu các bộ thuật toán kiểm chứng trực tiếp các quan hệ khoảng thời gian của sự kiện (dựa trên đại số khoảng thời gian) tích hợp với trình giám sát thời gian thực trong kiến trúc EDA.
Cơ sở lý thuyết và phương pháp nghiên cứu
Cơ sở lý thuyết và khung phân tích
- Tiêu chuẩn chất lượng phần mềm ISO/IEC 9126/2001: Luận án dựa trên 7 đặc tính chất lượng gồm tính phù hợp chức năng (Functionality), độ tin cậy (Reliability), tính sử dụng (Usability), hiệu suất (Efficiency), khả năng bảo trì (Maintainability), tính di động (Portability) và bảo mật (Security).
- Phân loại tấn công mạng:
- Tấn công DoS/DDoS: Phân chia theo ba cơ chế chính gồm tấn công băng thông/thể tích (Volumetric Attacks: UDP flood, ICMP flood, Ping of Death, Smurf attack, Malformed/Spoofed IP flood); tấn công giao thức (Protocol Attacks: ACK flood, TCP connection flood, TCP state exhaustion, Fragmentation, RST attack); và tấn công tầng ứng dụng (Application Layer Attacks: HTTP Flood, Slowloris).
- Tấn công Cross-Site Scripting (XSS): Gồm ba biến thể Reflected XSS (Non-Persistent / Type-I), Stored XSS (Persistent / Type-II) và DOM Based XSS.
- Kiến trúc hướng sự kiện (EDA): Mô hình vận hành không đồng bộ gồm 5 thành phần chính: Event Sources (Event Producer), Event Bus (Event Channel / Message Broker), Event Consumers, Event Processors và Data Storage. Đặc tính sự kiện là bản ghi bất biến, tồn tại lâu dài và có thể tái sử dụng nhiều lần.
- Lý thuyết Học tăng cường (Reinforcement Learning) và Q-Learning:
- Mô hình toán học Quá trình quyết định Markov (Markov Decision Process - MDP) gồm bộ tứ $(S, A, R, P)$, trong đó $S$ là tập trạng thái, $A$ là tập hành động, $R$ là tập giá trị phần thưởng và $P$ là phân bố xác suất chuyển trạng thái.
- Công thức cập nhật giá trị $Q(s, a)$ trong thuật toán Q-learning:
$$Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ R_{t+1} + \gamma \max_{a} Q(s_{t+1}, a) - Q(s_t, a_t) \right]$$
- Các tham số được thiết lập trong luận án: Tốc độ học $\alpha = 1$ để tác nhân học nhanh cấu trúc ứng dụng; hệ số chiết khấu $\gamma = 0.9$ nhằm tối đa hóa phần thưởng tích lũy trong toàn bộ tập (episode).
Phương pháp nghiên cứu thực tế
Luận án kết hợp phương pháp nghiên cứu định lượng, thiết kế thuật toán và thực nghiệm hệ thống:
- Phương pháp phân tích nhật ký thời gian thực: Xây dựng công thức chấm điểm nguy cơ cho từng địa chỉ IP dựa trên nhiều tiêu chí hành vi trích xuất từ nhật ký truy cập; tính điểm tổng hợp cho từng lô dữ liệu và so sánh với ngưỡng định trước để đưa ra cảnh báo DoS/DDoS.
- Phương pháp kiểm thử tự động dựa trên mô hình: Xây dựng đồ thị điều hướng của ứng dụng web, sử dụng thuật toán Q-learning cải tiến ma trận phần thưởng để tìm đường dẫn có khả năng chứa lỗ hổng XSS ngắn nhất; tự động sinh ca kiểm thử bằng khung jFAT.
- Phương pháp kiểm chứng thời gian thực: Định nghĩa hình thức 7 quan hệ thời gian giữa các cặp sự kiện (before, meets, overlaps, starts, during, finishes, equal) và cài đặt thành các thuật toán giám sát tiến trình thực thi tại runtime.
Nguồn tư liệu, công nghệ và dữ liệu thực nghiệm
- Hạ tầng xử lý phân tán: Apache Spark (vận hành theo mô hình Master-Driver và Worker-Executor), Apache Kafka (phân chia theo Topic và Partition để truyền luồng log), cụm quản trị Kubernetes và Web Server Openresty.
- Bộ công cụ kiểm thử: Khung kiểm thử tự động jFAT (Java automation Framework for web Application Testing) phát triển bằng Java, tích hợp thư viện Selenium, TestNG và áp dụng mẫu thiết kế Page Object Model (POM).
- Dữ liệu thực nghiệm: Tệp nhật ký truy cập thời gian thực thu thập từ hệ thống thương mại điện tử Shopbase; dữ liệu mô phỏng từ Hệ thống giám sát giao thông đường bộ thông minh (ITS).
Nội dung chính theo từng chương
| Chương |
Tên chương |
Trọng tâm nghiên cứu |
Thuật toán / Công nghệ chính |
| Chương 1 |
Giới thiệu |
Đặt vấn đề, mục tiêu, đối tượng, phạm vi và đóng góp |
Phân tích tổng quan hệ thống web |
| Chương 2 |
Kiến thức cơ sở |
Nền tảng ứng dụng web, an ninh web, EDA, kiểm thử, Q-learning |
MDP, Q-learning, ISO/IEC 9126 |
| Chương 3 |
Kỹ thuật phòng chống tấn công từ chối dịch vụ theo thời gian thực |
Phân tích nhật ký phát hiện DoS/DDoS theo thời gian thực |
Thuật toán 3.1, 3.2; Apache Spark, Kafka, Kubernetes |
| Chương 4 |
Kiểm thử phát hiện xâm nhập XSS cho ứng dụng web |
Khung jFAT và sinh đường dẫn kiểm thử XSS bằng Q-learning |
Thuật toán 4.1 đến 4.5; Java, Selenium, TestNG, POM |
| Chương 5 |
Kiểm chứng ràng buộc thời gian của các sự kiện trong thời gian thực thi |
Kiểm chứng 7 quan hệ thời gian sự kiện trong EDA tại runtime |
Thuật toán 5.1 đến 5.7; Hệ thống ITS |
| Chương 6 |
Kết luận và hướng phát triển |
Đánh giá ưu nhược điểm, đối sánh và định hướng nghiên cứu |
Đánh giá tổng hợp |
Chương 1: Giới thiệu
Chương mở đầu trình bày bối cảnh chuyển dịch công nghệ sang nền tảng web, phân tích sự cần thiết của việc bảo đảm an ninh (tính sẵn sàng, tính toàn vẹn, tính bảo mật) và các ràng buộc thời gian thực thi. Luận án xác định 2 mục tiêu nghiên cứu, 3 nội dung trọng tâm và 3 đóng góp khoa học chính.
Chương 2: Kiến thức cơ sở
Trình bày hệ thống lý thuyết nền tảng phục vụ các đề xuất của luận án:
- Phân tích đặc trưng ứng dụng web, 7 thuộc tính chất lượng theo ISO/IEC 9126/2001 và các nguy cơ an ninh (DoS, DDoS, XSS, SQL Injection, mã độc).
- Chi tiết các kỹ thuật tấn công DoS/DDoS (Volumetric, Protocol, Application Layer) và các biến thể XSS (Reflected, Stored, DOM Based).
- Khái niệm, thành phần và đặc tính của Kiến trúc hướng sự kiện (EDA).
- Tổng quan về các công nghệ xử lý dữ liệu lớn gồm Apache Spark, Apache Kafka và nền tảng điều phối container Kubernetes.
- Các phương pháp kiểm thử phần mềm (kiểm thử chức năng, hiệu suất, bảo mật, kiểm thử tự động, kiểm thử thâm nhập, kiểm thử mờ), kiểm chứng phần mềm và nền tảng học tăng cường Q-learning.
Chương 3: Kỹ thuật phòng chống tấn công từ chối dịch vụ theo thời gian thực
Chương 3 tập trung giải quyết bài toán phát hiện nguy cơ tấn công DoS và DDoS thông qua phân tích luồng nhật ký truy cập:
- Đề xuất thuật toán: Thiết kế Thuật toán 3.1 (Solve the DoS problem) nhằm phát hiện các địa chỉ IP có số lượng truy cập đơn lẻ vượt ngưỡng cho phép; và Thuật toán 3.2 (Solve the DDoS problem) phân tích phân phối truy cập đa địa chỉ IP trong các lô dữ liệu (batch).
- Cơ chế tính điểm: Xây dựng công thức tính điểm nguy cơ cho từng địa chỉ IP dựa trên tần suất gửi yêu cầu, mẫu hình tài nguyên truy cập và tính bất thường của phiên làm việc. Điểm số của từng IP được tổng hợp để đánh giá nguy cơ tấn công DDoS trên toàn hệ thống trong cửa sổ thời gian thực.
- Mô hình kiến trúc triển khai: Web Server Openresty thu thập log truy cập đẩy trực tiếp vào các Topic/Partition của Apache Kafka. Ứng dụng Apache Spark triển khai trên Kubernetes theo mô hình Master-Worker; các Executor thực hiện tiền xử lý và tinh gọn dữ liệu song song trên các lô dữ liệu, sau đó Driver tổng hợp và đối soát ngưỡng để phát ra cảnh báo.
- Thực nghiệm: Cài đặt thử nghiệm thành công trên hệ thống web Shopbase, ghi nhận khả năng phát hiện chính xác các IP bất thường và cảnh báo sớm tình trạng gia tăng đột biến lưu lượng truy cập.
Chương 4: Kiểm thử phát hiện xâm nhập XSS cho ứng dụng web
Chương 4 đề xuất giải pháp tự động hóa kiểm thử thâm nhập nhằm phát hiện lỗ hổng XSS:
- Khung làm việc jFAT: Xây dựng khung kiểm thử tự động bằng Java, tích hợp Selenium WebDriver, TestNG và mô hình Page Object Model (POM) để quản lý cấu trúc giao diện trang web.
- Quy trình sinh đường dẫn kiểm thử bằng Q-learning:
- Thuật toán 4.1: Phân tích cấu trúc ứng dụng web thành đồ thị trạng thái điều hướng.
- Thuật toán 4.2: Đặt trọng số cho đồ thị và xây dựng ma trận phần thưởng $R$. Phần thưởng được gán giá trị cao cho các trạng thái có khả năng nhận dữ liệu đầu vào chưa lọc.
- Thuật toán 4.3: Khởi tạo và cập nhật ma trận giá trị $Q$ qua các vòng lặp thử và sai với $\alpha = 1$ và $\gamma = 0.9$.
- Thuật toán 4.4: Sinh đường dẫn kiểm thử tối ưu dựa trên chính sách khai thác ma trận $Q$, giúp giảm thiểu số bước duyệt qua các trang không chứa lỗ hổng.
- Thuật toán 4.5: Tự động điền dữ liệu mẫu (payloads) chứa mã kịch bản XSS vào các form đầu vào trên đường dẫn đã chọn và sinh ca kiểm thử hoàn chỉnh.
- Kết quả: Công cụ tự động thực thi các ca kiểm thử, phân tích mã phản hồi và xuất báo cáo chi tiết về vị trí lỗ hổng XSS được phát hiện.
Chương 5: Kiểm chứng ràng buộc thời gian của các sự kiện trong thời gian thực thi
Chương 5 giới thiệu phương pháp kiểm chứng hình thức tại runtime đối với các ràng buộc thời gian giữa các sự kiện trong hệ thống EDA:
- Đặc tả quan hệ thời gian: Xây dựng 7 thuật toán kiểm chứng tương ứng với 7 quan hệ khoảng thời gian của Allen:
- Thuật toán 5.1 ($evt_i\ \text{before}\ evt_j$): Kiểm chứng sự kiện $evt_i$ kết thúc trước khi sự kiện $evt_j$ bắt đầu.
- Thuật toán 5.2 ($evt_i\ \text{Meets}\ evt_j$): Kiểm chứng thời điểm kết thúc của $evt_i$ trùng với thời điểm bắt đầu của $evt_j$.
- Thuật toán 5.3 ($evt_i\ \text{overlaps}\ evt_j$): Kiểm chứng khoảng thời gian của $evt_i$ gối chồng lên khoảng thời gian của $evt_j$.
- Thuật toán 5.4 ($evt_i\ \text{starts}\ evt_j$): Kiểm chứng $evt_i$ và $evt_j$ cùng bắt đầu, nhưng $evt_i$ kết thúc trước.
- Thuật toán 5.5 ($evt_i\ \text{during}\ evt_j$): Kiểm chứng $evt_i$ diễn ra hoàn toàn bên trong khoảng thời gian của $evt_j$.
- Thuật toán 5.6 ($evt_i\ \text{finishes}\ evt_j$): Kiểm chứng $evt_i$ bắt đầu sau $evt_j$ nhưng cả hai cùng kết thúc.
- Thuật toán 5.7 ($evt_i\ \text{equal}\ evt_j$): Kiểm chứng hai sự kiện có khoảng thời gian bắt đầu và kết thúc hoàn toàn trùng khớp.
- Trình giám sát thời gian thực: Kết hợp đặc tả giới hạn thời gian với bộ lắng nghe sự kiện để phát hiện kịp thời các sự kiện xuất hiện ngoài khoảng thời gian cho phép hoặc sai lệch trật tự tương tác.
- Thực nghiệm: Áp dụng kiểm chứng trên Hệ thống giám sát giao thông đường bộ thông minh (ITS), chứng minh thuật toán có khả năng phát hiện các ca vi phạm ràng buộc thời gian thực thi giữa các cảm biến và bộ xử lý trung tâm.
Chương 6: Kết luận và hướng phát triển
Tổng kết toàn bộ các kết quả đạt được, phân tích đối sánh ưu điểm và hạn chế của các phương pháp đề xuất so với các công trình liên quan, đồng thời xác định các hướng mở rộng nghiên cứu trong tương lai.
Kết quả và những đóng góp mới
Luận án đã công bố các đóng góp mới về mặt lý thuyết và giải pháp thực tiễn như sau:
1. Về phương pháp phát hiện tấn công từ chối dịch vụ theo thời gian thực
- Đề xuất phương pháp phân tích nhật ký truy cập theo luồng thời gian thực nhằm phát hiện các dấu hiệu bất thường của người dùng dẫn đến tấn công DoS và DDoS.
- Xây dựng công thức chấm điểm đa tiêu chí cho từng địa chỉ IP và cơ chế tính điểm tổng hợp trên từng tệp/lô nhật ký truy cập để so sánh với ngưỡng cảnh báo.
- Hiện thực hóa kiến trúc xử lý phân tán tích hợp Apache Spark, Apache Kafka và Kubernetes, chứng minh tính khả thi trên hệ thống thực tế Shopbase.
2. Về phương pháp kiểm thử phát hiện xâm nhập XSS tự động
- Đề xuất phương pháp ứng dụng thuật toán học tăng cường Q-learning với ma trận phần thưởng cải tiến để tự động hóa và tối ưu hóa quá trình sinh đường dẫn kiểm thử thâm nhập XSS trên ứng dụng web.
- Xây dựng khung kiểm thử tự động jFAT trên nền tảng Java kết hợp Selenium WebDriver, TestNG và mô hình Page Object Model (POM), cho phép tự động sinh ca kiểm thử và báo cáo lỗ hổng.
3. Về phương pháp kiểm chứng ràng buộc thời gian trong kiến trúc hướng sự kiện (EDA)
- Đề xuất phương pháp kiểm chứng tại thời điểm thực thi (runtime verification) kết hợp giữa đặc tả giới hạn thời gian và trình giám sát thời gian thực cho các hệ thống EDA.
- Xây dựng bộ 7 thuật toán kiểm chứng đầy đủ các mối quan hệ khoảng thời gian giữa các sự kiện ($before$, $meets$, $overlaps$, $starts$, $during$, $finishes$, $equal$).
- Thực nghiệm thành công trên mô hình Hệ thống giám sát giao thông thông minh (ITS), chứng minh khả năng phát hiện sớm các vi phạm thời gian thực thi.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của nghiên cứu
Dựa trên phạm vi và nội dung văn bản luận án trình bày:
- Kỹ thuật phòng chống DoS/DDoS dựa trên nhật ký truy cập phụ thuộc vào chất lượng và tốc độ ghi log của Web Server; việc xác định ngưỡng cảnh báo cần được tinh chỉnh theo từng hệ thống cụ thể.
- Phương pháp kiểm thử XSS tập trung chủ yếu vào việc duyệt qua giao diện web và các trường nhập liệu thông qua mô hình đồ thị điều hướng, chưa bao quát toàn bộ các kịch bản mã độc nhúng phức tạp ở tầng sâu của cơ sở dữ liệu.
- Kiểm chứng thời gian trong EDA mới thử nghiệm trên mô hình giao thông thông minh (ITS), cần tiếp tục đánh giá hiệu năng khi số lượng sự kiện đồng thời tăng lên quy mô cực lớn.
Hướng nghiên cứu tiếp
- Mở rộng phương pháp kiểm thử tự động để phát hiện thêm các dạng lỗ hổng bảo mật phổ biến khác như SQL Injection, Command Injection và các lỗ hổng liên quan đến xác thực phân quyền.
- Nghiên cứu cải tiến các thuật toán học máy và học sâu nhằm tự động hóa việc học ngưỡng phát hiện tấn công DDoS thích ứng linh hoạt với lưu lượng mạng thay đổi liên tục.
- Hoàn thiện công cụ kiểm chứng thời gian thực cho các hệ thống vi dịch vụ (microservices) phân tán quy mô lớn với độ trễ mạng biến thiên.
Giá trị tham khảo
Luận án là tài liệu tham khảo chuyên môn hữu ích cho nhiều nhóm đối tượng:
- Nghiên cứu sinh và học viên cao học ngành Kỹ thuật phần mềm và An toàn thông tin: Tham khảo phương pháp ứng dụng học tăng cường (Q-learning) vào bài toán tối ưu hóa kiểm thử phần mềm; phương pháp kiểm chứng hình thức tại thời điểm thực thi (Chương 4, Chương 5).
- Giảng viên và nhà nghiên cứu: Sử dụng làm tài liệu tham khảo trong các học phần Kiểm thử và đảm bảo chất lượng phần mềm, Kiến trúc phần mềm hướng sự kiện, An ninh mạng và Xử lý dữ liệu lớn.
- Kỹ sư phát triển phần mềm và kỹ sư an ninh hệ thống: Tham khảo mô hình kiến trúc xử lý log phân tán thời gian thực sử dụng Apache Spark, Apache Kafka trên Kubernetes (Chương 3) để ứng dụng trực tiếp vào việc giám sát và bảo vệ các hệ thống web thực tế; áp dụng khung jFAT để xây dựng hệ thống kiểm thử tự động (Chương 4).
Câu hỏi thường gặp
1. Luận án giải quyết bài toán phát hiện tấn công DoS và DDoS theo cơ chế nào?
Luận án tiếp cận thông qua việc phân tích nhật ký truy cập (log files) theo luồng thời gian thực. Hệ thống sử dụng Web Server Openresty gửi log về Apache Kafka, sau đó Apache Spark triển khai trên Kubernetes thực hiện tiền xử lý song song và tính điểm nguy cơ cho từng địa chỉ IP dựa trên các tiêu chí hành vi, đối soát với giá trị ngưỡng để đưa ra cảnh báo sớm (Thuật toán 3.1 và 3.2).
2. Thuật toán Q-learning được áp dụng như thế nào trong bài toán kiểm thử XSS?
Luận án mô hình hóa ứng dụng web thành môi trường của tác nhân kiểm thử dưới dạng Quá trình quyết định Markov (MDP). Q-learning được sử dụng để học chính sách chuyển trạng thái tối ưu trên đồ thị điều hướng của ứng dụng web với tham số $\alpha = 1$ và $\gamma = 0.9$. Ma trận phần thưởng $R$ được thiết lập trọng số cao cho các trang chứa form nhập liệu, giúp thuật toán nhanh chóng sinh ra các đường dẫn kiểm thử có khả năng chứa lỗ hổng XSS mà không cần duyệt vét cạn toàn bộ website.
3. Khung kiểm thử tự động jFAT được xây dựng dựa trên những công nghệ nào?
Khung jFAT (Java automation Framework for web Application Testing) được xây dựng bằng ngôn ngữ Java, tích hợp công cụ tự động hóa trình duyệt Selenium WebDriver, bộ khung điều khiển kiểm thử TestNG và áp dụng mẫu thiết kế Page Object Model (POM) nhằm phân tách rõ ràng giữa mã kiểm thử và cấu trúc trang web.
4. Phương pháp kiểm chứng ràng buộc thời gian trong EDA của luận án bao gồm những quan hệ nào?
Phương pháp đề xuất bộ 7 thuật toán tương ứng với 7 quan hệ thời gian của khoảng sự kiện theo đại số Allen gồm: $evt_i\ \text{before}\ evt_j$, $evt_i\ \text{Meets}\ evt_j$, $evt_i\ \text{overlaps}\ evt_j$, $evt_i\ \text{starts}\ evt_j$, $evt_i\ \text{during}\ evt_j$, $evt_i\ \text{finishes}\ evt_j$, và $evt_i\ \text{equal}\ evt_j$. Trình giám sát thời gian thực sẽ theo dõi và đối chiếu tiến trình phát sinh các sự kiện với đặc tả này.
Kết luận
Luận án tiến sĩ "Một số phương pháp đảm bảo an ninh và ràng buộc thời gian thực thi cho các ứng dụng Web" của tác giả Nguyễn Hạnh Phúc đã giải quyết đồng bộ các vấn đề bảo đảm tính sẵn sàng, tính toàn vẹn và an ninh cho hệ thống phần mềm nền web. Công trình đã đóng góp phương pháp phân tích log thời gian thực phát hiện DoS/DDoS trên nền tảng Spark và Kubernetes, phương pháp sinh đường dẫn kiểm thử XSS tối ưu hóa bằng Q-learning cùng khung jFAT, và bộ thuật toán kiểm chứng ràng buộc thời gian thực thi cho kiến trúc hướng sự kiện EDA. Các kết quả nghiên cứu đều được kiểm chứng thông qua cài đặt công cụ và thực nghiệm trên các hệ thống thực tế như Shopbase và hệ thống giám sát giao thông thông minh ITS.