SpiderFoot: Công Cụ OSINT Tự Động Hóa Reconnaissance
Spiderfoot đáng dùng vì bao quát nhiều nguồn thay vì đào sâu một nguồn, hơn 200 module lấy dữ liệu từ hàng chục nguồn, quét một lần là có bức tranh toàn cảnh bề mặt bên ngoài của mục tiêu. Giao diện web giúp tiếp cận được với người không quen CLI. Tra cứu một mục tiêu duy nhất thì dư thừa, nhưng cho reconnaissance kéo dài hoặc chiến dịch threat intelligence, đây là lựa chọn đầu tiên đáng cân nhắc.
SpiderFoot là gì?
SpiderFoot là công cụ tự động hóa OSINT nguồn mở viết bằng Python 3, tự động hóa reconnaissance qua nhiều nguồn dữ liệu công khai. Cung cấp một mục tiêu — domain, địa chỉ IP, email, số điện thoại, username, hoặc thậm chí địa chỉ Bitcoin — và nó xâu chuỗi hơn 200 module feed dữ liệu cho nhau để xây dựng hồ sơ bên ngoài hoàn chỉnh. Đi kèm giao diện web để khám phá tương tác và CLI cho vận hành tự động hoặc không cần tương tác, lưu toàn bộ kết quả vào SQLite để truy vấn trực tiếp bằng SQL tùy chỉnh.
Cài đặt SpiderFoot
Tải tarball ổn định mới nhất từ GitHub, giải nén, rồi cài dependency Python bằng pip: `wget https://github.com/smicallef/spiderfoot/archive/v4.0.tar.gz && tar zxvf v4.0.tar.gz && cd spiderfoot-4.0 && pip3 install -r requirements.txt`. Muốn bản dev mới nhất thì clone trực tiếp: `git clone https://github.com/smicallef/spiderfoot.git` rồi chạy pip install. Docker cũng được, build từ Dockerfile có sẵn trong repo. Yêu cầu Python 3.7 trở lên, và nhiều module cần API key được cấu hình trong settings trước khi dùng.
Chạy SpiderFoot qua CLI và web UI
Khởi động web UI bằng `python3 ./sf.py -l 127.0.0.1:5001`, mở trình duyệt trỏ tới địa chỉ đó. Trong giao diện web, bấm 'New Scan', nhập mục tiêu (domain, IP, email, v.v.), chọn loại module muốn chạy, rồi bấm 'Run Scan'. Muốn dùng CLI hoàn toàn: `python3 sf.py -s <target> -t <target_type>` với target_type là IP, DOMAIN, SUBDOMAIN, HOSTNAME, NETBLOCK_OWNER, ASOWNER, EMAILADDR, PHONE_NUMBER, USERNAME, BITCOIN_ADDRESS, hoặc PERSON_NAME. Flag `-M` giới hạn module chạy, `-o` chọn định dạng output (JSON, CSV, hoặc GEXF). Xem đầy đủ flag bằng `python3 sf.py -h`.
Các module và khả năng chính
- ✓Hơn 200 module trao đổi dữ liệu qua mô hình publisher/subscriber, tối đa hóa việc thu thập từ mỗi mục tiêu — một module phát hiện gì thì các module liên quan tự động được kích hoạt để đào sâu thêm
- ✓Hai chế độ giao diện: web UI cho điều tra tương tác và CLI cho pipeline tự động hoặc chạy headless trên server
- ✓37 quy tắc correlation định sẵn bằng YAML để khớp các phát hiện thành manh mối khả thi — giảm bớt việc phải đọc hàng trăm dòng kết quả thô
- ✓Lưu toàn bộ dữ liệu quét vào SQLite, cho phép truy vấn trực tiếp bằng SQL tùy chỉnh hoặc phân tích lịch sử mà không cần xuất ra file
- ✓Tích hợp sẵn TOR để tìm kiếm dark web và ẩn danh trong quá trình reconnaissance
- ✓Xuất dữ liệu ra CSV, JSON, hoặc GEXF để đưa vào công cụ khác như Maltego, Gephi, hoặc hệ thống SIEM
- ✓Gọi các công cụ bên ngoài như DNSTwist, Whatweb, Nmap, CMSeeK để mở rộng khả năng vượt trội so với tích hợp sẵn
- ✓Correlation engine hoàn toàn tùy chỉnh qua YAML — viết quy tắc riêng hoặc mở rộng 37 quy tắc có sẵn
Trường hợp sử dụng tấn công và phòng thủ
- •Reconnaissance cho red team: thu thập toàn bộ dấu chân bên ngoài của mục tiêu — subdomain, bucket công khai, DNS cấu hình sai, tài sản cloud liên quan — trước khi bắt đầu đợt đánh giá
- •Threat intelligence: tương quan kết quả giữa các mục tiêu để tìm pattern như hạ tầng dùng chung, ví Bitcoin tái sử dụng, hoặc thông tin đăng nhập bị rò rỉ cho thấy đã bị xâm nhập
- •Giám sát bề mặt tấn công: dùng CLI trong cron job để quét lại các domain quan trọng định kỳ, phát hiện subdomain mới, chứng chỉ mới, hoặc dịch vụ mới exposed trước khi kẻ tấn công kịp phát hiện
- •Due diligence: điều tra sự hiện diện số của một cá nhân bằng cách tương quan username, email, tên, và tài khoản mạng xã hội qua cơ sở dữ liệu breach và nguồn dark web
- •Phản ứng sự cố: nhanh chóng đánh giá những gì kẻ tấn công có thể thu thập được về tổ chức từ các nguồn công khai để hiểu phạm vi ảnh hưởng thực tế
- •Recon cho bug bounty: tự động liệt kê subdomain và chụp ảnh màn hình trên phạm vi lớn để xác định mục tiêu trong phạm vi nhanh hơn
Điểm mạnh
- ✓Hệ sinh thái module khổng lồ với hơn 200 nguồn dữ liệu — không cần tự quản lý hàng chục tích hợp API riêng lẻ nữa
- ✓Vừa có CLI vừa có web UI — phục vụ cả pipeline tự động lẫn phiên điều tra tương tác
- ✓Correlation engine biến đống raw findings thành manh mối có cấu trúc — tiết kiệm thời gian thật sự so với việc tự parse output thô
- ✓Backend SQLite cho phép truy vấn trực tiếp dữ liệu quét bằng SQL, không cần xuất ra file
- ✓Công cụ trưởng thành, phát triển liên tục từ 2012 — ổn định, tài liệu đầy đủ, được cộng đồng lớn kiểm chứng thực tế
- ✓Miễn phí, giấy phép MIT — không hạn chế thương mại, dùng trong red team hay tư vấn đều thoải mái
Những hạn chế đã biết
- △Nhiều module cao cấp yêu cầu API key trả phí (Shodan, Censys, HaveIBeenPwned, BinaryEdge) — chỉ dùng free tier thì phạm vi phủ sóng giảm đáng kể
- △Đầu ra rất nhiều — không chọn lọc module kỹ và không tuning correlation rule thì sẽ tốn công lọc nhiễu rất lâu
- △Phiên bản nguồn mở không có scheduling hay alerting tích hợp — muốn giám sát thay đổi theo thời gian phải tự viết automation bọc quanh CLI
- △Rate limiting từ API bên ngoài không được xử lý đồng đều giữa các module, dẫn đến lookup thất bại ở một số nguồn
- △Tài liệu và hỗ trợ cộng đồng tốt, nhưng tìm kiếm hành vi của module cụ thể có thể mất thời gian vì số lượng module quá lớn
- △Deploy bằng Docker phải tự build image — thêm bước phiền cho người muốn thử nhanh
Các lựa chọn thay thế cho SpiderFoot
Ai nên dùng SpiderFoot?
SpiderFoot phù hợp với chuyên gia bảo mật và red team nội bộ cần lập bản đồ bề mặt tấn công bên ngoài của mục tiêu nhanh trước đợt đánh giá, analyst threat intelligence muốn tương quan kết quả giữa các mục tiêu mà không phải xây pipeline riêng, và hunter bug bounty cần tự động liệt kê subdomain trên phạm vi lớn. Không phù hợp cho người dùng ngẫu nhiên — nếu chỉ cần tra cứu email hoặc kiểm tra subdomain nhanh, công cụ đơn mục đích sẽ nhanh hơn và ít phức tạp hơn nhiều. Defensive cũng có lợi từ quét định kỳ để hiểu dấu chân công khai của tổ chức mình, đặc biệt khi thiếu hạ tầng giám sát bề mặt tấn công chuyên dụng.
Câu hỏi thường gặp
Có, SpiderFoot hoàn toàn miễn phí và giấy phép MIT. Tải về, sửa, triển khai trong môi trường thương mại đều không mất phí. Phiên bản trả phí SpiderFoot HX cung cấp dịch vụ cloud được quản lý sẵn với thêm tính năng như cộng tác đa người dùng và tích hợp công cụ bên thứ ba, nhưng bản nguồn mở không có hạn chế gì.
SpiderFoot viết hoàn toàn bằng Python 3, yêu cầu phiên bản 3.7 trở lên. Code trên GitHub, đóng góp bằng Python được chào đón qua Discord server của dự án và quy trình pull request thông thường.
Không bắt buộc — nhiều module trong hơn 200 module không cần API key và chạy ngay với nguồn dữ liệu miễn phí như ARIN, crt.sh, CommonCrawl, Wayback Machine. Tuy nhiên, các tích hợp mạnh nhất gồm Shodan, HaveIBeenPwned, Censys, BinaryEdge, AlienVault OTX đều yêu cầu API key trả phí hoặc theo tier để truy cập đầy đủ.
SpiderFoot chấp nhận mười loại mục tiêu: địa chỉ IP, tên domain và subdomain, hostname, subnet mạng theo ký hiệu CIDR, ASN, địa chỉ email, số điện thoại, username, tên người, và địa chỉ Bitcoin. Có thể quét trực tiếp hoặc để SpiderFoot tự khám phá thêm mục tiêu thuộc bất kỳ loại nào trong quá trình quét khi nó tìm thấy thực thể liên quan trong dữ liệu.
Cả hai đều là công cụ OSINT với hệ sinh thái module lớn, nhưng Maltego thiên về phân tích liên kết trực quan tương tác với GUI bóng bẩy, còn SpiderFoot cung cấp web UI cộng workflow CLI hoàn toàn — thích hợp hơn cho tự động hóa.
SpiderFoot HX là phiên bản thương mại hosted, chạy hoàn toàn trên cloud và được quản lý sẵn cho bạn. Thêm vào đó là giám sát bề mặt tấn công kèm thông báo thay đổi, cộng tác đa người dùng, nhiều mục tiêu quét cùng lúc, truy cập REST API, tích hợp Splunk và ElasticSearch, chụp ảnh màn hình tích hợp, và công cụ bên thứ ba được cấu hình sẵn.
Repo liên quan
Chưa chắc spiderfoot có hợp với bạn?
Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về spiderfoot.
