Bài 83. Nguồn dữ liệu điều tra: log, NetFlow/IPFIX, packet capture, log parsing, kết quả quét lỗ hổng
Khóa học CompTIA Security+ SY0-801 · Phần 4: Vận hành bảo mật · Bài 83 · 🎯 Objective 4.8 · ⏱️ Đọc khoảng 18 phút · 🧪 Không cần lab · 📝 5 câu bài tập cuối bài
🎯 Mục tiêu bài học
- Biết các nguồn dữ liệu dùng khi điều tra: log (firewall, hệ điều hành, ứng dụng, endpoint, IDS/IPS), dữ liệu luồng, bắt gói tin, metadata, kết quả quét lỗ hổng, dashboard và báo cáo.
- Hiểu mỗi nguồn trả lời câu hỏi gì, ưu và nhược điểm.
- Làm quen với log parsing (phân tích cú pháp log) và những sự kiện đáng chú ý.
- Biết cách ghép nhiều nguồn thành dòng thời gian đáng tin.
📎 Vị trí trong đề thi: Objective 4.8 nói về dữ liệu hỗ trợ điều tra. Bài này lo các nguồn dữ liệu; Bài 84 lo pháp y số (chain of custody, memory dump...). Bài dùng lại log và SIEM (Bài 71), NetFlow và nguồn dữ liệu giám sát (Bài 72), quét lỗ hổng (Bài 68) và quy trình ứng phó (Bài 80).
💡 Liên hệ thực tế: ai đã xuất dữ liệu bán hàng lúc 2 giờ sáng?
Quay lại câu hỏi của chị Lan: dữ liệu bán hàng bị xuất ra một tệp lạ lúc 2 giờ sáng. Nam không có một "bằng chứng duy nhất", mà ghép nhiều mảnh: log đăng nhập của máy chủ cho biết tài khoản nào vào, log ứng dụng cho biết lệnh xuất dữ liệu, log firewall và NetFlow cho biết kết nối đến từ đâu và bao nhiêu dữ liệu đi ra, kết quả quét lỗ hổng tuần trước cho biết máy chủ có điểm yếu nào, và nếu bật bắt gói tin ở thời điểm đó thì có thể xem nội dung cụ thể. Đây là tình huống minh họa, không phải vụ việc có thật.
Mỗi nguồn trả lời một phần câu hỏi; chỉ khi ghép lại mới thấy cả câu chuyện, miễn là đồng bộ giờ (Bài 71).
🗂️ Hình 83a. Mỗi nguồn trả lời một phần câu hỏi: ai, cái gì, khi nào, ở đâu, bằng cách nào.
📘 Kiến thức cốt lõi
📜 Dữ liệu log
| Nguồn log | Cho biết | Ví dụ sự kiện đáng chú ý |
|---|---|---|
| Firewall | Kết nối được phép hoặc bị chặn: nguồn, đích, cổng, thời gian | Quét cổng từ một IP, kết nối ra tới IP lạ, thay đổi quy tắc |
| IDS/IPS | Cảnh báo theo chữ ký hoặc hành vi, gói bị chặn | Cảnh báo khai thác lỗ hổng, lưu lượng C2 |
| Log mạng và proxy, DNS, VPN | Truy cập web, truy vấn tên miền, phiên VPN | Tên miền độc hại, đăng nhập VPN từ nước lạ |
| Log hệ điều hành | Đăng nhập, tạo tiến trình, thay đổi cấu hình, dịch vụ | Đăng nhập thất bại hàng loạt, tạo tài khoản mới, xóa log |
| Log ứng dụng | Hành động của người dùng trong ứng dụng, lỗi, truy vấn | Xuất dữ liệu hàng loạt, lỗi SQL bất thường |
| Log web server | Yêu cầu HTTP, mã trạng thái, IP, user agent | Chuỗi tấn công SQL injection, quét đường dẫn |
| Log endpoint (EDR, antivirus) | Tiến trình, tệp, kết nối, cảnh báo mã độc | Tiến trình lạ chạy từ thư mục tạm, cô lập máy |
| Log danh tính và đám mây | Đăng nhập, đổi quyền, MFA, nhật ký dịch vụ cloud | Đăng nhập từ hai nơi xa nhau, thêm quyền quản trị |
Một số sự kiện nổi tiếng trên Windows: 4624 (đăng nhập thành công), 4625 (đăng nhập thất bại), 4720 (tạo tài khoản), 1102 (xóa nhật ký bảo mật, dấu hiệu che dấu vết). Trên Linux, log xác thực thường nằm ở /var/log/auth.log (hoặc /var/log/secure), log hệ thống ở /var/log/syslog hoặc journalctl. Cần nhớ đường dẫn và mã cụ thể chỉ ở mức khái quát; đề thi thường hỏi loại log nào trả lời câu hỏi nào.
🌊 NetFlow, IPFIX và dữ liệu luồng
NetFlow/IPFIX/sFlow tóm tắt luồng kết nối: IP nguồn và đích, cổng, giao thức, lượng dữ liệu, thời gian (Bài 72). Giá trị khi điều tra:
- Ai nói chuyện với ai, bao lâu, bao nhiêu dữ liệu, kể cả sau nhiều tháng vì dung lượng nhỏ nên lưu được lâu.
- Phát hiện rò rỉ (lượng dữ liệu ra lớn), kênh điều khiển (kết nối đều đặn tới một IP), di chuyển ngang (máy này nói chuyện với nhiều máy nội bộ).
- Hạn chế: không có nội dung, nên không biết dữ liệu gì được gửi.
📦 Bắt gói tin (packet capture)
Packet capture (PCAP) ghi lại các gói tin thật trên mạng, cho phép xem nội dung chi tiết. Công cụ: Wireshark (giao diện đồ họa), tcpdump (dòng lệnh).
bash
# Bắt gói tin ra tệp, không phân giải tên (-nn), chỉ lấy lưu lượng của một IP tcpdump -i eth0 -nn -w capture.pcap host 203.0.113.5
| Ưu | Nhược |
|---|---|
| Chi tiết nhất: giao thức, nội dung, tiêu đề, tệp truyền | Tốn dung lượng rất lớn, thường chỉ giữ ngắn hạn hoặc bắt có chọn lọc |
| Dựng lại được phiên làm việc và tệp bị truyền | Lưu lượng đã mã hóa (TLS, VPN) thì không xem được nội dung nếu không có khóa |
| Bằng chứng rất mạnh | Nhạy cảm về quyền riêng tư (có thể chứa mật khẩu, dữ liệu cá nhân), cần kiểm soát truy cập và pháp lý |
| Phải đặt đúng vị trí (TAP, SPAN) mới thấy lưu lượng cần xem |
Vì tốn kém, nhiều tổ chức dùng NetFlow để thấy tổng thể, chỉ bắt gói tin sâu cho đoạn mạng và thời điểm nghi vấn.
🏷️ Metadata
Metadata là dữ liệu về dữ liệu, thường ít được để ý nhưng rất hữu ích:
- Tiêu đề email (email headers): đường đi của thư, IP gửi, kết quả SPF, DKIM, DMARC (Bài 62).
- Thuộc tính tệp: thời gian tạo, sửa, truy cập, tác giả, vị trí (ví dụ ảnh có tọa độ GPS).
- Metadata của cuộc gọi, tin nhắn (không có nội dung nhưng có thời gian, bên liên quan).
- Metadata mạng: thông tin chứng chỉ TLS, tên miền trong yêu cầu DNS.
- Metadata của tài liệu: lịch sử chỉnh sửa, người chỉnh sửa.
Metadata giúp dựng dòng thời gian và xác định nguồn gốc mà không cần xem nội dung.
🔍 Kết quả quét lỗ hổng, báo cáo tự động và dashboard
- Kết quả quét lỗ hổng (Bài 68): cho biết hệ thống có điểm yếu nào tại thời điểm quét, hỗ trợ giả thuyết "kẻ tấn công có thể đã vào bằng lỗ hổng nào". Nhưng nhớ: nó phản ánh thời điểm quét, không phải thời điểm tấn công; đối chiếu ngày quét với ngày sự cố.
- Báo cáo tự động: báo cáo định kỳ từ SIEM, EDR, công cụ quét: tóm tắt xu hướng, cảnh báo, số liệu.
- Dashboard: hiển thị trực quan thời gian thực, giúp nhận ra mẫu hình (đợt tăng đột biến cảnh báo, nguồn tấn công hàng đầu) và định hướng cần đào sâu ở đâu.
Dashboard và báo cáo cho bức tranh tổng thể; chi tiết bằng chứng vẫn phải quay lại log và các nguồn gốc.
🧮 Log parsing: phân tích cú pháp log
Log parsing là tách các dòng log (thường là văn bản) thành trường có cấu trúc (thời gian, IP nguồn, tài khoản, hành động, kết quả) để tìm kiếm, thống kê, tương quan.
- Vì sao cần: mỗi sản phẩm một định dạng; dữ liệu thô khó đọc và khó so sánh.
- Định dạng thường gặp: syslog, JSON, CEF, nhật ký sự kiện Windows (XML).
- Cách làm: bộ phân tích tích hợp trong SIEM (chuẩn hóa, Bài 71), biểu thức chính quy (regex), các công cụ dòng lệnh, ngôn ngữ kịch bản.
Ví dụ nhanh trên Linux: đếm số lần đăng nhập SSH thất bại theo địa chỉ IP, xếp hạng giảm dần để tìm nguồn dò mật khẩu:
bash
grep "Failed password" /var/log/auth.log \
| awk '{print $(NF-3)}' \
| sort | uniq -c | sort -nr | head
Ở đây $(NF-3) lấy trường địa chỉ IP trong dòng "Failed password for ... from IP port ... ssh2". Lệnh này chỉ minh họa; định dạng log có thể khác theo hệ điều hành và cấu hình, nên cần kiểm tra mẫu log thực trước khi dùng.
Lưu ý khi phân tích:
- Giữ nguyên bản gốc, làm việc trên bản sao (Bài 84).
- Đồng bộ múi giờ và giờ giữa các nguồn trước khi dựng dòng thời gian.
- Cẩn thận bỏ sót: log có thể bị xoay vòng (rotate) và ghi đè, hoặc bị kẻ tấn công xóa; so sánh nhiều nguồn để phát hiện khoảng trống.
- Ngữ cảnh: một sự kiện đơn lẻ (đăng nhập thất bại) thường vô hại; mẫu hình mới đáng lo.
🧵 Hình 83b. Giữ bản gốc, làm việc trên bản sao: kết luận phải truy ngược được về bằng chứng.
🧭 Chọn nguồn nào cho câu hỏi nào
| Câu hỏi điều tra | Nguồn phù hợp |
|---|---|
| Ai đã đăng nhập, bằng tài khoản nào? | Log hệ điều hành, danh tính, VPN |
| Máy nào kết nối ra IP độc hại, gửi bao nhiêu dữ liệu? | Firewall, NetFlow, proxy, DNS |
| Nội dung cụ thể được truyền là gì? | Bắt gói tin (nếu không mã hóa), log ứng dụng |
| Kẻ tấn công vào bằng lỗ hổng nào? | Kết quả quét lỗ hổng, log web server, IDS/IPS |
| Thư này từ đâu tới? | Tiêu đề email (metadata), log SEG |
| Tiến trình nào chạy trên máy nghi nhiễm? | Log endpoint (EDR) |
| Sự cố nằm trong xu hướng nào? | Dashboard, báo cáo SIEM |
🎯 Mẹo làm bài: "Ai kết nối với ai, bao nhiêu dữ liệu, không có nội dung" → NetFlow / IPFIX. "Xem nội dung chi tiết của gói tin" → packet capture (Wireshark, tcpdump). "Dữ liệu về dữ liệu như tiêu đề email, thời gian tệp" → metadata. "Tách log thành các trường để tìm kiếm và so sánh" → log parsing. "Điểm yếu của hệ thống tại thời điểm quét" → kết quả quét lỗ hổng. "Bức tranh tổng thể, xu hướng" → dashboard, báo cáo tự động. "Đăng nhập thất bại hàng loạt" → log hệ điều hành, xác thực. "Kết nối bị chặn hoặc cho phép" → log firewall. "Cảnh báo chữ ký, hành vi tấn công" → IDS/IPS. "Tiến trình, tệp trên máy" → log endpoint. "Mã hóa làm hạn chế packet capture" → TLS che nội dung. "Dòng thời gian sai" → chưa đồng bộ giờ.
🧠 Áp vào câu chuyện của Nam
| Câu hỏi | Nguồn |
|---|---|
| Tài khoản nào đăng nhập lúc 2 giờ sáng? | Log hệ điều hành, log danh tính |
| Có kết nối lạ ra Internet, bao nhiêu dữ liệu? | Log firewall, NetFlow |
| Lệnh xuất dữ liệu là gì? | Log ứng dụng |
| Máy chủ từng có lỗ hổng nào? | Kết quả quét lỗ hổng tuần trước |
| Muốn xem nội dung phiên truyền | Bắt gói tin tại thời điểm nghi vấn nếu có |
| Cần đưa kết quả cho chị Lan | Tóm tắt từ dashboard và dòng thời gian đã ghép |
📖 Thuật ngữ cần nhớ
| Thuật ngữ | Nghĩa |
|---|---|
| Log | Nhật ký sự kiện. |
| NetFlow / IPFIX / sFlow | Dữ liệu tóm tắt luồng kết nối. |
| Packet capture (PCAP) | Ghi lại gói tin thật trên mạng. |
| Wireshark / tcpdump | Công cụ bắt và phân tích gói tin. |
| Metadata | Dữ liệu về dữ liệu. |
| Log parsing | Phân tích cú pháp log thành trường có cấu trúc. |
| Syslog / CEF | Định dạng và giao thức log phổ biến. |
| SPAN / TAP | Cách lấy bản sao lưu lượng mạng để giám sát. |
| Dashboard | Bảng điều khiển trực quan. |
| Log rotation | Xoay vòng log, ghi đè bản cũ theo kích thước hoặc thời gian. |
📌 Tóm tắt nhanh
- Nguồn dữ liệu điều tra: log (firewall, IDS/IPS, OS, ứng dụng, endpoint, web, danh tính), NetFlow/IPFIX, packet capture, metadata, kết quả quét lỗ hổng, báo cáo và dashboard.
- NetFlow nhẹ, lưu lâu, không có nội dung; packet capture chi tiết nhưng tốn dung lượng, nhạy cảm, bị TLS che.
- Metadata (tiêu đề email, thuộc tính tệp) giúp dựng dòng thời gian và xác định nguồn gốc.
- Log parsing biến văn bản thành trường có cấu trúc; đồng bộ giờ, giữ nguyên bản gốc, cẩn thận log bị xoay vòng hoặc bị xóa.
- Không nguồn nào đủ một mình: ghép nhiều nguồn để dựng câu chuyện đáng tin.
💬 Hỏi & Đáp nhanh
❓ Nên bắt gói tin liên tục không? Thường không, vì tốn dung lượng và nhạy cảm. Cách phổ biến là NetFlow liên tục cho bức tranh tổng thể và bắt gói tin có chọn lọc (đoạn mạng quan trọng, thời điểm nghi vấn, sau khi có cảnh báo).
❓ Nếu kẻ tấn công xóa log thì sao? Nên gửi log về máy chủ tập trung ngay khi phát sinh (Bài 71), có bản sao lưu, và đối chiếu với nguồn khác (firewall, NetFlow, EDR). Việc xóa log cũng là dấu hiệu (ví dụ sự kiện 1102 trên Windows) cần điều tra.
❓ Kết quả quét lỗ hổng có phải bằng chứng cuộc tấn công không? Không. Nó chỉ cho biết điểm yếu tồn tại. Muốn kết luận kẻ tấn công đã khai thác cần bằng chứng khác (log, NetFlow, EDR). Nó hữu ích để thu hẹp giả thuyết về đường xâm nhập.
📝 Bài tập đánh giá
Tự chọn đáp án cho từng câu, rồi đối chiếu với phần đáp án ở cuối bài.
Câu 1. Dữ liệu nào cho biết máy nào kết nối tới IP nào và gửi bao nhiêu dữ liệu, nhưng không chứa nội dung gói tin?
- A. Packet capture đầy đủ
- B. NetFlow hoặc IPFIX
- C. Bản sao ổ đĩa
- D. Mã nguồn ứng dụng
Câu 2. Công cụ nào dùng để bắt và phân tích gói tin mạng, cho phép xem nội dung chi tiết nếu không bị mã hóa?
- A. Nessus
- B. SIEM dashboard
- C. HSM
- D. Wireshark hoặc tcpdump
Câu 3. Tiêu đề (header) của email, thời gian tạo và sửa của tệp thuộc loại dữ liệu nào?
- A. Metadata
- B. Dữ liệu ở trạng thái đang dùng
- C. Kết quả quét lỗ hổng
- D. Chữ ký số
Câu 4. Quá trình tách dòng log dạng văn bản thành các trường có cấu trúc như thời gian, IP nguồn, tài khoản, hành động được gọi là gì?
- A. Tokenization
- B. Salting
- C. Log parsing
- D. Hashing
Câu 5. Vì sao khi ghép nhiều nguồn log để dựng dòng thời gian, cần đồng bộ thời gian giữa các nguồn?
- A. Để giảm dung lượng log
- B. Để thứ tự sự kiện giữa các nguồn được sắp xếp đúng, tránh kết luận sai về thứ tự
- C. Để mã hóa log
- D. Để tắt cảnh báo
👉 Đáp án
Câu 1: B — NetFlow và IPFIX cho biết ai nói chuyện với ai và bao nhiêu dữ liệu, không có nội dung.
Câu 2: D — Wireshark (đồ họa) và tcpdump (dòng lệnh) là công cụ bắt và phân tích gói tin.
Câu 3: A — Đó là metadata, dữ liệu về dữ liệu, giúp dựng dòng thời gian và xác định nguồn gốc.
Câu 4: C — Log parsing tách log thành trường có cấu trúc để tìm kiếm và tương quan.
Câu 5: B — Giờ lệch làm sai thứ tự sự kiện giữa các nguồn, dẫn tới kết luận sai.
📚 Bài viết thuộc khóa học CompTIA Security+ của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Bài 82: Ứng phó sự cố thực chiến: negotiation, thông báo, post-incident report | Mục lục khóa học CompTIA Security+ | Bài 84: Digital forensics cơ bản: chain of custody, legal hold, memory dump |