Defensive Research

Nghiên cứu Mối đe dọa Phòng thủ: Truy cập URL Đáng ngờ qua Cách ly Proxy

3 min read Published Updated 654 words

Truy cập trực tiếp một URL đáng ngờ từ máy trạm nghiên cứu của bạn là hành động liều lĩnh — hơn 70% các trang đích độc hại sẽ lấy dấu vân tay của IP kết nối và hoặc phục vụ một trang vô hại hoặc chặn hoàn toàn yêu cầu. Cô lập proxy không phải là tùy chọn; nó là nền tảng cơ bản cho bất kỳ hoạt động thu thập thông tin tình báo mối đe dọa đáng tin cậy nào. Nếu không có nó, bạn đang trao dải mạng của cơ sở hạ tầng của mình cho kẻ thù, những kẻ sẽ chuyển hướng tấn công vào các dịch vụ nội bộ của bạn trong vòng vài phút.

Tại sao Duyệt Trực tiếp Không Hiệu quả cho Tình báo Mối đe dọa

Các bộ công cụ khai thác hiện đại và bộ công cụ lừa đảo kiểm tra REMOTE_ADDR so với danh sách chặn tình báo mối đe dọa, cơ sở dữ liệu định vị địa lý và thậm chí tra cứu DNS ngược. Một kết nối trực tiếp từ một ASN nghiên cứu đã biết sẽ kích hoạt chuyển hướng đến một trang sạch hoặc mã lỗi 404. Tệ hơn, nhiều bộ công cụ sử dụng JavaScript để liệt kê IP cục bộ của máy khách thông qua rò rỉ WebRTC (RFC 8834) — làm lộ mạng thực của bạn ngay cả khi đằng sau VPN. Cô lập proxy phá vỡ chuỗi này bằng cách kết thúc kết nối tại một trung gian từ xa không chia sẻ danh tiếng của cơ sở hạ tầng của bạn. Bản thân proxy phải có tính dùng một lần: một phiên bản đám mây sử dụng một lần hoặc một nhóm proxy dân cư luân phiên. Các proxy tĩnh từ một nhà cung cấp duy nhất sẽ bị đốt cháy trong vòng vài ngày.

Cô lập Phân lớp: Proxy + Máy ảo hoặc Container

Chỉ riêng proxy là không đủ nếu trình duyệt rò rỉ dữ liệu qua DNS, kênh phụ dựa trên thời gian hoặc lấy dấu vân tay trình duyệt. Kết hợp proxy với một máy ảo hoặc container được xây dựng chuyên dụng, không có bộ nhớ liên tục, không có mount hệ thống tệp máy chủ và hồ sơ trình duyệt tối giản. Sử dụng iptables trên container để buộc tất cả lưu lượng ra ngoài qua proxy và loại bỏ tất cả lưu lượng đến các địa chỉ RFC 1918. Ví dụ, một container Docker với --network none và một đường hầm SOCKS5 qua ssh -D 1080 vào một hộp nhảy dùng một lần. Điều này ngăn trình duyệt vượt qua proxy qua WebSocket hoặc WebRTC — một chế độ lỗi phổ biến khi chỉ sử dụng cài đặt proxy ở cấp trình duyệt. Máy ảo hoặc container nên bị hủy sau mỗi phiên; ảnh chụp nhanh chỉ được chấp nhận nếu bạn xóa sạch tất cả cookie, bộ nhớ đệm và localStorage.

Công cụ: Burp Suite với Chuỗi Proxy và Trình duyệt Không đầu

Đối với phân tích thủ công, hãy xâu chuỗi Burp Suite qua một proxy SOCKS5 (RFC 1928) bằng cách cấu hình User options > Connections > SOCKS Proxy thành 127.0.0.1:1080 và bật Do DNS resolution via SOCKS proxy. Điều này buộc tất cả tra cứu DNS qua proxy, tránh rò rỉ DNS. Đối với thu thập tự động, các trang trại trình duyệt không đầu sử dụng Puppeteer hoặc Playwright là tiêu chuẩn. Dưới đây là một tập lệnh Puppeteer tối thiểu định tuyến tất cả lưu lượng qua proxy SOCKS5 và vô hiệu hóa WebRTC:

const puppeteer = require('puppeteer');
const proxy = 'socks5://127.0.0.1:1080';

const browser = await puppeteer.launch({
  args: [
    `--proxy-server=${proxy}`,
    '--disable-webrtc',
    '--no-sandbox',
    '--disable-setuid-sandbox'
  ]
});
const page = await browser.newPage();
await page.authenticate({ username: 'user', password: 'pass' });
await page.goto('http://malicious.example', { waitUntil: 'networkidle0' });
// Capture screenshot, HAR, DOM snapshot
await page.screenshot({ path: 'screenshot.png' });
await browser.close();

Cách tiếp cận này hoạt động, nhưng hãy cẩn thận: nhiều trình duyệt không đầu có thể bị phát hiện qua navigator.webdriver và thiếu chrome.runtime. Sử dụng puppeteer-extra-plugin-stealth hoặc các bản vá tàng hình tích hợp của Playwright để giảm lấy dấu vân tay. Ngay cả khi đó, các bộ công cụ tinh vi phát hiện Chrome không đầu bằng cách kiểm tra các thuộc tính window.chrome bị thiếu hoặc độ dài navigator.plugins bất thường. Biện pháp đối phó đáng tin cậy duy nhất là chạy một trình duyệt đầy đủ (không phải không đầu) trong máy ảo với trình điều khiển màn hình thực — nhưng điều đó mở rộng kém.

Các Giải pháp Thay thế cho urlscan.io để Phân tích Tự lưu trữ

urlscan.io tiện lợi nhưng chia sẻ siêu dữ liệu quét của bạn với cộng đồng và ghi lại IP của bạn. Đối với các cuộc điều tra nhạy cảm, hãy tự lưu trữ một nền tảng thu thập. PhantomJS đã chết; sử dụng Playwright với một trình ghi HAR tùy chỉnh và một phiên bản mitmproxy cục bộ. mitmproxy (--mode socks5 --listen-port 8080) ghi lại tất cả các cặp yêu cầu/phản hồi và cho phép sửa đổi nội tuyến các tiêu đề hoặc phản hồi. Kết hợp nó với wireshark để phân tích PCAP. Một lựa chọn khác là ThreatPinch Lookup — một tiện ích mở rộng Chrome truy vấn các nguồn cấp dữ liệu tình báo mối đe dọa cục bộ — nhưng nó không phải là giải pháp cô lập hoàn chỉnh. Đối với quét hàng loạt, triển khai PhishingKitTracker hoặc một tập lệnh Python tùy chỉnh sử dụng requests với danh sách proxy luân phiên từ proxybroker. Sự đánh đổi: các hệ thống tự lưu trữ yêu cầu bảo trì các nhóm proxy và hồ sơ trình duyệt, nhưng chúng cho bạn toàn quyền kiểm soát việc lưu giữ dữ liệu và tránh rò rỉ mục tiêu điều tra của bạn cho bên thứ ba.