Search by Query
Search theo câu truy vấn (Query search)
Truy cập vào màn hình Search
- Từ thanh menu trái, chọn Investigation → Search.
- Hệ thống mở ra màn hình tính năng Search.
Cách 1: Sử dụng câu truy vấn
Bước 1: Nhập biểu thức tìm kiếm vào thanh search
Trong đó:
a. Tên trường (Field name)
- Gõ tên trường theo chuẩn CSM (Trong lúc người dùng type, hệ thống sẽ gợi ý các trường CSM tương ứng)
- VD:
host.name,event.kind,process.name,source.ip,user.name,rule.name,severity, …
b. Toán tử (Operator)
Hệ thống hỗ trợ các toán tử sau:
| Toán tử | Cú pháp | Ví dụ |
|---|---|---|
| Equals | field:"value" | status:"200" |
| Greater than | field:{value TO *} | bytes:{1000 TO *} |
| Greater than or equals | field:[value TO *] | bytes:[1000 TO *] |
| Less than | field:{* TO value} | bytes:{* TO 5000} |
| Less than or equals | field:[* TO value] | bytes:[* TO 5000] |
| Not equals | -field:valuenot field:value | -status:200not status:200 |
c. Giá trị (Value)
Sử dụng cú pháp Lucene Query. Một số trường hợp phổ biến:
| Loại tìm kiếm | Cú pháp | Ví dụ |
|---|---|---|
| Tìm chính xác (Exact search) | Các giá trị có kí tự đặc biệt và space dùng dấu ngoặc kép " " | event.kind : "alert" |
| Tìm gần đúng (Partial match) | Dùng dấu * để tìm chuỗi có ký tự bất kỳ | host.name : web*→ khớp với web01, webserver, webapp... |
| Tìm theo khoảng giá trị (Range query) | Dùng [] hoặc {} để tìm trong/ngoài khoảng | [a TO b] bao gồm a,b → severity: [2 TO 5]{a TO b} loại trừ a,b → event.id: {100 TO 200} |
Kết hợp nhiều điều kiện:
- AND: tất cả điều kiện đều đúng.
- OR: ít nhất một điều kiện đúng.
Cách 2: Sử dụng filter tìm kiếm nâng cao (Advanced query search)
Bước 1: Mở cửa sổ Advanced Query
Nhấn vào icon bộ lọc (Advanced Query) để mở giao diện tạo bộ lọc nâng cao
Bước 2: Nhập biểu thức tìm kiếm
a. Chọn trường (Field)
Chọn tên trường trong danh sách dropdown. Hệ thống hiển thị toàn bộ các trường CSM khả dụng.
b. Chọn toán tử (Operator)
Phụ thuộc vào kiểu dữ liệu của trường:
| Kiểu dữ liệu | Toán tử hỗ trợ |
|---|---|
| String, IP | Equals, Not Equals, Contains |
| Number | Equals Not equals Greater than Less than Greater than or equals Less than or equals Between (Inclusive) Between (Exclusive) |
c. Nhập giá trị (Value)
Nhập giá trị bạn muốn tìm vào ô Value
Bước 3: Chuyển sang dạng Search Query
Nhấn button "Apply Filters" để hệ thống tự động chuyển bộ điều kiện thành Search Query và hiển thị trong ô tìm kiếm chính.
Bước 4: Tìm kiếm
Nhấn button "Run Search" để thực thi truy vấn. Kết quả hiển thị ở sơ đồ Event Over Time và bảng Event.
- Search query:
event.kind = "error" - Advanced query:
host.name = "HN110SRV01"→ Kết quả cuối cùng:event.kind = "error" AND host.name = "HN110SRV01"
Query search bằng SQL
SQL Search phù hợp khi cần chọn cột hiển thị hoặc viết điều kiện theo cú pháp SQL.
Bước 1: Chọn ngôn ngữ SQL
Tại danh sách Language, chọn SQL. Chọn Data Source và time range trên giao diện; không đưa các thông tin này vào câu truy vấn.
Bước 2: Nhập câu truy vấn
Có thể nhập điều kiện lọc hoặc câu SELECT đầy đủ. Bảng truy vấn là events; đặt tên field có dấu chấm trong nháy kép.
Để trống query để lấy toàn bộ events trong time range và Data Source đã chọn, với phân trang và giới hạn số dòng trên giao diện.
"event.module" = 'windows' AND "event.code" = '4625'
Điều kiện trên tương đương với câu truy vấn sau. SELECT * trả về danh sách field mặc định:
SELECT * FROM events
WHERE "event.module" = 'windows' AND "event.code" = '4625'
Hoặc chọn các cột cần xem:
SELECT "timestamp", "host.name", "user.name", "source.ip"
FROM events
WHERE "event.module" = 'windows'
AND "event.code" = '4625'
ORDER BY "timestamp" DESC
Mặc định, kết quả được sắp xếp mới nhất trước. Dùng ORDER BY để chỉ định thứ tự sắp xếp.
Cú pháp SQL được hỗ trợ
| Nhóm | Cú pháp |
|---|---|
| So sánh | =, !=, <>, >, >=, <, <= |
| Tìm văn bản | LIKE, NOT LIKE, ILIKE (% là ký tự đại diện) |
| Danh sách và khoảng | IN (...), NOT IN (...), BETWEEN ... AND ... |
| Giá trị rỗng | IS NULL, IS NOT NULL |
| Logic | AND, OR, NOT, dấu ngoặc đơn |
Nên đặt tên field trong nháy kép, đặc biệt khi tên có dấu chấm; backtick cũng được hỗ trợ. Giá trị văn bản đặt trong nháy đơn, giá trị số không cần nháy. Custom field viết không có nháy, ví dụ customs.score > 5.
Khi kết hợp với Advanced Query, bộ lọc bổ sung là một biểu thức điều kiện và được ghép với SQL query bằng AND.
Bước 3: Chạy truy vấn
Nhấn Run Search. Dùng bộ chọn số dòng trên giao diện để phân trang; không thêm LIMIT vào SQL.
LIMIT, hàm SQL, aggregate, GROUP BY, HAVING, JOIN, subquery hoặc UNION. Mỗi lần chỉ chạy một statement; không dùng comment hoặc dấu ;. Để tổng hợp, liên kết dữ liệu hoặc dùng hàm SQL, hãy dùng Threat Hunting.Lỗi thường gặp khi dùng SQL
| Truy vấn hoặc lỗi | Cách xử lý |
|---|---|
host.name = web-1 gây lỗi unknown field | Đặt giá trị văn bản trong nháy đơn: "host.name" = 'web-1'. |
SELECT * FROM logs bị từ chối | Chỉ dùng bảng events. |
LIMIT is not supported | Bỏ LIMIT và chọn số dòng trên giao diện. |
GROUP BY is not supported hoặc aggregate function ... is not supported yet | Dùng Threat Hunting nếu cần tổng hợp dữ liệu. |
function "lower" is not supported | Không gọi hàm trong SQL Search; dùng Threat Hunting nếu cần hàm SQL. |
JOIN is not supported hoặc subqueries are not supported | Dùng Threat Hunting nếu cần liên kết dữ liệu hoặc subquery. |
SQL line comments are not allowed | Bỏ comment -- hoặc /* */; chỉ nhập một statement, không có dấu ;. |
":" is not a SQL operator | Thay cú pháp Lucene như event.kind:alert bằng "event.kind" = 'alert', hoặc chuyển Language về Lucene. |