МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
кафедра ЗІ
ЛАБОРАТОРНА РОБОТА №5
СИСТЕМИ ВИЯВЛЕННЯ АТАК.
РОБОТА З SNORT
з курсу “Захист інформації в комп’ютерних мережах”
Виконав:
Ст. гр.. ЗІД-12м
Прийняв:
Львів 2011
Мета роботи – вивчити основні принципи побудови та функціонування систем виявлення атак. Вивчити основні функції та принципи роботи з безкоштовною системою виявлення атак Snort.
1. ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Багаторівнева структура стеку ТСР/ІР
Система виявлення атак (СВА, англ. IDS – Intrusion detection system) – це програмний або програмно-апаратний комплекс, призначений для виявлення і по можливості попередження дій, які загрожують безпеці комп’ютерної системи.
Перші прототипи СВА з’явилися на початку 1980-х років і були орієнтовані в першу чергу на захист автономних комп’ютерів, не об’єднаних в мережу. Виявлення атак проводилося шляхом аналізу реєстрації подій постфактум. Сучасні системи в основному орієнтовані на захист від загроз, направлених з мережі, тому їх архітектура суттєвим чином помінялася. Разом з тим основні підходи до виявлення атак залишилися колишніми. Розглянемо класифікацію і принципи роботи СВА більш детально.
2. ЗАВДАННЯ
2.1. Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Вивчити порядок роботи, конфігурування та формування правил програми Snort.
2.2. Виконати в лабораторії
1. Встановити СВА Snort.
Для перевірки працездатності СВА Snort рекомендується виконати наступні дії.
2. Вивести на екран список доступних мережевих інтерфейсів командою
snort -W
3. Запустити Snort на обраному інтерфейсі в режимі аналізатора пакетів з виводом інформації на екран, вказавши програмі завершити роботу після прийому третього пакета:
snort -v -i 1 -n 3
4. Виконати будь-які дії, які приведуть до відправлення або прийому мережевих пакетів (наприклад, відправити ехо-запит на будь-яку IP-адресу командою ping). Переконатися, що пакети перехоплюються й відображаються на екрані.
5. Створити в каталозі «\snort\etc» файл «my.conf», що містить наступні рядки:
var HOME_NET <IP-адреса_СВА>
var EXTERNAL_NET !$HOME_NET
6. Додати у файл «my.conf» правило, що дозволяє виявляти вхідні ECHO-запити. Перевірити, чи відбувається виявлення, запустивши СВА з каталогу «\snort\bin» наступною командою (з «командного рядка»):
snort -i <інтерфейс> -c ../etc/my.conf -l ../log
Для перевірки виконати кілька ECHO-запитів з іншого комп'ютера, використовуючи команду:
ping <IP-адреса_СВА>
7. Доповнити файл «my.conf» правилами, зазначеними в табл. 3.
8. Доповнити файл «my.conf» наведеними вище рядками для настроювання препроцесора sfPortscan. З використанням утиліти nmap перевірити, чи відбувається виявлення спроб сканування портів вузла, що захищається. Використати наступні команди для запуску сканування:
nmap <IP-адреса_СВА> -v -sT -p <діапазон_портів> – для сканування методом з повним циклом підключення (метод Connect)
nmap <IP-адреса_СВА> -v -sS -p <діапазон_портів> – для сканування з неповним циклом підключення (метод SYN)
nmap <IP-адреса_СВА> -v -sN -p <діапазон_портів> – для сканування за допомогою TCP-пакета зі скинутими прапорцями (метод NULL)
nmap <IP-адреса_СВА> -v -sX -p <діапазон_портів> – для сканування за допомогою TCP-пакета з усіма встановленими прапорцями (метод XMAS
РЕЗУЛЬТАТИ ВИКОНАННЯ РОБОТИ
4. ЗАВДАННЯ
4.1. Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Вивчити порядок роботи, конфігурування та формування правил програми Snort.
4.2. Виконати в лабораторії
1. Встановити СВА Snort.
Для перевірки працездатності СВА Snort рекомендується виконати наступні дії.
2. Вивести на екран список доступних мережевих інтерфейсів командою snort –W
near@uplink:~$ sudo snort –W
USAGE: snort [-options] <filter options>
Options:
-A Set alert mode: fast, full, console, test or none (alert file alerts only)
"unsock" enables UNIX socket logging (experimental).
-b Log packets in tcpdump format (much faster!)
-B <mask> Obfuscated IP addresses in alerts and packet dumps using CIDR mask
-c <rules> Use Rules File <rules>
-C Print out payloads with character data only (no hex)
-d Dump the Application Layer
-D Run Snort in background (daemon) mode
-e Display the second layer header info
-f Turn off fflush() calls after binary log writes
-F <bpf> Read BPF filters from file <bpf>
-g <gname> Run snort gid as <gname> group (or gid) after initialization
-G <0xid> Log Identifier (to uniquely id events for multiple snorts)
-h <hn> Home network = <hn>
-H Make hash tables deterministic.
-i <if> Listen on interface <if>
-I Add Interface name to alert output
-k <mode> Checksum mode (all,noip,notcp,noudp,noicmp,none)
-K <mode> Logging mode (pcap[default],ascii,none)
-l <ld> Log to directory <ld>
-L <file> Log to this tcpdump file
-M Log messages to syslog (not alerts)
-m <umask> Set umask = <umask>
-n <cnt> Exit after receiving <cnt> packets
-N Turn off logging (alerts still work)
-O Obfuscate the logged IP addresses
-p Disable promiscuous mode sniffing
-P <snap> Set explicit snaplen of packet (default: 1514)
-q Quiet. Don't show banner and status report
-Q Enable inline mode operation.
-r <tf> Read and process tcpdump file <tf>
-R <id> Include 'id' in snort_intf<id>.pid file name
-s Log alert messages to syslog
-S <n=v> Set rules file variable n equal to value v
-t <dir> Chroots process to <dir> after initialization
-T Test and report on the current Snort configuration
-u <uname> Run snort uid as <uname> user (or uid) after initialization
-U Use UTC for timestamps
-v Be verbose
-V Show version number
-X Dump the raw packet data starting at the link layer
-x Exit if Snort configuration problems occur
-y Include year in timestamp in the alert and log files
-Z <file> Set the performonitor preprocessor file path and name
-? Show this information
<Filter Options> are standard BPF options, as seen in TCPDump
Longname options and their corresponding single char version
--logid <0xid> Same as -G
--perfmon-file <file> Same as -Z
--pid-path <dir> Specify the directory for the Snort PID file
--snaplen <snap> Same as -P
--help Same as -?
--version Same as -V
--alert-before-pass Process alert, drop, sdrop, or reject before pass, default is pass before alert, drop,...
--treat-drop-as-alert Converts drop, sdrop, and reject rules into alert rules during startup
--process-all-events Process all queued events (drop, alert,...), default stops after 1st action group
--dynamic-engine-lib <file> Load a dynamic detection engine
--dynamic-engine-lib-dir <path> Load all dynamic engines from directory
--dynamic-detection-lib <file> Load a dynamic rules library
--dynamic-detection-lib-dir <path> Load all dynamic rules libraries from directory
--dump-dynamic-rules <path> Creates stub rule files of all loaded rules libraries
--dynamic-preprocessor-lib <file> Load a dynamic preprocessor library
--dynamic-preprocessor-lib-dir <path> Load all dynamic preprocessor libraries from directory
--create-pidfile Create PID file, even when not in Daemon mode
--nolock-pidfile Do not try to lock Snort PID file
--disable-inline-initialization Do not perform the IPTables initialization in inline mode.
--pcap-single <tf> Same as -r.
--pcap-file <file> file that contains a list of pcaps to read - read mode is implied.
--pcap-list "<list>" a space separated list of pcaps to read - read mode is implied.
--pcap-dir <dir> a directory to recurse to look for pcaps - read mode is implied.
--pcap-filter <filter> filter to apply when getting pcaps from file or directory.
--pcap-no-filter reset to use no filter when getting pcaps from file or directory.
--pcap-loop <count> this option will read the pcaps specified on command line continuously.
for <count> times. A value of 0 will read until Snort is terminated.
--pcap-reset if reading multiple pcaps, reset snort to post-configuration state before reading next pcap.
--pcap-show print a line saying what pcap is currently being read.
--exit-check <count> Signal termination after <count> callbacks from pcap_dispatch(), showing the time it
takes from signaling until pcap_close() is called.
--conf-error-out Same as -x
--require-rule-sid Require that all snort rules have SID specified.
3. Запустити Snort на обраному інтерфейсі в режимі аналізатора пакетів з виводом інформації на екран, вказавши програмі завершити роботу після прийому третього пакета:
snort -v -i 1 -n 3
near@uplink:~$ sudo snort -v -i wlan0 > /home/near/lab/5/2.txt
Running in packet dump mode
--== Initializing Snort ==--
Initializing Output Plugins!
Initializing Network Interface wlan0
Decoding Ethernet on interface wlan0
--== Initialization Complete ==--
,,_ -*> Snort! <*-
o" )~ Version 2.8.5.2 (Build 121)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team
Copyright (C) 1998-2009 Sourcefire, Inc., et al.
Using PCRE version: 8.12 2011-01-15
Not Using PCAP_FRAMES
^C*** Caught Int-Signal
Run time prior to being shutdown was 59.978750 seconds
===============================================================================
Packet Wire Totals:
Received: 235
Analyzed: 234 (99.574%)
Dropped: 0 (0.000%)
Outstanding: 1 (0.426%)
===============================================================================
Breakdown by protocol (includes rebuilt packets):
ETH: 234 (100.000%)
ETHdisc: 0 (0.000%)
VLAN: 0 (0.000%)
IPV6: 31 (13.248%)
IP6 EXT: 0 (0.000%)
IP6opts: 0 (0.000%)
IP6disc: 0 (0.000%)
IP4: 192 (82.051%)
IP4disc: 4 (1.709%)
TCP 6: 0 (0.000%)
UDP 6: 0 (0.000%)
ICMP6: 0 (0.000%)
ICMP-IP: 0 (0.000%)
TCP: 104 (44.444%)
UDP: 84 (35.897%)
ICMP: 0 (0.000%)
TCPdisc: 0 (0.000%)
UDPdisc: 0 (0.000%)
ICMPdis: 0 (0.000%)
FRAG: 0 (0.000%)
FRAG 6: 0 (0.000%)
ARP: 11 (4.701%)
EAPOL: 0 (0.000%)
ETHLOOP: 0 (0.000%)
IPX: 0 (0.000%)
OTHER: 0 (0.000%)
DISCARD: 4 (1.709%)
InvChkSum: 0 (0.000%)
S5 G 1: 0 (0.000%)
S5 G 2: 0 (0.000%)
Total: 234
===============================================================================
Action Stats:
ALERTS: 0
LOGGED: 0
PASSED: 0
===============================================================================
Snort exiting
4. Виконати будь-які дії, які приведуть до відправлення або прийому мережевих пакетів (наприклад, відправити ехо-запит на будь-яку IP-адресу командою ping). Переконатися, що пакети перехоплюються й відображаються на екрані.
05/23-21:07:01.515156 192.168.1.20:138 -> 192.168.1.255:138
UDP TTL:128 TOS:0x0 ID:20044 IpLen:20 DgmLen:220
Len: 192
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
05/23-21:07:02.514526 192.168.1.20:138 -> 192.168.1.255:138
UDP TTL:128 TOS:0x0 ID:20045 IpLen:20 DgmLen:220
Len: 192
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
05/23-21:07:02.798267 192.168.1.20:50257 -> 239.255.255.250:1900
UDP TTL:1 TOS:0x0 ID:20046 IpLen:20 DgmLen:161
Len: 133
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
…………………..[багато пакетів]…………………..
05/23-21:07:59.368735 192.168.1.20:138 -> 192.168.1.255:138
UDP TTL:128 TOS:0x0 ID:20191 IpLen:20 DgmLen:208
Len: 180
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
05/23-21:07:59.426733 192.168.1.20:137 -> 192.168.1.255:137
UDP TTL:128 TOS:0x0 ID:20192 IpLen:20 DgmLen:78
Len: 50
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
05/23-21:08:00.176797 192.168.1.20:137 -> 192.168.1.255:137
UDP TTL:128 TOS:0x0 ID:20193 IpLen:20 DgmLen:78
Len: 50
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
Висновок: вивчив основні принципи побудови та функціонування систем виявлення атак, основні функції та принципи роботи з безкоштовною системою виявлення атак Snort.