Là các detector và monitor, thu thập dữ liệu một cách thụ động thông qua các bản mẫu (không ảnh hưởng đến lưu lượng mạng) và được lưu trong các Agent của OSSIM.
Là các scanner host, chủ động tìm kiếm các lỗ hổng trong mạng.
Gồm các agent OSSIM, có vai trị nhận dữ liệu từ các host trong mạng như router hoặc firewall, giao tiếp và gửi dữ liệu các sự kiện tới server quản lí trung tâm và được cấu hình trong file Output.py trong ossim-agent.
Một cấu hình sensor OSSIM điển hình gồm các chức năng như : IDS (Snort), Quét lỗ hổng (Nessus), Phát hiện sự bất thường (Spade, p0f, pads, arpwatch, RRD ab behaviour), Giám sát mạng (Ntop), Thu thập thông tin từ routers, firewalls, IDS's. Các cơng cụ này được tích hợp vào file cấu hình của sensor. Avconfig_profile_sensor.pm Vd: Các cơng cụ được tích hợp trong Sensor
# nessus if ( ! -f "/var/lib/nessus/users/ossim/auth/") { system("mkdir -p /var/lib/nessus/users/ossim/auth/"); system("echo\"34aecbcdd9da8432b2570f2bc9c3cee5 cecb653463639c5228c3670832653911\"> /var/lib/nessus/users/ossim/auth/hash "); system("touch /var/lib/nessus/users/ossim/auth/rules"); } if( -f "/var/lib/nessus/users/ossim/auth/hash"){ $test=`echo$h$seed> /var/lib/nessus/users/ossim/auth/hash`; } # ossec timezone
debug_log("Sensor Profile: Update OSSEC timezone (localtime file)");
my $command="if [ -f /etc/localtime ] && [ -f /var/ossec/etc/localtime ]; then prov=`md5sum /etc/localtime| awk -F\' \' \'{print\$1}\'`; inst=`md5sum /var/ossec/etc/localtime| awk -F\' \' \'{print\$1}\'`; if [ \"\$prov\" != \"\$inst\" ]; then cp -f /etc/localtime /var/ossec/etc/localtime; fi; fi";
debug_log("$command"); system($command); # nessus if ( ! -f "/var/lib/nessus/users/ossim/auth/") { system("echo\"34aecbcdd9da8432b2570f2bc9c3cee5 cecb653463639c5228c3670832653911\"> /var/lib/nessus/users/ossim/auth/hash ");
if( -f "/var/lib/nessus/users/ossim/auth/hash"){
$test=`echo$h$seed> /var/lib/nessus/users/ossim/auth/hash`; }
Server: Cơng việc chính của một Server là chuẩn hóa, thu thập, ưu tiên hóa, đánh giá
rủi ro và thiết lập mối tương quan các bộ máy bên trong. Các cơng việc duy trì hoạt động như sao lưu, lập lịch sao lưu, tạo các thư mục online hoặc tiến hành quét toàn bộ hệ thống.
Việc thu thập thơng tin, chuẩn hóa và đánh giá rủi ro cho hệ thống, phân loại các loại tập tin, các dấu hiệu bất thường cho hệ thống…sẽ được gửi lên framework để phân loại hành động và mức độ cảnh báo cho hệ thống…và database để lưu trữ các sự kiện, các thông tin cho hệ thống qua port 3306.
Framework: Quản lý các thành phần OSSIM và kết nối chúng lại với nhau. Cung cấp
Cơ sở dữ liệu (database): Cơ sở dữ liệu lưu trữ các sự kiện, các thơng tin hữu ích
cho việc quản lý của hệ thống. Nó là cơ sở dữ liệu SQL. 3.3 Xây dựng module phân tích sự kiện an ninh thơng tin
3.3.1 Mơ hình phân tích Logs file
Phân tích, chuẩn hóa các logs file về cơ bản là khai phá một log message, trích xuất các giá trị cần thiết đưa vào các trường, sau đó có thể được lưu trữ trong một cơ sở dữ liệu để từ đó chạy các truy vấn. Q trình trích xuất các giá trị ra khỏi các log message và chuyển tới các trường được gọi là Normalization.
Bởi vì các logs file được tạo ra bởi nhiều nguồn không theo bất kỳ tiêu chuẩn nào.Một số ít là rất dễ để người phân tích hệ thống mạng có thể đọc được, tuy nhiên đa phần những cái khác có định dạng phức tạp và có thể được mã hóa theo tiêu chuẩn của nhà sản xuất. Vì vậy, đối với bất kỳ hệ thống chúng ta muốn sử dụng tốt các bản ghi, chúng ta cần một cơng cụ để phân tích cú pháp để đọc các bản ghi và trích xuất các thơng tin từ chúng vào các dạng thông tin tiêu chuẩn (tên người dùng, địa chỉ ip…).
Quá trình thu thập phân tích Logs file được xử lý như sau:
• Chìa khóa để hệ thống thu thập Logs và Normalization là Agent, một thành phần trên các AlienVault Sensor.Các Agent xử lý các file log thông qua các Plugins.
Hình vẽ 3.5. Cấu trúc plugin-Agent
• Các Event Messages quan trọng được gán Security ID và được phân loại trong các fields của normalized.Các Agent chuyển giao các bản ghi đã được xử lý đến AlienVault Server.
Các Agent chịu trách nhiệm thu thập tất cả các dữ liệu được gửi bởi các thiết bị khác nhau hiện có trên mạng, để sau đó gửi nó đến máy chủ OSSIM trong mơi trường đã được tiêu chuẩn hóa. Mục đích chuẩn hóa các sự kiện trước khi gửi chúng đến máy chủ là để sau này có thể đối phó với những sự kiện như nhau và để lưu trữ và xử lý đơn giản và mạch lạc hơn.
Tất cả log file của những hệ thống hoặc thiết bị mà Sensor thu thập được, đòi chúng phải một Plugin được tạo ra để diễn giải,chuyển đổi thành các sự kiện an ninh mạng để phục vụ cho việc xử lý tương quan sự kiện sau này ở Ossim server. Một khi các dữ liệu này đã được chuẩn hóa nó sẽ được thơng qua các chức năng cịn lại của các Agent để được gửi đến máy chủ OSSIM trong hình thức của một sự kiện an ninh mạng.
Quá trình xây dựng một Agent Alienvault bao gồm 2 cơng việc sau:
• Cấu hình hệ thống: Phần cấu hình được sử dụng để xem xét các Logs file, dịch vụ liên quan đến kiểm sốt và cấu hình các loại plugin mà chúng ta đã tạo.
• Định nghĩa các Plugin: Các Plugin này được sử dụng biểu thức chính quy để xác định các biến cần thiết của sự kiện an ninh mạng như Source IP, Source Port, Destination IP, Destination Port, Username, Password, Userdata#.
3.3.2 Cấu hình hệ thống
File cấu hình hệ thống được lưu trữ trong các Sensor tại thư mục:
/etc/ossim/agent/config.cfg
Cấu trúc của file config.cfg như sau :
[daemon]
[event-consolidation]: Cho phép củng cố sự kiện ở cấp độ Agent. Bạn nên sử dụng
chính sách thay vì điều này tính năng như hợp nhất ở cấp độ Agent ảnh hưởng đến quá trình tương quan. Bao gồm các biến: by_plugin, enable time.
[log] Cấu hình mức độ chi tiết và đường dẫn đến các logs file khác nhau bao gồm các
biến: Error, file, stats, verbose.
[output-plain]: Viết trong một los file những gì đang được gửi đến OSSIM Server. bao
gồm các biến: enable, file.
[output-server]: Cấu hình máy chủ mà các sự kiện được gửi bao gồm các biến: enable,
ip, port.
[plugin-defaults]: Trong mục này biến có thể được định nghĩa để được sử dụng trong
[plugins]: Trong đó các plugin (detectors and monitors) được kích hoạt
Tên của plugin=đường dẫn tới thư mục cấu hình file plugin.
[watchdog]: Giám sát các quá trình liên quan đến mỗi plugin (Trong trường hợp nó
đang chạy trong cùng một máy) bao gồm các biến enable, interval, restart_interval. 3.3.3 Định nghĩa các plugin
Các tập tin Plugin sẽ được lưu trữ trên Sensor trong thư mục:
/etc/ossim/agent/plugins/*.cfg
Đây là các plugin được viết dựa trên các nguồn gồm : Log, Microsoft SQL, MySQL, Bản ghi thiết bị mạng của Cisco, Snort logs, Windows Management Instrumentation.
Có 2 kiểu kết nối của Plugin với nguồn dữ liệu đó là Detectors và Monitors.
• Detector: plugin nhận được thơng tin cung cấp các sự kiện từ chúng (Snort, Firewalls, Antivirus, Web servers, OS events..). Log Files được tạo bởi RSYSLOG system. Log data được lấy từ hệ thống từ xa thông qua một trong các giao thức thu thập như SDEE and SFTP.
• Monitor: Các thơng tin cung cấp thông qua các chỉ số được thu thập từ các công cụ cài đặt trên hệ thống.( Ntop, Tcptrack, Nmap, Webs, Compromise & Attack...).
Mỗi kết nối với nguồn dữ liệu được xây dựng trên hai tập tin: • Plugin.cfg
Chứa các thơng số cấu hình của các plugin và các quy tắc một sự kiện có để phù hợp để có thể được thu thập và chuẩn hóa.
• Plugin.sql
Chứa thơng tin về tất cả các sự kiện có thể có thể được thu thập bằng cách sử dụng plugin (Plugin_id, Plugin_sid, tên được đặt cho sự kiện, độ ưu tiên, độ tin cậy).
Cấu trúc tập tin Plugin sẽ có (ít nhất) ba phần chính:
• Default: Chứa thơng tin có thể được tham khảo và lấy từ khắp mọi nơi.
• Config: Chứa các thơng tin địa phương mà chỉ có thể được tham chiếu từ bên ngồi
hoặc tập tin trong phần riêng của nó.
• ossim-agent-format: thực tế mã phân tích sự kiện, bạn có thể có nhiều phần cho nhiều sự kiện. Ngồi ra, phần khác có thể được sử dụng.
• Translation: Có những plugins khơng thể đọc được định dạng đã mã hóa theo định dạng riêng của file nguồn, số "plugin_sid" khơng có thể được chiết xuất từ các log message và phải được chuyển đổi với một danh sách. Danh sách này được tạo ở đây. Cấu trúc của Plugin Detector bao gồm:
• plugin_id: Người dùng được dành khoảng 9000 – 10000.
• Source: Log, Mssql Database, Mysql Database,Windows Management Instrumentation (wmi-system-logger), SDEE (Bản ghi thiết bị Cisco), SnortLog.
• Location: đường dẫn tới tập tin lưu trữ sự kiện.
• create_file: Tạo ra các tập tin trong trường hợp nó khơng tồn tại (false/true).
• process / start / stop / startup / shutdown: Các thiết lập được tạo nếu các quá trình đang chạy trên cùng 1 hệ thống.
• Rule: Quy tắc xác định các định dạng của mỗi sự kiện và cách thức chúng được chuẩn hóa.
Nó được viết bằng một biểu thức chính quy và danh sách các trường mà các sự kiện sẽ có và một khi nó được gửi đến các AlienVault SIEM. Trong một số trường hợp chỉ có một biểu thức chính quy sẽ thu thập tất cả các sự kiện đến từ một ứng dụng, trong trường hợp khác địi hỏi cần nhiều hơn một rule.
Ví dụ về 1 Rule:
Tên của quy tắc là bắt buộc và quy tắc được nạp vào theo thứ tự chữ cái dựa trên tên được đặt cho từng quy tắc. Một khi các bản ghi phù hợp với một regex của một quy tắc ossim agent thì dừng việc xử lý sự kiện.Quy tắc chung phải được nạp vào bộ nhớ cuối cùng, chúng sẽ có thể khớp với tất cả các sự kiện.
Rule phải bao gồm các event_type. Các trường sau đây có thể được sử dụng để chuẩn hóa sự kiện này:
Các field lưu trữ các event security.
Trong đó: Các field màu đỏ bao gồm các giá trị mà luôn luôn phải được xác định trong các plugin. Các field màu xanh lá cây có thể sẽ được lấp đầy bởi các AlienVault agent trong trường hợp chúng khơng thể tìm thấy trong log ban đầu(Khơng bao gồm dịng khi tạo các plugin). Các field màu xám là tùy chọn.
• Regexp: Biểu thức chính quy là 1 dạng kĩ thuật nhỏ mà hữu ích trong 1 vùng rộng lớp của chương trình, mặc dù khơng được nhiều nhà phát triển biết đến. Nó có thể hiểu như là 1 ngơn ngữ nhỏ dùng cho mục đích: để tìm chuỗi con trong biểu thức chuỗi lớn,
nó khơng phải là một kĩ thuật mới, xuất phát từ môi trường UNIX, được dùng trong nhiều ngơn ngữ lập trình.
Các lĩnh vực biểu thức chính quy có chứa các biểu thức định nghĩa các định dạng của các sự kiện, và chiết xuất các thông tin để chuẩn hóa sự kiện này.
Các biểu thức thơng thường được viết bằng cách sử dụng cú pháp biểu thức chính quy được viết bằng ngơn ngữ Python.
• Regex aliases: Đây là dạng tập tin định nghĩa các Regex, chúng chứa biểu thức chính quy được xác định trước có thể được sử dụng để đơn giản hóa q trình bổ sung các plugin mới. Chúng được lưu trữ trong thư mục /etc/ossim/agent/aliases.cfg
hoặc /etc/ossim/agent/aliases.local.
Hình vẽ 3.6. Ví dụ về 1 file Regex aliases
• Functions: Các AlienVault SIEM phải nhận các sự kiện đã được chuẩn hóa đã được thu thập từ các nguồn, ví dụ như các địa chỉ phải sử dụng định dạng IPv4 và ngày phải sử dụng định dạng sau YYYY-MM-DD HH: MM: SS (2010-12-31 22:57:00). Để đơn giản hóa q trình bình thường hóa sự kiện có thể sử dụng một số hàm chức năng sau:
resolv():Translate tên máy thành IPV4 addresess (truy vấn DNS).
normalize_date(): Chức năng normalize_date dịch nhiều định dạng ngày thành định dạng chấp nhận bởi SIEM (YYYY-MM-DD hh:mm:ss).
Các function có thể được tìm thấy và được xác định trong file ParserUtils.py.
• Translation Tables: Các bản dịch có thể được cấu hình để được thực hiện một khi sự kiện được thu thập. Ví dụ: Khi sự kiện id khơng phải là số, nhưng plugin_sid phải là dạng số. Translation phải được xác định trong một phân vùng [translation]. Translate bằng cách sử dụng function translate ().
3.4 Thiết kế và xây dựng các mơ hình tích hợp trên thiết bị thu thập thơng tin an ninh mạng
3.4.1 Xây dựng mơ hình tích hợp tất cả hệ thống trên một thiết bị
Bộ cài Ossim cho người sử dụng nhiều lựa chọn khác nhau như người dùng có thể chọn cài đặt tất cả hệ thống bao gồm 4 thành phần chính là: Sensor, server, framework, database hoặc người dùng có thể chọn riêng biệt một trong bốn thành phần.
Trong mô hình tích hợp tất cả hệ thống thì người dùng sẽ phải lựa chọn cài bản Unattended intallation rồi cài đặt theo hướng dẫn.
Hình vẽ 3.7. Lựa chọn cài đặt
Khi cấu hình được kích hoạt thì các file cấu hình và các file cơng cụ được tích hợp vào ossim gồm: monit, mysql, apache2, ossim-framework, ossim-server, hợp vào ossim gồm: monit, mysql, apache2, ossim-framework, ossim-server, ossim-agent, osirisd, munin-node. Ngồi ra cịn có 1 số cơng cụ như apache 2, nagios2, osirsmd, ntop, snort…