6 Các công trình nghiên cứu liên quan
3.2 Đặc điểm của Snort
Snort là một phần mềm thuộc dạng IDS/IPS mã nguồn mở cho phép giám sát, phát hiện những dấu hiện tấn công, xâm nhập mạng. Snort được nhiều tổ chức phát triển và biến thành sản phẩm thương mại như Sourcefire, Astaro.
Snort bao gồm các thành phần chính :[10] + Bộ phận giải mã gói - Packet Decoder
+ Bộ tiền xử lý – Preprocessor
+ Bộ phận phát hiện - Detection Engine
+ Hệ thống ghi log và cảnh báo - Logging và Alerting System + Module xuất kết quả - Output Modules.
Thu thập các gói tin từ các cổng giao tiếp (interface) và chuẩn bị cho việc gói tin được xử lý trước hoặc gửi cho bộ phận phát hiện.
Hình 3.1 Các thành phần của một Snort[10] + Bộ tiền xử lý - Preprocessor
Được sử dụng để sắp xếp hoặc chỉnh sửa gói dữ liệu trước khi bộ phận phát hiện làm một vài xử lý để tìm ra gói tin có được sử dụng bởi kẻ xâm nhập hay không. Bộ tiền xử lý cũng thực thi việc phát hiện bằng cách tìm các dấu hiệu bất thường trong các header của gói tin và tạo ra các cảnh báo. Bộ phận tiền xử lý là rất quan trọng trong bất kỳ hệ thống phát hiện nào, chúng chuẩn bị cho các gói dữ liệu được phân tích dựa trên các luật trong bộ phận phát hiện. Bộ phận tiền xử lý cũng được dùng để khử phân đoạn. Khi một mẫu tin lớn được
44
truyền đến một host, gói thường được chia nhỏ ra. Hệ thống nhận có khả năng ráp lại từ các gói nhỏ. Trên hệ thống phát hiện xâm nhập, trước khi đối chiếu luật hoặc tìm dấu hiệu các gói tin cần được nối lại. Bộ phận tiền xử lý trong Snort có thể tái hợp các gói tin, giải mã HTTP ráp lại các dòng TCP,…Những chức năng này rất quan trọng trong hệ thống phát hiện xâm nhập.
+ Bộ phận phát hiện - Detection Engine
Đây là phần quan trọng nhất trong Snort. Trách nhiệm của nó là phát hiện có sự xâm nhập tồn tại trong gói tin hay không. Bộ phận phát hiện sử dụng các luật của Snort cho mục đích này. Nếu một gói tin giống với bất kỳ một luật nào, một hành động tương ứng sẽ được thực hiện, cuộc tấn công được ghi lại hoặc tạo ra cảnh báo. Đây là bộ phận then chốt về thời gian thực thi của Snort. Lưu lượng trên bộ phận phát hiện phụ thuộc vào các yếu tố sau:
- Số lượng các luật.
- Sức mạnh của máy mà Snort đang chạy. - Tốc độ của bus được sử dụng.
- Lưu lượng trên mạng.
+ Hệ thống ghi log và cảnh báo - Logging và Alerting System.
Phụ thuộc cái mà bộ phận phát hiện tìm thấy trong gói tin, gói tin có thể được sử dụng để ghi lại các hành vi hoặc tạo ra các cảnh báo. Các thông tin ghi lại được giữ trong các tập tin text đơn giản hoặc các dạng khác như trong cơ sở dữ liệu MySQL,...
+ Module xuất kết quả - Output Modules
Module xuất kết quả có thể hoạt động theo nhiều cách phụ thuộc vào việc chúng ta muốn lưu các output được tạo ra bằng hệ thống ghi và tạo cảnh báo như thế nào. Phụ thuộc vào việc cấu hình, output module có thể thực hiện những hành động sau:
- Gởi SNMP traps.
- Gởi các thông báo đến Syslog.
- Ghi log vào CSDL như MySQL hoặc Oracle.
Một số công cụ có thể được phát triển để gởi cảnh báo từ output của Snort như E-mail, SMS hoặc xem cảnh báo qua giao diện Web.