Hệ thống phát hiện xâm nhập sử dụng snort
GVHD : TS.Phạm Văn Tính Nhóm 10/1/2009 Phần I : IDS Khái niệm, phân loại Kiến trúc Triển khai Phần II : Snort Giới thiệu Cài đặt Snort rule Phần III : Demo 10/1/2009 IDS Snort • Là hệ thống (phần mềm, phần cứng, kết hợp hai) để phát hành vi xâm nhập bất hợp phát vào mạng • Phát hành động tiến trình công (FootPrinting, Scanning, Sniffer…), cung cấp thông tin nhận biết đưa cảnh báo • Kỹ thuật sử dụng IDS : signature anomaly-based , kết hợp hai 10/1/2009 IDS Snort • Cài đặt agent host cụ thể Phân tích log hệ điều hành ứng dụng so sánh kiện với sở liệu để phát vi phạm bảo mật đưa cảnh báo • Nếu có vi phạm HIDS ghi nhận lại hành động đó, đưa cảnh báo, có thể ngừng hành động lại trước nó xảy • HIDS dùng để theo dõi log (log monitors), giám sát tính toàn vẹn (intergrity monitors), phát xâm nhập mức kernel (kernel module) 10/1/2009 IDS Snort • Dùng để bắt gói tin môi trường mạng, so sánh liệu thu thập với sở liệu nhằm phát dấu hiệu công • Khi có công NIDS log gói tin vào sở liệu, cảnh báo đưa vào Firewall 10/1/2009 IDS Snort Host IDS - HIDS Network - NIDS HIDS quan sát host , hệ điều hành, hoạt động ứng dụng (thường làm công việc phân tích log, kiểm tra tính toàn vẹn…) NIDS nhìn toàn cảnh luồng liệu mạng (NIDS thường coi sniffer) Chỉ phát công NIDS phát công thành công tiềm Hoạt động hiệu môi Rất khó hoạt động môi trường chuyển mạch, mã hóa, tốc độ cao trường 10/1/2009 IDS Snort PREPROCESSORS DETECTION ENGINE SENSOR ALERT SYSTEMS OUTPUT LOGGING SYSTEMS 10/1/2009 IDS Snort 10/1/2009 IDS Snort 10/1/2009 IDS Snort 10/1/2009 IDS Snort 10 • Theo sau rule header, đặt ‘( )’, option ngăn cách ‘;’ • Một action thực tất option thỏa • Một option bao gồm từ khóa tham số • Các tham số phân biệt ‘:’ • Nếu có nhiều option chúng AND lại với 10/1/2009 IDS Snort 60 • classtypes: ; phân loại luật cho kiểu công cụ thể Kết hợp với file /etc/snort/classification.config config classification: name,description,priority – Name tên sử dụng để phân loại Tên sử dụng với từ khóa classtype viết luật – Description : mô tả ngắn kiểu phân loại – Priority : thứ tự ưu tiên mặc định cho phân loại, thay đổi từ khóa priority Rule Option 10/1/2009 IDS Snort 61 • ack: ; thường dùng để biết có bị quét cổng hay không Chỉ có nghĩa cờ ack TCP header bật • msg: ; ghi thêm chuỗi ký tự vào log cảnh báo Thông điệp để “” • content: < straight text>; or content: ; Tìm chữ ký (signature) header gói liệu 10/1/2009 IDS Snort 62 • 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 đoạn liệu cần so sánh với vị trí ban đầu • dsize: [|=] < number>; tìm chiều dài gói tin (các công buffer overflows) 10/1/2009 IDS Snort 63 • rev: < revision integer>; cho biết số phiên snort • priority: < value>; từ khóa priority gán độ ưu tiên cho 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 tùy chọn khác 10/1/2009 IDS Snort 64 • Luật đặt cuối file snort.conf tạo nhiều luật sử dụng biến định nghĩa file • Có thể định nghĩa file rules Trong file snort.conf dùng include để đến file # include $RULE_PATH/web-attacks.rules • Có nhiều luật định nghĩa sẵn chứa thư mục /etc/snort/rules 10/1/2009 IDS Snort 65 • alert tcp192.168.1.0/24 23-> any any (content: “confidential”; msg: “Detect confidential”;) bắt gói liệu đến từ địa nguồn thuộc mạng 192.168.1.0 /24và cổng nguồn 23, tới tất địa mạng đích tất cổng đích Tìm signature header gói liệu có nội dung “confidential” Giao thức sử dụng tcp 10/1/2009 IDS Snort 66 • alert tcp any any -> 192.168.1.0/24 80 \ (flags: A; ack: 0; msg: “TCP ping detected”;) Phát sử dụng Nmap để quét cổng Với gói liệu gửi có trường ack = 0, gửi tới cổng 80 giao thức tcp Từ khóa flags sử dụng đề tìm cờ thiết lập header TCP gói tin 10/1/2009 IDS Snort 67 • 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-ofservice;) • alert udp any any -> 192.168.1.0/24 6838 (msg : “Dos”;content: “server”;classtype: denial-ofservice;priority: 1;) 10/1/2009 IDS Snort 68 • alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; depth: 40; msg: “HTTP matched”;) Tìm từ HTTP header TCP gói liệu đến từ vị trí thứ đến vị trí 40 Thỏa xuất thông báo HTTP matched 10/1/2009 IDS Snort 69 • Smurf attack • Jolt attack • Teardrop attack 10/1/2009 IDS Snort 70 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 74 [...]... của snort vào thư mục vừa tạo: #cd /usr/local /snort- 2.8.5.1/etc # cp * /etc /snort 10/1/2009 IDS Snort 31 • 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 32 • Để snort chạy như một dịch vụ chúng ta cần user, usergroup cho snort: #groupadd snort #useradd –g snort. .. • 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 19 • 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. .. usergroup cho snort: #groupadd snort #useradd –g snort snort 10/1/2009 IDS Snort 33 • 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 34 #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... Snort chỉ phát hiện xâm nhập, nghi log và cảnh báo 10/1/2009 IDS Snort 20 • • • • • • • • • Apache PHP My Sql BASE Libpcap Libnet Perl Pear Snort 10/1/2009 IDS Snort 21 • Sử dụng rpm –qa | grep Để kiểm tra xem gói đó đã cài đặt đủ chưa • Sử dụng : yum install Để cài đặt những gói còn thiếu • Đối với những gói rpm : rpm –ivh 10/1/2009 IDS Snort 22 • Sử dụng : wget ... lưu trữ những log output database: log, mysql, user =snort, password = long dbname =snort host=localhost 10/1/2009 IDS Snort 35 #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 36 ... 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 29 #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 30 • Tạo thư mục snort trong /etc #mkdir /etc /snort #mkdir /etc /snort/ rules... trong hệ thống mạng để mang lại hiệu quả cao nhất ???? 10/1/2009 IDS Snort 14 10/1/2009 IDS Snort 15 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 16 10/1/2009 IDS Snort 17 • Snort là một IDS kiểu signature – based Chạy được trên cả Windows và Linux • Snort. .. 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 18 • 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,... một gói tar.gz 10/1/2009 IDS Snort 27 • 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 để cài thêm vào • Start apache và mysql lên: service httpd start service mysqld start 10/1/2009 IDS Snort 28 • 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...10/1/2009 IDS Snort 11 10/1/2009 IDS Snort 12 10/1/2009 IDS Snort 13 • 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) ... Phần II : Snort Giới thiệu Cài đặt Snort rule Phần III : Demo 10/1/2009 IDS Snort • Là hệ thống (phần mềm, phần cứng, kết hợp hai) để phát hành vi xâm nhập bất hợp phát vào mạng • Phát hành... cho snort: #groupadd snort #useradd –g snort snort 10/1/2009 IDS Snort 33 • Tạo set quyền chủ nhân, quyền thực thi snort cho file log #mkdir/var/log /snort #chown –R snort: snort /var/log /snort. .. LOGGING SYSTEMS 10/1/2009 IDS Snort 10/1/2009 IDS Snort 10/1/2009 IDS Snort 10/1/2009 IDS Snort 10 10/1/2009 IDS Snort 11 10/1/2009 IDS Snort 12 10/1/2009 IDS Snort 13 • Hệ thống IDS (signature-based)