Làm chủ Velociraptor: ‘Mắt thần’ giúp điều tra sự cố (DFIR) trên hàng trăm Linux Server

Security tutorial - IT technology blog
Security tutorial - IT technology blog

Cơn ác mộng lúc 2 giờ sáng và bài học xương máu về DFIR

Cách đây không lâu, mình từng bị dựng dậy giữa đêm vì hệ thống giám sát báo động đỏ rực. Một cụm server production bị brute-force SSH liên tục, và tệ hơn là kẻ gian đã lọt được vào bên trong. Lúc đó, tim mình đập nhanh hơn cả tiếng quạt tản nhiệt trong phòng server. Vấn đề không nằm ở một máy, mà là cả chục con server đang chạy cùng một blueprint.

Mình cần biết ngay: Kẻ tấn công đã chạy lệnh gì? Backdoor giấu ở đâu? Có bao nhiêu máy bị dính? Nếu ngồi SSH vào từng con để gõ history, check auth.log hay tìm file lạ thì chắc đến sáng hệ thống cũng tan nát. Từ trải nghiệm đau thương đó, mình hiểu rằng một công cụ điều tra sự cố (DFIR) tập trung là thứ không thể thiếu.

Các hướng tiếp cận khi cần thu thập bằng chứng số

1. Thủ công “bằng cơm” (SSH + Scripts)

Đây là cách anh em mình hay dùng nhất khi mới vào nghề. Viết một đoạn script bash dùng ps, netstat, lsof rồi đẩy lên server qua SCP để chạy.

  • Ưu điểm: Không cần chuẩn bị gì trước.
  • Nhược điểm: Cực kỳ chậm khi số lượng máy lên đến hàng chục. Nguy hiểm nhất là bằng chứng số rất dễ bị thay đổi (tampering) nếu kẻ tấn công đã chiếm quyền root.

2. Sử dụng SIEM hoặc Log Management (Wazuh, ELK)

Wazuh hay ELK rất tốt để giám sát thời gian thực với biểu đồ trực quan.

  • Ưu điểm: Log tập trung, dễ theo dõi biến động.
  • Nhược điểm: Việc truy vấn sâu vào file cụ thể trên đĩa cứng hay dump memory để phân tích mã độc thường không phải thế mạnh của SIEM. Ngoài ra, chi phí lưu trữ log khổng lồ cũng là một rào cản.

3. Velociraptor – Endpoint Visibility & Forensics

Velociraptor sinh ra để dành cho dân làm Incident Response chuyên nghiệp. Nó cho phép bạn thực hiện các truy vấn sâu vào hệ thống thông qua ngôn ngữ VQL (Velociraptor Query Language).

  • Ưu điểm: Agent siêu nhẹ (chỉ chiếm khoảng 20-30MB RAM). Bạn có thể ra lệnh cho 500 server cùng lúc: “Tìm file nào có mã hash này” và nhận kết quả sau chưa đầy 1 phút.
  • Nhược điểm: Cần thời gian để làm quen với VQL, nhưng hiệu quả mang lại rất đáng đồng tiền bát gạo.

Tại sao Velociraptor là lựa chọn số 1 cho Linux?

Mình chọn Velociraptor vì khả năng phản ứng tức thì. Khi có biến, mình cần câu trả lời ngay chứ không thể ngồi đợi log đồng bộ về SIEM. Công cụ này cho phép thực hiện các cuộc “Săn tìm” (Hunting) trên toàn bộ hạ tầng mà không làm treo server đang chạy production.

Hướng dẫn triển khai Velociraptor Server

Đầu tiên, hãy dựng một máy chủ trung tâm để quản lý. Một con VPS Ubuntu 22.04 với 2 vCPU và 4GB RAM là đủ để quản lý khoảng 500-1000 Agent.

Bước 1: Tải Binary

Lấy phiên bản mới nhất từ GitHub. Ở đây mình dùng bản linux-amd64:

wget https://github.com/Velocidex/velociraptor/releases/download/v0.72/velociraptor-v0.72-linux-amd64
chmod +x velociraptor-v0.72-linux-amd64
sudo mv velociraptor-v0.72-linux-amd64 /usr/local/bin/velociraptor

Bước 2: Cấu hình hệ thống

Chạy lệnh sau để khởi động trình thuật sĩ (wizard) tạo cấu hình:

velociraptor config generate -i

Bạn cần chú ý các thông số: Đường dẫn lưu trữ dữ liệu, port UI (mặc định 8889) và port cho Agent (mặc định 8006). Sau khi hoàn tất, bạn sẽ có hai file: server.config.yaml (giữ kỹ) và client.config.yaml (dùng để cài lên Agent).

Bước 3: Thiết lập Systemd Service

Để server tự khởi động cùng hệ thống, hãy tạo file service:

sudo nano /etc/systemd/system/velociraptor.service

Nội dung file cơ bản như sau:

[Unit]
Description=Velociraptor Linux Server
After=network.target

[Service]
ExecStart=/usr/local/bin/velociraptor --config /etc/velociraptor/server.config.yaml server
Restart=always

[Install]
WantedBy=multi-user.target

Kích hoạt service bằng lệnh: sudo systemctl enable --now velociraptor.

Cài đặt Agent lên các server mục tiêu

Mang file client.config.yaml sang các server cần giám sát. Thay vì làm thủ công từng máy, bạn nên dùng Ansible để đẩy hàng loạt chỉ trong 5 phút.

Cách cài nhanh:

Trên máy đích, sau khi tải binary, bạn chỉ cần chạy:

sudo /usr/local/bin/velociraptor --config client.config.yaml client install

Agent sẽ tự động đăng ký vào Dashboard. Bạn sẽ thấy danh sách server hiện lên ngay lập tức.

Thực chiến: Truy vết SSH Brute-force

Giả sử bạn nghi ngờ có kẻ đang dò mật khẩu. Thay vì đọc file log bằng mắt, hãy dùng VQL để lọc ra 10 IP đang tấn công mạnh nhất:

SELECT Count, User, IP FROM source(artifact="Linux.Ssh.AuthLogs") 
WHERE Message =~ "Failed password" 
GROUP BY IP 
ORDER BY Count DESC 
LIMIT 10

Chỉ mất 2 giây để bạn có danh sách “đen” và tiến hành chặn IP trên Firewall. Nếu muốn kiểm tra file /etc/passwd xem có user lạ không trên 100 server, bạn chỉ cần tạo một Hunt mới và chọn artifact Linux.Sys.Users. Kết quả sẽ được tổng hợp thành một bảng duy nhất cho bạn đối soát.

Lời kết từ kinh nghiệm thực tế

Đừng đợi đến khi “cháy nhà” mới đi tìm vòi cứu hỏa. Việc cài sẵn Velociraptor không tốn tài nguyên hệ thống (CPU gần như 0% khi idle), nhưng nó sẽ là cứu cánh khi sự cố xảy ra. Thay vì hoảng loạn, bạn chỉ cần mở Dashboard, viết vài dòng VQL là nắm trọn tình hình chiến sự. Chúc anh em có những đêm ngủ ngon, không còn nỗi lo bị dựng dậy bất thình lình!

Share: