|
1.
AIDE (Advanced Intrusion Detection Environment)
AIDE este un sistem Host-Based Intrusion Detection System (HIDS), o alternativă
gratuită la Tripwire (dacă deja cunoaşteţi Tripwire nu ar trebui să întâmpinaţi
dificultăţi în învăţarea configurării AIDE). Sistemele HIDS sunt utilizate în
detecţia modificărilor în fişierele de configurare generale ale sistemului şi a
binarelor, în general prin crearea unei semnături criptografice unice pentru
fişierele şi stocarea acestora într-o locaţie sigură. În mod regulat (cum ar
fi, zilnic), semnătura stocată ştiută a fi corectă este comparată cu cea
generată din copia curentă a fiecărui fişier, pentru a determina dacă fişierul
a fost modificat. Sistemele HIDS sunt o modalitate bună de a detecta
modificările nepermise sistemului dvs., dar necesită mai multă muncă pentru a
le implementa şi utiliza corect.
Fişierul de configurare este bazat pe expresii regulate, macro-uri şi reguli
pentru fişiere şi directoare. Avem următoarele macro-uri:
| Macro |
Descriere |
Sintaxă |
| ifdef |
Dacă a fost definit |
@@ifdef "nume" |
| ifndef |
Dacă nu a fost definit |
@@ifndef "nume" |
| define |
Defineşte o variabilă |
@@define "nume" "valoare" |
| undef |
Indefineşte o variabilă |
@@undef "nume" |
| ifhost |
Dacă "hostname" |
@@ifhost "hostname" |
| ifnhost |
Dacă nu "hostname" |
@@ifnhost "hostname" |
| endif |
Endif trebuie utilizat după fiecare din macro-urile anterior, cu excepţia
define şi undef
|
@@endif |
Aceste macro-uri devin foarte la îndemână, dacă aveţi mai mult de un sistem
Gentoo şi doriţi să utilizaţi AIDE pe toate. Dar nu toate maşinile rulează
aceleaşi servicii şi nici măcar aceeaşi utilizatori.
Apoi, avem seturi de indicatori de verificare pentru fişiere şi directoare.
Acestea reprezintă combinaţii de permisiuni, proprietăţi ale fişierelor şi
semnături criptografice (spre ex. sume de control).
| Indicator |
Descriere |
| p |
permisiuni |
| i |
inod |
| n |
numărul de link-uri |
| u |
utilizator |
| g |
grup |
| s |
mărime |
| b |
numărul de blocuri |
| m |
mtime (timpul modificării) |
| a |
atime (timpul accesului) |
| c |
ctime (timpul creării) |
| S |
verificarea mărimii de creştere |
| md5 |
suma de control md5 |
| sha1 |
suma de control sha1 |
| rmd160 |
suma de control rmd160 |
| tiger |
suma de control tiger |
| R |
p+i+n+u+g+s+m+c+md5 |
| L |
p+i+n+u+g |
| E |
Grup gol |
| > |
Creşterea fişierul jurnal p+u+g+i+n+S |
Iar, dacă AIDE este compilat cu suport mhash, atunci mai suportă încă unele
funcţionalităţi:
| Indicator |
Descriere |
| haval |
suma de control |
| gost |
suma de control gost |
| crc32 |
suma de control crc32 |
Acum, vă puteţi crea propriile dvs. reguli pe baza indicatorilor explicaţi
anterior prin combinarea lor, ca în următorul exemplu:
Cod 1.1: Crearea unui set de reguli pentru AIDE |
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160
|
Ultimul lucru pentru crearea fişierului de configurare este să vedem cu să
adăugăm o regulă unui fişier sau director. Pentru a introduce o regulă,
combinaţi numele fişierului sau directorului şi regula. AIDE va adăuga
fişierele recursiv, dacă nu specificaţi o regulă alternativă.
| Indicatori |
Descriere |
| ! |
Nu adaugă acest fişier sau director. |
| = |
Adaugă acest director, dar nu recursiv. |
Deci, haideţi să vedem un exemplu complet:
Cod 1.1: /etc/aide/aide.conf |
@@ifndef TOPDIR
@@define TOPDIR /
@@endif
@@ifndef AIDEDIR
@@define AIDEDIR /etc/aide
@@endif
@@ifhost smbserv
@@define smbactive
@@endif
# Locaţia bazei de date ce trebuie citită.
database=file:@@{AIDEDIR}/aide.db
# Locaţia bazei de date ce trebuie scrisă.
database_out=file:aide.db.new
verbose=20
report_url=stdout
# Definiţia regulilor
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160
@@{TOPDIR} Norm
!@@{TOPDIR}etc/aide
!@@{TOPDIR}dev
!@@{TOPDIR}proc
!@@{TOPDIR}root
!@@{TOPDIR}tmp
!@@{TOPDIR}var/log
!@@{TOPDIR}var/run
!@@{TOPDIR}usr/portage
@@ifdef smbactive
!@@{TOPDIR}etc/smb/private/secrets.tdb
@@endif
=@@{TOPDIR}home Norm
|
În exemplul de mai sus, specificăm în unele macro-uri, de unde începe
directorul superior şi unde este localizat directorul AIDE. AIDE compară
fişierul /etc/aide/aide.db când verifică integritatea fişierului.
Dar, când actualizează sau crează un fişier nou, acesta stochează informaţia în
/etc/aide/aide.db.new. Acesta pentru ca să nu suprascrie automat
fişierul db vechi. Opţiunea report_URL nu este implementată, încă, dar
intenţia autorului a fost să poată trimite un email sau chiar să execute
script-uri.
Fişierul ebuild pentru pachetul AIDE conţine, acum, un fişier de
configurare funcţional, un script ajutător şi un script pentru crontab.
Script-ul ajutător efectuează un număr de sarcini pentru dvs. şi
oferă o interfaţă ce este mai mult prietenoasă pentru script-uri. Pentru
a observa toate opţiunile disponibile, încercaţi aideinit --help.
Pentru a începe, tot ceea ce trebuie făcut este să executaţi aideinit
-i şi script-ul crontab ar trebui să detecteze baza de date şi să
trimită mesajele corespunzătoare în fiecare zi. Vă recomandăm să
revizuiţi fişierul /etc/aide/aide.conf pentru a vă asigura
că această configuraţie reflectă în mod exact ceea ce este potrivit
pentru maşină.
Notă:
În funcţie de procesorul dvs., viteza de acces la disc şi indicatorii pe care
i-aţi setat pe fişiere, această operaţie poate dura ceva timp.
|
Notă:
Aminitiţi-vă să setaţi un alias pentru a putea verifica mesajele utilizatorului
root. Altfel, nu veţi şti niciodată ce raportează AIDE.
|
Acum, există un risc inerent când stocaţi fişierele db local, deoarece
atacatorul (dacă ştie că AIDE este instalat) mai mult ca sigur va încerca să vă
altereze fişierul db, să îl actualizeze sau să modifice
/usr/bin/aide. Deci, va trebui să creaţi un CD sau un alt suport
media şi să stocaţi o copie a fişierului .db şi binarele AIDE.
Se pot găsi informaţii pe pagina proiectului AIDE.
1.
Snort
Snort este un Network Intrusion Detection System (NIDS) - Sistem de Detecţie a
Intruziunii în Reţea. Pentru a-l instala şi configura, utilizaţi următoarele
exemple.
Cod 1.1: /etc/conf.d/snort |
PIDFILE=/var/run/snort_eth0.pid
MODE="full"
NETWORK="10.0.0.0/24"
LOGDIR="/var/log/snort"
CONF=/etc/snort/snort.conf
SNORT_OPTS="-D -s -u snort -dev -l $LOGDIR -h $NETWORK -c $CONF"
|
Cod 1.1: /etc/snort/snort.conf |
var HOME_NET 10.0.0.0/24
var EXTERNAL_NET any
var SMTP $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var DNS_SERVERS [10.0.0.2/32,212.242.40.51/32]
var RULE_PATH ./
preprocessor frag2
preprocessor stream4: detect_scans detect_state_problems detect_scans disable_evasion_alerts
preprocessor stream4_reassemble: ports all
preprocessor http_decode: 80 8080 unicode iis_alt_unicode double_encode iis_flip_slash full_whitespace
preprocessor rpc_decode: 111 32771
preprocessor bo: -nobrute
preprocessor telnet_decode
include classification.config
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/telnet.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/rservices.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/tftp.rules
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/sql.rules
include $RULE_PATH/x11.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/attack-responses.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/shellcode.rules
include $RULE_PATH/policy.rules
include $RULE_PATH/porn.rules
include $RULE_PATH/info.rules
include $RULE_PATH/icmp-info.rules
include $RULE_PATH/virus.rules
# include $RULE_PATH/experimental.rules
include $RULE_PATH/local.rules
|
Cod 1.1: /etc/snort/classification.config |
config classification: not-suspicious,Not Suspicious Traffic,3
config classification: unknown,Unknown Traffic,3
config classification: bad-unknown,Potentially Bad Traffic, 2
config classification: attempted-recon,Attempted Information Leak,2
config classification: successful-recon-limited,Information Leak,2
config classification: successful-recon-largescale,Large Scale Information Leak,2
config classification: attempted-dos,Attempted Denial of Service,2
config classification: successful-dos,Denial of Service,2
config classification: attempted-user,Attempted User Privilege Gain,1
config classification: unsuccessful-user,Unsuccessful User Privilege Gain,1
config classification: successful-user,Successful User Privilege Gain,1
config classification: attempted-admin,Attempted Administrator Privilege Gain,1
config classification: successful-admin,Successful Administrator Privilege Gain,1
# CLASIFICĂRI NOI
config classification: rpc-portmap-decode,Decode of an RPC Query,2
config classification: shellcode-detect,Executable code was detected,1
config classification: string-detect,A suspicious string was detected,3
config classification: suspicious-filename-detect,A suspicious filename was detected,2
config classification: suspicious-login,An attempted login using a suspicious username was detected,2
config classification: system-call-detect,A system call was detected,2
config classification: tcp-connection,A TCP connection was detected,4
config classification: trojan-activity,A Network Trojan was detected, 1
config classification: unusual-client-port-connection,A client was using an unusual port,2
config classification: network-scan,Detection of a Network Scan,3
config classification: denial-of-service,Detection of a Denial of Service Attack,2
config classification: non-standard-protocol,Detection of a non-standard protocol or event,2
config classification: protocol-command-decode,Generic Protocol Command Decode,3
config classification: web-application-activity,access to a potentially vulnerable web application,2
config classification: web-application-attack,Web Application Attack,1
config classification: misc-activity,Misc activity,3
config classification: misc-attack,Misc Attack,2
config classification: icmp-event,Generic ICMP event,3
config classification: kickass-porn,SCORE! Get the lotion!,1
|
Mai multe informaţii pot fi găsite pe site-ul Snort.
1.
Detecţia aplicaţiilor malware şi chkrootkit
Sistemele HIDS, ca AIDE au o metodă bună de detecţie a modificărilor efectuate
în sistemul dvs., dar nu strică să mai deţinem o linie de apărare.
chkrootkit este un utilitar ce scanează fişierele de sistem comune
pentru prezenţa codurilor rootkit -- aplicaţii proiectate să ascundă acţiunile
unui intrus şi să îi permită să îşi menţină accesul -- şi vă scanează sistemul
pentru urme cunoscute ale aplicaţiilor de tip keylogger (ce reţin tastele
apăsate) şi a altor aplicaţii "malware" (cu caracter maliţios). În timp
chkrootkit (şi alte alternative, precum rkhunter) sunt utilitare
folositoare, atât pentru mentenanţa sistemului cât şi pentru urmărirea
intruşilor după ce a fost desfăşurat un atac, ele nu vă pot garanta că sistemul
dvs. este sigur.
Cea mai bună soluţie să utilizaţi chkrootkit pentru a detecta o
intruziune, este să-l rulaţi regulat prin intermediul cron. Pentru a
începe, instalaţi app-admin/chkrootkit. chkrootkit poate fi
rulat din linia de comandă prin comanda cu acelaşi nume, sau din cron
printr-o intrare similară cu următoarea:
Cod 1.1: Programarea chkrootkit prin intermediul cron |
0 3 * * * /usr/sbin/chkrootkit
|
|
Actualizat la 23 Noiembrie 2005 |
Versiunea originală a acestui document a fost actualizată ultima dată la 19 Iulie 2010 |
|
Donate to support our development efforts.
|
|
|