Hệ thống phát hiện và phân tích tấn công SQL Injection dựa trên hành vi người dùng

USER BEHAVIOR BASED SQL INJECTION ATTACK DETECTION SYSTEM

Trong kỷ nguyên chuyển đổi số, các ứng dụng web ngày càng trở nên phổ biến và đóng vai trò thiết yếu trong hầu hết các lĩnh vực của đời sống, đặc biệt là trong hoạt động kinh doanh và quản lý doanh nghiệp. Không chỉ dừng lại ở chức năng giới thiệu sản phẩm hay quảng bá thương hiệu, website ngày nay còn được sử dụng như một nền tảng giao dịch, chăm sóc khách hàng, thậm chí là cung cấp các dịch vụ số đa dạng như thanh toán trực tuyến, phát nhạc, xem phim, lưu trữ dữ liệu, và nhiều tiện ích khác. Sự linh hoạt, tiện lợi và khả năng tiếp cận rộng rãi đã giúp ứng dụng web trở thành một công cụ chiến lược trong việc nâng cao hiệu quả hoạt động và năng lực cạnh tranh của doanh nghiệp trong môi trường số hóa. Từ các công ty phân phối hàng hóa đến các nền tảng cung cấp dịch vụ số, website đang là cầu nối quan trọng giữa doanh nghiệp và khách hàng trong thời đại công nghệ hiện nay.

Tuy nhiên, song hành với sự tiện lợi và phổ biến của các ứng dụng web là những mối đe dọa ngày càng tinh vi đến từ các đối tượng tấn công mạng. Tin tặc có thể khai thác các lỗ hổng bảo mật tồn tại trong ứng dụng để thực hiện hành vi truy cập trái phép, đánh cắp thông tin, hoặc gây gián đoạn hoạt động của hệ thống. Trong số các kỹ thuật tấn công mạng, SQL Injection (SQLI) là một trong những phương pháp phổ biến và nguy hiểm nhất. Thông qua việc chèn các đoạn mã độc hại vào truy vấn cơ sở dữ liệu, kẻ tấn công có thể kiểm soát hoặc thao túng toàn bộ hệ thống dữ liệu, bao gồm việc truy xuất thông tin nhạy cảm, thay đổi nội dung, hoặc xóa bỏ dữ liệu quan trọng. Hậu quả của các cuộc tấn công SQLI không chỉ là tổn thất tài chính mà còn làm suy giảm uy tín doanh nghiệp và ảnh hưởng nghiêm trọng đến quyền riêng tư của người dùng.

Nhận thấy vấn đề thực tế đó với mục tiêu xây dựng một giải pháp có khả năng phát hiện sớm và chính xác các cuộc tấn công SQLI em đã nghiên cứu và xây dựng nên hệ thống bảo mật nhằm phát hiện sớm SQLI giảm thiểu rủi ro cho doanh nghiệp. Trong đề tài, em ứng dụng phương pháp học máy (Machine Learning) với mô hình mạng nơ-ron tích chập (Convolutional Neural Network — CNN) để phân tích và phát hiện hành vi bất thường trong các chuỗi truy vấn đến cơ sở dữ liệu. Dữ liệu huấn luyện bao gồm các truy vấn hợp lệ và truy vấn độc hại đã được gán nhãn, giúp mô hình học cách phân biệt giữa hoạt động bình thường và tấn công.

Bên cạnh đó, em phát triển một hệ thống dashboard trực quan nhằm hỗ trợ quản trị viên theo dõi, giám sát tình hình bảo mật hệ thống theo thời gian thực.
Dashboard hiển thị cảnh báo, thống kê, nhật ký tấn công cũng như các biểu đồ trực quan giúp quản trị viên dễ dàng đưa ra quyết định phòng thủ kịp thời. Kết quả thực nghiệm cho thấy hệ thống có khả năng phát hiện tấn công SQLI với độ chính xác cao và giao diện dễ sử dụng, góp phần nâng cao hiệu quả bảo mật cho các hệ thống web.

Xem toàn văn báo cáo tại:

Tổng quan

SQL Injection không phải là một lỗ hổng mới, nhưng sự dai dẳng và mức độ nguy hiểm của nó khiến cho loại tấn công này vẫn đứng trong top 3 của OWASP Top 10 suốt nhiều năm liên tiếp cho thấy đây là một trong những lỗ hổng bảo mật phổ biến và nguy hiểm nhất đối với các ứng dụng web. Bản chất của SQL Injection nằm ở việc khai thác sự thiếu kiểm soát trong quá trình xử lý dữ liệu đầu vào, cho phép kẻ tấn công chèn các câu lệnh SQL độc hại vào các truy vấn cơ sở dữ liệu. Các cuộc tấn công SQL Injection có thể dẫn đến việc truy cập trái phép vào dữ liệu nhạy cảm, thay đổi hoặc xóa dữ liệu quan trọng, và thậm chí chiếm quyền điều khiển hệ thống, gây thiệt hại lớn về tài chính và uy tín cho tổ chức.

Những vụ việc như vụ tấn công vào Equifax năm 2017 làm lộ thông tin của 147 triệu người, hay vụ tấn công vào Yahoo ảnh hưởng đến 3 tỷ tài khoản đều có sự tham gia của các kỹ thuật tương tự SQL Injection. Từ những kỹ thuật cơ bản như Union-based, Boolean-based, Error-based cho đến những kỹ thuật nâng cao như Blind SQL Injection, Time-based SQL Injection, và Second-order SQL Injection, kẻ tấn công không ngừng phát triển những phương pháp mới để vượt qua các biện pháp phòng thủ truyền thống.

Tuy nhiên, mặc dù các biện pháp phòng ngừa truyền thống đã được áp dụng, như kiểm tra và làm sạch dữ liệu đầu vào (input validation), sử dụng Prepared Statements hoặc Stored Procedures, những phương pháp này vẫn không hoàn toàn hiệu quả trong việc bảo vệ các hệ thống khỏi các cuộc tấn công SQLi, đặc biệt khi đối mặt với các kỹ thuật tấn công tinh vi và biến thể mới. Một trong những vấn đề lớn mà các phương pháp phát hiện truyền thống gặp phải là việc chúng chỉ có thể nhận diện những tấn công đã được biết đến hoặc có mẫu chữ ký cố định. Điều này khiến chúng trở nên kém hiệu quả trong việc đối phó với các tấn công mới hoặc các hình thức tấn công chưa từng gặp phải trước đây.

Phạm vi nghiên cứu

Ở khóa luận này em tập trung vào xây dựng một hệ thống phát hiện và phân tích tấn công SQL Injection (SQLI) nhắm vào các ứng dụng web, dựa trên hành vi người dùng thông qua ứng dụng học sâu (Deep Learning). Cụ thể, em ứng dụng mô hình mạng nơ-ron tích chập (Convolutional Neural Network – CNN) để phân tích các chuỗi truy vấn SQL, từ đó nhận diện những hành vi bất thường có dấu hiệu tấn công.

Về mặt chức năng, hệ thống bao gồm hai thành phần chính:

  • Hệ thống phát hiện và cảnh báo tấn công (Detection System): Theo dõi, phân tích truy vấn SQL của người dùng, phát hiện và cảnh báo kịp thời khi có dấu hiệu SQL Injection. Hệ thống được thiết kế để hoạt động thụ động, chỉ phân tích truy vấn và cảnh báo mà không can thiệp trực tiếp vào luồng hoạt động của ứng dụng web chính.
  • Dashboard giám sát và phân tích (Monitoring Dashboard): Xây dựng bằng kiến trúc MERN Stack (bao gồm: hệ cơ sở dữ liệu MongoDb, framework Express.js, React.js và cuối cùng là nền tảng runtime Node.js), cho phép quản trị viên truy cập để theo dõi tình hình an ninh hệ thống theo thời gian thực. Dashboard hiển thị các thống kê như trạng thái hoạt động của ứng dụng web, truy vấn nghi ngờ, tấn công phát hiện được, nguồn gốc truy vấn của kẻ tấn công.
    Phạm vi nghiên cứu của đề tài tập trung vào:
  • Xử lý và phân tích các truy vấn SQL ở tầng ứng dụng (application layer).
  • Phát hiện tấn công SQL Injection dạng cổ điển (classic SQLI) và một số biến thể phổ biến như Union-based SQLI.
  • Ứng dụng mô hình học sâu (CNN) để phân tích mẫu hành vi truy vấn, không đi sâu vào phát hiện lỗ hổng bảo mật của mã nguồn (code audit) hay lỗ hổng cấu hình hệ thống.
  • Triển khai hệ thống trong môi trường Docker với NGINX hỗ trợ reverse proxy, HTTPS và cân bằng tải (load balancing)

Em hướng đến việc xây dựng một hệ thống có giao diện thân thiện, dễ sử dụng, cho phép quản trị viên giám sát và quản lý dữ liệu an ninh một cách trực quan và hiệu quả. Hệ thống không thay thế hoàn toàn các giải pháp tường lửa ứng dụng web (WAF) chuyên dụng mà đóng vai trò hỗ trợ thêm trong việc phát hiện sớm và phân tích hành vi tấn công SQLI.

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Kiến trúc hệ thống

image 19

Kiến trúc của hệ thống được xây dựng theo hướng phân lớp, với ba thành phần chính: Client, Public Endpoint, và Application Host. Mỗi thành phần trong kiến trúc này đóng vai trò quan trọng và cụ thể trong quá trình phát hiện, phân tích và xử lý các hành vi tấn công. Cách thức phân lớp này không chỉ giúp tối ưu hóa quy trình bảo mật mà còn đảm bảo khả năng mở rộng và hiệu quả khi triển khai trên quy mô lớn. Mỗi thành phần đều đóng vai trò quan trọng trong việc đảm bảo tính an toàn và bảo mật của hệ thống, đồng thời cải thiện khả năng phát hiện và xử lý các cuộc tấn công

Mô hình máy học

Kiến trúc mô hình Convolutional Neural Network

Trong hệ thống này, em đề xuất sử dụng mô hình Convolutional Neural Network (CNN) để giải quyết bài toán phát hiện tấn công SQL injection. Mặc dù CNN ban đầu được thiết kế cho xử lý ảnh, nhưng trong những năm gần đây, kiến trúc này đã được ứng dụng thành công trong các bài toán xử lý ngôn ngữ tự nhiên, đặc biệt là phân loại văn bản. Lý do CNN hiệu quả trong phân loại văn bản là do khả năng trích
xuất các đặc trưng cục bộ (local features) thông qua việc áp dụng các bộ lọc tích chập trên chuỗi văn bản. Đối với bài toán phát hiện SQL injection, CNN có thể học được các pattern đặc trưng của các câu lệnh tấn công thông qua việc phân tích các n-gram và cấu trúc cú pháp SQL.

Kiến trúc CNN được đề xuất bao gồm ba lớp tích chập chính với số lượng bộ lọc tăng dần từ 64, 128 đến 256. Mỗi lớp tích chập sử dụng kernel kích thước 3×3 và hàm kích hoạt ReLU để đưa tính phi tuyến vào mô hình. Sau mỗi lớp tích chập là một lớp MaxPooling2D với kích thước 2×2 nhằm giảm chiều dữ liệu và tăng tính bất biến vị trí. Thiết kế này cho phép mô hình trích xuất các đặc trưng từ đơn giản đến phức tạp một cách có hệ thống: lớp đầu tiên với 64 bộ lọc học các đặc trưng cơ bản như từ khóa SQL đơn lẻ, lớp thứ hai với 128 bộ lọc học các pattern phức tạp hơn như cấu trúc câu lệnh, và lớp cuối với 256 bộ lọc học các đặc trưng trừu tượng cao cấp đại diện cho các kỹ thuật tấn công phức tạp.

Phần fully connected của mô hình bao gồm bốn lớp Dense với số lượng neuron giảm dần từ 256, 128, 64 đến 1. Trước khi đưa vào các lớp Dense, dữ liệu được flatten từ ma trận 2D thành vector 1D. Ba lớp Dense đầu sử dụng hàm kích hoạt ReLU để duy trì khả năng học các quan hệ phi tuyến, trong khi lớp cuối cùng sử dụng hàm sigmoid để đưa ra xác suất thuộc lớp SQL injection. Việc giảm dần số lượng neuron trong các lớp Dense giúp mô hình học được các biểu diễn abstract từ high-dimensional features và đưa ra quyết định phân loại cuối cùng.

HIỆN THỰC HỆ THỐNG

image 20
image 21
image 22

Kết luận

Những kết quả đã đạt được

Đề tài đã đạt được nhiều kết quả đáng ghi nhận, cả về mặt lý thuyết lẫn triển khai thực tế, cụ thể như sau:

  • Xây dựng thành công một hệ thống giám sát và trực quan hóa quy trình tấn công – phòng thủ toàn diện, gồm hai thành phần chính:
    o Ứng dụng web giám sát (dashboard) có tên Injex Watch, được xây dựng trên nền tảng MERN Stack, cho phép quản trị viên dễ dàng thêm thiết bị giám sát, theo dõi trạng thái kết nối, truy xuất nhật ký truy vấn, thống kê số lần tấn công, và hiển thị chi tiết các địa chỉ IP nghi vấn theo thời gian thực. Giao diện được thiết kế thân thiện, trực quan, hỗ trợ thao tác nhanh chóng cho người vận hành hệ thống.
    o Trang web khách hàng mẫu tích hợp phần mềm bảo mật mô phỏng hệ thống đặt phòng khách sạn (Grand Paradise Hotel), được sử dụng làm môi trường kiểm thử thực tế, trong đó tất cả truy vấn đầu vào sẽ được chuyển tới mô hình AI để kiểm tra trước khi xử lý, giúp đánh giá khả năng phát hiện SQL Injection trong môi trường gần thực tế.
  • Thiết kế và huấn luyện thành công mô hình học máy (Machine Learning) sử dụng kiến trúc mạng nơ-ron tích chập (CNN), có khả năng phân tích chuỗi truy vấn SQL đầu vào và phân loại chúng thành hai nhóm: hợp lệ (benign) và chứa mã độc (malicious). Quá trình huấn luyện sử dụng tập dữ liệu 5605 truy vấn với nhiều nguồn khác nhau. Mô hình đạt độ chính xác gần 96% trên tập kiểm tra, cho thấy khả năng tổng quát hóa tốt và tiềm năng triển khai thực tế.
  • Thiết lập và triển khai mô hình bảo mật theo kiến trúc nhiều lớp (layered architecture), giúp phân chia rõ ràng vai trò của từng thành phần hệ thống, bao gồm:
    o Client: điểm khởi phát của truy vấn, có thể là người dùng hợp pháp hoặc kẻ tấn công.
    o Public Endpoint: nơi tiếp nhận và xử lý yêu cầu đầu vào thông qua các lớp bảo mật như HTTPS (TLS/SSL), Web Application Firewall (WAF), đóng vai trò là “cửa ngõ” đầu tiên trong hệ thống.
    o Lớp AI phát hiện SQL Injection: xử lý truy vấn thông qua mô hình CNN, phân tích hành vi người dùng để xác định truy vấn độc hại.
    o Application Host: nơi triển khai dịch vụ thực tế, chỉ tiếp nhận và xử lý truy vấn sau khi đã được xác nhận an toàn.
  • Triển khai thành công các thành phần hệ thống bằng công nghệ Docker và Docker Compose, đảm bảo tính đóng gói, khả năng tái sử dụng và linh hoạt trong việc triển khai trên nhiều môi trường khác nhau. Các container độc lập cho backend, frontend, AI detection, và database giúp hệ thống vận hành ổn định, dễ mở rộng.
  • Áp dụng các chuẩn bảo mật hiện đại như TLS/SSL và reverse proxy thông qua NGINX, đảm bảo mã hóa dữ liệu khi truyền tải, đồng thời hỗ trợ phân phối tải truy cập và che giấu hạ tầng backend khỏi sự dò quét từ bên ngoài.
  • Thực hiện các thử nghiệm tấn công SQL Injection có kiểm soát trong môi trường an toàn, thông qua các công cụ như ZAP, SQLmap, trên nền tảng OWASP Juice Shop và DVWA. Kết quả cho thấy hệ thống có thể phát hiện hầu hết các truy vấn SQLI với độ chính xác cao, đồng thời ghi nhận thông tin kẻ tấn công, giúp tạo lập danh sách đen (blacklist) phục vụ giám sát và phản ứng.
    Tổng thể, đề tài không chỉ hoàn thiện về mặt học thuật mà còn thể hiện được tiềm năng ứng dụng thực tế khi kết hợp giữa học sâu, công nghệ web hiện đại và thực hành bảo mật toàn diện.

Những điểm còn hạn chế

Bên cạnh những kết quả đạt được, đề tài vẫn tồn tại một số hạn chế nhất định, chủ yếu đến từ phạm vi và nguồn lực nghiên cứu:

  • Tập dữ liệu huấn luyện mô hình còn ở mức cơ bản, chủ yếu tập trung vào các truy vấn SQL Injection điển hình, chưa bao phủ đủ các dạng tấn công tinh vi như Blind SQLI, Time-Based SQLI, hoặc các hình thức mã hóa/che giấu truy vấn (obfuscated payloads). Điều này khiến mô hình gặp khó khăn khi đối mặt với các biến thể nâng cao hoặc chưa từng xuất hiện trong dữ liệu huấn luyện.
  • Chưa triển khai cơ chế cập nhật mô hình tự động, ví dụ như online learning hoặc semi-supervised learning, để hệ thống có thể tự cải thiện theo thời gian khi phát hiện các truy vấn mới lạ trong môi trường thực tế.
  • Chưa tích hợp khả năng phản ứng chủ động (active defense) như tự động chặn IP nghi vấn, gửi cảnh báo email/SMS, hoặc kết nối với hệ thống cảnh báo sớm (SIEM). Hiện tại, hệ thống mới dừng ở mức phát hiện và hiển thị cảnh báo cho quản trị viên xử lý thủ công.
  • Khả năng mở rộng (scalability) của hệ thống chưa được kiểm tra kỹ trong môi trường có lưu lượng truy cập lớn hoặc đồng thời. Hệ thống hiện mới được thử nghiệm trong quy mô phòng lab hoặc mạng nội bộ.
  • Độ chính xác mô hình có thể bị ảnh hưởng trong trường hợp tấn công phân mảnh (payload splitting) hoặc tấn công chéo nền tảng (cross-database injection), điều này chưa được kiểm chứng rõ trong thực nghiệm.

Hướng phát triển

Mặc dù đề tài đã hoàn thành các mục tiêu đề ra và thể hiện tính ứng dụng thực tế cao, nhưng để hệ thống phát hiện và phân tích tấn công SQL Injection ngày càng hoàn thiện, phù hợp với sự phát triển nhanh chóng của các kỹ thuật tấn công mạng hiện nay, một số định hướng mở rộng và nâng cấp hệ thống trong tương lai được đề xuất như sau:

Mở rộng tập dữ liệu huấn luyện

  • Tăng cường kích thước và tính đa dạng của tập dữ liệu, bao gồm các dạng SQL Injection phức tạp hơn như:
    o Blind SQL Injection (boolean-based, time-based).
    o Out-of-band SQLI, Second-order SQLI.
    o Payloads sử dụng kỹ thuật mã hóa, xáo trộn cú pháp (obfuscation).
  • Tích hợp công cụ crawler để tự động thu thập truy vấn từ hệ thống web thực tế hoặc các honeypot, từ đó hình thành kho dữ liệu đầu vào phong phú hơn, phục vụ cho huấn luyện mô hình trong môi trường thực tế.
    Áp dụng các kỹ thuật học máy nâng cao
  • Kết hợp các mô hình hiện đại hơn như Transformer, LSTM kết hợp Attention, hoặc kiến trúc lai giữa CNN–BiLSTM nhằm nâng cao khả năng hiểu ngữ cảnh truy vấn.
  • Tích hợp phương pháp semi-supervised learning hoặc self-training, giúp hệ thống có thể học thêm từ các truy vấn chưa gán nhãn hoặc phát hiện dị thường (anomaly detection).
    Tăng cường cơ chế phản ứng và phòng thủ
  • Bổ sung chức năng tự động phản ứng với tấn công như:
    o Tạm thời chặn IP nghi vấn.
    o Gửi cảnh báo đến email, điện thoại quản trị viên.
    o Tự động cập nhật danh sách đen (blacklist) theo thời gian thực.
  • Tích hợp với các nền tảng giám sát tập trung như SIEM, ELK stack, giúp tổng hợp và phân tích log toàn cục cho nhiều ứng dụng trong hệ thống.
    Kiểm thử hệ thống ở quy mô lớn hơn
  • Triển khai và kiểm tra hệ thống trong môi trường có lưu lượng truy cập lớn (stress test), đánh giá độ trễ, độ tin cậy và hiệu suất phát hiện.
  • Nghiên cứu hướng chạy song song mô hình AI trên cụm máy chủ (distributed detection) để đảm bảo hiệu năng khi có nhiều yêu cầu đồng thời.
    Mở rộng phạm vi phát hiện đa dạng tấn công khác
  • Nghiên cứu mở rộng mô hình để phát hiện thêm các dạng tấn công khác như:
    o Cross-Site Scripting (XSS).
    o Command Injection.
    o Directory Traversal.
  • Thiết lập kiến trúc hệ thống linh hoạt để dễ dàng tích hợp nhiều mô hình AI cùng lúc, tạo nên một nền tảng phát hiện tấn công đa lớp.
    Tăng cường giao diện và trải nghiệm người dung
  • Cải tiến dashboard theo hướng thông minh hơn (smart dashboard), tích hợp biểu đồ tương tác, lọc nâng cao, phân tích chuỗi tấn công theo thời gian (attack timeline).
  • Phát triển ứng dụng giám sát trên nền tảng di động (mobile monitoring app), hỗ trợ truy cập nhanh chóng mọi lúc mọi nơi cho quản trị viên.