Cum să citiți și să scrieți regulile Snort pentru a ocoli sistemele de detectare a intruziunilor în rețea. Snort: Instrumentul de detectare a atacurilor în rețea Cuvinte cheie standard

Sistem de detectare a intruziunilor pentru manechini. Instalare și configurare SNORT.

Alexandru Antipov


Snort este un sistem ușor de detectare a intruziunilor. Snort este de obicei numit NIDS „ușor”, deoarece este conceput în primul rând pentru rețelele mici. Programul poate efectua analize de protocol și poate fi utilizat pentru a detecta o varietate de atacuri și pentru a investiga probleme precum depășirile de buffer-uri, scanări de porturi ascunse, atacuri CGI, încercări de detectare a sistemului de operare etc. Snort folosește „reguli” (specificate în fișierele „reguli”) pentru a ști ce trafic să permită și pe care să blocheze. Instrumentul este flexibil, permițându-vă să scrieți reguli noi și să le urmați. Programul are, de asemenea, un „motor de descoperire” care utilizează o arhitectură modulară de plug-in prin care anumite completări la program pot fi adăugate sau eliminate din „motorul de descoperire”.

Snort poate funcționa în trei moduri:
1. Ca un sniffer de pachete, similar cu tcpdump
2. Ca un înregistrator de pachete
3. Cum se dezvoltă un sistem de detectare a intruziunilor
În acest articol vom vorbi în detaliu despre instalarea Snort, arhitectura acesteia și vom învăța cum să creăm și să gestionăm reguli.

Platformă:
Linux 2.2.*,
Snort 1.7(http://www.snort.org/)
Sparc: SunOS 4.1.x, Solaris, Linux și OpenBSD
x86: Linux, OpenBSD, FreeBSD, NetBSD și Solaris
M68k/PPC: Linux, OpenBSD, NetBSD, Mac OS X Server

Cerințe:
Tcpdump (www.tcpdump.org)
Libpcap (Snort se bazează pe biblioteca libpcap, folosită în mod obișnuit în majoritatea snifferelor și analizoarelor TCP/IP) - îl puteți descărca de aici:

Astăzi se vorbește des despre securitatea rețelelor wireless, dar hacking-ul de rețea este perceput ca ceva foarte îndepărtat. Noi deja material publicat despre cum să spargeți securitatea WEP. Mai mult, după ceva timp a ieșit continuare despre cum să vă protejați rețeaua. Astăzi atenția noastră va fi dedicată instrumentelor pentru verificarea securității rețelei wireless. Și, de asemenea, sistemele de detectare a atacurilor - un fel de „alarma de incendiu” pentru WLAN-ul tău.

Apropo, dacă vorbim despre hacking WLAN, atunci utilizatorii rețelelor de acasă și de birouri mici ni se par deosebit de vulnerabili. Acest lucru se datorează în primul rând faptului că au alte sarcini decât protejarea rețelei lor wireless. Și, spre deosebire de marile companii, acestea nu au posibilitatea de a angaja profesioniști.

Cu toate acestea, nu totul este atât de trist pe cât pare. În natură, există modalități de a evalua securitatea unei rețele fără fir, în ciuda aparentului absurd al combinației cuvintelor „securitate” și „rețea fără fir”. Sistemele de detectare a intruziunilor (IDS) pot detecta potențialele intruziuni înainte ca acestea să se întâmple în timp ce inamicul caută o deschidere. Desigur, astfel de sisteme nu pot garanta securitatea completă (și, apropo, ce poate?), dar în combinație cu firewall-uri și alte măsuri de securitate pot fi foarte utile. Este în general acceptat că IDS este un fel de alarmă de securitate: adică anunță doar despre un atac, lăsând munca cu atacatorul altor sisteme și mijloace (chiar și fizice).

Orez. 1. Snort IDS.


Orez. 3. Linksys WRT54G.

Mai jos vom da exemple bazate pe WRT54G cu firmware OpenWRT RC 2(numit de cod „Rusă albă”). Există, de fapt, multe distribuții Linux pentru routere wireless, dar am ales firmware-ul OpenWRT pentru că este simplu, ușor și ambalat ca Debian Linux.


Orez. 4. OpenWRT la locul de muncă.

Avertizare. Încărcarea OpenWRT, Snort Wireless sau a altor versiuni alternative de firmware în WRT54G va anula garanția. Înainte de a începe să flashizați o versiune alternativă de firmware, vă recomandăm Descarca o copie a versiunii curente de firmware

Nu vom intra în detalii despre instalarea OpenWRT, deoarece îl puteți găsi pe site-ul web OpenWRT excelent ghid de instalare. După finalizarea instalării, vă puteți conecta la router folosind Telnet () și vă puteți bucura de rezultat.

După instalarea OpenWRT pe router, puteți descărca și instala programul Snort Wireless. Toate acestea se pot face prin sistemul de pachete OpenWRT menționat - rulați comanda ipkg cu următorii parametri.

instalare ipkg http://nthill.free.fr/openwrt/ipkg/testing/20041204/snort-wireless_2.1.1-1_mipsel.ipk

Unora poate să nu le placă faptul că acest pachet are peste un an. Dar nu este nimic în neregulă cu asta, deoarece toate funcțiile IDS necesare sunt prezente aici și toate regulile Snort ulterioare pot fi descărcate și prin ipkg (mai multe detalii: Pagina de urmărire OpenWRT). Dacă decideți să organizați un punct de acces pe un computer, puteți descărca codul sursă Snort Wireless și îl puteți compila direct pe computer. Rețineți că ar trebui să adăugați steagul --Activați Wireless, în caz contrar, preprocesoarele Wi-Fi nu vor funcționa.

Snort Wireless funcționează ca Snort obișnuit, dar este conceput special pentru punctele de acces wireless, permițându-vă să le protejați eficient de atacuri. Mai exact, conține un nou protocol de reguli numit Wifiși permițând IDS-ului să izoleze corect traficul wireless tipic atacurilor WLAN obișnuite. De exemplu, aceleași atacuri folosind Netstumbler sau încercări de spargere WEP. Utilizarea protocolului wifi în Snort Wireless este foarte asemănătoare cu configurarea regulilor normale pentru Snort, cu o singură excepție: în loc să introduceți adresele IP și porturile primului și celui de-al doilea nod, ar trebui să utilizați adresele MAC ale acestora.

În acest moment avem un Snort Wireless funcțional. Să trecem la configurarea acestuia pentru utilizare în rețeaua selectată. Când rulați ipkg, Snort este instalat în director /etc/snort pe router. Ca și alte programe Unix, Snort folosește un fișier de configurare editabil unde puteți specifica informații despre mediul dvs. de rețea și diferitele modele de atac pe care doriți să le monitorizați. Fișierul este numit snort.conf (Orez. 5) și se află în director /etc/snort. Trebuie să fie deschis în orice editor de text (dacă routerul dvs. nu are unul, descărcați-l folosind ipkg).


Orez. 5. Fișierul de configurare Snort.conf.

Acum puteți configura toți parametrii de rețea necesari, inclusiv numele punctului de acces pe care rulează IDS-ul și adresele MAC ale clienților pe care doriți să-i monitorizați. Există o mulțime de setări pe care le puteți configura aici, așa că revizuiți-le pe toate cu atenție pentru a vă asigura că nu pierdeți nimic.

În special, uitați-vă la preprocesoarele specifice Wi-Fi din Snort Wireless. Acestea includ preprocesoare pentru a detecta scanarea pasivă a rețelei prin programe precum NetStumbler și încercările de falsificare a adresei MAC. Am decis să luăm în considerare separat preprocesoarele importante.


Orez. 6. Preprocesorul AntiStumbler vă permite să notificați despre un atac de recunoaștere.

  • AntiPotnic. Programe precum NetStumbler și MacStumbler ( Orez. 6), utilizați SSID-uri nule pentru a detecta punctele de acces. Aceste SSID-uri acționează ca transmisii și forțează alte puncte de acces să-și trimită SSID-urile către nodul solicitant. Această caracteristică este utilă atunci când căutați rețele wireless disponibile. Preprocesorul AntiStumbler recunoaște că sunt trimise prea multe SSID-uri nule de la o adresă MAC și poate declanșa o alarmă.
    Notă. Acest preprocesor nu permite definirea unor programe precum Kismet, deoarece ascultă doar pasiv cadre 802.11 și nu trimit solicitări.
  • DeauthFlood. Acest atac a fost descris în detaliu în documentul nostru material despre hacking WEP. Folosit pentru a deconecta gazdele de la punctele de acces și pentru a forța o încercare de reconectare, care oferă pachete suplimentare pentru analiză în timpul cracării WEP. În plus, atacul poate fi folosit pentru „denial of service” (DoS) a unui punct de acces. Preprocesorul DeauthFlood recunoaște acest tip de atac numărând numărul de cadre de deautentificare pe unitatea de timp și, dacă este necesar, declanșează o alarmă.
  • AuthFlood. Atacul este similar cu cel anterior, dar preprocesorul AuthFlood detectează prea multe încercări de autentificare, adică încercări ale clienților de a se conecta la rețeaua wireless, care poate fi folosit ca atac DoS asupra punctului de acces.
  • MacSpoof. Una dintre cele mai eficiente moduri de a restricționa accesul la un punct de acces este crearea unei liste de adrese MAC ale clienților permisi. Din păcate, un atacator poate falsifica adresa MAC a mașinii sale și se poate conecta la punctul de acces. Preprocesorul MacSpoof verifică numerele de pachete și, dacă sunt detectate neconcordanțe, indicând o posibilă falsificare a adresei MAC, declanșează o alarmă.
  • RogueAP. Punctele de acces străine („inamic”) sunt deghizate în unele obișnuite, astfel încât utilizatorul se conectează în mod eronat la ele și transferă orice date personale. Acest preprocesor neimplementat încă, cu toate acestea, în versiunile viitoare va putea raporta proximitatea punctelor de acces ale altor persoane.

În plus, Snort Wireless include multe reguli predefinite pentru un număr mare de situații. În funcție de configurația rețelei, unele dintre reguli pot fi foarte convenabile. De exemplu, toate regulile web, dacă un server web rulează în rețeaua dvs. Pentru a activa o regulă, pur și simplu decomentați linia corespunzătoare din fișierul de configurare Snort. Seturile de reguli individuale sunt salvate implicit într-un director /etc/snort/rules, iar oricare dintre ele poate fi vizualizat folosind un editor de text. Regulile din seturi sunt stabilite exact la fel ca și în Snort în sine. Apropo, urmând exemplele, puteți scrie cu ușurință o regulă singur.


Orez. 7. Regula Snort a detectat o mașină de scanare porturi.

În curs

Când dosarul snort.conf gata, puteți lansa Snort. La pornire, puteți specifica mulți parametri care determină totul, de la ieșire la modul de funcționare. Mai întâi, să rulăm Snort cu următorii parametri (în opțiunile Telnet).

pufni -D -A plin

Această comandă pornește Snort ca proces de fundal, astfel încât să puteți continua să lucrați cu shell-ul în pace. Când se declanșează o alarmă, informațiile complete vor fi înregistrate în jurnal.

Acum că Snort funcționează, vă puteți gândi la modalități suplimentare de a vă asigura rețeaua wireless. Să presupunem că poți contacta Kismet- un utilitar similar cu Snort care poate fi implementat ca sistem suplimentar de detectare a intruziunilor. Snort funcționează numai la al treilea strat al modelului OSI - stratul de rețea, care este responsabil pentru IP și alt trafic. Și Kismet funcționează la al doilea nivel - nivelul canalului, responsabil pentru cadrele Ethernet. Astfel, implementarea ambelor sisteme în perechi va crește semnificativ securitatea generală.


Orez. 8. Kismet la serviciu.

Puteți configura Snort pentru a scrie jurnalele într-o bază de date, facilitând analiza ulterioară. a scris Daniel Walther management despre cum să configurați înregistrarea în bazele de date MySQL și PostgreSQL. Dacă utilizați Gentoo Linux pe o mașină care acționează ca un punct de acces, atunci puteți merge mai departe: instalați Apache și configurați afișarea jurnalelor prin web. Pe site Gentoo Wiki Puteți găsi o descriere detaliată a unei astfel de setari.


Orez. 9. Vizualizați jurnalele Snort prin MySQL, ACID și Apache.

Concluzie

Am atins doar principiile de bază ale modului în care funcționează Snort. În principiu, pe baza materialelor din articol, puteți configura sistemul pe un punct de acces. Cu toate acestea, Snort are mult mai multe caracteristici decât cele descrise în articol. În special, puteți crea reguli în mod independent, care va ajuta la integrarea Snort mai profundă în rețea.

În cele din urmă, nu uitați că pentru a vă securiza eficient rețeaua wireless, atât Snort, cât și regulile trebuie menținute la zi. Nu uitați să vizitați regulat Snort Wireless, și urmăritor de pachete ipkg(pentru instalări OpenWRT) sau Pagina cu regulile snort(pentru ceilalti).

Ca și alte instrumente de securitate, Snort nu este un panaceu pentru protejarea rețelei. Acesta este doar unul dintre bastioanele cetății tale. Dar în complexul de apărare funcționează foarte bine.

Articolul va lua în considerare un exemplu de implementare a unui sistem IDS bazat pe OS Debian și Snort pentru monitorizarea perimetrului rețelei interne, inclusiv următoarele subsisteme:
— Serviciu de detectare a intruziunilor Snort;
— Server de baze de date MySQL pentru stocarea înregistrărilor evenimentelor de atac, primite de la Snort;
— interfață pentru analiza, procesarea și vizualizarea evenimentelor Snort (nginx, php5-fpm, BASE).

Instalare și configurare inițială

Optimizarea interfeței de rețea

Să optimizăm interfețele de rețea folosind utilitarul ethtool. Pentru a evita defecțiunile interfeței de rețea sub sarcini mari, să dezactivăm funcțiile de reducere a sarcinii CPU:

# apt-get install ethtool
# nano /etc/rc.local

Ethtool --offload eth1 rx off tx off ethtool -K eth1 gso off ethtool -K eth1 gro off ...

unde „—offload eth1 rx off tx off” — dezactivează detectarea sumei de control pentru pachetele de intrare și de ieșire; și „gso (descarcarea segmentării generice) dezactivată” și „gro (descărcarea de recepție generică) dezactivată” dezactivează funcția de transmitere și recepție a unui pachet fără participarea CPU.

Pregatirea bazei de date

Toate informațiile despre atacurile înregistrate de Snort vor fi stocate în baza de date MySQL. Să efectuăm configurarea inițială:

# mysql -u „rădăcină” -h „IP_SERVER_MYSQL” -p „PAROLA_RĂDINĂ”

Mysql> creați baza de date snort; mysql> acordă CREATE, INSERT, SELECT, DELETE, UPDATE pe snort.* pentru a snort@"SNORT_SERVER_IP_ADDRESS"; mysql> SETĂ PAROLA PENTRU snort@"SNORT_SERVER_IP_ADDRESS"=PAROLA("SNORT_USER_PASSWORD"); mysql> ieșire;

Instalarea Snort

După configurarea inițială a bazei de date, să începem instalarea Snort cu suport MySQL:

# apt-get install snort-mysql

În timpul procesului de instalare, trebuie să specificați modul de lansare Snort (pornire implicită), precum și interfețele și adresele de rețea ale rețelei interne. Dacă este necesar, puteți specifica mai multe interfețe sau adrese separate printr-un spațiu. De exemplu:

Eth1 eth2 eth3 192.168.1.0/24 192.168.2.0/24 192.168.3.1/32

Activăm modul „promiscuous mode”, permițând lui Snort să vizualizeze conținutul pachetelor care trec prin interfețe și, de asemenea, să specificăm parametrii pentru conectarea la baza de date.

Să creăm structura bazei de date Snort:

# cd /usr/share/doc/snort-mysql
# zcat create_mysql.gz | mysql -u"snort" -h"MYSQL_SERVER_IP" -p"SNORT_USER_PASSWORD" snort

Când ați terminat, ștergeți fișierul:

# rm /etc/snort/db-pending-config

și să începem configurarea interfeței web.

Configurarea unui server web

Folosim o combinație de nginx și php5-fpm ca mediu web. Pentru a construi grafice veți avea nevoie și de componenta php5-gd.

# apt-get install nginx-light php5-fpm libphp-adodb php5-gd php-pear
# pear install --alldeps Image_Canvas channel://pear.php.net/Image_Canvas-0.3.5
# pear install --alldeps Image_Graph channel://pear.php.net/Image_Graph-0.8.0

Să setăm TIMEZONE în setările php5-fpm:

# nano /etc/php5/fpm/php.ini

Date.timezone = Europa/Moscova

și, de asemenea, înlocuiți linia:

Error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Error_reporting = E_ALL & ~E_NOTICE

Să configuram vhost:

# cd /etc/nginx/sites-enabled
# mv snort implicit
#nano pufni

Server ( ascultă 8080; server_name snort; root /var/www/snort-base; index index.php; locație @rewrite ( rewrite ^/(.*)$ /index.php?_url=/$1; ) locație ~ \. php$ ( fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; ) )

Vizualizarea atacurilor folosind BASE

Pentru a vizualiza atacurile detectate, instalați BASE (Basic Analysis and Security Engine):

# wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz -qO- | tar xvzpf - -C /var/www/ && mv /var/www/base-1.4.5 /var/www/snort-base
# chmod -R 0770 /var/www/snort-base && chown -hR www-data:www-data /var/www/snort-base

Să repornim serviciile web:

# /etc/init.d/php5-fpm reporniți
# /etc/init.d/nginx reporniți

Să ne conectăm la BASE și să efectuăm inițializarea:

    Calea către adodb: /usr/share/php/adodb;
    Specificați parametrii pentru conectarea la baza de date Snort;
    Să setăm un utilizator pentru autorizare în BASE;
    Procesul de configurare BASE se termină cu crearea tabelului BASE AG - „Creați BASE AG” și făcând clic pe linkul „pasul 5”.

Să alergăm să pufnăm:

# service snort începe

Acum atacurile înregistrate de Snort vor fi salvate în baza de date și accesibile prin interfața web BASE.

În acest moment, procesul de instalare și configurare inițială a sistemului poate fi considerat finalizat.

Configurare Snort avansată

Voi începe cu un citat: „Principala problemă a securității informațiilor, de regulă, nu este asociată cu prezența sistemelor de securitate a informațiilor, ci cu procesarea și analiza rezultatelor muncii lor”. Să încercăm să ne dăm seama cum și după ce criterii Snort generează evenimente și să le optimizăm producția și procesarea, eliminând toate lucrurile inutile.

Fișierele de configurare Snort se află în directorul /etc/snort. Informațiile despre interfețele pe care le ascultă Snort, precum și informațiile de adresare a rețelei specificate în timpul instalării utilitarului, sunt stocate în fișierul snort.debian.conf. Datele pentru conectarea la baza de date se află în fișierul database.conf. Informațiile despre regulile Snort se află în fișierul snort.conf. Să aruncăm o privire mai atentă.

snort.conf

Fișierul de configurare este format din secțiuni:

    1) Setați variabilele de rețea
    2) Configurați decodorul
    3) Configurați motorul de detectare de bază
    4) Configurați biblioteci încărcate dinamic
    5) Configurați preprocesoare
    6) Configurați pluginuri de ieșire
    7) Personalizați-vă setul de reguli
    8) Personalizați setul de reguli pentru preprocesor și decodor
    9) Personalizați setul de reguli pentru obiecte partajate

Să ne uităm la secțiunile principale.

1. Setări și variabile de rețea
În această categorie, puteți indica, de exemplu, adresele de rețea ale rețelelor interne și externe, ale serviciilor utilizate în rețeaua noastră, precum și să grupați astfel de servicii sau gazde, facilitând analiza ulterioară a evenimentelor.

În plus, secțiunea indică locația directorului de reguli Snort, precum și foile albe și negre. Vom reveni la asta puțin mai târziu.

Var RULE_PATH /etc/snort/rules ... var WHITE_LIST_THE /etc/snort/rules var BLACK_LIST_THE /etc/snort/rules

2. Decodoare
Unul dintre primele procese pe care Snort le efectuează asupra unui pachet este procesarea de către decodoare, a căror sarcină este să determine protocolul de bază din pachet (ETHERNET, IP, TCP etc.), cu toate acestea, conținutul pachetului nu este procesat, ci sunt transferate pentru procesare ulterioară către preprocesoare și motoare de detectare.

Exemplu. Să excludem pachetele cu opțiuni IP incorecte din decodor:

Configurare disable_ipopt_alerts

și pachete adresate serverului DNS:

Configurare ignore_ports: 53

3. Configurarea motorului de detectare
Motorul de detectare poate folosi PCRE, o bibliotecă de căutare de modele compatibilă cu Perl. În această secțiune puteți optimiza parametrii de căutare, precum și metoda acesteia.

5. Configurarea preprocesoarelor
Ar fi trebuit să anunț asta chiar de la început, dar vă spun acum - Snort poate funcționa în 2 moduri - inline (IPS) și promiscuous (IDS). În primul caz, Snort poate controla pachetele care trec prin el (schimbare, blocare), în al doilea, poate monitoriza și alerta doar în cazul unei activități suspecte. În setările preprocesorului, unele opțiuni funcționează numai în modul inline, de exemplu, opțiunea preprocesor normalize_ip4 normalizează (ca să spunem așa) pachetele - corectează TTL, TOS etc. Deoarece în contextul acestui articol vorbim despre IDS, vom omite astfel de opțiuni.

Preprocesorul lucrează direct cu conținutul pachetului, folosind seturi de reguli precum http_inspect_server, care definește metoda http, porturile, necesitatea analizei cookie, caractere speciale valide etc. Sunt disponibile și profiluri pentru serverele web.

6. Setări de ieșire
Snort are o funcționalitate de ieșire destul de flexibilă în format syslog, unified2, prelude, tcpdump etc.
În mod implicit, datele sunt scrise în format tcpdump (pcap) în fișierul tcpdump.log. Să comentăm rândul:

Ieșire log_tcpdump: tcpdump.log

Ar fi o idee bună să configurați înregistrarea linie cu linie a alertelor într-un fișier folosind alert_fast:

Ieșire alert_fast: snort.log 10M

Dar, din moment ce avem configurat logare în MySQL, această secțiune nu este foarte relevantă pentru noi.

7. Activarea/dezactivarea regulilor Snort
Această secțiune vă permite să activați și să dezactivați regulile Snort. Variabila $RULE_PATH definită în prima secțiune este folosită ca director pentru plasarea regulilor. Deci, ne-am uitat la configurație, să încercăm să aflăm regulile.

Reguli pentru sforăit

După cum înțelegem, regulile se află în directorul /etc/snort/rules. Să ne uităm la exemplul unei alerte pentru trimiterea de solicitări multicast:

După ce am extins înregistrarea alertei, determinăm latura regulii care a generat alerta.

În acest caz, sid este 527. Să căutăm regula:

# grep "sid:527" -R /etc/snort/rules/

/etc/snort/rules/bad-traffic.rules:alert ip any any -> any any (msg:„TRAFFIC PROAU același SRC/DST”; sameip; referință:bugtraq,2666; referință:cve,1999-0016; reference:url,www.cert.org/advisories/CA-1997-28.html;classtype:bad-unknown;sid:527;rev:8;

Să ne uităm la regula:

    ip - protocol;
    primul „orice orice” este SRCIP și SRCPort, al doilea este DSTIP și, respectiv, DSTPort;
    „->” - indică direcția pachetului, puteți folosi și „”;
    msg:"TRAFICIU PRODUT același SRC/DST" — mesaj generat atunci când este declanșată o alertă;
    parametrul sameip indică faptul că regula ar trebui să fie declanșată dacă SRCIP și DSTIP sunt identice;
    apoi există legături către surse externe de identificare a atacului;
    parametrul classtype definește clasificarea atacului;
    sid — identificatorul unic al regulii;
    Parametrul rev specifică revizuirea acestei reguli.

Pentru a exclude o gazdă din regulă, trebuie doar să adăugați!. Să excludem adresa multicast din regulă:

Alertă ip orice ->! orice (msg:„TRAFIC RĂU la fel SRC/DST”; sameip; referință:bugtraq,2666; referință:cve,1999-0016; referință:url,www.cert.org/advisories/CA-1997-28.html; classtype:bad-necunoscut;sid:527;rev:8;

Să repornim Snort:

# service snort repornire

Să luăm în considerare un alt exemplu - o încercare de a accesa directorul de rezervă pe un server web:

Regula arată astfel:

Alertă tcp $EXTERNAL_NET orice ->

Să adăugăm gazde de administrator la excepție:

Alertă tcp! $EXTERNAL_NET orice -> $HTTP_SERVERS $HTTP_PORTS (msg:„WEB-MISC backup access”; flow:to_server,stabilished; uricontent:”/backup”; nocase; classtype:attempted-recon; sid:1213; rev:5;)

De asemenea, puteți specifica adresele IP ale administratorilor ca variabilă în snort.conf și puteți utiliza o astfel de variabilă pentru a excepta regulile. În plus, Snort folosește foi albe/negre în care puteți specifica adrese IP ale gazdelor și rețelelor. Exemplu:

Reputația preprocesorului: \ blacklist /etc/snort/default.blacklist whitelist /etc/snort/default.whitelist

P.S.
Setul standard de reguli Snort (reguli comunitare) este distribuit gratuit, un set extins care conține cele mai recente semnături ale atacurilor cunoscute este disponibil pentru un abonament plătit.
Un manual detaliat pentru Snort în limba engleză poate fi găsit aici.
Asta e tot! Dacă aveți completări sau comentarii, sunt bucuros să le discut în comentarii.

Snort pentru Windows necesită Windows 2000 sau XP; execuția nu este posibilă pe NT, 98 sau 95. Trebuie instalate și bibliotecile WinPcap. Dacă au fost instalate pentru programe descrise mai devreme în această carte, cum ar fi Ethereal sau WinDump, atunci sunteți gata. În caz contrar, le puteți duce la:

netgroup-serv.polito.it/winpcap

Este posibil să aveți nevoie și de o bază de date MySQL dacă intenționați să importați rezultatele într-o bază de date. Configurația MySQL specifică în acest scop este descrisă în Instrumente de analiză și management.

Pentru ca Snort pentru Windows să funcționeze la fel de bine ca versiunea UNIX, veți avea nevoie de hardware mai puternic. O mașină cu un procesor de 700 MHz este minim, dar un procesor de 1 GHz sau mai mare este mai bine. De asemenea, ar trebui să vă asigurați că serverul Windows este bine protejat, rulând un minim de servicii și eliminând programe care necesită mult procesor, cum ar fi IIS. Utilizați fereastra Servicii din instrumentele administrative din Panoul de control pentru a verifica dacă rulează ceva inutil.

Instalarea Snort pentru Windows

Pentru a instala Snort pentru Windows, luați binarul de pe CD-ul livrat cu cartea sau de pe http://www.snort.org. Faceți dublu clic pe el și se va instala automat. Veți fi întrebat dacă aveți nevoie de o anumită bază de date sau de module suplimentare, cum ar fi modulul Responsive.

Configurarea Snort pentru Windows

Procesul de configurare pentru versiunea Windows a lui Snort este destul de similar cu configurarea UNIX. Toate fișierele de configurare și reguli sunt situate în aceleași subdirectoare relative. Introduceți fișierul snort.conf în subdirectorul etc al instalării dvs. Snort. Schimbați-l și editați-l așa cum este sugerat în secțiunea versiuni UNIX. Apoi accesați fișierele de reguli și faceți modificări acolo. După aceasta, veți fi gata să lansați Snort. Consultați secțiunea Rularea Snort pentru UNIX pentru mai multe informații despre utilizarea Snort pentru Windows, deoarece toate comenzile sunt aceleași. Setările suplimentare și recomandările de plasare sunt aceleași ca pentru versiunea originală UNIX.

Colțul Flamy Tech Coders

Scrierea regulilor de snort personalizate

În timp ce seturile de reguli standard cu care vine Snort oferă suficientă protecție împotriva atacurilor cu semnături cunoscute, puteți crea câteva reguli personalizate specifice rețelei dvs. pentru a profita la maximum de sistemul dumneavoastră de detectare a intruziunilor. Puteți scrie reguli pentru:

  • urmărirea accesului de intrare și de ieșire pentru anumite servere;
  • Căutați anumite tipuri de fișiere sau nume specifice organizației dvs.;
  • monitorizarea anumitor tipuri de trafic care sunt străine rețelei dvs.;

Învățați cum să scrieți reguli pentru Snort este ușor; acest lucru vă va permite să creșteți rapid funcționalitatea programului chiar și în absența cunoștințelor extinse de programare. După cum ați văzut, toate regulile Snort sunt pur și simplu instrucțiuni text într-unul dintre fișierele de reguli.

Dacă doriți ca Snort să detecteze un anumit comportament care ar fi considerat suspect în rețeaua dvs., puteți codifica rapid o regulă și puteți testa imediat acel comportament. Regulile de snort sunt, în esență, linii unice de text care încep cu o acțiune (de obicei alertă) urmată de mai multe argumente. În cea mai nouă versiune (2.0 și mai sus), puteți adăuga mai multe linii prin simpla plasare a unui \ (backslash) la sfârșitul fiecărei linii, cu excepția ultimei. În cazuri mai complexe, puteți apela și alte programe folosind instrucțiunea enable. Dar în forma sa de bază, o regulă Snort are două părți: un antet și parametri. Mai jos este un exemplu de regulă.

alert tcp any any 192.168.0.0/24 \ (conținut:"|00 05 A4 6F 2E|";msg: "Alerta de testare")

Titlul este partea dinaintea primei paranteze. Această instrucțiune conține o acțiune (în cazul nostru - alertă), un protocol, precum și adrese și porturi ale expeditorului și destinatarului. Acțiunea va fi executată dacă condiția specificată de regulă este adevărată. În acest caz, va fi generată o alarmă. Alte opțiuni sunt Log, Pass, Activate și Dynamic.

Protocoalele pot fi tcp, udp, icmp sau ip, ceea ce înseamnă orice protocol IP. (În viitor, pot fi acceptate protocoale non-IP, cum ar fi IPX. Porturile sursă și destinație se explică de la sine. Adresa sursă este pe primul loc și este specificată în notație slash standard pentru intervalul IP. De asemenea, puteți enumera mai multe adrese și rețele individuale, separându-le cu o virgulă fără spații și încadrându-le între paranteze drepte, de exemplu: alertează tcp orice< 80 \ (content: "|00 05 A4 6F 2E|"; msg : "Test Alert";)

Această instrucțiune se concentrează pe traficul care vine de la orice adresă, direcționat către mașini cu adrese 192.168.1.1, 192.168.1.5 și 192.168.1.10 pe portul 80. Presupunând că acestea sunt serverele dvs. web, regula de mai sus va căuta traficul care merge acolo care conține date hexazecimale specificate în secțiunea de conținut.

A doua parte a regulii Snort sunt opțiunile care specifică detalii suplimentare despre traficul detectat. Puteți căuta după un set de câmpuri din antetul TCP/IP (vezi descrierile din „Analizoare de rețea”) sau după sarcina utilă a pachetului. Fiecare opțiune trebuie urmată de ghilimele și de valoarea căutată. Puteți adăuga mai multe opțiuni, separându-le cu punct și virgulă. Următoarele sunt opțiuni valide.

msg Oferă o descriere text a alarmei
logto Scrie pachetul într-un fișier specificat de utilizator în loc de fișierul de ieșire standard
ttl Verifică valoarea câmpului TTL din antetul IP
tos Verifică valoarea câmpului TOS din antetul IP
id Compară valoarea unui câmp ID fragmentîn antetul IP cu valoarea specificată
ipoption Caută câmpuri de opțiuni IP cu coduri specifice
fragbits Verifică biții de fragmentare din antetul IP
dsize Compară dimensiunea încărcăturii de pachete cu valoarea specificată
steaguri Verifică steaguri TCP cu anumite valori
secv Compară un câmp de număr de secvență TCP cu o anumită valoare
ack Verifică un câmp de confirmare TCP cu o anumită valoare
eu scriu Verifică un câmp de tip ICMP cu o anumită valoare
icode Verifică un câmp de cod ICMP cu o anumită valoare
icmp_id Verifică câmpul ICMP ECHO ID cu o anumită valoare.
icmp_seq Verifică numărul de secvență ECHO ICMP cu o anumită valoare
conţinut Caută un model specific în sarcina utilă a pachetului
lista de continut Caută un set specific de modele în încărcarea utilă a pachetului
decalaj Modificator pentru opțiunea de conținut. Specifică decalajul pentru a începe potrivirea modelului
adâncime Modificator pentru opțiunea de conținut. Setează adâncimea maximă de căutare pentru potrivirea modelului
nocase Compară lanțul de conținut anterior fără a ține seama de majuscule și minuscule
sesiune Ieșiți informații la nivel de aplicație pentru o anumită sesiune
rpc Monitorizează serviciile RPC pentru a identifica anumite apeluri de aplicație/procedură
resp Răspuns activ. Închide o conexiune (de exemplu, întrerupând-o)
reacţiona Răspuns activ. Răspunde cu un comportament programat (de exemplu, blocarea anumitor site-uri web)
referinţă ID-urile linkurilor de atac externe
sid Codul regulii Snort
rev Numărul versiunii regulii
tipul clasei ID de clasificare al regulii
prioritate ID-ul severității regulii
uricontent Potrivirea modelului pe porțiunea URI a pachetului
etichetă Pași suplimentari pentru Logare pentru reguli
ip_proto Valoarea protocolului în antetul IP
sameip Stabilește dacă adresele IP sursă și destinație nu sunt egale
Fara stare Aplicabil indiferent de starea curgerii
regex Potrivirea modelelor folosind metacaractere
byte_test Comparație numerică
distanţă Forțează potrivirea modelului relativ să omite un anumit număr de octeți dintr-un pachet.
byte_test Potrivirea modelului numeric
byte_jump Potrivirea modelului numeric și ajustarea părtinirii

Pentru mai multe informații despre fiecare opțiune de regulă, consultați ajutorul online. Mai jos sunt câteva exemple de utilizare a acestor opțiuni pentru a crea reguli personalizate de mesaje Snort, eticheta care apare în jurnalele de semnal. Cert este că ne interesează orice trafic către orice port. Orice acces la serverele de contabilitate care vine din lumea exterioară va fi semnalat, deoarece orice trafic extern către aceste servere este de așteptat să fie considerat rău intenționat.

Exemplul 2 al unei reguli individuale

Pe baza scenariului din Exemplul 1, presupuneți că ar trebui să permiteți un anumit acces extern la serverele de contabilitate, dar să vă asigurați că nimeni nu copiază anumite fișiere. Să presupunem că există un fișier numit payroll.xls care conține toate datele privind salariile (un fișier secret, atât în ​​interiorul, cât și în afara organizației). Puteți scrie o regulă care va monitoriza orice trafic, intern sau extern, direcționat către aceste servere și care conține numele unui fișier secret. Acest lucru se poate face folosind opțiunea de conținut, care caută conținutul real al pachetelor. Regula va arăta cam așa:

alertă tcp! orice< any (content: "payroll.xls";msg: "Попытка доступа к файлу зарплат")

Rețineți că semnul operațiunii! din nou înseamnă că suntem interesați de traficul direcționat către serverele de contabilitate de oriunde, altul decât acele servere. Acest lucru elimină semnalizarea traficului inter-server. De asemenea, rețineți că simbolul \ vă permite să scrieți reguli pe mai multe linii, iar opțiunea de conținut vă permite să căutați text payroll.xls în pachete. Ca rezultat, mașinile server pot avea acces la Internet, dar dacă acel fișier este descărcat vreodată de pe ele, veți fi anunțat.

Folosind alte opțiuni, puteți scrie reguli pentru a detecta aproape orice tip de trafic. Dacă regulile dvs. pot fi de interes pentru alte organizații, merită să le trimiteți dezvoltatorilor Snort pentru a le include în setul oficial de reguli distribuite. Dacă decideți să faceți acest lucru, încercați să folosiți toate mijloacele documentarea cum ar fi msg, sid, rev, classtype și prioritate. De asemenea, testați-vă regulile cu atenție pentru a vă asigura că acoperă de fapt toată activitatea pe care încercați să o surprindeți și nu produc rezultate fals pozitive.

Bine ați revenit hackerilor mei!

În lumea securității informațiilor, cel mai comun sistem de detectare a intruziunilor (IDS) pe care îl veți întâlni în cele din urmă este Snort. După cum probabil știți deja, IDS funcționează similar cu software-ul antivirus - încearcă să identifice software-ul rău intenționat în rețeaua dvs. și vă avertizează cu privire la prezența acestuia.

Snort, creat de Martin Roesch în 1999, a devenit atât de popular încât gigantul de rețele Cisco l-a achiziționat în 2014. Prin urmare, este posibil să îl vedeți pe aproape toate dispozitivele Cisco în viitorul apropiat. Și deoarece Cisco este producătorul celor mai populare dispozitive de rețea, în curând veți găsi Snort peste tot.

Chiar dacă organizația dvs. nu folosește niciodată produse Cisco (ceea ce este puțin probabil) sau Snort, ar trebui să înțelegeți cum funcționează acest IDS, deoarece majoritatea celorlalte sisteme de detectare a intruziunilor funcționează în mod similar.

Am publicat recent câteva articole despre Snort, dar ne-am gândit că ar fi bine să facem o serie întreagă de articole pe această temă. În această serie, ne vom uita la modul de utilizare a Snort de la început până la sfârșit, inclusiv instalarea, configurarea, gestionarea rezultatelor, scrierea regulilor și monitorizarea alertelor.

Să începem!

Metoda 1: Instalați Snort din depozite

Instalarea Snort este ușoară dacă aveți Snort în depozitele sistemului dumneavoastră. Din păcate, nu mai este disponibil în Kali, așa că primul nostru pas este să adăugăm un depozit care are Snort. În acest caz vom adăuga câteva depozite Ubuntu.

Deschideți fișierul /etc/sources.list. Putem face acest lucru folosind orice editor de text (aici vom folosi Leafpad).

Kali> leafpad /etc/apt/sources.list

După cum puteți vedea în captura de ecran de mai sus, am adăugat mai multe depozite Ubuntu, care sunt, de asemenea, enumerate mai jos. Deoarece Ubuntu este un furk al Debian (distribuția Linux principală pe care este construit Kali), majoritatea pachetelor Ubuntu vor funcționa pe Kali.

Deb http://ch.archive.ubuntu.com/ubuntu/ saucy main limited deb-src http://ch.archive.ubuntu.com/ubuntu/ saucy main limited deb http://httpredir.debian.org/debian jessie main deb-src http://httpredir.debian.org/debian jessie main

Pentru a actualiza lista depozitelor noastre, după salvarea fișierului, trebuie să actualizăm în sine lista pachetelor. Putem face acest lucru tastând în consolă:

Kali> apt-get update

Odată ce pachetele noastre sunt actualizate, putem instala pachetul Snort din depozit folosind comanda:

Kali> apt-get install snort

Cam despre asta e. Snort este instalat și gata de funcționare! Pentru a verifica acest lucru, pur și simplu intrați în consolă:

Kali> pufnit -V

În cazul nostru, Snort și-a afișat numărul de versiune (în acest caz, 2.9.2).

Metoda 2: Instalați Snort de la sursă

Instalarea Snort de la sursă este o sarcină mai complexă și mai consumatoare de timp, dar avantajul acestei metode este că Snort va fi compilat special pentru configurația dumneavoastră hardware și software.

Acest lucru vă va oferi o performanță generală mai bună. Ca și în cazul oricărui IDS, performanța este critică. Performanța IDS mai scăzută fie va încetini capacitatea generală de conectare în rețea, fie va duce la pierderi de pachete. În primul caz, veți avea clienți sau utilizatori nemulțumiți, iar în al doilea, vă puneți în pericol securitatea rețelei.

Când utilizați Snort într-un mediu de producție securizat, instalarea de la sursă este de preferat. În plus, instalarea din sursă asigură că instalați cea mai recentă versiune de Snort. Multe dintre depozite conțin versiuni mai vechi. Versiunea actuală de Snort este 2.9.8, iar în depozite este 2.9.2. Este o mică diferență, dar atunci când încercăm să protejăm o „comoară”, fiecare detaliu va fi util.

Să începem prin a crea un director în Kali unde vom încărca codul sursă.

Kali> mkdir snort_source

Atunci să mergem la acest director

Kali> cd snort_source

Înainte de a descărca Snort, trebuie să instalați biblioteca Data Acquisition sau DAQ. DAQ are mai multe dependențe pe care trebuie să le instalăm.

Kali> apt-get install -y bison flex

Acum putem descărca și instala DAQ de pe site-ul web Snort.

Kali> wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz kali> tar -xvzf daq-2.0.6.tar.gz

Apoi să mergem la directorul daq.

Kali> cd daq-2.0.6

În cele din urmă, să configuram DAQ și să apelăm comanda make.

Kali> ./configure kali> make kali> install kali> wget "https://snort.org/snort/snort-2.9.8.0.tar.gz"https://snort.org/snort/snort-2.9.8.0 .tar.gz

După ce este descărcat, va trebui să îl despachetați. (Pentru mai multe informații despre comanda tar, consultați articolul nostru Linux Basics).

Kali>tar -xvzf snort-2.9.8.0.tar.gz

Să mergem la directorul în care se află noile fișiere Snort.

Kali> cd /snort-2.9.8.0

Trebuie să-l configurați.

Kali> ./configure --enable-sourcefire

După aceasta, trebuie să folosim comanda make, care determină care dintre componentele codului sursă trebuie să fie recompilate și apoi îi instruiește să facă acest lucru.

Kali> face

Și în final, facem instalarea (make install). Această comandă preia componentele programului recompilat și le plasează în directoarele corespunzătoare.

Kali> make install

Deoarece am instalat noi fișiere de bibliotecă în timpul procesului de instalare, trebuie să actualizăm bibliotecile partajate. Pentru a face acest lucru, introduceți următoarea comandă în consolă:

Kali>ldconfig

Pentru a rula Snort din orice director, puteți face o legătură simbolică către fișierele binare (executabile) din /usr/local/bin/snort și îl puteți plasa în directorul /usr/sbin, numindu-l snort. Deoarece /usr/sbin se află în PATH, putem introduce Snort oriunde pe sistemul de operare pentru a începe să folosim IDS.

Kali > ln -s /usr/local/bin/snort /usr/sbin/snort

Să verificăm dacă Snort este instalat normal. Pentru a face acest lucru, tastați în consolă:

Kali> pufni

După cum putem vedea, Snort a început și funcționează cu succes în modul de descărcare a pachetelor sau așa-numitul mod sniffer.

Acum că am instalat cu succes Snort, să continuăm configurarea acestuia pentru a detecta malware. Acesta va fi în următorul nostru articol din această serie, așa că asigurați-vă că reveniți!

Negarea răspunderii: Acest articol este scris doar în scopuri educaționale. Autorul sau editorul nu a publicat acest articol în scopuri rău intenționate. Dacă cititorii ar dori să folosească informațiile pentru un câștig personal, autorul și editorul nu sunt responsabili pentru niciun prejudiciu sau daune cauzate.
Acțiune