hệ thống phát hiễn xâm nhập bằng snort alert qua sms
TRANSCRIPT
ATHENA.EDU.VN
SNORT ALERT SYSTEM SMS
GIẢNGVIÊN : TRẦN ĐĂNG KHOA
HỌCVIÊN : NGUYỄN TIẾN THANH
P a g e | 1
ATHENA.EDU.VN
I. Mô hình:
Mô hình gồm 1 máy chủ centos cài đặt Apache, MySQL, Snort BASE + ACID, các gói hỗ trợ cho snort như Barnyard, và Oinkmaster. Ngòai ra còn cần cài đặt thêm gói GSM để hỗ trợ kết nối đồng bộ hóa với thiết bị gửi tin nhắn.
Như mô hình trên, khi có dấu hiệu bị tấn công. Sensor machine sẽ updatelog xuống Database hệ thống sẽ alert qua BASE và ACID, và sẽ gửi tin SMS.
P a g e | 2
ATHENA.EDU.VN
1. Mô hình họat đông chi tiết:
Theo mô hình trên, các kiến trúc ở trên hệ thống sẽ chỉ cho ta thấy làm thế nào để kết hợp tất cả các phần mềm hỗ trợ để xây dựng toàn bộ IDS.
Mô hình gồm các unauthorized people, hệ thống SnortSms và Administrator. Các unauthorized people sẽ tấn công xâm nhập vào hệ thống. Sensor của hệ thống “snort” sẽ được đặt 1 schedule để kiểm tra log hệ thống. Nếu nó được tìm thấy bất kỳ dấu hiệu của sự xâm nhập vào hệ thống, nó sẽ gửi tin nhắn SMS đến Administrators rằng hệ thống của bạn đang bị xâm nhập.
II. Các bước build hệ thống SMSAlertSystem.1. Cài đặt snort-base:
a. Cài đặt Snort
Cài các gói yêu cầu sau:
Chúng ta dùng lênh yum đệ cài đặt tất cả các gói trên.
Cài đặt snort
P a g e | 3
ATHENA.EDU.VN
chép snort vào /snort
cd /snort
Giải nén snort
tar -zxvf snort-2.8.4.1.tar.gz
cd snort-2.8.4.1
- Lần lượt thực hiện các sau để cài đặt snort
#./configure --with-mysql --enable-dynamicplugin
#Make
P a g e | 4
ATHENA.EDU.VN
#Make Install
Cấu hình snort
Tạo thư mục họat động cho snort
mkdir /etc/snort
mkdir /etc/snort/rules
mkdir /var/log/snort
P a g e | 5
ATHENA.EDU.VN
Di chuyển vào thư mục vừa giải nén snort khi nãy. Di chuyển tiếp vào thư mục etc nằm trong thư mục snort. Chép tòan bộ file vào thư mục /etc/snort vừa tạo khi nãy.
cd /etc
cp * /etc/snort
Tạo nhóm & người dùng cho snort
groupadd snort
useradd -g snort snort -s /sbin/nologin # user snort sẽ không có quyền log vào hệ thống.
Set quyền sở hữu và cho phép Snort ghi log vào thư mục chứa log
chown snort:snort /var/log/snort/
Cài đặt tập rule cho SNORT
tải rule mới nhất từ http://www.snort.org
- Giải nén
tar -xzvf snortrules-snapshot-2.8.tar.gz
cd rules
cp * /etc/snort/rules
Cấu hình snort
File cấu hình /etc/snort/snort.conf
- Sửa dòng 46
var HOME_NET 192.168.1.0/24
- Sửa dòng 49
var EXTERNAL_NET !$HOME_NET
-Sửa dòng:
110: var RULE_PATH /etc/snort/rules
688: output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
Save lại
Thiết Lập Snort khởi động cùng hệ thống:
Tạo một liên kết mềm (symbolic link) của file snort binary đến /usr/sbin/snort
ln -s /usr/local/bin/snort /usr/sbin/snort
Snort cung cấp các scrip để khởi động trong thư mục rpm/ ; (thư mục giải nén snort)
P a g e | 6
ATHENA.EDU.VN
cp /snort/snort-2.8.4.1/rpm/snortd /etc/init.d/
cp /snort/snort-2.8.4.1/rpm/snort.sysconfig /etc/sysconfig/snort
Đặt quyền lại cho file snortd :
chmod 755 /etc/init.d/snortd
chkconfig snortd on
service snortd start
Để khởi động snort ở chế độ debug nếu bạn muốn kiểm tra lỗi:
/snort/snort-2.8.4.1/src/snort -u snort -g snort -d -c /etc/snort/snort.conf
Quản lý snort bằng webmin:
(bước này có thể bỏ qua làm tiếp phần 4)
- Cài webmin
Log vào Webmin, chọn chức năng Webmin Modules, import thêm Snort module vào Webmin:
Tích hợp snort vào webmin:
chép snort-1.1.wbm vào thư mục giải nén snort
http:/localhost:10000
Webmin, chọn Webmin Configuration, Webmin Modules, From uploaded file,
chỉ đến thư mục chứa snort-1.1.wbm
tiến hành cài đặt
P a g e | 7
ATHENA.EDU.VN
Tạo CSDL snort với MySQL
#service mysqld start
Trước tiên ta cần set password cho root trong MySQL.
#mysqladmin -u root password 123456
#mysql -p
Tạo password cho tài khoản snort.
mysql> use mysql;
mysql> CREATE USER 'snort'@'localhost' IDENTIFIED BY '123456';
Tạo CSDL cho snort.
mysql> create database snort;
P a g e | 8
ATHENA.EDU.VN
mysql> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE ON snort.* to snort@localhost;
mysql> flush privileges;
mysql> exit
Tạo các table từ /snort/snort-2.8.4.1/schemas/create_mysql cho database snort (thư mục gải nén snort)
mysql -u root -p < /snort/snort-2.8.4.1/schemas/create_mysql snort
mysql -p
show databases;
use snort;
show tables;
Quan sát các tables
Cài đặt BASE và ADODB
Web server và PHP đã cài đặt sẵn ta cần cài thêm vài gói pear cho PHP.
cd snort/snort-2.8.4.1
pear install Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman ; (máy phải online)
Cài đặt ADODB
Tải ADODB tại: http://nchc.dl.sourceforge.net/sourceforge/adodb/
cp adodb480.tgz /var/www/html/
cd /var/www/html/
tar -xzvf adodb480.tgz
Cài BASE
Tải BASE tại: http://nchc.dl.sourceforge.net/sourceforge/secureideas/base-1.4.2.tar.gz
#cp /snort/base-1.4.4.tar.gz /var/www/html/
#tar -zxvf base-1.4.4.tar.gz
#mv base-1.4.4/ base/
#cd base
#cp base_conf.php.dist base_conf.php
P a g e | 9
ATHENA.EDU.VN
#vi base_conf.php
Sửa các dòng sau:
57 $BASE_urlpath = '/base';
79 $DBlib_path = '/var/www/html/adodb';
101 $alert_dbname = 'snort';
105 $alert_password = '123456';
108 $archive_exists = 1; # Set this to 1 if you have an archive DB
109 $archive_dbname = 'snort';
112 $archive_user = 'snort';
113 $archive_password = '123456';
355 $external_whois_link = 'index.php';
382 $external_dns_link = 'index.php';
385 $external_all_link = 'index.php';
Save lại
#service snortd restart
#service httpd restart
2. Cài đặt SNORt-ACID
P a g e | 10
ATHENA.EDU.VN
Bây giờ BASE đã được cài đặt, ta tiếp tục cài thêm gói AICD cho snort
Download mã nguồn:
http://prdownloads.sourceforge.net/phplot/phplot-4.4.6.tar.gz
http://prdownloads.sourceforge.net/phplot/phplot-4.4.6.tar.gz
Giải nén và đặt acid vào thư mục con của httpd DocumentRoot:
# cp acid-0.9.6b21.tar.gz /var/www/html
# tar -zxvf acid-0.9.6b21.tar.gz
# cp phplot-4.4.6.tar.gz /var/www/html
# tar -zxvf phplot-4.4.6.tar.gz
Kiểm tra xem php có được cấu hình đúng với gd không:
http://locolhost/phplot-4.4.6/examples/test_setup.php
Nếu không xem được các biểu đồ ví dụ, bạn phải xem lại php có được biên dịch với thư viện gd và đã bật hỗ trợ gd trong /etc/php.ini chưa (extension=gd.so).
Tạo bảng dữ liệu để lưu trữ các alert dành riêng cho acid:
# mysql -u root -p
mysql> create database snort_archive;
mysql> grant INSERT,SELECT,UPDATE, DELETE on snort_archive.* to snort@localhost identified by '123456';
mysql> exit
# mysql snort -u root -p < create_acid_tbls_mysql.sql
Cấu hình các thông số cần thiết cho acid trong file acid_conf.php
P a g e | 11
ATHENA.EDU.VN
$ChartLib_path = "../phplot-4.4.6"; // tuỳ chọn, nếu php hỗ trợ gd
/* File format of charts ('png', 'jpeg', 'gif') */
$chart_file_format = "png";
Hoàn tất quá trình cài đặt và bắt đầu sử dụng acid để theo dõi các hoạt động trên mạng được snort phát hiện: http://localhost/acid/
3. Cài đặt kết nối với thiết bị gửi tin nhắn SMS
Cài đặt gói gsm và các gói phụ thuộc hỗ trợ kết nối với thiệt bị di đông bằng lệnh yum
#yum –I install gsm*
Sau khi hòan tất quá trình cài đặt kiêm tra xem đã cài đặt hòan tất hay chưa
#rpm –qa |grep gsm
Ok gsm và các gói phụ thuộc đã được cài đặt, chúng ta tiến hành cấu hình để có thể kết nối đến thiết bị di động.
#cp usr/share/doc/gammu-1.11.0/examples/config/gammurc /etc
#nano /etc/gammurc
Cấu hình như sau:
Chúng ta tiến hành kết nối với thiệt bi di động qua cổng COM/USB
Kiểm tra đã kết nối thành công hay chưa
#wvdialconf /etc/wvdial.conf
P a g e | 12
ATHENA.EDU.VN
Ok, chúng ta đã kết nôi thành công đến thiệt bị di đông,bây giờ chúng ta đã có thể tiến hành gửi tin nhắn sms bằng command.
#echo "sms alert test" | gammu --sendsms TEXT +1884371028
Ok tin nhắn sms chúng ta đã gửi thành công.
BARNYARD and OINKMASTER
Now chúng ta có thể cài thêm 2 gói Barnyard, và Oinkmaster để hỗ trợ cho snort ( co thể không cần cài).
Barnyard là một hệ thống đầu ra cho Snort. Snort tạo ra một định dạng đầu ra đặc biệt nhị phân được gọi là `` thống nhất''Barnyard lần đọc tập tin này., Và sau đó resends các dữ liệu vào cơ sở dữ liệu back-end. Không giống như các plugin sản lượng cơ sở dữ liệu, Barnyard quản lý việc gửi các sự kiện để các cơ sở dữ liệu và lưu giữ chúng khi cơ sở dữ liệu tạm thời không thể chấp nhận các kết nối.Giúp tẳng độ performance cho snort.
Download: http://sourceforge.net/projects/barnyard/
Oinkmaster, các bạn có thể tham khảo thêm tại http://openmaniak.com/inline_oink.php
Download : http://oinkmaster.sourceforge.net/
P a g e | 13
ATHENA.EDU.VN
Ok chúng ta đã bulid gần xong hệ thống,những gì chúng ta cần làm còn lại là lam sao khi snort update log và database thì hệ thống tự động sẽ gửi tin nhắn SMS .
4. Cài đặt site quản lý
Bây giờ chúng ta sẽ làm điều đó.
Fist chúng ta cần download bộ source php từ địa chì: http://sourceforge.net/projects/snortsas/files/source.tar.gz/download
Cúng ta sẽ giải nén gói vừa down về vào thư mục con của httpd DocumentRoot:
#cp source.tar.gz /var/www/html/
#tar –xzvf source.tar.gz
Đây là gói hỗ trợ để lưu phone book và cẫp nhật sự thay đổi CSDL,log của snort ,trong gói này còn hỗ trợ 1 số tool và snort-base nằm trong thư mục base( các bạn có thể cấu hình lại như cấu hình snort-base o trên hoặc không) .
Chúng ta tiến hành config.
Tạo database
#mysql –u root –p
mysql> use mysql;
mysql> CREATE USER 'sms'@'localhost' IDENTIFIED BY '123456';
mysql> create database thesis;
mysql> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE ON snort.* to sms@localhost;
mysql> flush privileges;
mysql>exit
mysql –u root –p < /var/www/html/source/database.sql
tiến hành cấu hình:
# gedit /var/www/html/source/db.php
P a g e | 14
ATHENA.EDU.VN
Bây giờ ta có thể truy cập vào trang quản lý phonebook qua:
http://localhost/source/index_isuper.php
Lưu ý các bạn vào database thesis điều chỉnh lại password trong table User để đăng nhập.
P a g e | 15
ATHENA.EDU.VN
Phone book để lưu thông tin mà hệ thống sẽ gửi sms đến
User setting:
P a g e | 16
ATHENA.EDU.VN
5. Tiến hành cấu hình lại crontab
gedit /etc/crontab;
Crontab đặt schedule chay script php để cập nhật log.nếu log có thay đổi sẽ tự động gửi sms cho số điện thọai lưu trong phone book.
Restart lại crond
#service crond restart.
Config lai file kirimsms.php
#gedit /var/www/html/source/kirimsms.php
$db_hostname="localhost"; //hostname
$db_username="snort"; //username mysql
$db_password="123456"; //password mysql
$db_name="snort"; //nama database
///////////////////////////////////
$db_hostname2="localhost";//hostname
$db_username2="sms"; //username mysql
$db_password2="123456"; //password mysql
$db_name2="thesis"; //name database
//////////////////////////////////
Ok,chúng ta đã build xong hệ thống snort alert qua sms
Giờ chúng ta sẽ cài nmap vào máy client và tiến hành scan mày snort,
P a g e | 17
ATHENA.EDU.VN
Snort sẽ alert qua base, acid,và ghi log xuống database. Hệ thống đã tự động gửi tin nhắn sms cảnh báo .
P a g e | 18