DinteATTT - Block_DinteAttt_PageBreadcrumb

DinteATTT - Block_DinteAttt_Article_Toolbar

Hướng dẫn khai phá và phân tích Log chuyên sâu với VISIDATA

 

Tài liệu này hướng dẫn cán bộ kỹ thuật cách sử dụng VisiData – một công cụ phân tích dữ liệu đa năng dựa trên Terminal (CLI). VisiData đặc biệt mạnh mẽ trong việc xử lý các tệp log lớn (CSV từ EvtxECmd hoặc JSON từ Plaso) mà không cần đến giao diện đồ họa, giúp tối ưu hóa quy trình điều tra trực tiếp trên máy chủ mục tiêu hoặc máy trạm phân tích.

I. TỔNG QUAN VỀ VISIDATA TRONG ĐIỀU TRA SỐ (DFIR)

VisiData không chỉ là một trình xem tệp tin; nó là một "Swiss Army Knife" cho dữ liệu dạng bảng. Đối với một chuyên gia ATTT, VisiData cung cấp khả năng khám phá dữ liệu cực nhanh thông qua các phím tắt, cho phép bạn thực hiện các truy vấn phức tạp tương đương SQL nhưng với tốc độ phản hồi tức thì.

Các ưu điểm cốt lõi:

- Hỗ trợ đa định dạng: Xử lý mượt mà CSV, JSON, XML, SQLite, Excel, và cả các tệp nén (gzip, bz2).

- Tốc độ xử lý: Khả năng tải dữ liệu "lười" (lazy loading), cho phép xem ngay lập tức các tệp log hàng GB mà không gây treo hệ thống.

- Phân tích tần suất: Tạo bảng thống kê (Frequency Table) chỉ với một phím bấm, giúp nhận diện ngay lập tức các địa chỉ IP hoặc User-Agent bất thường đang "tấn công" hệ thống.

- Khả năng mở rộng: Hỗ trợ viết script bằng Python để xử lý các loại log tùy biến hoặc tự động hóa các bước kiểm tra ATTT định kỳ.

Dưới đây là hướng dẫn cơ bản việc cài đặt và sử dụng để các đơn vị, cán bộ vận hành các Hệ thống thông tin của Bộ Nông nghiệp và Môi trường tham khảo, thực hiện nhằm tăng cường công tác  khai phá và phân tích Log chuyên sâu hơn.

II. CÀI ĐẶT VÀ KHỞI CHẠY CHUẨN HÓA

1. Cài đặt

Trên các hệ điều hành Linux (Ubuntu/Debian), khuyến nghị cài đặt thông qua trình quản lý gói Python để đảm bảo có phiên bản mới nhất:

# Cài đặt qua pip3 (Khuyên dùng)
pip3 install visidata
# Cài đặt qua apt (Nếu không có pip)
sudo apt update && sudo apt install visidata

2. Khởi chạy và mở tệp

Để mở các tệp log kết quả từ quá trình trích xuất (ví dụ từ Plaso hoặc EvtxECmd):

# Mở một file đơn lẻ
vd timeline_result.csv
# Mở nhiều file đồng thời (VisiData sẽ quản lý bằng các Sheet)
vd logs/*.csv

III. HỆ THỐNG PHÍM TẮT ĐIỀU HƯỚNG VÀ THAO TÁC NHANH

VisiData tối ưu hóa cho người dùng quen thuộc với trình soạn thảo Vim.

- Di chuyển: h, j, k, l hoặc các phím mũi tên.

- Cuộn trang nhanh: PageUp/PageDown hoặc Ctrl+F/Ctrl+B.

- Quản lý Sheet: Shift+S để xem danh sách các bảng đang mở; Enter để chọn bảng; q để đóng bảng hiện tại.

- Chỉnh sửa hiển thị: _ (gạch dưới) để tự động căn chỉnh độ rộng cột; - để ẩn cột; ^ để đổi tên cột.

- Tìm kiếm: / để tìm kiếm về phía trước; ? để tìm kiếm ngược lại.

IV. KỸ THUẬT PHÂN TÍCH LOG THỰC CHIẾN

1. Thống kê tần suất (Phát hiện tấn công tự động)

Đây là kỹ thuật quan trọng nhất để phát hiện Bot, Scanners hoặc tấn công Brute-force.

- Thao tác: Di chuyển đến cột cần phân tích (ví dụ: Client_IP hoặc Event_ID), nhấn Shift + F.

- Phân tích: Một bảng mới hiện ra sắp xếp theo số lượng (Count). Nếu một IP thực hiện 50.000 yêu cầu trong khi mức trung bình là 100, hãy nhấn Enter trên IP đó để xem chi tiết các hành vi của nó.

2. Lọc và Cô lập bằng chứng

- Lọc nhanh (Select): Nhấn | sau đó nhập từ khóa (ví dụ: 4625). VisiData sẽ đánh dấu các dòng khớp.

- Trích xuất (Filter): Sau khi chọn, nhấn g, (g phẩy) để chỉ giữ lại các dòng đã chọn trong một Sheet mới. Đây là cách bạn tạo ra "bản tóm tắt bằng chứng".

- Loại bỏ nhiễu: Nhấn !! để chọn các dòng dựa trên điều kiện Python (ví dụ: status != 200).

V. CHECKLIST SỰ KIỆN ATTT CẦN TRUY VẾT

Khi phân tích log bằng VisiData, cán bộ kỹ thuật cần tập trung vào các dấu hiệu sau:

1. Trên Hệ điều hành Linux (Log hệ thống & Auth)

Trường dữ liệu

Từ khóa cần lọc

Dấu hiệu nghi vấn

Auth Message

failed, invalid user

Tấn công dò tìm tài khoản và mật khẩu (SSH).

Sudo Actions

command=, PWD=

Sử dụng sudo thực hiện lệnh nhạy cảm (ví dụ: vi /etc/shadow).

Process Name

nc, nmap, curl, wget

Công cụ tải mã độc hoặc tạo kết nối trái phép (Reverse Shell).

Cron Activities

RELOAD, EDIT

Thay đổi tác vụ lập lịch để duy trì sự hiện diện của mã độc.

 

2. Trên Web Server (Nginx)

Trường dữ liệu

Từ khóa cần lọc

Dấu hiệu nghi vấn

Status Code

404, 403, 500

Quét thư mục ẩn hoặc thử nghiệm khai thác lỗ hổng.

Request URI

../, etc/passwd, .env

Tấn công Path Traversal để đọc file cấu hình hệ thống.

User Agent

sqlmap, nmap, python-requests

Sử dụng công cụ tự động (tools) để tấn công.

Referer

URL từ bên ngoài lạ

Tấn công CSRF hoặc chuyển hướng người dùng trái phép.

 

3. Trên Cơ sở dữ liệu (PostgreSQL)

 

Trường dữ liệu

Từ khóa cần lọc

Dấu hiệu nghi vấn

Database User

postgres

Tài khoản quản trị thực hiện truy vấn từ IP lạ.

SQL Statement

DROP, TRUNCATE, GRANT

Phá hoại dữ liệu hoặc thay đổi phân quyền trái phép.

Error Message

syntax error, permission denied

Dấu hiệu thử sai khi tấn công SQL Injection.

Data Length

Giá trị cực lớn

Dấu hiệu trích xuất (exfiltration) dữ liệu quy mô lớn.

 

VI. KỊCH BẢN ĐIỀU TRA NÂNG CAO

1. Truy vết chuỗi tấn công Web-to-DB

- Mở Nginx log: vd nginx_access.csv.

- Nhấn Shift+F tại cột status, chọn mã 500 và nhấn Enter.

- Quan sát các yêu cầu (Requests) dẫn đến lỗi 500, copy các tham số SQL nghi vấn.

- Mở Postgres log: vd postgres_audit.csv.

- Nhấn | và dán tham số nghi vấn để xem các câu lệnh SQL thực tế đã được thực thi trong Database.

2. So sánh Log (Join Sheets)

Nếu bạn có danh sách "IP Đen" (Blacklist):

- Mở tệp log hệ thống và tệp Blacklist.

- Tại tệp log, nhấn & (Join) dựa trên cột IP với tệp Blacklist.

- VisiData sẽ tạo bảng mới chỉ chứa các tương tác từ các IP nằm trong danh sách đen.

VII. LƯU Ý VÀ MẸO VẬN HÀNH CHUYÊN NGHIỆP

- Lưu kết quả phân tích: Sau khi lọc được các dòng bằng chứng, nhấn g Ctrl+S để lưu Sheet hiện tại ra một file CSV mới làm báo cáo.

- Chế độ xem chi tiết: Đối với các cột Payload hoặc Message quá dài, hãy nhấn v để mở cửa sổ xem nội dung đầy đủ của ô đó.

- Múi giờ và Thời gian: Sử dụng phím [ hoặc ] để sắp xếp theo thời gian, giúp bạn tái dựng lại dòng thời gian (Timeline) của vụ việc một cách chính xác.

- Vẽ biểu đồ nhanh: Nhấn . (dấu chấm) tại cột thời gian hoặc số lượng để xem biểu đồ mật độ sự kiện, giúp phát hiện các đợt tấn công bùng phát.

 

 

DinteATTT - Block_DinteAttt_TinTuc_LienQuan

DinteATTT - Block_DinteAttt_Right