Khủng hoảng sáng Thứ Hai: Dữ liệu biến mất sau vụ xâm nhập
Lúc 8:00 sáng Thứ Hai, một máy chủ production quan trọng đang báo động đỏ với mức sử dụng CPU lên tới 98%. Bạn đăng nhập để điều tra, nhưng dấu vết đã nguội lạnh. Các bản ghi log đã biến mất. Những script khả nghi bị EDR cảnh báo lúc 3:00 sáng cũng không còn. Kẻ tấn công đã thực hiện rất triệt để; chúng dùng lệnh rm -rf để xóa bằng chứng và xóa sạch lịch sử shell nhằm che giấu hành tung.
Các công cụ hệ thống thông thường sẽ báo rằng những file này không còn tồn tại. Tuy nhiên, trong điều tra số (digital forensics), “đã xóa” hiếm khi có nghĩa là “đã mất hẳn”. Khi một file bị xóa khỏi hệ thống file EXT4, nhân Linux đơn giản là hủy liên kết inode và đánh dấu các khối dữ liệu (data blocks) đó là trống để sử dụng trong tương lai. Các bit dữ liệu thực tế thường vẫn nằm nguyên trên phiến đĩa hoặc các cell flash cho đến khi một tiến trình mới ghi đè lên chúng.
Để bắt được kẻ xâm nhập, bạn phải ngừng nhìn vào hệ thống file thông qua hệ điều hành và bắt đầu nhìn vào ổ đĩa thô (raw disk). Hướng dẫn này sẽ khám phá cách sử dụng The Sleuth Kit (TSK) và giao diện đồ họa Autopsy để tái dựng dòng thời gian và kéo dữ liệu “ma” trở về từ hư vô.
Cái bẫy: Tại sao bạn không nên điều tra trên một hệ thống đang chạy
Sử dụng các lệnh như ls, find, hoặc grep trên một máy bị xâm nhập là một sai lầm cơ bản. Nếu kẻ tấn công đã hủy liên kết một file, API của nhân hệ điều hành sẽ không báo cáo file đó cho các công cụ này. Thậm chí tệ hơn, một rootkit tinh vi có thể can thiệp (hook) vào các lời gọi hệ thống (system calls) để ẩn các tiến trình độc hại khỏi ps hoặc top ngay cả khi bạn đang nhìn chằm chằm vào chúng.
Mỗi giây một hệ thống bị xâm nhập còn trực tuyến, bạn có nguy cơ mất bằng chứng. Các tiến trình chạy ngầm, việc xoay vòng log (log rotations), và thậm chí cả các lệnh điều tra của chính bạn cũng ghi dữ liệu mới lên đĩa. Hoạt động này có thể ghi đè vĩnh viễn các script đã xóa của kẻ tấn công. Điều tra số hiệu quả đòi hỏi phân tích “tĩnh” (dead analysis): bạn ngắt kết nối, tạo ảnh đĩa (image), và làm việc trên một bản sao chính xác từng bit trên một máy trạm sạch.
Chọn công cụ: TSK đối đầu Autopsy
Các điều tra viên số thường dựa trên ba cấp độ phân tích chuyên sâu:
- Phân tích Hex thủ công: Sử dụng
hexeditđể phân tích các byte thô. Đây là công việc cực nhọc, chỉ dành cho những lúc bạn cần khôi phục thủ công phần đầu file (header) bị hỏng. - The Sleuth Kit (TSK): Một bộ sưu tập các công cụ CLI mạnh mẽ.
flsliệt kê các mục file, trong khiicattrích xuất dữ liệu theo inode. Nó nhanh và hoàn hảo cho các script tự động hóa. - Autopsy: Giao diện đồ họa cho TSK. Nó xử lý các tác vụ nặng như lập chỉ mục (indexing), tìm kiếm từ khóa và xây dựng dòng thời gian trực quan.
Trong hầu hết các kịch bản, quy trình làm việc hiệu quả nhất là sử dụng Autopsy cho giai đoạn khám phá tổng quát và dùng TSK để khôi phục file một cách chính xác và chi tiết.
Các bước điều tra thực tế
1. Tạo ảnh đĩa phục vụ điều tra số
Đừng bao giờ thực hiện phân tích trên phần cứng gốc. Bạn cần một bản sao chính xác từng bit. Đối với ổ SATA 500GB tiêu chuẩn, tôi thường dùng dc3dd vì nó cung cấp thanh tiến trình và tích hợp sẵn tính năng băm (hashing). Nếu đĩa nghi vấn nằm tại /dev/sdb, hãy chạy:
# Tạo ảnh đĩa thô tích hợp sẵn tính năng băm
sudo dc3dd if=/dev/sdb of=evidence_disk.img hash=sha256 log=image_log.txt
Hãy xác minh mã băm SHA-256 khớp với nguồn. Nếu mã băm thay đổi sau đó, bằng chứng của bạn đã bị biến đổi và sẽ không có giá trị trong một cuộc kiểm toán chính thức hoặc thủ tục pháp lý.
2. Chuẩn bị môi trường
Nếu có thể, hãy phân tích dữ liệu trên một máy chuyên dụng, cách ly mạng (air-gapped). Trước khi bắt đầu một vụ việc, tôi thường tạo các mật khẩu có độ hỗn loạn cao, duy nhất cho các container mã hóa của mình. Tôi sử dụng công cụ tại toolcraft.app/vi/tools/security/password-generator vì nó chạy cục bộ trong trình duyệt. Điều này đảm bảo không có thông tin đăng nhập nhạy cảm nào chạm vào mạng trong giai đoạn thiết lập.
Cài đặt bộ công cụ cần thiết trên máy trạm phân tích của bạn:
sudo apt update && sudo apt install sleuthkit autopsy -y
3. Khôi phục nhanh với TSK
Đôi khi bạn cần một kết quả nhanh chóng trước khi đi sâu vào một vụ việc đầy đủ trong Autopsy. Đầu tiên, hãy tìm vị trí bù (offset) của phân vùng bằng mmls. Lệnh này cho bạn biết chính xác nơi phân vùng Linux bắt đầu.
# Tìm sector bắt đầu (ví dụ: 2048)
mmls evidence_disk.img
# Liệt kê đệ quy các file đã xóa trên phân vùng đó
fls -o 2048 -r -d evidence_disk.img
Hãy tìm các mục được đánh dấu bằng dấu sao (*). Nếu bạn phát hiện một file khả nghi tại inode 45678, hãy trích xuất nó ngay lập tức để phân tích:
icat -o 2048 evidence_disk.img 45678 > recovered_malware.bin
4. Phân tích sâu trong Autopsy
Khởi chạy giao diện bằng cách gõ autopsy trong terminal. Mở URL được cung cấp trong trình duyệt của bạn (mặc định là localhost:9999). Tạo một vụ việc (case) mới và nhập file evidence_disk.img của bạn.
Sức mạnh thực sự nằm ở các Ingest Modules. Hãy bật File Type Identification và Extension Mismatch Detector. Những module này giúp tìm ra những kẻ tấn công cố gắng che giấu các script thực thi bằng cách đổi tên chúng thành .jpg hoặc .txt. Đối với một vụ xâm nhập máy chủ web, module Keyword Search là không thể thiếu để tìm các địa chỉ IP cụ thể hoặc các shell PHP ẩn trong không gian chưa được phân bổ (unallocated space).
5. Tái dựng dòng thời gian
Chế độ Timeline View là vũ khí hiệu quả nhất của bạn. Nó tổng hợp mọi thời điểm tạo, truy cập và sửa đổi file (MAC) vào một biểu đồ duy nhất. Kẻ tấn công thường để lại một “dấu hiệu nhiễu” — một cụm gồm 30 hoặc 40 lần sửa đổi file trong /etc/ hoặc /var/www/ trong vòng 10 giây. Bằng cách xác định chính xác thời điểm này, bạn có thể biết chắc chắn cách chúng xâm nhập hệ thống và những backdoor nào đã được cài cắm.
Những nguyên tắc vàng trong điều tra số
Các cuộc điều tra thành công phụ thuộc vào tính kỷ luật hơn là chỉ các công cụ hào nhoáng. Hãy tuân thủ ba quy tắc sau:
- Sử dụng thiết bị chặn ghi (Write-Blockers): Nếu bạn phải kết nối ổ đĩa vật lý, hãy sử dụng thiết bị chặn ghi phần cứng để đảm bảo không một bit nào bị thay đổi.
- Duy trì chuỗi hành trình chứng cứ (Chain of Custody): Ghi lại mọi lệnh bạn chạy. Nếu bạn tìm thấy một file, hãy ghi chép lại chính xác cách bạn tìm thấy nó và inode gốc của nó.
- Xác minh kết quả: Nếu Autopsy gắn cờ một file là độc hại, hãy kiểm tra lại mã hex thô bằng TSK để đảm bảo đó không phải là kết quả dương tính giả.
Bằng cách chuyển từ phân tích trực tiếp sang điều tra số ở cấp độ đĩa, bạn sẽ ngừng đoán mò và bắt đầu chứng minh. Bạn không còn chỉ là một quản trị viên hệ thống đang dọn dẹp mớ hỗn độn; bạn là một chuyên gia bảo mật đang phơi bày sự thật.

