I. Giải pháp phát hiện tấn công web bằng học máy và web log
Trong bối cảnh kỹ thuật số, các ứng dụng web đã trở thành một phần không thể thiếu của mọi tổ chức và doanh nghiệp. Tuy nhiên, sự phổ biến này cũng đi kèm với những rủi ro về an ninh mạng ngày càng gia tăng. Theo thống kê, thiệt hại do virus và các cuộc tấn công mạng tại Việt Nam gây ra ngày càng nghiêm trọng, lên tới hàng chục nghìn tỷ đồng mỗi năm. Các hình thức tấn công web cơ bản như tấn công chèn mã SQL (SQLi) và tấn công Cross-Site Scripting (XSS) vẫn liên tục gây ra những tổn thất nặng nề, từ việc đánh cắp dữ liệu nhạy cảm đến chiếm quyền kiểm soát toàn bộ hệ thống. Các phương pháp phòng thủ truyền thống, chẳng hạn như hệ thống phát hiện dựa trên chữ ký, thường tỏ ra chậm chạp và kém hiệu quả trước sự biến đổi tinh vi của các kỹ thuật tấn công mới. Để giải quyết thách thức này, một hướng tiếp cận hiện đại và hiệu quả hơn đã được nghiên cứu và áp dụng, đó là sử dụng học máy (machine learning) để phân tích web log. Phương pháp này không chỉ giúp tự động hóa quá trình giám sát mà còn có khả năng nhận diện các cuộc tấn công chưa từng được biết đến, mở ra một kỷ nguyên mới cho lĩnh vực bảo mật ứng dụng web.
1.1. Tầm quan trọng của việc bảo mật ứng dụng web hiện nay
Sự phát triển mạnh mẽ của Internet đã đưa ứng dụng web trở thành nền tảng cốt lõi cho hoạt động của các cơ quan, doanh nghiệp. Tuy nhiên, đây cũng là mục tiêu hàng đầu của tội phạm mạng. Theo số liệu từ BKAV, thiệt hại do virus máy tính tại Việt Nam năm 2019 đã lên tới 20.892 tỷ đồng, một con số đáng báo động [11]. Các cuộc tấn công web không chỉ gây thiệt hại về tài chính mà còn làm suy giảm uy tín của tổ chức, gây đình trệ hoạt động kinh doanh và thậm chí có thể dẫn đến việc mất mát dữ liệu vĩnh viễn. Các dạng tấn công SQLi và XSS là những mối đe dọa phổ biến nhất, cho phép kẻ tấn công vượt qua xác thực, đánh cắp thông tin người dùng và chiếm quyền điều khiển máy chủ. Nguyên nhân sâu xa nằm ở việc nhiều ứng dụng web vẫn còn tồn tại các lỗ hổng trong khâu lọc dữ liệu đầu vào. Do đó, việc xây dựng một hệ thống bảo mật ứng dụng web vững chắc là yêu cầu cấp thiết để bảo vệ tài sản số và đảm bảo hoạt động ổn định.
1.2. Học máy Hướng tiếp cận mới trong lĩnh vực an ninh mạng
Các hệ thống bảo mật truyền thống thường dựa vào các mẫu hoặc chữ ký (signatures) của những cuộc tấn công đã biết. Hạn chế lớn nhất của phương pháp này là không thể phát hiện các hình thức tấn công mới hoặc các biến thể tinh vi (zero-day attacks). Học máy mang đến một giải pháp đột phá bằng cách xây dựng các mô hình có khả năng "học" từ dữ liệu để nhận diện các hành vi bất thường. Thay vì dựa vào các quy tắc cứng nhắc, mô hình phát hiện dựa trên học máy phân tích các mẫu hành vi trong web log để phân biệt giữa lưu lượng truy cập bình thường và các dấu hiệu tấn công tiềm tàng. Ưu điểm của phương pháp này là khả năng phát hiện các mối đe dọa chưa từng có trong cơ sở dữ liệu, tính linh hoạt cao và khả năng tự động cập nhật khi có dữ liệu mới. Đây được xem là hướng đi tất yếu để đối phó với bối cảnh an ninh mạng luôn biến đổi không ngừng.
II. Thách thức trong việc phát hiện các loại tấn công web cơ bản
Việc phát hiện và ngăn chặn các cuộc tấn công web là một bài toán phức tạp, đặc biệt khi các kỹ thuật tấn công ngày càng trở nên tinh vi. Những phương pháp bảo mật truyền thống, chủ yếu là phát hiện dựa trên chữ ký, gặp nhiều khó khăn trong việc theo kịp tốc độ phát triển của các mối đe dọa. Các hệ thống này hoạt động bằng cách so khớp lưu lượng mạng với một cơ sở dữ liệu chứa các mẫu tấn công đã biết. Mặc dù có độ chính xác cao với các cuộc tấn công cũ, chúng hoàn toàn "bất lực" trước các biến thể mới hoặc các cuộc tấn công zero-day. Việc cập nhật cơ sở dữ liệu chữ ký cũng đòi hỏi nhiều công sức và thường bị chậm trễ. Hơn nữa, những kẻ tấn công có thể dễ dàng thay đổi một vài ký tự trong mã độc để né tránh các bộ lọc dựa trên mẫu, khiến hệ thống phòng thủ trở nên vô hiệu. Các dạng tấn công như SQLi và XSS có vô số biến thể, gây khó khăn cho việc xây dựng các bộ quy tắc toàn diện. Chính những hạn chế này đã thúc đẩy sự cần thiết của một phương pháp thông minh hơn, có khả năng học và thích ứng, điển hình là các mô hình phát hiện dựa trên học máy.
2.1. Phân tích các dạng tấn công web cơ bản SQLi và XSS
Trong số các mối đe dọa được OWASP Top 10 cảnh báo, tấn công SQLi và XSS là hai trong số những kỹ thuật phổ biến và nguy hiểm nhất. SQL Injection (SQLi) là kỹ thuật chèn các mã SQL độc hại vào các truy vấn gửi đến cơ sở dữ liệu. Một cuộc tấn công thành công có thể cho phép kẻ tấn công vượt qua cơ chế đăng nhập, đọc, sửa đổi, hoặc xóa toàn bộ dữ liệu, thậm chí chiếm quyền điều khiển máy chủ [1]. Ví dụ, kẻ tấn công có thể nhập chuỗi aaaa' OR 1=1-- vào trường tên người dùng để bỏ qua việc kiểm tra mật khẩu. Trong khi đó, Cross-Site Scripting (XSS) là kỹ thuật chèn các đoạn mã độc (thường là JavaScript) vào các trang web. Khi người dùng khác truy cập vào trang bị nhiễm độc, mã độc sẽ được thực thi trên trình duyệt của họ, cho phép kẻ tấn công đánh cắp cookie, chiếm phiên làm việc, hoặc chuyển hướng người dùng đến các trang lừa đảo [6].
2.2. Hạn chế của hệ thống phát hiện tấn công dựa trên chữ ký
Hệ thống phát hiện xâm nhập (IDS) dựa trên chữ ký (signature-based) là phương pháp phổ biến trong nhiều năm qua. Nguyên tắc hoạt động của nó là so sánh các gói tin hoặc chuỗi truy vấn với một tập hợp các mẫu tấn công đã được định nghĩa trước. Ưu điểm của kỹ thuật này là tốc độ phát hiện nhanh và tỷ lệ báo động sai thấp đối với các mối đe dọa đã biết. Tuy nhiên, nhược điểm lớn nhất là không có khả năng phát hiện các cuộc tấn công mới hoặc các biến thể chưa có trong cơ sở dữ liệu chữ ký. Kẻ tấn công có thể dễ dàng lách qua hệ thống bằng cách thay đổi một chút trong payload tấn công. Hơn nữa, việc xây dựng và cập nhật cơ sở dữ liệu chữ ký là một quá trình thủ công, tốn kém thời gian và nguồn lực. Điều này tạo ra một "cửa sổ cơ hội" cho tin tặc khai thác các lỗ hổng bảo mật zero-day trước khi chữ ký được cập nhật, cho thấy sự cấp thiết của các giải pháp dựa trên học máy và phân tích hành vi.
III. Hướng dẫn khai thác web log để huấn luyện mô hình học máy
Web log (nhật ký web) là một nguồn tài nguyên quý giá nhưng thường bị bỏ qua trong việc tăng cường an ninh mạng. Mỗi khi người dùng tương tác với một trang web, máy chủ web sẽ tự động ghi lại các thông tin chi tiết về yêu cầu đó vào một tệp nhật ký. Tệp này chứa đựng các dữ liệu quan trọng như địa chỉ IP của người dùng, thời gian truy cập, phương thức HTTP, và đặc biệt là chuỗi URI (Uniform Resource Identifier) mà người dùng yêu cầu. Bằng cách phân tích các mẫu trong dữ liệu URI, chúng ta có thể nhận diện được các hành vi bất thường, vốn là dấu hiệu của một cuộc tấn công web. Tuy nhiên, dữ liệu thô trong web log ở dạng văn bản và không thể được đưa trực tiếp vào các thuật toán học máy. Do đó, quá trình tiền xử lý dữ liệu đóng vai trò cực kỳ quan trọng. Quá trình này bao gồm các bước như làm sạch, trích xuất đặc trưng (feature extraction), và chuyển đổi dữ liệu văn bản thành dạng vector số học mà mô hình có thể hiểu và học hỏi. Việc thực hiện đúng quy trình này là yếu tố quyết định đến độ chính xác của mô hình phát hiện tấn công.
3.1. Cấu trúc và ý nghĩa của dữ liệu trong tệp nhật ký web
Một tệp nhật ký web, hay web log, là một bản ghi chi tiết về tất cả các yêu cầu được máy chủ web xử lý. Các máy chủ phổ biến như Apache hay IIS thường tạo ra các bản ghi theo Định dạng Nhật ký Chung (Common Log Format - CLF). Mỗi dòng trong tệp nhật ký tương ứng với một yêu cầu và thường chứa các trường thông tin quan trọng sau: địa chỉ IP của máy khách (Host), tên người dùng đã xác thực (Authuser), ngày giờ yêu cầu (Date), dòng yêu cầu chi tiết bao gồm phương thức và URI (Request), mã trạng thái phản hồi (Status), và kích thước dữ liệu trả về (Bytes) [17]. Trong đó, trường Request chứa chuỗi URI, là thành phần quan trọng nhất để phân tích và phát hiện tấn công web, vì đây chính là nơi kẻ tấn công thường chèn các đoạn mã độc như SQLi hay XSS.
3.2. Quy trình tiền xử lý dữ liệu web log cho mô hình phát hiện
Tiền xử lý dữ liệu là bước nền tảng để chuyển đổi dữ liệu web log thô thành đầu vào có giá trị cho mô hình học máy. Quy trình này bắt đầu bằng việc bóc tách chuỗi URI từ mỗi dòng nhật ký. Sau đó, các chuỗi URI này cần được chuyển đổi thành dạng số. Luận văn áp dụng phương pháp vector hóa sử dụng kỹ thuật n-gram (cụ thể là 3-gram), chia mỗi chuỗi URI thành các đoạn ký tự con có độ dài 3. Tiếp theo, phương pháp TF-IDF (Term Frequency-Inverse Document Frequency) được sử dụng để tính trọng số cho mỗi 3-gram, giúp làm nổi bật các đặc trưng quan trọng. Cuối cùng, để giảm độ phức tạp tính toán và loại bỏ nhiễu, kỹ thuật PCA (Principal Component Analysis) được áp dụng để giảm số chiều của vector đặc trưng xuống còn 256. Toàn bộ quy trình này đảm bảo dữ liệu đầu vào cho mô hình phát hiện được chuẩn hóa và tối ưu, sẵn sàng cho giai đoạn huấn luyện.
IV. Phương pháp xây dựng mô hình học máy phát hiện tấn công
Việc xây dựng một mô hình phát hiện hiệu quả dựa trên học máy đòi hỏi một quy trình bài bản, bao gồm hai giai đoạn chính: huấn luyện (training) và phát hiện (detection). Trong giai đoạn huấn luyện, mô hình sẽ học cách phân biệt giữa các yêu cầu hợp lệ và các yêu cầu chứa mã độc từ một tập dữ liệu huấn luyện đã được gán nhãn. Luận văn này tập trung sử dụng các thuật toán học máy có giám sát, cụ thể là thuật toán Cây quyết định (Decision Tree), vì tính hiệu quả và khả năng diễn giải cao của nó. Dữ liệu đầu vào sau khi qua bước tiền xử lý dữ liệu sẽ được dùng để xây dựng cây quyết định. Mỗi nút trên cây đại diện cho một quy tắc kiểm tra một đặc trưng của dữ liệu, và các nhánh sẽ dẫn đến quyết định phân loại cuối cùng: bình thường (norm) hay tấn công (anom). Sau khi được huấn luyện và kiểm thử, mô hình sẽ được lưu lại và sẵn sàng cho giai đoạn phát hiện, nơi nó sẽ phân tích các web log trong thời gian thực để cảnh báo về các cuộc tấn công web tiềm tàng. Quá trình này tạo ra một hệ thống phòng thủ tự động và thông minh.
4.1. Khám phá thuật toán Cây quyết định trong bảo mật web
Cây quyết định là một trong những thuật toán học máy có giám sát phổ biến nhất, được sử dụng rộng rãi cho cả bài toán phân loại và hồi quy. Mô hình này có cấu trúc giống như một cây, trong đó mỗi nút trong (internal node) đại diện cho một bài kiểm tra trên một thuộc tính, mỗi nhánh thể hiện kết quả của bài kiểm tra, và mỗi nút lá (leaf node) chứa một nhãn lớp (ví dụ: 'tấn công' hoặc 'bình thường'). Ưu điểm lớn nhất của Cây quyết định là mô hình sinh ra các quy tắc rất dễ hiểu, giúp các nhà phân tích an ninh mạng có thể diễn giải quyết định của máy [3]. Trong bối cảnh phát hiện tấn công web, thuật toán này có thể học các quy tắc từ dữ liệu URI đã được vector hóa để phân loại các yêu cầu mới. Tuy nhiên, một nhược điểm cần lưu ý là mô hình này có thể bị quá khớp (overfitting) nếu không được kiểm soát cẩn thận.
4.2. Mô hình hai giai đoạn Huấn luyện và Phát hiện tấn công
Mô hình được triển khai theo hai giai đoạn rõ rệt. Giai đoạn huấn luyện bắt đầu bằng việc thu thập một tập dữ liệu đã gán nhãn, ví dụ như bộ HttpParamsDataset [19], chứa hàng chục nghìn mẫu URI payload của cả truy vấn bình thường và các loại tấn công như SQLi, XSS, CMDi. Dữ liệu này sau khi được tiền xử lý (vector hóa bằng 3-gram, TF-IDF và giảm chiều bằng PCA) sẽ được đưa vào thuật toán Cây quyết định để xây dựng mô hình phân loại. Mô hình sau khi huấn luyện sẽ được lưu lại. Giai đoạn phát hiện là quá trình áp dụng mô hình đã huấn luyện vào thực tế. Hệ thống sẽ liên tục phân tích các dòng web log mới, tách lấy phần URI, áp dụng cùng quy trình tiền xử lý, và sau đó đưa vector đặc trưng vào mô hình để nhận về dự đoán. Nếu một yêu cầu được phân loại là tấn công, hệ thống sẽ đưa ra cảnh báo [2].
V. Kết quả thử nghiệm và đánh giá mô hình phát hiện tấn công
Để đánh giá tính hiệu quả của phương pháp đề xuất, một loạt các thử nghiệm đã được tiến hành trên cả tập dữ liệu mẫu và dữ liệu web log thực tế. Quá trình thử nghiệm không chỉ nhằm mục đích đo lường độ chính xác tổng thể của mô hình phát hiện mà còn phân tích chi tiết khả năng nhận diện từng loại tấn công web cụ thể như SQLi, XSS, duyệt đường dẫn (path traversal) và chèn lệnh hệ điều hành (CMDi). Môi trường thử nghiệm được thiết lập bằng các công cụ và thư viện phổ biến trong lĩnh vực khoa học dữ liệu, chẳng hạn như Python và các thư viện hỗ trợ học máy. Tập dữ liệu huấn luyện và kiểm thử được phân chia cẩn thận để đảm bảo kết quả đánh giá khách quan, tránh hiện tượng quá khớp (overfitting). Kết quả thu được từ các thử nghiệm cho thấy mô hình sử dụng thuật toán Cây quyết định đạt được độ chính xác cao trong việc phân loại các yêu cầu web, chứng minh tiềm năng ứng dụng thực tiễn của phương pháp này trong việc nâng cao bảo mật ứng dụng web.
5.1. Thiết lập môi trường và tập dữ liệu thử nghiệm mô hình
Quá trình thử nghiệm được thực hiện trong môi trường sử dụng ngôn ngữ lập trình Python cùng với các thư viện khoa học dữ liệu mạnh mẽ như Scikit-learn, Pandas và NumPy. Dữ liệu sử dụng cho việc huấn luyện và kiểm thử được lấy từ bộ HttpParamsDataset [19]. Bộ dữ liệu này chứa 31.067 mẫu URI payload, bao gồm cả các yêu cầu bình thường và các mẫu tấn công đã được gán nhãn rõ ràng. Dữ liệu được chia thành hai phần: hơn 20.000 mẫu cho việc huấn luyện mô hình phát hiện và phần còn lại dành cho việc kiểm thử để đánh giá hiệu suất. Ngoài ra, mô hình cũng được thử nghiệm trên dữ liệu web log thực tế để kiểm tra khả năng hoạt động trong môi trường thực.
5.2. Phân tích kết quả và độ chính xác của mô hình phát hiện
Kết quả thử nghiệm cho thấy mô hình phát hiện tấn công dựa trên Cây quyết định đạt được hiệu suất rất khả quan. Theo Bảng 3.2 trong luận văn gốc, mô hình có khả năng phát hiện chính xác các loại tấn công khác nhau với tỷ lệ cao [19]. Đặc biệt, đối với các dạng tấn công web phổ biến như SQLi và XSS, mô hình cho thấy khả năng nhận diện tốt. Khi áp dụng trên dữ liệu web log thực, hệ thống cũng đã phát hiện thành công nhiều chuỗi truy vấn đáng ngờ, chứng tỏ khả năng tổng quát hóa tốt của mô hình. Các kết quả này khẳng định rằng việc sử dụng học máy để phân tích nhật ký web là một phương pháp hiệu quả và đáng tin cậy để tăng cường an ninh mạng cho các ứng dụng web hiện đại, giúp phát hiện sớm các mối đe dọa tiềm ẩn.