Tổng lượt truy cập

Friday, November 5, 2010

IPS used (Snort + Iptable)

Sau một ngày vật lộn với Snort mình đã cài thành công hệ thống IPS tức snort_inline ( snort + firewall). Nếu một người làm về security chắc các bạn cũng đã từng nghe đến hoặc sử dụng hệ thống cảnh báo xâm nhập snort, mình cũng đã từng sử dụng của một số hãng như Cisco, IBM Proventia Network IPS, checkpoint, Fortinet. Mình đánh giá ông lớn Cisco , IBM, Fortinet ngon hơn so với ông check point, checkpoint lần đâu ông ấy chú trọng đến firewall, sau đấy họ mới tích hợp IPS vào sản phẩm của họ. Nhưng bây giờ chúng ta không cần bỏ ra vài nghìn đô để mua một thiết bị IPS, mà chúng ta hoàn toàn xây dựng trên mã nguồn mở.

Đôi điểm hệ thống cảnh báo snort:

Snort được chia thành nhiều thành phần một cách logic. Những thành phần này làm việc cùng nhau để phát hiện các cuộc tấn công cụ thể và để tạo ra các định dạng cần thiết từ hệ thống phát hiện. Snort bao gồm các thành phần chính sau đây:

· Packet Decoder

· Preprocessors

· Detection Engine

· Loging and alerting system

· Output Modules

Phiên bản 1.x: Việc xử lý gói tin còn hạn chế trong trường hợp các dấu hiệu trong gói tin đó phù hợp với dấu hiệu trong nhiều rule. Khi đó nếu có rule nào được áp dụng trước thì các rule còn lại sẽ bị bỏ qua mặc dù các rule có độ ưu tiên khác nhau. Như vậy sẽ nảy sinh trường hợp các rule có độ ưu tiên cao hơn bị bỏ qua.

Các phiên bản hiện: Nhược điểm trên của phiên bản 1.x được khắc phục hoàn toàn nhờ vào cơ chế kiểm tra trên toàn bộ rule. Sau đó lấy ra rule có độ ưu tiên cao nhất để tạo thông báo

Các chế độ thực thi của Snort

  • Sniff mode :

    Ở chế độ này, Snort hoạt động như một chương trình thu thập và phân tích gói tin thông thường. Không cần sử dụng file cấu hình, các thông tin Snort sẽ thu được khi hoạt

  • Pakcet logger mode

    Khi chạy ở chế độ này, Snort sẽ tập hơp tất cả các packet nó thấy được và đưa vào log theo cấu trúc phân tầng. Nói cách khác, một thư mục mới sẽ được tạo ra ứng với mỗi địa chỉ nó bắt được, và dữ liệu sẽ phụ thuộc vào địa chỉ mà nó lưu trong thư mục đó. Snort đặt các packet vào trong file ASCII, với tên liên quan đến giao thức và cổng. Sự sắp xếp này dễ dàng nhận ra ai đang kết nối vào mạng của

  • NIDS mode

    Snort thường được sử dụng như một NIDS. Nó nhẹ, nhanh chóng, hiệu quả và sử dụng các rule để áp dụng lên gói tin. Khi phát hiện có dấu hiệu tấn công ở trong gói tin thì nó sẽ ghi lại và tạo thông báo. Khi dùng ở chế độ này phải khai báo file cấu hình cho Snort hoạt động

  • Inline mode

    Đây là phiên bản chỉnh sửa từ Snort cho phép phân tích các gói tin từ firewall iptables sử dụng các tập lệnh mới như: pass, drop, reject.

Hệ thống snort hoạt động dựa vào tập luật

- Cấu trúc của Rules

      Vd: alert tcp 192.168.1.0/24 any → any any (msg: “”; content: “HTTP”, offset: 4) .

      Firewall

Mô hình Inline (Snort + iptable)

Config:

Download snort_inline tại địa chỉ:

[root@localhost#wget[ r o o t @ l o c a l h o s t # w g e t http://sourceforge.net/projects/snort- inline/files/snort_inline %20source%20%282.8.x%29/snort_inline- xxx-RC1/snort_inline-xxx-RC1.tar.gz/download

[root@localhost]# tar xvfz snort_inline-RC1.tar.gz

[root@localhos [root@localhost]# mkdir /etc/snort_inline

[root@localhost]# mkdir /etc/snort_inline/rules/

[root@localhos[root@localhost]# cp snort_inline-RC1/etc/* /etc/snort_inline/

[root@localhos[root@localhost]# cp /root/snort_inline- RC1/etc/reference.config /etc/snort_inline/rules

[root@localhost]# cp /root/snort_inline- RC1/etc/classification.config /etc/snort_inline/rules

[root@localhos [root@localhost]# vi /etc/snort_inline/snort_inline.conf Tìm dòng

# var RULE_PATH /etc/snort_inline/drop-rules

Thay thế thành

# var RULE_PATH /etc/snort_inline/rules output database: log, mysql, user=snort password=12345 dbname=snort host=localhost

[root@localhost]# cd snort_inline

./configure –with-mysql –enable-dynamicplugin

./make && make install

Như vậy, đã cài đặt xong. Copy rule vào thư mục /etc/snort_inline/rules

Cần phải đảm bảo đã cài đặt các phầm mềm sau: · Snort_inline. · Apache. · PHP. · MySQL. · Adodb (download tại địa chỉ http://sourceforge.net/projects/adodb/files/ sau đó giải nén copy vào thư mục /var/www/html/)

Bước 1: Tạo cơ sở dữ liệu trong mysql

Tạo cơ sở dữ liệu với tên snort, tạo 6 bảng sau: acid_event, acid_ag, acid_ag_alert, acid_ip_cache, base_roles, base_users. Các bảng này đi kèm theo bảng phân phối ACIDBase.

Bước 2: chỉnh sửa nội dung file base_conf.php

Đường dẫn đến thư mục cài đặt Base: $BASE_urlpath = '/base';

Đường dẫn đến thư mục adodb: $DBlib_path = '/var/www/html/adodb';

Cơ sở dữ liệu sử dụng: $DBtype = 'mysql';

Khai báo tên cơ sở dữ liệu, tài khoản đăng nhập, mật khẩu

$alert_dbname = 'snort';

$alert_host = 'localhost';

$alert_port = '';

$alert_user = 'snort';

$alert_password = '12345';

Tham khảo:

Base:

http://ngoc.nhatnghe.vn/snort/snort.htm

online site:

http://www.bleedingsnort.com/

http://ngoc.nhatnghe.vn/snort/snort.htm

http://www.openmaniak.com/inline_final.php inline, báo lỗi "libipq.h not found" you need to install the iptable-devel and the libnet

http://hoclinux.net/showthread.php?t=75&page=1 rule