Giới thiệu Elasticsearch cho SOC Analyst
Hướng dẫn chi tiết cách sử dụng Elasticsearch và Kibana trong công việc SOC
📋 Mục lục
🔍 Elasticsearch là gì?
Elasticsearch là một công cụ tìm kiếm và phân tích dữ liệu phân tán, được xây dựng trên Apache Lucene. Trong môi trường SOC, Elasticsearch đóng vai trò là "bộ não" của hệ thống SIEM, giúp lưu trữ, tìm kiếm và phân tích hàng triệu sự kiện bảo mật mỗi ngày.
💡 Tại sao Elasticsearch phù hợp với SOC?
- • Tốc độ tìm kiếm: Tìm kiếm trong hàng triệu records chỉ trong vài giây
- • Khả năng mở rộng: Dễ dàng thêm nodes để xử lý dữ liệu lớn
- • Tính linh hoạt: Hỗ trợ nhiều loại dữ liệu (logs, metrics, traces)
- • Real-time: Cập nhật và tìm kiếm dữ liệu theo thời gian thực
🛡️ Tại sao SOC cần Elasticsearch?
Threat Hunting
Tìm kiếm các mối đe dọa tiềm ẩn trong dữ liệu lịch sử
Phân tích xu hướng
Theo dõi và phân tích các xu hướng tấn công
Incident Response
Điều tra và phân tích sự cố bảo mật
Báo cáo
Tạo báo cáo chi tiết cho management
📚 Các khái niệm cơ bản
Index
Index là nơi lưu trữ dữ liệu, tương tự như database trong hệ thống quan hệ. Mỗi index chứa một loại dữ liệu cụ thể.
winlogbeat-* # Windows logs
filebeat-* # System logs
packetbeat-* # Network logs
Document
Document là đơn vị dữ liệu cơ bản, tương tự như một record trong database.
{
"@timestamp": "2025-01-21T02:15:33.000Z",
"event.code": 4625,
"host.name": "AnhLP-Laptop-01",
"winlog.event_data.IpAddress": "212.132.125.106"
}
🎯 Hướng dẫn sử dụng Kibana
1. Discover - Khám phá dữ liệu
Discover là nơi bạn bắt đầu khám phá dữ liệu. Đây là công cụ chính để tìm kiếm và xem dữ liệu.
📋 Các bước sử dụng Discover:
- 1. Chọn Data View phù hợp (ví dụ: winlogbeat-*)
- 2. Thiết lập Time Range (ví dụ: Last 24 hours)
- 3. Sử dụng Search Bar để tìm kiếm
- 4. Xem kết quả trong Document Table
2. Data View - Quản lý dữ liệu
Data View giúp bạn tổ chức và quản lý các index một cách logic.
Name: Windows Logs
Index pattern: winlogbeat-*
Time field: @timestamp
3. Time Range - Thiết lập thời gian
Time Range giúp bạn giới hạn phạm vi tìm kiếm theo thời gian.
⏰ Các tùy chọn Time Range phổ biến:
- • Last 15 minutes: Để theo dõi sự cố đang diễn ra
- • Last 1 hour: Để phân tích sự cố gần đây
- • Last 24 hours: Để xem tổng quan ngày
- • Last 7 days: Để phân tích xu hướng
4. Query - Tìm kiếm dữ liệu
Query là cách bạn tìm kiếm dữ liệu cụ thể trong Elasticsearch.
event.code:4625 # Windows failed login events
# Query phức tạp hơn:
event.code:4625 AND host.name:"AnhLP-Laptop-01"
# Query với time range:
event.code:4625 AND @timestamp:[2025-01-21T00:00:00 TO 2025-01-21T23:59:59]
5. Columns - Hiển thị dữ liệu
Columns giúp bạn chọn những trường dữ liệu quan trọng để hiển thị.
📊 Các trường quan trọng trong SOC:
- • @timestamp: Thời gian sự kiện
- • host.name: Tên máy chủ
- • event.code: Mã sự kiện (4624, 4625, etc.)
- • winlog.event_data.IpAddress: IP address
- • winlog.event_data.TargetUserName: Username
6. Filter - Lọc dữ liệu
Filter giúp bạn lọc dữ liệu theo các điều kiện cụ thể.
event.code:4625 # Failed login events
winlog.event_data.LogonType:10 # RDP logons
NOT winlog.event_data.IpAddress:192.168.* # External IPs
🚀 Mẹo nâng cao
💡 Sử dụng KQL (Kibana Query Language)
KQL là ngôn ngữ truy vấn đơn giản và mạnh mẽ của Kibana.
event.code:4625 AND winlog.event_data.IpAddress:212.132.125.106
# Tìm kiếm với wildcard:
host.name:*Laptop*
# Tìm kiếm với range:
@timestamp >= "2025-01-21T00:00:00"
📊 Sử dụng Aggregations
Aggregations giúp bạn thống kê và phân tích dữ liệu.
event.code:4625
# Aggregation: Terms trên winlog.event_data.IpAddress
# Kết quả: Top IPs với số lượng events
🔍 Saved Searches
Lưu lại các query thường dùng để sử dụng lại.
💾 Các Saved Searches hữu ích:
- • Failed Logins: event.code:4625
- • Successful Logins: event.code:4624
- • RDP Connections: winlog.event_data.LogonType:10
- • Admin Activities: winlog.event_data.TargetUserName:admin*
🎯 Hướng dẫn sử dụng thực tế
1 Đăng nhập vào Elastic
Truy cập https://lab1.iselab.edu.vn và đăng nhập với tài khoản đã được cấp.
Giao diện đăng nhập Elastic
2 Khám phá trang chủ
Sau khi đăng nhập, bạn sẽ thấy dashboard chính với các tính năng chính của Elastic.
Dashboard chính của Elastic
3 Truy cập Analytics
Click vào "Analytics" để truy cập các công cụ phân tích dữ liệu như Discover, Dashboard, và Visualizations.
Trang Analytics với các công cụ phân tích
4 Khám phá tính năng Analytics
Trong Analytics, bạn có thể sử dụng các tính năng như Discover để tìm kiếm dữ liệu, tạo Dashboard để theo dõi metrics, và xây dựng Visualizations.
Các tính năng chính trong Analytics
5 Thêm Field làm Column
Trong Discover, bạn có thể thêm các field quan trọng làm column để dễ dàng theo dõi và phân tích dữ liệu.
Hướng dẫn thêm field làm column trong Discover
6 Sử dụng Lens để Visualize dữ liệu
📊 Lens là gì?
Lens cho phép bạn tạo các biểu đồ thống kê (Bar chart, Line chart, Pie chart, Table...) bằng cách kéo thả các field từ dữ liệu. Đây là công cụ lý tưởng cho SOC Analyst để phân tích xu hướng, thống kê số lượng events, top sources, và nhiều hơn nữa.
Giao diện Lens với các tùy chọn visualization
🔧 Các bước sử dụng Lens:
- Truy cập Lens: Từ menu Analytics → chọn
Visualize Library→Create visualization→ chọnLens - Chọn Data View: Chọn index pattern bạn muốn phân tích (ví dụ:
winlogbeat-*) - Chọn loại biểu đồ: Bar chart, Line, Pie, Table, Metric... tùy theo mục đích phân tích
- Kéo thả field: Kéo các field từ danh sách bên trái vào các trục (X-axis, Y-axis) hoặc metrics
- Cấu hình aggregation: Chọn Count, Sum, Average, Top values... để tổng hợp dữ liệu
- Apply filter: Thêm filter để lọc dữ liệu theo điều kiện (ví dụ:
event.code: 4625) - Save visualization: Lưu lại để sử dụng trong Dashboard hoặc report
💡 Ví dụ Use Case cho SOC:
- Top 10 IPs failed login: Bar chart với X-axis =
source.ip, Y-axis =Count, Filter =event.code: 4625 - Timeline failed login: Line chart với X-axis =
@timestamp, Y-axis =Count - Distribution by LogonType: Pie chart với Slice by =
winlog.event_data.LogonType - Top users targeted: Table với Rows =
user.name, Metrics =Count
💡 Mẹo sử dụng hiệu quả
- • Lưu searches: Sau khi tạo query hữu ích, nhớ lưu lại để sử dụng sau
- • Time picker: Luôn chọn khoảng thời gian phù hợp để giảm noise
- • Filters: Sử dụng filters để tập trung vào dữ liệu quan trọng
- • Columns: Chỉ hiển thị các field cần thiết để tăng hiệu suất
SOC Team
Đội ngũ chuyên gia SOC với nhiều năm kinh nghiệm
📅 Xuất bản: 21/01/2025 | ⏱️ 15 phút đọc | 🔍 Elasticsearch