5.1.1 Chuẩn bị môi trường
Hệ điều hành : Ubuntu Linux 10.04 Các gói phần mềm hỗtrợ: MySQL Libnet Libpcap Apache daq 5.1.2 Cài đặt các gói bổtrợ Cài đặt các gói phần mềm hỗtrợ : mysql-client-5.0 mysql-server-5.0 libpcap0.8-dev libmysqlclient15-dev bison flex apache2 libapache2-mod-php5 php5-gd php5-mysql libtool libpcre3-dev php-pear 5.1.3 Cài đặt Snort Snort-2.9.2.tar.gz snortrules-snapshot-2922.tar iptables
5.2 Các chế độthực thi trong Snort
Bắt gói tin (Sniffer) Log file cảnh báo. NIDS
Snort inline
Máy hacker: (192.168.10.50/24, GW: 192.168.10.20) Cài đặt Windows XP.
Các tools tấn công.
Máy IPS + firewall: (eth1:192.168.10.20/24 , eth0: 192.168.20.10/24) Cài đặt Ubuntu 10.04.
Webserver. Snort + Iptables
Cấu hình Iptables với Snort inline:
#iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #iptables -A INPUT -j QUEUE
#iptables -A FORWARD -j QUEUE #iptables -A OUTPUT -j QUEUE
Chạy chế độSnort inline:
#snort –daq afpacket –i eth0:eth1 –Q –c /etc/snort/etc/snort.conf –A console
5.3 Cấu hình 1 sốrulescơ bản cảnh báo, ngăn chặn Snort5.3.1 Ngăn chặn 1 ping thông thường 5.3.1 Ngăn chặn 1 ping thông thường
-Luật:
drop icmp 192.168.1.0/24 any -> 172.16.1.0/24 any (msg:"Ping>1000";dsize:>1000;sid:1000002;)
Tại máy hacker: ping thửkết nối
Sau đó, tại máy IPS chạy Snort + Iptables. Và kết quảlà:
Ghi nhận tại máy Snort:
5.3.1 Tấn công Ping of death
Khi tấn công bằng Ping of Death, một gói tin echo đựoc gửi có kích thước lớn hơn kích thước cho phép là 65,536 bytes. Gói tin sẽbịchia nhỏra thành các segment nhỏ hơn, nhưng khi máy đích ráp lại, host đích nhận thấy rằng là gói tin quá lớn đối với buffer bên nhận. Kết quảlà, hệthống không thểquản lý nổi tình trạng bất thường nàyvà sẽreboot hoặc bịtreo.
VD: ping IP –t –l 65000 -Luật:
drop icmp 192.168.1.0/24 any ->172.16.1.0/24 any (msg:"Ping>1000";dsize:>1000;sid:1002342;)
5.3.4 Tấn công Dos với HTTP Post
- Dấu hiệu:
Dạng tấn công này sẽgứi hàng loạt dữcác liệu hợp lệ đến Server sẽxửlý làm tràn database và nghẽn hệthống. Dùng wireshark bắt gói tin đểtìm ra dầu hiệu nhận biết cuộc tấn công này, trong đó có đoạn “48 54 54 50 2f 31 2e 31” là thường xuyên xuất hiện.
- Luật
drop tcp $EXTERNAL_NET any -> $HOME_NET 80 (msg:"Tan cong DoSHTTP"; content:"|48 54 54 50 2f 31 2e 31 |"; flow:to_server; sid:1000005;)
Và máy Snort bật Snort + Iptables:
5.3.3 Tấn công Smurt Attack
- Dấu hiệu:
Đây là dạng tấn công làm ngập gói tin ICMP ECHO REPLY. Sựkhác biệt lớn giữa nó với gói tin ICMP ping “thật” là ở2 trường: icmp_id = 0x00 và sequence number = 0x00 (gói ping thật có id và sequence number khác 0). Ngoài ra, hacker thường tăng kích thước payload mặcđịnh của gói tin ping (32 byte) để nhanh chóng làm ngập mạng victim.
- Luật
drop icmp $EXTERNAL_NET any -> $HOME_NET any ( msg: “Tan cong
Smurf Attack”; dsize: >32; icmp_seq:0; icmp_id:0 ; sid: 1000004; )
- Dấu hiệu:
Land attack tấn công bằng cách gửi các gói tin có địa chỉnguồn và đích giống nhau. Bằng cách dùng từkhóa sameip trong Rule option là có thểphát hiện ra.
- Luật
alert udp any any <> $HOME_NET any (msg : “Land Attack”; sameip;)
5.3.5 Tấn công Winnuke
DoS attack loại này chỉcó thểáp dụng cho các máy tính đang chạy Windows9x . Hacker sẽgởi các gói tin với dữliệu ``Out of Band`` đến cổng 139 của máy tínhđích.( Cổng 139 chính là cổng NetBIOS, cổng này chỉchấp nhận các gói tin có cờ Out of Band được bật ) . Khi máy tính của victim nhận được gói tin này, một màn hình xanh báo lỗi sẽ được hiển thịlên với nạn nhân do chương trình của Windows nhận được các gói tin này nhưng nó lại không biết phản ứng với các dữliệu Out Of Band như thếnào dẫn đến hệthống sẽbị crash .
alert tcp $EXTERNAL_NET any -> $HOME_NET 135:139 (msg:"DOS Winnuke attack"; flow:stateless; flags:U+; reference:bugtraq,2010; reference:cve,1999-0153; classtype:attempted-dos; sid:1257; rev:13;)
5.3.6 Tấn công ARP Cache
Máy hacker sẽgửi 1 địa chỉMAC giả đến máy nạn nhân. Khi máy nạn nhân truy cập thì hacker sẽnhận được các gói tin.
ARP spoof preprocessor giải mã những gói tin và phát hiện những cuộc tấn công ARP. Khi được cấu hình thông số, preprocessor sẽkiểm tra địa chỉ Ethernet và các địa chỉtrong gói tin ARP. Khi xảy ra hiện tượng, một cảnh báo GID 112 và SID 4 được tạo ra.
Khi “unicast” được chỉ định, preprocessor sẽkiểm tra những yêu cầu Unicast ARP. Một cảnh báo GID 112 và SID 1 sẽsinh ra nếu một Unicast ARP bịphát hiện.
preprocessor arpspoof[: -unicast]
Cấu hình file snort.conf
Cấu hình file log
output alert_csv: /var/log/snort/alert.csv
Dấu hiện nhận biết cuộc tấn công này là 1 IP phải khớp với 1 MAC, nhiệm vụcủa người quản trịlà phải thu nhập IPvà MAC trong hệthống.
Khi đó nếu hacker tấn công Snort sẽgửi cảnh báo và vào file log ta sẽ xem dược địa chỉMAC hacker.
5.3.7 Tấn công UDP flood
alert udp $EXTERNAL_NET any -> $HOME_NET any (msg:"UDP_Flood Attack!!!!!"; content:"UDP Flood Test"; flow:stateless; threshold:type threshold, track by_dst, count 1000, seconds 60; classtype:attempted-dos; sid:1000001; rev:7;)
Có thể dùng tool UDP flooder 2.0 đểtest thửrules.
5.4 Cấu hình 1 sốrules cho Iptables: 5.4.1Ngăn chặn ping 5.4.1Ngăn chặn ping
-A INPUT -p icmp -m icmp --icmp-type any -j DROP
-A: thêm chuỗi quy tắc vào rule.
INPUT: những gói tin đi vào từfirewall -p: protocol là icmp
-m icmp --icmp-type: mô tảdạng của icmp như echo, request -j : jump – lệnh chuyển tới cấu lệnh tiếp theo
Any: port của icmp
DROP: iptables khóa những packet.
5.4.2 Chặn truy cập web
-A INPUT -s 192.168.1.10 -p tcp -m tcp --dport 80 -j DROP -s:địa chỉnguồn
5.4.3 Chặn IMCP có kích thước lớn
-A INPUT -p icmp --icmp-type any -m length --length 1000: -j DROP
5.4.4 Chặn SYN flood
iptables –N syn_flood
iptables –A INPUT –p tcp –syn –j syn_flood
iptables -A syn_flood –m limit --limit 1/s --limit -burst 3 -j RETURN iptables –A syn_flood –j DROP
Tất cảcác kết nối đến hệthống chỉ được phép theo các thông sốgiới hạn sau: --limit 1/s: Tốc độtruyền gói tin trung bình tối đa 1/s (giây)
--limit-burst 3: Số lương gói tin khởi tạo tối đa được phép là 3.
5.4.5 Ngăn port scanning
iptables -A port-scan -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s –j RETURN
iptables -A port-scan -j DROP
5.4.5 Hạn chếUDP DOS
iptables -A INPUT -p udp -m state --state NEW -m recent --set --name DDOS -- rsource
iptables -A INPUT -p udp -m state --state NEW -m recent --update --seconds 1 - -hitcount 5 --name DDOS --rsource -j DROP
KẾT LUẬN
Trong suốt quá trình thực hiện đề tài, nhờ những kiến thức đã được học trên trường, sựtìm tòi của bản thân và sự hướng dẫn tận tình của thầy Ngô Văn Công. Em đã đạt được một sốkết quảsau:
Tìm hiểu, nắm bắt được vềtổng quan bảo mật thông tin, an toàn mạng. Nắm bắt được lý thuyết cơ bản vềhệthống phát hiện và phòng chống
xâm nhập.
Nghiên cứu về ứng dụng IDS/IPS Snort.
Cài đặt được Snort trên nền Windows và Linux.
Xây dựng được mô hình, viết được 1 số rule cơ bản vềphát hiện và phòng chống.
Mặc dù đã cốgắng hoàn thành đề tài nhưng đây là một lĩnh vực còn khá mới lạ, đang phát triển mạnh với kiến thức bản thân còn hạn chếnên còn nhiều thiếu sót:
Lý thuyết nắm bắt chưa hoàn toàn sâu sắc. Mô hình mô phỏng chưa thật hoàn chỉnh.
Còn nhiều thiếu sót mắc phải chưa sửa chữa hết trong việc demo ngăn chặn tấn công và xâm nhập.
TÀI LIỆU THAM KHẢO
[1]Hệthống phòng chống và phát hiện xâm nhập -Trung tâm đào tạo mạng Athena.
[2] Đềtài Báo cáo IDS/IPS– nguồn : internet
[3] Bài giảng Kỹthuật an toàn mạng– ebook.edu.vn
[4] Bài giảng An toàn mạng–Th.S Ngô Văn Công
[3] Snort manual–Snort.org
[4]Snort 2.1 Intrusion Detection Second Edition-Jay Beale, Andrew R.Baker, Brian Caswell & Mike Poor
[5]hvaonline.net
[6]nhatnghe.com [7]google.com