Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số, ứng dụng web đóng vai trò là giao diện cốt lõi kết nối doanh nghiệp với khách hàng, đối tác và thị trường toàn cầu. Theo các báo cáo an ninh mạng quốc tế, hơn 70% các cuộc tấn công mạng nhắm vào lớp ứng dụng web (Web Application Layer), trong đó giai đoạn trinh sát thông tin (Reconnaissance / Enumeration) là bước tiên quyết quyết định sự thành bại của một chiến dịch tấn công hoặc quy trình đánh giá bảo mật (Penetration Testing).

+-------------------------------------------------------------------------------+
|                    QUY TRÌNH TRINH SÁT BẢO MẬT TRUYỀN THỐNG                   |
|                                                                               |
| [Subdomain Enum]   [Port Scanning]   [Tech Profiling]   [Directory Fuzzing]   |
|   (Sublist3r)          (Nmap)          (Whatweb/Wapp)        (Gobuster)       |
|        \                 |                   |                   /            |
|         v                v                   v                  v             |
|   +-----------------------------------------------------------------------+   |
|   | Manual Context Switching: Xung đột thư viện, gõ lệnh rời rạc,         |   |
|   | phân tán dữ liệu, tốn 60-70% tổng thời gian kiểm thử ban đầu          |   |
|   +-----------------------------------------------------------------------+   |
|                                      |                                        |
|                                      v                                        |
|                       +-------------------------------+                       |
|                       |  EnumTool: Tự động hóa Docker |                       |
|                       |  1 click -> 1 Unified Report  |                       |
|                       +-------------------------------+                       |
+-------------------------------------------------------------------------------+

Giai đoạn thu thập thông tin thủ công đòi hỏi kiểm thử viên phải vận hành hàng chục công cụ dòng lệnh (CLI) độc lập, đối mặt với xung đột phụ thuộc môi trường (Python 2/3, Ruby, Perl, Go), quản lý nhiều cửa sổ dòng lệnh và tự tay tổng hợp các nguồn dữ liệu rời rạc. Điều này tiêu tốn từ 60% đến 70% tổng thời gian kiểm thử ban đầu nhưng dễ để sót các tài sản số giá trị.

Đồ án tốt nghiệp "Nghiên cứu công cụ tự động rút trích thông tin website phục vụ đánh giá bảo mật" (EnumTool) được thực hiện bởi sinh viên Huỳnh Minh Hiếu (MSSV: 17520470) và Nguyễn Cao Thái (MSSV: 17521030), dưới sự hướng dẫn của TS. Phạm Văn Hậu và TS. Nguyễn Tấn Cẩm tại Khoa Mạng máy tính & Truyền thông – Trường Đại học Công nghệ Thông tin (ĐHQG-HCM). Đồ án giải quyết trực tiếp bài toán tự động hóa quy trình trinh sát bề mặt tấn công bằng giải pháp đóng gói vi dịch vụ (microservices) trên nền tảng Docker.

Mục tiêu nghiên cứu cụ thể

  1. Chuẩn hóa và tích hợp đa công cụ: Đóng gói toàn bộ các công cụ trinh sát hàng đầu thuộc 8 phân hệ chuyên biệt vào kiến trúc Docker, loại bỏ 100% tình trạng xung đột môi trường.
  2. Xây dựng hệ thống giao diện trực quan (Unified Web UI): Cho phép khởi tạo quá trình quét, theo dõi tiến trình và quản lý mục tiêu chỉ qua một giao diện web duy nhất.
  3. Cơ chế liên kết và tương quan dữ liệu tự động: Tự động đối chiếu thông tin phiên bản máy chủ, công nghệ phát hiện được với kho dữ liệu lỗ hổng bảo mật chuẩn quốc tế Common Vulnerabilities and Exposures (CVE) từ ExploitDB.
  4. Trích lọc và quản trị dữ liệu thông minh: Lưu trữ toàn bộ kết quả thô vào cơ sở dữ liệu phi quan hệ (NoSQL) và tự động tạo chỉ mục tìm kiếm đa tiêu chí (hệ điều hành, web server, CMS, ngôn ngữ lập trình).
  5. Xuất báo cáo hợp nhất: Tự động khởi tạo báo cáo đánh giá an toàn thông tin toàn diện định dạng HTML kèm ảnh chụp màn hình trực quan của mục tiêu.

Phạm vi nghiên cứu

Hệ thống tập trung chuyên sâu vào giai đoạn thu thập thông tin bề mặt (Information Gathering & Enumeration) với 8 phân hệ kỹ thuật:

  • Rút trích nền tảng công nghệ, framework, web server, hệ điều hành.
  • Thu thập thông tin tên miền, bảng ghi DNS và liệt kê tên miền phụ (subdomains).
  • Rà quét, dò tìm thư mục và tập tin ẩn trên máy chủ web.
  • Phân tích cấu hình và bản ghi máy chủ phân giải tên miền (DNS Enumeration).
  • Nhận dạng tường lửa ứng dụng web (Web Application Firewall - WAF).
  • Quét chuyên sâu các hệ thống quản trị nội dung phổ biến (WordPress, Joomla, Drupal, Moodle, Silverstripe).
  • Rà soát cổng dịch vụ mạng (Port Scanning) và nhận dạng phiên bản dịch vụ.
  • Tự động tra cứu lỗ hổng bảo mật phổ biến (CVE / Exploit-DB) tương ứng với công nghệ thu thập được.

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

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

Trên thị trường mã nguồn mở, một số giải pháp trinh sát tự động đã được phát triển nhưng vẫn tồn tại nhiều hạn chế kỹ thuật đáng kể:

Tiêu chí phân tích LazyRecon (v1.0) Celerystalk (v1.0) Scilla (v1.1) EnumTool (Đồ án nghiên cứu)
Giao diện người dùng (GUI) Không (CLI Shell Script) Không (CLI Python) Không (CLI Go) Có (Web Dashboard trực quan)
Kiến trúc triển khai Script trực tiếp trên OS Cài đặt thủ công / Script Binary độc lập 3 Docker Containers phân lập
Lưu trữ CSDL tập trung Không lưu trữ Có lưu trữ Không lưu trữ Có (MongoDB NoSQL Schema)
Phát hiện công nghệ Web Hạn chế Có (Whatweb) Không hỗ trợ Toàn diện (Wappalyzer, Netcraft, Webtech, Whatweb)
Phát hiện tường lửa WAF Không hỗ trợ Không hỗ trợ Không hỗ trợ Có (Wafw00f Engine)
Dò quét chuyên sâu CMS Không hỗ trợ Không hỗ trợ Không hỗ trợ Có (CMSeek, WPScan, Droopescan, Joomscan)
Mapping lỗ hổng CVE/Exploit Không hỗ trợ Không hỗ trợ Không hỗ trợ Có (Tích hợp Searchsploit Offline/Online)
Xuất báo cáo trực quan Text file rời rạc HTML thô sơ HTML cơ bản HTML chuẩn hóa + Chụp ảnh giao diện (pic)

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

+---------------------------------------------------------------------------------------------------+
|                                 PHÂN LOẠI YÊU CẦU THEO MoSCoW                                     |
+---------------------------------------------------------------------------------------------------+
| MUST HAVE (Bắt buộc)    | * Docker hóa môi trường rà quét trên nền Kali Linux 2021.2.             |
|                         | * Tích hợp API trung gian kích hoạt công cụ: Nmap, Wafw00f, Nikto...   |
|                         | * Lưu trữ phân cấp dữ liệu vào 2 bảng MongoDB: `report` và `search`.     |
|                         | * Giao diện Dashboard nhập URL và kích hoạt quét đa luồng.              |
+-------------------------+-------------------------------------------------------------------------+
| SHOULD HAVE (Nên có)    | * Mapping tự động phiên bản CMS/Web Server với CVE từ ExploitDB.        |
|                         | * Bộ lọc tìm kiếm nâng cao (OS, Web Server, Framework, Language).       |
|                         | * Xuất báo cáo HTML độc lập, tích hợp screenshot trang chủ.             |
+-------------------------+-------------------------------------------------------------------------+
| COULD HAVE (Có thể có)  | * Cho phép kiểm thử viên thêm/xóa thủ công các lỗ hổng tìm được.        |
|                         | * Tính năng chụp ảnh màn hình tự động theo token phiên làm việc.       |
+-------------------------+-------------------------------------------------------------------------+
| WON'T HAVE (Chưa hỗ trợ)| * Khai thác tự động payload (Auto-exploitation / Weaponization).        |
|                         | * Tự động phân tán node quét qua hạ tầng đám mây (Cloud Distributed).  |
+---------------------------------------------------------------------------------------------------+

Thiết kế hệ thống

Hệ thống EnumTool được xây dựng theo kiến trúc Client - Server hiện đại, phân tách thành 3 Docker Containers độc lập giao tiếp thông qua mạng nội bộ Docker Network (Bridge Mode):

+---------------------------------------------------------------------------------------+
|                                  KIẾN TRÚC ENUMTOOL                                   |
+---------------------------------------------------------------------------------------+
|                                  [ USER BROWSER ]                                     |
|                                         | (HTTP/Web Port)                             |
|                                         v                                             |
| +-----------------------------------------------------------------------------------+ |
| | [ CONTAINER CORE ] (Web Server & Business Logic)                                  | |
| | - Dashboard Controller: Quản lý phiên làm việc, cấp phát UUID Token              | |
| | - Search & Filter Engine: Truy vấn nhanh tài sản số đã phân tích                  | |
| | - Report Generator: Tổng hợp dữ liệu thô và xuất HTML Report                      | |
| +------------------------------------+----------------------------------------------+ |
|                                      |                                                |
|               +----------------------+----------------------+                         |
|               | (Internal REST API)                         | (Mongoose/MongoDB Protocol)     |
|               v                                             v                         |
| +------------------------------------------+ +--------------------------------------+ |
| | [ CONTAINER API ] (Kali Linux 2021.2)    | | [ CONTAINER DATABASE ] (MongoDB Engine)| |
| | - Sublist3r, Dig, Fierce                 | | - Collection `report`: Toàn văn kết  | |
| | - Wappalyzer, Whatweb, Webtech, Netcraft | |   quả quét, token, pic, CVE list     | |
| | - Gobuster (dir/file fuzzing)            | | - Collection `search`: Dữ liệu phân  | |
| | - Nmap 7.91, Nikto, Wafw00f              | |   tách phục vụ lập chỉ mục tìm kiếm  | |
| | - CMSeek, WPScan, Droopescan, Joomscan   | |   (OS, Web Server, CMS, Framework)   | |
| | - Searchsploit (Exploit-DB Engine)       | +--------------------------------------+ |
| +------------------------------------------+                                          |
+---------------------------------------------------------------------------------------+
  1. Container API (Worker & Execution Engine):
    • Hệ điều hành nền: Kali Linux 2021.2.
    • Nhiệm vụ: Đóng gói toàn bộ 15+ công cụ mã nguồn mở và thư viện phụ thuộc. Cung cấp chuẩn giao tiếp RESTful API qua cổng nội bộ (Port 5000) để kích hoạt từng tác vụ riêng biệt.
  2. Container Database (Storage Layer):
    • Hệ quản trị: MongoDB NoSQL Database (Port 27017).
    • Nhiệm vụ: Lưu trữ cấu trúc dữ liệu JSON linh hoạt, không cố định cấu trúc schema, phù hợp với định dạng đầu ra không đồng nhất của nhiều công cụ khác nhau.
  3. Container Core (Web Application Server):
    • Nhiệm vụ: Trung tâm điều phối, tiếp nhận yêu cầu từ người dùng, sinh mã phiên duy nhất (UUID token), gọi API sang Container Kali, tổng hợp kết quả, xử lý bóc tách trường dữ liệu và hiển thị bảng điều khiển.
// Cấu trúc Collection `report` trong MongoDB Engine
{
  "_id": "ObjectId('60da870fdbd0990035210e3d')",
  "token": "ce2bb2a9-18dc-4646-884a-1c57f7d3b5bb",
  "url": "http://rest.vulnweb.com/",
  "time_create": "Tue Jun 29 2021 02:35:59 GMT+0000",
  "pic": "ce2bb2a9-18dc-4646-884a-1c57f7d3b5bb.png",
  "whois": { "domain": "vulnweb.com", "registrar": "eurodns.com" },
  "wapp": { "os": ["Debian"], "webservers": ["Apache 2.4.25"], "languages": ["PHP 7.1.26"] },
  "wafw00f": { "detected": false, "firewall": "None", "manufacturer": "None" },
  "nmap": { "open_ports": [80, 443], "services": ["http", "ssl/http"] },
  "vulns": [
    { "cve": "CVE-2007-4781", "title": "Joomla 1.5 - SQL Injection", "edb_id": "1358" }
  ]
}
// Cấu trúc Collection `search` phục vụ chỉ mục hóa dữ liệu
{
  "_id": "ObjectId('60da8a3adbd0990035210e41')",
  "token": "4705192-75bc-457f-896a-df4ea906c6e0",
  "url": "http://example.com",
  "operatingsystems": ["Linux"],
  "webservers": ["ECS (dcb/7EEA)"],
  "webframeworks": [],
  "javascriptframeworks": [],
  "cms": [],
  "programminglanguages": []
}

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển phần mềm lặp linh hoạt (Iterative Agile Approach) kết hợp chặt chẽ với quy trình chuẩn hóa kiểm thử bảo mật mở OWASP Testing Guide v4:

  • Giai đoạn 1 (Module Isolation): Đóng gói và chuẩn hóa độc lập từng công cụ CLI sang dạng microservice qua Flask/Python Wrapper.
  • Giai đoạn 2 (System Integration & Data Normalization): Thiết lập kiến trúc Docker Compose, chuẩn hóa đầu ra dạng chuỗi/JSON thô về định dạng JSON thống nhất.
  • Giai đoạn 3 (Correlation & Aggregation): Xây dựng thuật toán ánh xạ công nghệ với cơ sở dữ liệu lỗ hổng bảo mật ExploitDB.
  • Giai đoạn 4 (Testing & Optimization): Thực nghiệm hệ thống trên các máy chủ mục tiêu trực tuyến và các môi trường Lab có chủ đích lỗ hổng.

Implementation và kết quả

Quy trình phát triển và tích hợp công nghệ

Hệ thống thiết lập các API chuẩn hóa giúp Container Core gọi thực thi các công cụ trên Container API theo cấu trúc: GET /api/v1/enumeration/{tool_name}?url={target_url}

# Minh họa Endpoint Wrapper cho công cụ Wafw00f trên Container API
from flask import Flask, request, jsonify
import subprocess
import json

app = Flask(__name__)

@app.route('/api/v1/enumeration/wafw00f', methods=['GET'])
def run_wafw00f():
    target_url = request.args.get('url')
    if not target_url:
        return jsonify({"error": "Missing target URL parameter"}), 400
    
    # Thực thi Wafw00f định dạng JSON output
    cmd = ["wafw00f", target_url, "-o", "-", "-f", "json"]
    process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = process.communicate()
    
    try:
        waf_result = json.loads(stdout.decode('utf-8'))
        return jsonify(waf_result), 200
    except Exception as e:
        return jsonify({"detected": False, "firewall": "Generic/Unknown", "raw": stdout.decode('utf-8')}), 200

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Chi tiết 8 phân hệ tích hợp trong EnumTool:

  1. Phân hệ DNS & Subdomain Enumeration:
    • Sublist3r: Thu thập tên miền phụ bằng cách khai thác Open Source Intelligence (OSINT) qua các công cụ tìm kiếm (Google, Bing, Yahoo, Baidu) kết hợp Netcraft, VirusTotal, ThreatCrowd và module brute-force Subbrute.
    • Dig (Domain Information Groper): Truy vấn các bản ghi DNS trọng yếu (A, NS, MX, TXT), hỗ trợ phát hiện nguy cơ Subdomain Takeover.
    • Fierce: Rà soát không gian IP, kiểm tra khả năng chuyển vùng máy chủ tên miền (DNS Zone Transfer) và phát hiện Wildcard DNS.
  2. Phân hệ Web Technology Profiling:
    • Wappalyzer & Netcraft Engine: Nhận diện CMS, Web Framework, Font Scripts, JS Libraries, Web Server và lịch sử lưu trữ (Hosting History).
    • Whatweb & Webtech: Phân tích sâu các giá trị Header HTTP bất thường (X-Powered-By, Server, Set-Cookie) với hơn 1.800 chữ ký nhận dạng.
  3. Phân hệ Directory & File Fuzzing:
    • Gobuster: Khai thác tính năng đa luồng cực nhanh của ngôn ngữ Go để quét vét cạn (brute-force) cấu trúc thư mục, tập tin ẩn và tài nguyên nhạy cảm.
  4. Phân hệ Network & Port Scanning:
    • Nmap (v7.91): Thực hiện quét cổng TCP SYN (-sS), nhận diện phiên bản dịch vụ (-sV), phát hiện hệ điều hành (-O) và rà soát lỗ hổng bằng tập lệnh Nmap Scripting Engine (--script vuln).
  5. Phân hệ WAF Detection:
    • Wafw00f: Gửi các gói tin HTTP chuẩn và HTTP bất thường để phân tích phản hồi, xác định sự hiện diện của hơn 50 loại tường lửa ứng dụng web (Cloudflare, AWS WAF, ModSecurity, F5 Big-IP).
  6. Phân hệ Web Server Auditing:
    • Nikto: Quét hơn 6.700 tập tin nguy hiểm tiềm ẩn, kiểm tra cấu hình sai (misconfigurations), thiếu sót Security Headers (X-XSS-Protection, X-Content-Type-Options) và kiểm tra sự lỗi thời của hơn 1.250 loại máy chủ.
  7. Phân hệ Chuyên sâu Content Management System (CMS):
    • CMSeek: Nhận diện hơn 170 loại CMS, bóc tách themes, plugins và tài khoản quản trị viên.
    • WPScan: Quét chuyên sâu lỗ hổng WordPress core, theme, plugin và kiểm tra lộ mật khẩu.
    • Droopescan & Joomscan: Rà quét chuyên biệt hệ thống Drupal, Moodle, Silverstripe và Joomla (nhận dạng phiên bản, tệp cấu hình lỗi, robots.txt nhạy cảm).
  8. Phân hệ Mapping Lỗ hổng (CVE Lookup):
    • Searchsploit: Truy vấn tự động kho lưu trữ Exploit-DB nội bộ offline, trả về tiêu đề lỗ hổng, mã phân loại CVE và đường dẫn mã khai thác mà không phụ thuộc Internet.

Testing và thực nghiệm hệ thống

Hệ thống được thử nghiệm thực tế trên môi trường Lab tiêu chuẩn và hệ thống máy chủ kiểm thử trực tuyến vulnweb.com (môi trường kiểm thử có chủ đích của Acunetix):

+------------------------------------------------------------------------------------+
|                      THÔNG SỐ MÔI TRƯỜNG THỰC NGHIỆM HỆ THỐNG                      |
+------------------------------------------------------------------------------------+
| Phần cứng máy chủ Host: Intel Core i5 / 16GB DDR4 RAM / Ubuntu 20.04 LTS           |
| Nền tảng ảo hóa: Docker Engine Community v20.10.x & Docker-Compose v1.29.x        |
| Mục tiêu kiểm thử trực tuyến: http://testaspnet.vulnweb.com/ và http://testphp...  |
| Mục tiêu kiểm thử mạng Lab nội bộ: Máy ảo Ubuntu chạy Joomla 1.5 & WordPress 5.x   |
+------------------------------------------------------------------------------------+

Kết quả thu thập chi tiết trên mục tiêu testaspnet.vulnweb.com:

  • Công nghệ phát hiện: Web Server Microsoft-IIS phiên bản 8.5, Web Framework ASP.NET phiên bản 2.0.50727, hệ điều hành Windows Server.
  • Cổng dịch vụ phát hiện: Cổng 80/TCP (HTTP) và 443/TCP (HTTPS) đang mở.
  • Tường lửa ứng dụng web: Wafw00f xác định máy chủ phản hồi thông tin nguyên bản, không phát hiện sự can thiệp của WAF bên ngoài.
  • Máy chủ DNS & Bảng ghi: Dig và Fierce bóc tách thành công địa chỉ IP máy chủ (18.158.156.139), hệ thống Nameserver quản lý và xác định không cho phép DNS Zone Transfer.
  • Kết quả quét CMS Lab (Joomla 1.5 Target): Joomscan nhận diện chính xác phiên bản Joomla 1.5, phát hiện trang quản trị /administrator/ và tự động trích xuất các mã CVE nguy hiểm:
    • CVE-2007-4781: Joomla! 1.5 Beta1/Beta2/RC1 - SQL Injection (Exploit-DB: 1358).
    • CVE-2008-3681: Joomla! 1.x - Remote Admin Change Password Token Bypass (Exploit-DB: 6234).
    • CVE-2011-1989: Joomla! 1.x - Cross-Site Scripting / Information Disclosure (Exploit-DB: 33061).
+------------------------------------------------------------------------------------+
|                   MA TRẬN HIỆU QUẢ TRÍCH XUẤT THÔNG TIN ENUMTOOL                   |
+------------------------------------------------------------------------------------+
| Hạng mục dữ liệu trinh sát   | Tỷ lệ phát hiện chính xác | Thời gian xử lý trung bình |
+------------------------------+---------------------------+----------------------------+
| 1. Subdomain & DNS Records   | 96.5%                     | 45 giây                   |
| 2. Web Technologies / Server | 98.2%                     | 18 giây                   |
| 3. Hidden Directories/Files  | 92.0%                     | 65 giây                   |
| 4. WAF Fingerprinting        | 95.0%                     | 12 giây                   |
| 5. CMS Version & Plugins     | 97.8%                     | 35 giây                   |
| 6. Service & Port Scanning   | 99.1%                     | 50 giây                   |
| 7. CVE Mapping (Exploit-DB)  | 94.3%                     | 8 giây                    |
+------------------------------------------------------------------------------------+

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

  1. Kiến trúc Microservices giải quyết dứt điểm rào cản môi trường: Đóng gói toàn bộ các công cụ viết bằng nhiều ngôn ngữ khác nhau (Python 2.7/3.x, Ruby, Perl, Go, C) vào một Docker Container Kali chuyên dụng. Kiểm thử viên chỉ cần khởi chạy docker-compose up là có ngay môi trường sẵn sàng hoạt động trong chưa đầy 3 phút.
  2. Cơ chế liên kết và chuẩn hóa dữ liệu đa nguồn: Lần đầu tiên kết hợp kết quả nhận dạng công nghệ từ 4 công cụ (Wappalyzer, Netcraft, Webtech, Whatweb) để loại bỏ tỷ lệ dương tính giả (False Positives), tăng độ tin cậy của thông tin công nghệ lên trên 98%.
  3. Tương quan lỗ hổng tự động (Automated Vulnerability Correlation): Tự động liên kết phiên bản hệ thống quản trị nội dung và máy chủ với cơ sở dữ liệu Exploit-DB ngoại tuyến thông qua Searchsploit, giúp kiểm thử viên xác định ngay vector tấn công tiềm năng mà không cần tra cứu thủ công.
  4. Hệ thống hóa tài sản và tìm kiếm nâng cao (Asset Indexing): Bảng search cho phép lưu trữ và truy vấn nhanh các tài sản kiểm thử theo từ khóa (ví dụ: tìm tất cả các mục tiêu đang chạy hệ điều hành Linux hoặc sử dụng PHP).
  5. Nâng cao 65% năng suất làm việc của chuyên gia bảo mật: Tự động hóa toàn bộ công đoạn thu thập và tổng hợp báo cáo HTML kèm bằng chứng ảnh chụp, giảm thời gian trinh sát ban đầu từ 2-3 giờ xuống còn dưới 5-7 phút cho mỗi mục tiêu.

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

Kịch bản ứng dụng thực tế (Use Cases)

  • Quy trình Đánh giá Bảo mật Chuyên nghiệp (Penetration Testing): Cung cấp bức tranh toàn cảnh về bề mặt tấn công của đối tượng kiểm thử ngay trong giai đoạn Kick-off.
  • Đội ngũ Phòng thủ Doanh nghiệp (Blue Team / SecOps): Tự động rà soát tài sản số định kỳ, phát hiện các cổng dịch vụ mở trái phép, các tệp tin backup bị bỏ quên hoặc các subdomain không còn sử dụng nhưng chưa thu hồi bản ghi DNS (Subdomain Takeover Prevention).
  • Đào tạo và Nghiên cứu An toàn Thông tin: Cung cấp môi trường trực quan cho sinh viên, học viên thực hành quy trình Information Gathering chuẩn mực.

Hướng dẫn triển khai hệ thống (Deployment Instructions)

# 1. Clone mã nguồn dự án từ repository
git clone https://github.com/enumtool/enumtool-core.git
cd enumtool-core

# 2. Xây dựng và khởi chạy hệ thống 3 Containers qua Docker Compose
docker-compose build
docker-compose up -d

# 3. Kiểm tra trạng thái hoạt động của các Containers
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

# Kết quả hiển thị tiêu chuẩn:
# enumtool_core        Up 2 minutes    0.0.0.0:8080->80/tcp
# enumtool_api         Up 2 minutes    0.0.0.0:5000->5000/tcp
# enumtool_database    Up 2 minutes    0.0.0.0:27017->27017/tcp

# 4. Truy cập giao diện bảng điều khiển EnumTool
# Mở trình duyệt web: http://localhost:8080/

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

Hạn chế kỹ thuật hiện tại

  • Quá trình rà quét còn phụ thuộc vào tốc độ phản hồi mạng của mục tiêu; việc quét thư mục bằng danh sách từ điển lớn (wordlists) tốn nhiều thời gian và băng thông.
  • Chưa tích hợp cơ chế vượt qua các hệ thống hạn chế tần suất yêu cầu (Rate Limiting) hoặc hệ thống chống Bot thông minh tích hợp CAPTCHA phức tạp.
  • Chưa hỗ trợ cơ chế xếp hàng tác vụ phân tán (Distributed Task Queue) khi thực hiện quét đồng thời hàng trăm mục tiêu quy mô lớn.

Hướng phát triển trong tương lai

  • Tích hợp hàng đợi bất đồng bộ Celery & Redis: Tách các luồng quét nặng thành tác vụ nền, cho phép xử lý song song hàng trăm website mà không nghẽn tài nguyên.
  • Mở rộng cơ sở tri thức lỗ hổng với Nuclei Engine: Bổ sung engine quét lỗ hổng dựa trên template YAML động (Nuclei templates) để phát hiện tức thời các lỗ hổng 1-day/0-day mới công bố.
  • Ứng dụng Trí tuệ Nhân tạo (AI Heuristic Correlation): Sử dụng mô hình học máy để tự động phân tích phản hồi HTTP, dự đoán độ chính xác của các điểm yếu cấu hình và đề xuất kịch bản khai thác an toàn cho kiểm thử viên.

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

  • Sinh viên ngành An toàn Thông tin / Mạng máy tính: Nguồn tài liệu thực nghiệm rõ ràng về cách đóng gói công cụ bảo mật, cấu trúc dữ liệu NoSQL và quy trình trinh sát website chuẩn mực.
  • Chuyên gia Đánh giá An toàn Thông tin (Pentesters): Sở hữu công cụ tự động hóa mạnh mẽ, tiết kiệm 65% thời gian chuẩn bị dữ liệu cho mỗi dự án kiểm thử.
  • Doanh nghiệp & Đội ngũ Quản trị Hệ thống (SysAdmins): Công cụ đắc lực để tự kiểm tra an ninh định kỳ cho toàn bộ hạ tầng web của tổ chức với chi phí triển khai 0 đồng.
  • Cộng đồng Nghiên cứu An ninh Mạng: Khung kiến trúc mở dễ dàng phát triển thêm module hoặc tích hợp vào các nền tảng SIEM/SOAR lớn hơn.

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để vận hành EnumTool là gì?

Hệ thống yêu cầu máy chủ hoặc máy tính cá nhân cài đặt sẵn Docker Engine (>= 20.10)Docker Compose (>= 1.29). Cấu hình phần cứng khuyến nghị tối thiểu gồm: CPU 4 Cores, 8GB RAM (khuyến nghị 16GB để chạy quét đa luồng mượt mà) và ít nhất 25GB dung lượng đĩa cứng trống để lưu trữ Docker Images của Kali Linux và dữ liệu MongoDB.

2. EnumTool giải quyết vấn đề xung đột thư viện giữa các công cụ như thế nào?

Toàn bộ các công cụ và các tầng phụ thuộc (Python 2.7, Python 3.x, Perl, Ruby, Go) được đóng gói độc lập bên trong Container API (nền tảng Kali Linux 2021.2). Container này giao tiếp với bên ngoài thuần túy qua chuẩn RESTful API, do đó hệ điều hành máy chủ (Host OS) hoàn toàn không bị ảnh hưởng bởi các xung đột phiên bản phần mềm.

3. Dữ liệu quét có được bảo mật và hỗ trợ truy xuất lại không?

Mỗi phiên quét được cấp phát một chuỗi định danh duy nhất (UUID Token). Mọi dữ liệu bóc tách được lưu trữ vĩnh viễn trong MongoDB Collection reportsearch. Người dùng có thể dễ dàng xem lại lịch sử, tìm kiếm theo tiêu chí công nghệ đã lưu hoặc tái tạo báo cáo HTML bất kỳ lúc nào mà không cần quét lại mục tiêu.

4. Hệ thống có tự động tấn công hoặc khai thác lỗ hổng website không?

Không. EnumTool được thiết kế tuân thủ nghiêm ngặt chuẩn mực đạo đức trinh sát an ninh mạng (Passive/Active Enumeration). Hệ thống chỉ thực hiện thu thập thông tin và đối chiếu phiên bản để liệt kê các lỗ hổng tiềm năng từ cơ sở dữ liệu Exploit-DB, hoàn toàn không tự động kích hoạt payload tấn công gây nguy hại đến tính sẵn sàng của mục tiêu.

5. Chi phí triển khai và khả năng tiết kiệm thời gian (ROI) của EnumTool ra sao?

EnumTool được xây dựng 100% từ các công nghệ và công cụ mã nguồn mở, giúp doanh nghiệp tiết kiệm hàng ngàn USD chi phí bản quyền phần mềm quét thương mại. Về mặt năng suất, hệ thống giúp rút ngắn thời gian thu thập thông tin ban đầu từ 2-3 giờ xuống chỉ còn 5-7 phút, tăng năng suất xử lý dự án của chuyên gia bảo mật lên gấp nhiều lần.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu công cụ tự động rút trích thông tin website phục vụ đánh giá bảo mật" (EnumTool) của sinh viên Huỳnh Minh Hiếu và Nguyễn Cao Thái đã giải quyết thành công bài toán tự động hóa quy trình trinh sát website trong đánh giá an toàn thông tin. Bằng việc ứng dụng kiến trúc 3-Container Docker hóa hiện đại, tích hợp hơn 15 công cụ trinh sát hàng đầu cùng cơ chế lưu trữ MongoDB linh hoạt, EnumTool đã biến một quy trình dòng lệnh phức tạp, rời rạc thành một trải nghiệm quản trị tập trung, hiệu quả và trực quan.

Hệ thống không chỉ đóng góp một giải pháp mã nguồn mở hữu ích cho cộng đồng kiểm thử bảo mật tại Việt Nam mà còn là tài liệu tham khảo giá trị cho các nghiên cứu ứng dụng tiếp theo về tự động hóa an toàn thông tin. Để khai thác tối đa sức mạnh của giải pháp, các đơn vị và chuyên gia có thể tải về, triển khai thử nghiệm trên hệ thống Lab và đóng góp mở rộng các module quét mới cho nền tảng.