SIEM/Log Management Tìm hiểu các giao thức thu thập log

I. Giới thiệu về thu thập log
Logging là một quá trình ghi lại các sự kiện và hoạt động diễn ra trong thiết bị hoặc ứng dụng. Bất kì sự kiện như người dùng đăng nhập, lỗi hệ thống, thay đổi quyền… sẽ được ghi lại dưới dạng log. Logging giúp ghi lại và quản lý log này một cách có hệ thống, để chúng có thể được sử dụng cho mục đích khắc phục sự cố cũng như các mục đích vận hành và bảo mật. [1]

II. Syslog
1. Định nghĩa

Tiêu chuẩn dùng để ghi lại các sự kiện trên toàn bộ cơ sở hạ tầng công nghệ thông tin, cho phép các hệ thống gửi các thông báo sự kiện đến máy chủ syslog trung tâm.
Quá trình phát triển từ RFC 3164 (2001) lên RFC 5424 (2009) đã hiện đại hóa tiêu chuẩn này, đồng thời đưa vào dữ liệu có cấu trúc và kiến trúc phân lớp để tách rời việc tạo sự kiện ra khỏi lưu trữ và phân tích [2]

2. Syslog daemons
syslogd: Tiến trình syslog daemon nguyên bản của BSD, vẫn còn sử dụng trong hệ thống cũ.
rsyslog: Phiên bản hiện đại và hiệu năng cao với khả năng lọc được cải tiến, hỗ trợ TCP và TLS, cùng khả năng tích hợp cơ sở dữ liệu, được cài đặt mặc định trên hầu hết các bản phân phối Linux.
syslog-ng: Một giải pháp triển khai nâng cao thay thế, cung cấp khả năng định tuyến và phân tích cú pháp log linh hoạt.

Gồm 4 thành phần chính:
Thành phần phát sinh syslog: Tạo và gửi các thông điệp syslog, bất kỳ thiết bị hoặc ứng dụng nào có khả năng ghi log đều có thể đóng vai trò là thành phần phát sinh. Được thấy trong: Cisco router, Juniper firewall, Linux server, Apache web server.
Bộ thu thập Syslog: Tiếp nhận, lưu trữ và tùy chọn lọc các thông điệp. Trên các hệ thống Linux hoặc Unix, thành phần này thường là một tiến trình nền syslog (chẳng hạn như rsyslog hoặc syslog-ng) chạy dưới dạng dịch vụ nền. Ví dụ: rsyslog, syslog-ng, syslogd.
Chuyển tiếp Syslog: Chuyển tiếp các thông điệp đến một bộ thu thập hoặc trạm trung chuyển khác. Thường thực hiện chuyển đổi giao thức (từ UDP sang TCP hoặc TLS) và tổng hợp dữ liệu trong các kiến trúc mạng phân đoạn. Ví dụ: Trạm chuyển tiếp trung gian trong DMZ, rsyslog ở chế độ chuyển tiếp, hoặc cấu hình trạm chuyển tiếp syslog-ng.
Syslog phân tích: Phân tích cú pháp, đối soát, làm phong phú và phát cảnh báo dựa trên dữ liệu syslog. Chuyển đổi các bản ghi thô thành thông tin tình báo về bảo mật và vận hành có giá trị thực tiễn. Ví dụ: Công cụ quản lí như Splunk, ELK Stack.

III. Beat
1. Định nghĩa

Beats là một nền tảng mã nguồn mở dành cho các công cụ truyền tải dữ liệu chuyên biệt. Hoạt động trên cơ chế agent, cài đặt agent trên các hệ thống, ứng dụng cần giám sát để thu thập log. [3]

2. Các loại beat
Auditbeat: Một công cụ truyền tải dữ liệu gọn nhẹ thường cài đặt trên các máy chủ kiểm tra hoạt động của người dùng và tiến trình trên hệ thống.
Filebeat: Một công cụ vận chuyển gọn nhẹ dùng để chuyển tiếp và tập trung hóa dữ liệu log, cài đặt như một agent trên máy chủ, giám sát các tệp log và vị trí chỉ định thu thập các sự kiện log và chuyển tiếp chúng đến Elasticsearch hoặc Logstash để lập index.
Heartbeat: Một daemon gọn nhẹ được cài đặt trên máy chủ từ xa để định kỳ kiểm tra trạng thái các dịch vụ, cho biết dịch vụ có thể truy cập được không.Hữu ích cho việc tuân thủ các thỏa thuận về cấp độ dịch vụ và thời gian hoạt động, kiểm tra xem quyền truy cập đối với máy chủ nội bộ.
Metricbeat: Một công cụ truyền tải dữ liệu gọn nhẹ cài đặt trên các máy chủ để định kỳ thu thập về các chỉ số từ hệ điều hành và các dịch vụ đang chạy trên máy chủ đó. Sau đó Metricbeat lấy các chỉ số và dữ liệu thống kê đã thu thập được rồi chuyển chúng đến đích đầu ra. Ví dụ: Apache, HAProxy, MongoDB, MySQL, Nginx...
Packetbeat: Một công cụ phân tích gói tin mạng thời gian thực, có thể kết hợp với Elasticsearch để tạo thành hệ thống giám sát ứng dụng và phân tích hiệu năng. Hoạt động bằng cách thu thập lưu lượng mạng giữa các máy chủ ứng dụng, giải mã các giao thức lớp ứng dụng (như HTTP, MySQL, Redis, v.v.), đối soát request với response và ghi lại các trường dữ liệu quan trọng cho mỗi giao dịch.
Winlogbeat: Đọc từ một hoặc nhiều log sự kiện bằng cách sử dụng API của Windows, lọc các sự kiện dựa trên các tiêu chí do người dùng cấu hình, sau đó gửi dữ liệu sự kiện đến các đầu ra đã cấu hình (Elasticsearch hoặc Logstash).

IV. Fluent Bit
1. Định nghĩa

Một agent thu thập dữ liệu quan sát nguồn mở, có khả năng xử lí log, chỉ số, dấu vết và dữ liệu hồ sơ. Nó được thiết kế để giải quyết hiệu quả các thách thức trong việc thu thập và xử lý dữ liệu quan sát trên nhiều môi trường đa dạng, từ các hệ thống có tài nguyên hạn chế cho đến những cơ sở hạ tầng đám mây phức tạp. [4]

2. Cách hoạt động
Input: Fluent Bit thu thập thông tin từ nhiều nguồn khác nhau
Parser và Filter: Chuyển dữ liệu thành dữ liệu có cấu trúc, thay đổi và làm giàu dữ liệu, người dùng có thể cấu hình bộ lọc theo mục đích của họ.
Buffering: Sử dụng cơ chế SQL Stream Processing, cho phép người dùng nhập SQL query trên log và chỉ số, thao tác như tổng hợp, tính toán, dự đoán chuỗi thời gian trước khi lưu.
Output: Những log này sẽ được lưu vào những đầu ra đã chỉ định trước.

V. Wazuh
1. Định nghĩa

Wazuh là một nền tảng bảo mật mã nguồn mở miễn phí, kết hợp các khả năng XDR và SIEM. Nó bảo vệ khối lượng công việc trên các môi trường on-premises, ảo hóa, container và đám mây. [5]

2. Thành phần
Wazuh indexer: một công cụ phân tích và tìm kiếm toàn văn bản có khả năng mở rộng cao, có nhiệm vụ thực hiện lập chỉ mục và lưu trữ các cảnh báo do máy chủ Wazuh tạo ra, đồng thời cung cấp khả năng phân tích và tìm kiếm dữ liệu gần như theo thời gian thực.
Wazuh server: Thành phần trung tâm phân tích log do agent và các thiết bị không sử dụng agent thu thập được. Thực hiện công việc phát hiện các mối đe dọa, các điểm bất thường và các vi phạm tuân thủ quy định theo thời gian thực, đồng thời tạo cảnh báo khi phát hiện hoạt động đáng ngờ.
Wazuh Dashboard: Giao diện web linh hoạt dùng để trực quan hóa, phân tích và quản lý dữ liệu bảo mật. Nó cho phép người dùng điều tra các sự kiện và cảnh báo, giám sát nền tảng Wazuh, cũng như thực thi các chính sách kiểm soát truy cập dựa trên vai trò (RBAC) và đăng nhập một lần (SSO).
Wazuh Agent: Chạy trên gần như tất cả các hệ điều hành, thu thập các loại dữ liệu hệ thống và ứng dụng khác nhau, sau đó chuyển tiếp chúng đến máy chủ Wazuh thông qua một kênh được mã hóa và xác thực.

Bao gồm tính năng: Thu thập log, thực thi lệnh, giám sát tệp, phát hiện mã độc...

VI. Vector
1. Định nghĩa

Pipeline dữ liệu quan sát hiệu suất cao, trao cho các tổ chức quyền kiểm soát hoàn toàn dữ liệu quan sát của mình. Cho phép người dùng thu thập, chuyển đổi và định tuyến mọi loại dữ liệu từ log, chỉ số, dấu vết tới bất kỳ nhà cung cấp nào. [6]

2. Vai trò
Với vai trò agent, Vector được triển khai trực tiếp trên từng node để thu thập và xử lý dữ liệu tại chỗ. Vector có thể thu thập dữ liệu trực tiếp từ node, gián tiếp thông qua một agent khác, hoặc kết hợp cả hai phương thức. Quá trình xử lý dữ liệu có thể diễn ra cục bộ ngay tại agent hoặc từ xa tại aggregator.
Với vai trò aggregator, Vector được triển khai trên các node chuyên dụng để tiếp nhận dữ liệu từ các agent ở thượng nguồn hoặc lấy dữ liệu từ các dịch vụ pub-sub. Việc xử lý dữ liệu được tập trung tại các aggregator, trên những node được tối ưu hóa về hiệu năng.

VII. So sánh
Syslog là loại phương pháp thu thập và xử lí log thời đầu, đơn giản và làm được mục đích đặt ra. Nhưng việc chuyển tiếp log đến trung tâm qua những giao thức mạng thông thường làm mất đi tình bảo mật của quá trình.
Beats cung cấp nhiều công nghệ bao quát từng góc cần giám sát của một hệ thống mạng, cùng với việc ELK stack là framework lâu dài được phát triển và bảo trì. Nhiều công nghệ mang lại vấn đề về tốn tài nguyên để chạy những công nghệ này.
Fluent Bit giải quyết được vấn đề một công nghệ cho một công việc, tổng hợp xử lí mọi việc trong quá trình thu thập và phân tích log dưới một agent gọn nhẹ. Nhưng do một agent quản lí nhiều nguồn log khác nhau có thể trở nên khó khăn và ảnh hưởng đến hiệu suất
Wazuh là một nền tảng cung cấp đầy đủ tính năng với giao diện dễ tiếp cận cho người dùng, nhưng bị hạn chế về sự thích ứng với những công nghệ khác khi sử dụng agent với trung tâm khác.
Vector là công nghệ mới có thể vừa thu thập và tổng hợp thông tin cho sự hiệu quả của việc phân tích log, nhưng do công nghệ mới nên chưa có cộng đồng lâu dài như ELK stack.

Tài liệu tham khảo
[1] https://www.manageengine.com/products/eventlog/logging-guide/log-collection-and-techniques.html
[2] https://www.manageengine.com/produc...-basics-logging.html?source=ela-kb&medium=lhs
[3] https://www.elastic.co/docs/reference/beats
[4] https://docs.fluentbit.io/manual/about/what-is-fluent-bit
[5] https://documentation.wazuh.com/current/getting-started/index.html
[6] https://vector.dev/docs/introduction/
 
Back
Top