Hệ thống phát hiện và ngăn chặn xâm nhập

phongtvc

W-------
05/02/2015
6
9 bài viết
Hệ thống phát hiện và ngăn chặn xâm nhập
Snort là phần mềm xây dựng hệ thống phát hiện xâm nhập (IDS), có nhiệm vụ theo dõi, phát hiện các hành vi khai thác trái phép tài nguyên của hệ thống được bảo vệ mà có thể dẫn đến việc làm tổn hại đến tính bảo mật, tính toàn vẹn và tính sẵn sàng của hệ thống. Anh em có thể tham khảo thêm tại https://www.snort.org/

Để trở Snort trở thành một hệ thống ngăn chặn xâm nhập (IPS) mình xin giới thiệu về một phần mềm do 1 bên thứ 3 phát triển là SnortSam, đây là 1 plugin của Snort sẽ hỗ trợ việc block các IP do Snort phát hiện là đang thực hiện hành vi trái phép đối với hệ thống.

SnortSam sẽ giúp Snort gửi thông tin tương tác với Firewall để chặn các IP tấn công, hiện đang hỗ trợ các Firewall: Iptables, Checkpoint Firewall-1, CISCO ASA, PIX, Netscreen…Anh em tham khảo thêm tại: http://www.snortsam.net/index.html

Sau đây là bài viết hướng dẫn xây dựng hệ thống IPS bằng cài đặt Snort + SnortSam trên Ubuntu 10.04 LST, sử dụng IPtables để thực hiện việc chặn các IP tấn công:

Cài đặt các gói phụ thuộc và download các phần mềm cần thiết.

Các câu lệnh cài đặt đều thực hiện ở quyền root:

PHP:
 apt-get update


PHP:
apt-get -y install build-essential libpcap0.8-dev libmysqlclient15-dev mysql-client-5.1 mysql-server-5.1 bison flex apache2 libapache2-mod-php5 php5-gd php5-mysql libphp-adodb php-pear libc6-dev g++ gcc pcregrep libpcre3-dev


PHP:
apt-get install uuid-dev libmagic-dev libmemcached-dev  libssl-dev  libssl-dev  libconfig8-dev libpcre3-dev libmysqlclient-dev make libtool  autoconf  automake  libcurl4-openssl-dev  libcli-dev  libjson0-dev


PHP:
cd /home/admin/
wget hxxp://libdnet.googlecode.com/files/libdnet-1.12.tgz
 tar –zxvf  libdnet-1.12.tgz
cd  libdnet-1.12
./configure
make
make install
ldconfig
ln -s /usr/local/lib/libdnet.1 /usr/lib/libdnet.1


Download các gói sau (google search :) ):
- snort-2.9.1.2.tar.gz
- daq-0.6.2.tar.gz
- snortrules-snapshot-2912.tar.gz
- snortsam-src-2.70.tar.gz
- snortsam-2.9.1.2.diff.gz
- razorback-0.4.1.tar.gz
- base-1.4.5.tar.gz

Giải nén và cài đặt các phần mềm đã download trên:

PHP:
tar  -zxvf  snort-2.9.1.2.tar.gz

tar -xvzf daq-0.6.2.tar.gz
cd daq-0.6.2
./configure
make
make install

tar -zxvf snortsam-src-2.70.tar.gz
cd snortsam
chmod +x makesnortsam.sh
./makesnortsam.sh

cp snortsam /usr/bin/

gunzip  -d snortsam-2.9.1.2.diff.gz

cd  /home/admin/snort-2.9.1.2
patch -p1 < /home/admin/snortsam-2.9.1.2.diff
chmod +x autojunk.sh
./autojunk.sh
libtoolize --automake --copy
aclocal -I m4
autoheader
automake --add-missing --copy
autoconf
./configure -enable-dynamicplugin --with-mysql
make
make  install

Tạo database để lưu trữ các event:

PHP:
mysql -u root –p
create database snort;
create database snort_archive; 
use snort;
grant all privileges on snort.* to 'snort'@'localhost' identified by '123456’;
grant all privileges on snort.* to 'root'@'localhost' identified by '123456';
use snort_archive;
grant all privileges on snort_archive.* to 'snort'@'localhost' identified by ‘123456';
exit
mysql -D snort -u snort -p < /home/admin/snort-2.9.1.2/schemas/create_mysql
mysql -D snort_archive -u snort -p < /home/admin/snort-2.9.1.2/schemas/create_mysql


Tạo user snort:

PHP:
​adduser snortchsh snort
Login Shell [/bin/bash]: /bin/true
passwd snort -l


Rule cho Snort:

PHP:
mkdir -p /etc/snort/rules /var/log/snort
sudo chown -R root.snort /var/log/snort
sudo chmod -R 770 /var/log/snort
 
tar  -xvzf /home/admin/snortrules-snapshot-2912.tar.gz -C /etc/snort

Chỉnh sửa file cấu hình snort:

PHP:
vim /etc/snort/etc/snort.conf


PHP:
#dynamicdetection directory /usr/local/lib/snort_dynamicrules
#var RULE_PATH ../rules
#var SO_RULE_PATH ../so_rules
#var PREPROC_RULE_PATH ../preproc_rules
var RULE_PATH /etc/snort/rules 
var SO_RULE_PATH /etc/snort/so_rules 
var PREPROC_RULE_PATH /etc/snort/preproc_rules
#preprocessor reputation: \
#   memcap 500, \
#   priority whitelist, \
#   nested_ip inner, \
#   whitelist $WHITE_LIST_PATH/white_list.rules, \
#   blacklist $BLACK_LIST_PATH/black_list.rules
# dynamic library rules
 include $SO_RULE_PATH/bad-traffic.rules
 include $SO_RULE_PATH/chat.rules
 include $SO_RULE_PATH/dos.rules
 include $SO_RULE_PATH/exploit.rules
 include $SO_RULE_PATH/icmp.rules
 include $SO_RULE_PATH/imap.rules
 include $SO_RULE_PATH/misc.rules
 include $SO_RULE_PATH/multimedia.rules
 include $SO_RULE_PATH/netbios.rules
 include $SO_RULE_PATH/nntp.rules
 include $SO_RULE_PATH/p2p.rules
 include $SO_RULE_PATH/smtp.rules
 include $SO_RULE_PATH/snmp.rules
 include $SO_RULE_PATH/specific-threats.rules
 include $SO_RULE_PATH/web-activex.rules
 include $SO_RULE_PATH/web-client.rules
 include $SO_RULE_PATH/web-iis.rules
 include $SO_RULE_PATH/web-misc.rules
 output database: log, mysql, user=snort password=123456 dbname=snort host=localhost


Chạy thử với file cấu hình vừa chỉnh sửa

PHP:
snort -c /etc/snort/etc/snort.conf


Cài đặt giao diện base để quản lý event của snort:

PHP:
tar -zxvf base-1.4.5.tar.gz
mv base-1.4.5 /var/www/base
pear install Image_Color Image_Canvas-alpha Image_Graph-alpha
chown www-data /var/www/base
chmod 755 /var/www/base


PHP:
vim /etc/php5/apache2/php.ini
sửa :error_reporting = E_ALL & ~E_NOTICE

Cấu hình BASE:

PHP:
vim /var/www/base/base_conf.php.dist

thay đổi:
$DBLib_path = '/usr/share/php/adodb';
$BASE_urlpath = '/base';
    $alert_dbname   = 'snort';
    $alert_host     = 'localhost';
    $alert_port     = '';
    $alert_user     = 'snort';
    $alert_password = '123456';
 
    /* Archive DB connection parameters */
    $archive_exists   = '1'; # Set this to 1 if you have an archive DB
    $archive_dbname   = 'snort_archive';
    $archive_host     = 'localhost';
    $archive_port     = '';
$archive_user = 'snort_archive';
    $archive_password = '123456';
 
cp /var/www/base/base_conf.php.dist /var/www/base/base_conf.php
chown www-data:www-data /var/www/base
chown -R www-data:www-data /var/www/base/*

mysqldump -u root -p snort > snort.db
mysql -u root -p snort_archive < snort.db
mysql -u root –p
use snort_archive;
grant all privileges on snort_archive.* to 'snort'@'localhost' identified by '123456’;


Truy cập giao diện BASE:

PHP:
http://ip-address/base


Cấu hình SnortSam:

PHP:
cp snortsam/conf/snortsam.conf.sample /etc/snort/snortsam.conf
mkdir  /var/db
chmod 777  /var/db


Sửa đổi file cấu hình SnortSam:

PHP:
vim  /etc/snort/snortsam.conf


Nội dung sửa đổi:

PHP:
​defaultkey 123456
accept localhost
iptables eth0 log
iptables -I FORWARD -i eth0 -s {ip_addr_to_be_blocked} -j REJECT
iptables -D FORWARD -i eth0 -s {ip_addr_to_be_unblocked} -j REJECT


Bổ sung cấu hình file snort:

PHP:
vim /etc/snort/etc/snort.conf


Bổ sung cuối file:
PHP:
output alert_fwsam: localhost:898/123456​


Câu lệnh thực hiện chạy Snort và SnortSam:
PHP:
snort -u snort -g snort -c /etc/snort/etc/snort.conf -i eth0 ~
snortsam /etc/snortsam/snortsam.conf ~

Cách viết luật sử dụng SnortSam để chặn IP tấn công:
Ví dụ:
PHP:
alert tcp 10.2.51.121 any -> any 80 ( msg: "Test Rule: -----ICMP packet detected!"; sid: 10009; uricontent:"index.htm";uricontent:"index2.htm"; uricontent:"index3.htm"; flow:to_server,established ; threshold:type threshold, track by_src, count 20, seconds 3600; fwsam: src, 1 minutes;)
So với cách viết luật thông thường cho Snort thì có thêm cấu hình chặn IP:

PHP:
fwsam: src, 1 minutes; ==>chặn IP tấn công là 1 phút

Hoàn thành.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: Sugi_b3o
Re: Hệ thống phát hiện và ngăn chặn xâm nhâp

Thấy thú vị đó.. để làm xem sao.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: Hệ thống phát hiện và ngăn chặn xâm nhập

phongtvc;20317 đã viết:
SnortSam sẽ giúp Snort gửi thông tin tương tác với Firewall để chặn các IP tấn công, hiện đang hỗ trợ các Firewall: Iptables, Checkpoint Firewall-1, CISCO ASA, PIX, Netscreen…Anh em tham khảo thêm tại: http://www.snortsam.net/index.html

Bạn có thể giải thích rõ hơn cơ chế này được không?
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: Hệ thống phát hiện và ngăn chặn xâm nhập

nktung;20582 đã viết:
Bạn có thể giải thích rõ hơn cơ chế này được không?
Snortsam là plusin dùng cho việc giao tiếp với firewall. Anh có thể hiểu đơn giản như sau:
nếu 1 ip vi phạm luật thì snortsam sẽ gọi 1 lệnh trong firewall ra để block ip đó.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: Hệ thống phát hiện và ngăn chặn xâm nhập

nktung;20582 đã viết:
Bạn có thể giải thích rõ hơn cơ chế này được không?

Nôm na nó thế này: Nếu vi phạm luật của Snort, Snort sẽ gọi đến SnortSam, SnortSAM nhận thông tin cần chặn những IP nào sẽ tạo luật và tự động kết nối tới Firewall (iptables, PIX, ASA, ISA...) add các luật này vào
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Có bác nào có file path snortsam cho e với ạ,E tìm down mà k thấy ạ
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Cám ơn bạn về bài chia sẻ bổ ích :D
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Mình cũng đang tìm hiểu về cái này
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Cái này mình thấy cũng giống như CSF nhỉ, mà CSF thấy cài cũng ok, không biết cái này có ăn thua gì không ^^
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên