snort it-slideshares.blogspot.com

Post on 07-Dec-2014

8.442 Views

Category:

Education

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

more at http://it-slideshares.blogspot.com

TRANSCRIPT

1IDS Snort10/1/2009

GVHD : TS.Phạm Văn Tính

• Hoàng Tiến Long

• Ngô Trần Khánh Châu

• Nguyễn Ngọc Thắm

• Võ Hà Tiến

• Nguyễn Minh Tiến

10/1/2009 IDS Snort 2

Phần I : IDSKhái niệm, phân loại.Kiến trúcTriển khai.

Phần II : Snort.Giới thiệu.Cài đặt.Snort rule.

Phần III : Demo

10/1/2009 IDS Snort 3

• Là một hệ thống (phần mềm, phần cứng, hoặc kết hợp cả hai) để phát hiện các hành vi xâm nhập bất hợp phát vào mạng.

• Phát hiện các hành động trong tiến trình tấn công (FootPrinting, Scanning, Sniffer…), cung cấp thông tin nhận biết và đưa ra cảnh báo.

• Kỹ thuật sử dụng trong IDS có thể là : signature hoặc anomaly-based , cũng có thể kết hợp cả hai.

10/1/2009 IDS Snort 4

• Cài đặt như một agent trên một host cụ thể. Phân tích log của hệ điều hành hoặc các ứng dụng so sánh các sự kiện với cơ sở dữ liệu để phát hiện các vi phạm về bảo mật và đưa ra cảnh báo.

• Nếu có vi phạm HIDS ghi nhận lại các hành động đó, đưa ra cảnh báo, và có thể ngưng hành động lại trước khi nó xảy ra.

• HIDS có thể dùng để theo dõi log (log monitors), giám sát tính toàn vẹn (intergrity monitors), phát hiện xâm nhập ở mức kernel (kernel module)

10/1/2009 IDS Snort 5

• Dùng để bắt các gói tin trong môi trường mạng, so sánh giữa dữ liệu thu thập được với cơ sở dữ liệu nhằm phát hiện các dấu hiệu tấn công.

• Khi có tấn công NIDS sẽ log các gói tin vào cơ sở dữ liệu, cảnh báo hoặc đưa vào Firewall.

10/1/2009 IDS Snort 6

Host IDS - HIDS Network - NIDS

HIDS chỉ quan sát các host , hệ điều hành, hoạt động của ứng dụng (thường làm những công việc như phân tích log, kiểm tra tính toàn vẹn…)

NIDS nhìn toàn cảnh luồng dữ liệu trên mạng (NIDS thường được coi như là sniffer)

Chỉ phát hiện những cuộc tấn công đã thành công.

NIDS phát hiện những cuộc tấn công tiềm năng.

Hoạt động hiệu quả trong những môi trường chuyển mạch, mã hóa, tốc độ cao.

Rất khó hoạt động trong những môi trường này.

10/1/2009 IDS Snort 7

10/1/2009 IDS Snort 8

SENSOR

DETECTION ENGINE

PREPROCESSORS

OUTPUT

ALERT SYSTEMS

LOGGING SYSTEMS

10/1/2009 IDS Snort 9

10/1/2009 IDS Snort 10

10/1/2009 IDS Snort 11

10/1/2009 IDS Snort 12

10/1/2009 IDS Snort 13

10/1/2009 IDS Snort 14

• Hệ thống IDS (signature-based) cần một cơ sở dữ liệu đã có sẵn về các kiểu tấn công để nhận biết các cuộc tấn công có thể xảy ra, dựa vào dấu hiệu nhận biết nào đó (signatures) cập nhật signatures mới.

• Bản thân IDS không chống lại các cuộc tấn công, hay ngăn chặn quá trình khai thác lỗi, mà nó chỉ dò tìm và đưa ra cảnh báo.

Đặt IDS ở đâu trong hệ thống mạng để mang lại hiệu quả cao nhất ????

10/1/2009 IDS Snort 15

10/1/2009 IDS Snort 16

10/1/2009 IDS Snort 17

Internet

Firewall

Router

IDS

IDS

Local Network

Local Network

Chiến lược triển khai IDS phụ thuộc vào chính sách bảo mật và tài nguyên cần bảo vệ. Càng nhiều IDS thì đồng nghĩa với việc hệ thống chậm đi và chi phí bảo trì sẽ tăng lên.

10/1/2009 IDS Snort 18

• Snort là một IDS kiểu signature – based. Chạy được trên cả Windows và Linux.

• Snort có các tập luật lưu trữ trong các file text, các luật được nhóm thành các loại khác nhau và được chứa trong những file riêng cho tưng nhóm. Các file này được chỉ ra trong file cấu hình snort.conf .

• Snort sẽ đọc các luật lúc khởi động và xây dựng một cấu trúc dữ liệu hoặc các chuỗi để áp dụng các luật đó lên dữ liệu thu thập được.

10/1/2009 IDS Snort 19

• Snort được cung cấp 1 tập hợp phong phú các luật đã được định nghĩa trước, tuy nhiên người dùng có thể tự định nghĩa và đưa thêm các luật mới hoặc loại bỏ một số luật không cần thiết.

• Snort là stateful IDS, nó có thể sắp xếp và ghi nhận các cuộc tấn công dựa trên phân đoạn TCP.

• Snort có thể phát hiện được nhiều loại xâm nhập như : buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts…

10/1/2009 IDS Snort 20

• Snort có thể cài đặt ở 2 chế độ là inline hoặc passive.

• Inline: Snort tích hợp với tường lửa để kích hoạt tường lửa khóa hay drop hoặt các hành động khác nhằm ngăn chặn cuộc tấn công mà nó phát hiện.

• Passive: Snort chỉ phát hiện xâm nhập, nghi log và cảnh báo.

10/1/2009 IDS Snort 21

• Apache• PHP• My Sql• BASE• Libpcap• Libnet • Perl• Pear• Snort

10/1/2009 IDS Snort 22

• Sử dụng rpm –qa | grep <tên gói>

Để kiểm tra xem gói đó đã cài đặt đủ chưa.• Sử dụng :

yum install <tên gói> Để cài đặt những gói còn thiếu.• Đối với những gói .rpm : rpm –ivh <tên gói .rpm>

10/1/2009 IDS Snort 23

• Sử dụng : wget <url> Để download các gói cài đặt tư một trang web.• Đối với những gói .tar.gz : tar –xvzf <tên gói.tar.gz> cd <tên gói> ./configure [option] make && make install

10/1/2009 IDS Snort 24

• Mặc định đã cài sẵn, sử dụng :

rpm –qa | grep http

httpd-manual-2.2.11-2.fc10.i386

httpd-tools-2.2.11-2.fc10.i386

httpunit-1.6.2-2.fc10.noarch

httpd-2.2.11-2.fc10.i386

mod_ssl-2.2.11-2.fc10.i386

10/1/2009 IDS Snort 25

• Mặc định cài sẵn:

rpm –qa | grep mysql

mysql-5.0.77-1.fc10.i386

mysql-server-5.0.77-1.fc10.i386

mysql-devel-5.0.77-1.fc10.i386

mysql-libs-5.0.77-1.fc10.i386

php-mysql-5.2.6-5.i386

10/1/2009 IDS Snort 26

• Mặc định đã được cài sẵn:rpm –qa | grep php

php-5.2.6-5.i386php-devel-5.2.6-5.i386php-mysql-5.2.6-5.i386php-pdo-5.2.6-5.i386php-ldap-5.2.6-5.i386php-common-5.2.6-5.i386php-pear-1.7.2-2.fc10.noarchphp-gd-5.2.6-5.i386php-cli-5.2.6-5.i386

10/1/2009 IDS Snort 27

• Ngoài ra còn cần có prel (đã cài sẵn), libpcap, libnet. Bạn nên cài tư source. Sử dụng lệnh:

wget <url>

Ví dụ :wget http://ftp.gnu.org/gnu/bison/bison-2.4.1.tar.gz

• Sau đó cài như một gói .tar.gz.

10/1/2009 IDS Snort 28

• Những gói trên là tối thiểu phải có. Nếu thiếu bất kỳ gói nào dùng lệnh :

yum install <tên gói>

để cài thêm vào.

• Start apache và mysql lên:

service httpd start

service mysqld start

10/1/2009 IDS Snort 29

• Download :– snort-2.8.x.x.tar.gz

– snortrules-2.8.tar.gz

Tư trang http://www/snort.org

• Lưu ý : thường trong quá trình cài snort sẽ gặp lỗi libipq.h lỗi này liên quan đến iptables do biên dịch snort ở chế độ inline. Khi đó, cài thêm iptables-devel, khởi động lại dịch vụ, ok.

10/1/2009 IDS Snort 30

#tar –xvzf snort-2.8.5.1.tar.gz

#cd snort-2.8.5.1

#./configure --with-mysql --enable-dynamic-plugin --enable-inline

#make

#make install

Sử dụng ./configure --help để xem các tùy chọn khác của snort.

10/1/2009 IDS Snort 31

10/1/2009 IDS Snort 32

• Tạo thư mục snort trong /etc

#mkdir /etc/snort

#mkdir /etc/snort/rules

• Copy những file cấu hình của snort vào thư mục vưa tạo:

#cd /usr/local/snort-2.8.5.1/etc

# cp * /etc/snort

• Giải nén snortrule-2.8.tar.gz

#tar –xvzf snortrule-2.8.tar.gz

#cd rules

#cp * /etc/snort/rules/

• Tạo symbolic link cho snort

#ln –s /usr/local/bin/snort /usr/sbin/snort

10/1/2009 IDS Snort 33

• Để snort chạy như một dịch vụ chúng ta cần user, usergroup cho snort:

#groupadd snort

#useradd –g snort snort

10/1/2009 IDS Snort 34

• Tạo và set quyền chủ nhân, quyền thực thi của snort cho file log.

#mkdir/var/log/snort

#chown –R snort:snort /var/log/snort

#chown 664 /var/log/snort

10/1/2009 IDS Snort 35

#vim /etc/snort/snort.conf

Tìm đến dòng:var RULE_PATH ../rules sửa lại thành.

var RULE_PATH /etc/snort/rules đây là thư mục chứa tập luật.

Chỉ ra output database – database lưu trữ những log

output database: log, mysql, user=snort, password = long dbname=snort host=localhost

10/1/2009 IDS Snort 36

#cd /usr/local/snort-2.8.4.1/rpm/

# cp snortd /etc/init.d/# cp snort.sysconfig /etc/sysconfig/snort

# chmod 755 /etc/init.d/snortd # chkconfig snortd on# chkconfig --add /etc/init.d/snortd # chkconfig snortd on

10/1/2009 IDS Snort 37

#mysql –u root

>set password ‘root’@‘ localhost’ = password( ‘241288’);

>flush privileges;

>use mysql;

>CREATE USER ‘snort’@‘ localhost’ IDENTIFIED BY ‘long’;

>flush privileges;

10/1/2009 IDS Snort 38

> create database snort;

> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE ON snort.* to snort@localhost;

# cd /usr/local/snort-2.8.5.1/schemas/

# mysql -u root -p < create_mysql snort

Test:

#mysql –u root –p

>use snort;

>show tables;10/1/2009 IDS Snort 39

• Do web sevrer và php đã được cài đặt sẵn, chúng ta chỉ cần cài thêm pear cho php

# pear install Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman

• Cài addob:

# wget http://nchc.dl.sourceforge.net/sourceforge/adodb/adodb508a.tgz

# cp adodb508a.tgz /var/www/html/# cd /var/www/html/# tar -xvzf adodb508a.tgz

10/1/2009 IDS Snort 40

# wget http://nchc.dl.sourceforge.net/sourceforge/

secureideas/base-1.4.2.tar.gz

# cp base-1.4.2.tar.gz /var/www/html/

# cd /var/www/html/

#tar -xzvf base-1.4.2.tar.gz

# cp base_conf.php.dist base_conf.php

10/1/2009 IDS Snort 41

#vim base_conf.php

$DBlib_path = '/var/www/html/adodb5';

$DBtype = 'mysql';

$alert_dbname = 'snort';

$alert_host = 'localhost';

$alert_port = '';

$alert_user = 'snort';

$alert_password = ‘long';

10/1/2009 IDS Snort 42

• http://127.0.0.1/base-1.4.2

• Chỉ đường dẫn đến thư viện adodb

• Khai báo các giá trị cho co sở dữ liệu lưu file log. Như là : Database Name, Database Host, Database User, Database Password là username và password để truy cập cơ sở dữ liệu.

• Tạo BASE AG (tạo cơ sở dữ liệu cho BASE)

10/1/2009 IDS Snort 43

10/1/2009 IDS Snort 44

10/1/2009 IDS Snort 45

10/1/2009 IDS Snort 46

10/1/2009 IDS Snort 47

10/1/2009 IDS Snort 48

• #snort –A : Cài đặt chế độ cảnh báo (altert-mode).

• Có nhiều mode hổ trợ như : fast, full, console, test or none.

• Dùng mode console để in ra màn hình và ghi các file log.

• Fast mode dùng trong chế độ tốc độ đường truyền cao.

10/1/2009 IDS Snort 49

• #snort –v : bật chế độ sniffer. In toàn bộ gói dữ liệu bắt được trên console (hiển thị các header IP,TCP/UDP/ICMP). Card mạng phải ở chế độ promiscuous mode .

• #snort –d: hiển thị dữ liệu ở layer Application

• #snort –e: hiển thị thông tin về header ở layer 2.

• #snort –vde: các chuỗi thập lục phân hiển thị nhiều dữ liệu hơn. Có địa chỉ MAC và địa chỉ IP. –vde cung cấp nhiều thông tin nhất.

10/1/2009 IDS Snort 50

• Lưu thông tin xuống file:– snort –dev –l [filename]

• Lưu thông tin ở dạng binary:– snort –l [filename] -b

• Đọc ngược thông tin tư file binary:– snort –dv –r [filename]– snort –dv –r [filename] icmp

• #snort –l /var/log/Snort : chỉ định thư mục lưu file log. Quá trình lưu trữ theo kiểu phân cấp. Mỗi một địa chỉ sẽ có một thư mục và những gì liên quan đến địa chỉ đó sẽ được lưu trong đây.

• Snort lưu các gói tin thành các file ASCII, với tên file được tạo ra tư giao thức và số cổng.

• #snort –b: Log gói tin dạng tcpdump. Ghi log rất nhanh

10/1/2009 IDS Snort 52

• #snort –c :Config-file ,chỉ định file cấu nào muốn sử dụng.

• #snort –D :Chạy Snort ở chế độ background.• #snort –I :Interface, Chỉ định interface nào Snort

sẽ lắng nghe.• #snort –s :Gửi alert message đến syslog.• #snort –T : Kiểm tra và báo cáo về cấu hình hiện

tại của snort.• #snort –y : Thêm năm và ngày giờ vào thông điệp

cảnh báo và file log.

10/1/2009 IDS Snort 53

• Nhận gói và xử lý nó trước khi rule áp dụnglên gói (input plug_in)• Cú pháp: preprocessor <preprocessor_name>[:

<configuration_options>] • VD:

preprocessor frag2preprocessor stream4: detect_scans

• Cấu hình:

output <output_module_name>[: <configuration_options>]

• VD :

output database: alert, mysql, user=rr password=boota \

dbname=snort host=localhost

• Snort dựa vào các tập luật để phát hiện tấn công.

• Các luật thường được lưu trữ trong file snort.conf. Có thể sử dụng nhiều file bằng cách thêm đường dẫn đến các file luật này vào file cấu hình chính.

• Mỗi luật được viết trên một dòng.

• Một rule có thể phát hiện nhiều loại xâm nhập.

10/1/2009 IDS Snort 56

• Gồm 2 phần rule header, rule option.

• Rule header : chứa thông tin về hành động mà luật sẽ thực hiện. Tiêu chuẩn của việc so sánh luật trên một gói tin.

• Rule option: chứa thông điệp cảnh báo. Và thông tin thông tin về phần nào của gói tin được sử dụng để tạo ra cảnh báo.

10/1/2009 IDS Snort 57

Rule Header Rule Option

action protocol address port \

direction address port \

(option1 : <value1> ;option2: <value2>;…..)

10/1/2009 IDS Snort 58

Lưu ý : dấu “\” ở đây nghĩa là xuống hàng. Mỗi luật nên viết trong một dòng.

• Action : các định kiểu hành động khi gói tin thỏa các điều kiện. Thường là tạo cảnh báo và ghi log (alert, log).

nếu cài snort ở chế độ inline có thể chọn drop để iptables hủy gói dữ liệu.

10/1/2009 IDS Snort 59

Action Protocol PortAddress Port Direction Address

• Protocol : snort có thể phân tích được giao thức bao gồm : TCP, UDP, ICMP,IP.

• Address : địa chỉ nguồn, đích. Address có thể của một host, nhiều host hoặc địa chỉ mạng.

• Direction: xác định địa chỉ và cổng của nguồn và đích đến ( -> , <-,< > ).

• Port: chỉ dùng trong giao thức TCP, UDP để xác định cổng ngồn và đích của một gói tin mà luật được áp dụng.

10/1/2009 IDS Snort 60

• Theo sau rule header, được đặt trong ‘( )’, các option ngăn cách nhau ‘;’

• Một action chỉ được thực hiện khi tất cả option đều thỏa.

• Một option bao gồm tư khóa và tham số.

• Các tham số phân biệt nhau ‘:’

• Nếu có nhiều option chúng sẽ AND lại với nhau.

10/1/2009 IDS Snort 61

• classtypes: <name>; phân loại luật cho một kiểu tấn công cụ thể. Kết hợp với file /etc/snort/classification.config

config classification: name,description,priority– Name là tên được sử dụng để phân loại. Tên được sử

dụng với tư khóa classtype trong viết luật.– Description : mô tả ngắn về kiểu phân loại.– Priority : thứ tự ưu tiên mặc định cho sự phân loại, có

thể thay đổi được bằng tư khóa priority trong Rule Option.

10/1/2009 IDS Snort 62

• ack: <number> ; thường được dùng để biết có đang bị quét cổng hay không. Chỉ có nghĩa khi cờ ack trong TCP header được bật.

• msg: <message>; ghi thêm chuỗi ký tự vào log và cảnh báo. Thông điệp để trong “”.

• content: < straight text>; or content: <hex data >; Tìm ra chữ ký (signature) trong header của gói dữ liệu.

10/1/2009 IDS Snort 63

• offset: < value>; dùng với content cho biết bắt đầu tìm kiếm tư đâu.

• depth: < value>; dùng với content xác định vị trí kết thúc của đoạn dữ liệu cần so sánh với vị trí ban đầu.

• dsize: [<|>|=] < number>; tìm chiều dài của một gói tin. (các tấn công buffer overflows)

10/1/2009 IDS Snort 64

• rev: < revision integer>; cho biết số phiên bản của snort.

• priority: < value>; tư khóa priority gán độ ưu tiên cho một luật.

• nocase: dùng kết hợp với content, để tìm nội dung mà không phân biệt hoa thường.

Xem file đính kèm để biết các tùy chọn khác.

10/1/2009 IDS Snort 65

• Luật được đặt ở cuối file snort.conf. có thể tạo ra nhiều luật sử dụng các biến đã định nghĩa trong file này.

• Có thể định nghĩa file .rules. Trong file snort.conf dùng include để chỉ đến file này.

# include $RULE_PATH/web-attacks.rules

• Có rất nhiều luật đã được định nghĩa sẵn chứa trong thư mục /etc/snort/rules.

10/1/2009 IDS Snort 66

• alert tcp192.168.1.0/24 23-> any any (content: “confidential”; msg: “Detect confidential”;)

bắt các gói dữ liệu đến tư địa chỉ nguồn thuộc mạng 192.168.1.0 /24và cổng nguồn 23, tới tất cả các địa chỉ trong mạng đích và tất cả các cổng đích. Tìm signature trong header của gói dữ liệu có nội dung “confidential”. Giao thức sử dụng là tcp.

10/1/2009 IDS Snort 67

• alert tcp any any -> 192.168.1.0/24 80 \

(flags: A; ack: 0; msg: “TCP ping detected”;)Phát hiện ai đó sử dụng Nmap để quét cổng.

Với gói dữ liệu gửi đi có trường ack = 0, gửi tới cổng 80 bằng giao thức tcp.

Tư khóa flags được sử dụng đề tìm cờ được thiết lập trong header TCP của gói tin.

10/1/2009 IDS Snort 68

• config classification: denial-of-service,Detection of a Denial of Service Attack,2

• alert udp any any -> 192.168.1.0/24 6838 (msg: “Dos”;content: “server” ;classtype: denial-of-service;)

• alert udp any any -> 192.168.1.0/24 6838 (msg : “Dos”;content: “server”;classtype: denial-of-service;priority: 1;)

10/1/2009 IDS Snort 69

• alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; depth: 40; msg: “HTTP matched”;)

Tìm tư HTTP trong header TCP của gói dữ liệu đến tư vị trí thứ 4 đến vị trí 40.

Thỏa thì xuất thông báo HTTP matched.

10/1/2009 IDS Snort 70

• Smurf attack

• Jolt attack.

• Teardrop attack.

10/1/2009 IDS Snort 71

Alert icmp $EXTERNAL_NET any -> 192.168.77.129 any (msg: ”Demo smurf attack”; sid:1000010;dsize>32;itype:0;

icmp_seq:0; icmp_id:0;)

alert ip $EXTERNAL_NET any -> 192.168.77.129 any (msg:“Demo DOS Jolt attack"; dsize:408; fragbits:M;sid:268;rev:4; )

• alert udp $EXTERNAL_NET any -> 192.168.77.129 any (msg:“Demo DOS Teardrop attack"; fragbits:M; id:242;sid:270;rev:6;)

• Managing security with Sornt and IDS tool

• Snort Cookbook (2005)

• Snort2.1IntrusionDetectionSecondEdition

• snort.forum.org

• securityfocus.com

10/1/2009 IDS Snort 75

top related