SIEM/Log Management Tìm hiểu OpenSearch Query DSL, DQL, Vega & PPL (Piped Processing Language)

1. Giới thiệu
- Trong hệ thống OpenSearch, việc tìm kiếm và phân tích log là một chức năng quan trọng, đặc biệt trong các hệ thống giám sát mạng và an ninh thông tin. OpenSearch cung cấp nhiều phương thức truy vấn và trực quan hóa dữ liệu, trong đó Query DSL, PPL và Vega là những thành phần thường được sử dụng.
  • Query DSL (Domain Specific Language): sử dụng cú pháp JSON để tìm kiếm và lọc dữ liệu.
  • PPL (Piped Processing Language): sử dụng cú pháp dạng pipeline, giúp truy vấn và phân tích log dễ đọc hơn.
  • Vega: dùng để xây dựng các biểu đồ và giao diện trực quan tùy chỉnh trong OpenSearch Dashboards.
Ba thành phần này có thể kết hợp để thực hiện quy trình:
Thu thập log → Truy vấn → Phân tích → Alert → Dashboard.
2. Query DSL
Query DSL là ngôn ngữ truy vấn dựa trên JSON được OpenSearch sử dụng để tìm kiếm và xử lý dữ liệu trong các Index.
Có thể sử dụng Query DSL để tìm kiếm các log phù hợp với điều kiện mong muốn.
2.1. Match Query
match được sử dụng để tìm kiếm nội dung trong các trường dạng text. OpenSearch sẽ phân tích nội dung tìm kiếm trước khi thực hiện truy vấn.
Truy vấn trên tìm các log có nội dung liên quan đến failed login.
Đặc điểm: match phù hợp với tìm kiếm nội dung hoặc văn bản, không yêu cầu giá trị phải giống hoàn toàn.

2.2. Term Query
term được sử dụng khi cần tìm kiếm một giá trị chính xác. Nó thường được sử dụng với các trường dạng keyword.
Truy vấn trên chỉ lấy những log có giá trị action chính xác là deny.
2.3. Range Query
range được sử dụng để tìm dữ liệu nằm trong một khoảng nhất định. Query này thường được sử dụng để lọc thời gian, số lượng hoặc các giá trị số:
  • gt: lớn hơn.
  • gte: lớn hơn hoặc bằng.
  • lt: nhỏ hơn.
  • lte: nhỏ hơn hoặc bằng.
Range Query đặc biệt quan trọng khi phân tích log theo khoảng thời gian.

2.4. Bool Query

Thành phần

Ý nghĩa

must

Điều kiện bắt buộc phải thỏa mãn

filter

Lọc dữ liệu theo điều kiện

should

Điều kiện dạng OR

must_not

Loại bỏ dữ liệu thỏa mãn điều kiện

bool cho phép kết hợp nhiều điều kiện truy vấn trong cùng một câu lệnh.

3. Aggregation
Aggregation được sử dụng để thống kê và tổng hợp dữ liệu thay vì chỉ lấy từng bản ghi log.
Kết quả có thể được sử dụng để xác định:
  • IP tạo nhiều log nhất.
  • IP có nhiều kết nối bị từ chối.
  • Top các địa chỉ IP truy cập hệ thống.
  • Các loại sự kiện xuất hiện nhiều nhất.
Aggregation là thành phần quan trọng trong việc xây dựng Dashboard và Alert.
4. PPL – Piped Processing Language
PPL là ngôn ngữ truy vấn của OpenSearch được thiết kế theo mô hình pipeline. Dữ liệu được xử lý lần lượt qua nhiều bước bằng ký hiệu |.
Có thể hiểu quá trình trên như sau:

Lấy dữ liệu → Lọc log Deny → Chọn các trường cần hiển thị.
4.1. Tìm các IP bị Firewall từ chối nhiều nhất
Truy vấn thực hiện:
1. Lấy dữ liệu từ firewall-logs.
2. Lọc các sự kiện có action = deny.
3. Đếm số lượng log theo source_ip.
4. Sắp xếp theo số lượng giảm dần.
5. Lấy 10 IP đứng đầu.
PPL có ưu điểm là cú pháp trực quan, dễ đọc và phù hợp với việc phân tích log.
5. Vega
Vega là công cụ được sử dụng trong OpenSearch Dashboards để tạo các biểu đồ trực quan tùy chỉnh.
Trong khi Query DSL và PPL tập trung vào truy vấn và xử lý dữ liệu, Vega tập trung vào hiển thị dữ liệu.
Vega có thể được sử dụng để tạo:
  • Biểu đồ đường.
  • Biểu đồ cột.
  • Biểu đồ tròn.
  • Biểu đồ phân tán.
  • Bản đồ.
  • Các biểu đồ tùy chỉnh phục vụ giám sát bảo mật.
6. Ứng dụng trong tạo Alert
Alert được sử dụng để tự động phát hiện các sự kiện đáp ứng một điều kiện nhất định.
Ví dụ: phát cảnh báo khi có hơn 1.000 log Deny trong vòng 5 phút.
Sau đó sử dụng kết quả thống kê để kiểm tra điều kiện: Số lượng log Deny > 1000
Nếu điều kiện được thỏa mãn, hệ thống có thể kích hoạt Alert để thông báo cho quản trị viên.

Một số trường hợp có thể sử dụng Alert:
  • Có quá nhiều lần đăng nhập thất bại.
  • Một IP gửi lượng lớn request.
  • Số lượng Firewall Deny tăng đột biến.
  • Xuất hiện sự kiện bảo mật nguy hiểm.
  • Có nhiều kết nối bất thường trong một khoảng thời gian ngắn.
7. Kết luận
Query DSL, PPL và Vega là những thành phần quan trọng trong quá trình khai thác dữ liệu của OpenSearch. Query DSL cung cấp khả năng truy vấn chi tiết bằng JSON, PPL giúp phân tích log theo dạng pipeline dễ đọc, còn Vega hỗ trợ trực quan hóa dữ liệu thành các biểu đồ tùy chỉnh.

Khi kết hợp các công cụ này, quản trị viên có thể xây dựng một hệ thống hoàn chỉnh từ tìm kiếm log → phân tích dữ liệu → phát hiện sự kiện bất thường → tạo Alert → xây dựng Dashboard. Đây là nền tảng quan trọng để triển khai các hệ thống giám sát mạng, giám sát máy chủ và phân tích an ninh thông tin (Security Monitoring/SIEM).
 
Sửa lần cuối:
Back
Top