Gentoo Logo

1.  AIDE (Advanced Intrusion Detection Environment)

AIDE on konekohtainen hyökkäyksen tunnistusjärjestelmä (HIDS). Se on vapaa vaihtoehto Tripwirelle (jos Tripwire on tuttu, AIDEn asetustenkin pitäisi luonnistua). HIDSejä käytetään tunnistamaan muutoksia tärkeissä asetustiedostoissa ja ohjelmissa. Tämä toteutetaan yleensä ottamalla tiedostoista tiiviste ja tarkastamalla sen samuus. Tiivisteiden yhtäläisyys tallennetun ja tiedostojärjestelmässä olevan tiedoston välillä tarkastetaan säännöllisin väliajoin, että saadaan tiedot muuttuneista tiedostoista. HIDSin avulla voi helposti estää väärät muutokset järjestelmässä, mutta eston toteutus vaatii hieman työtä.

Asetustiedosto perustuu säännöllisiin ilmauksiin, makroihin ja sääntöihin tiedostoille ja hakemistoille. Seuraavat makrot ovat käytettävissä:

Makro Kuvaus Syntaksi
ifdef Jos määritelty @@ifdef "name"
ifndef Jollei määritelty @@ifndef "name"
define Määrittele muuttuja @@define "name" "value"
undef Poista muuttujamäärittely @@undef "name"
ifhost jos ”konenimi” @@ifhost "hostname"
ifnhost jollei ”konenimi” @@ifnhost "hostname"
endif Endif vaaditaan lopettamaan kakki ylläolevat if-makrot @@endif

Makrot tulevat hyödyllisiksi jos käytössä on useita koneita ja AIDEa käytetään niissä kaikissa, mutta kaikki koneet eivät ole samanlaisia.

Seuraavaksi katsotaan asetuksia, joita voi asettaa tiedostoille ja hakemistoille. Nämä ovat oikeuksien yhdistelmiä, tiedostoasetuksia ja tiivisteitä eli tarkastussummia.

Asetus Kuvaus
p oikeudet
i inode
n linkkien määrä
u käyttäjä
g ryhmä
s koko
b lohkomäärä
m muokkausaika (mtime)
a avausaika (atime)
c muutosaika (ctime)
S koon kasvaminen
md5 md5
sha1 sha1
rmd160 rmd160
tiger tiger
R p+i+n+u+g+s+m+c+md5
L p+i+n+u+g
E tyhjä ryhmä
> kasvava loki p+u+g+i+n+S

Jos AIDE on käännetty mhash-tuella, siinä on lisää ominaisuuksia:

Asetus Kuvaus
haval haval
gost gost
crc32 crc32

Näihin perustuen voi tehdä omiakin sääntöjä:

Koodilistaus 1.1: Sääntöjoukkojen teko AIDEssa

All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160

Viimeisenä katsotaan, miten säännöt liitetään tiedostoihin ja hakemistoihin. Sääntö lisätään yhdistämällä tiedoston tai hakemiston nimi sääntöön ja AIDE kerää kaikki alihakemistot rekursiivisesti, jolleivät muut säännöt toisin määrää.

Asetus Kuvaus
! Tätä hakemistoa ei lisätä.
= Tätä hakemistoa ei käydä rekursiivisesti läpi.

Seuraavana kokonainen esimerkki:

Koodilistaus 1.1: /etc/aide/aide.conf

@@ifndef TOPDIR
@@define TOPDIR /
@@endif

@@ifndef AIDEDIR
@@define AIDEDIR /etc/aide
@@endif

@@ifhost smbserv
@@define smbactive
@@endif

# The location of the database to be read.
database=file:@@{AIDEDIR}/aide.db

# The location of the database to be written.
database_out=file:aide.db.new

verbose=20
report_url=stdout

# Rule definition
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160

@@{TOPDIR} Norm
!@@{TOPDIR}etc/aide
!@@{TOPDIR}dev
!@@{TOPDIR}media
!@@{TOPDIR}mnt
!@@{TOPDIR}proc
!@@{TOPDIR}root
!@@{TOPDIR}sys
!@@{TOPDIR}tmp
!@@{TOPDIR}var/log
!@@{TOPDIR}var/run
!@@{TOPDIR}usr/portage
@@ifdef smbactive
!@@{TOPDIR}etc/smb/private/secrets.tdb
@@endif
=@@{TOPDIR}home Norm

Yllä on määritelty makroja juurihakemistolle ja AIDEn hakemistolle. AIDE tarkastaa /etc/aide/aide.db:n tiedostojen eheyttä arvioidessaan. Päivityksessä ja uusia tiedostoja luotaessa tiedot tallennetaan tiedostoon /etc/aide/aide.db.new. Tämä varmistaa ettei vanhaa tietokantaa automaattisesti ylikirjoiteta. Report_URLia ei ole vielä toteutettu, mutta tekijän tarkoitus oli että pitäisi pystyä meilaamaan tai suorittamaan skriptejä.

AIDEn ebuildi sisältää toimivan asetustiedoston, apuriskriptin ja crontabiskriptin. Apuriskripti tekee joitain hyödyllisiä tehtäviä, ja tarjoaa rajapinnan, jota on helpompi muista skripteistä käyttää. Kaikki saatavilla olevat asetukset saa selville komennolla aide --help. Aluksi kannattaa suorittaa aide -i ja crontabiskripti tunnistaa tietokannan sekä lähettelee sähköpostia päivittäin. Kannatta myös säätää /etc/aide/aide.conf ja varmistaa, että asetukset kuvaavat käytössä olevaa konetta.

Huomaa: Suorittimesta, levyn nopeudesta ja muista asetuksista riippuen saattaa kestää tovi.

Huomaa: Muista asettaa alias rootin sähköposteille, että saat AIDEn raportit perille.

Tietokannan tallentaminen paikallisesti on tietenkin hieman riskialtista, sillä hyökkääjä, joka tietää AIDEn olevan asennettu käy tietenkin muokkaamassa tietokantaa, päivittämässä tietokannan tai muokkaamassa ohjelmatiedostoa /usr/bin/aide. Eräs ratkaisu on tehdä CD tai vastaava tallenne ja kopioida ohjelma tietokantoineen sinne.

Lisää tietoja aiheesta löytyy AIDE-projektisivuilta.

1.  Snort

Snort on verkkohyökkäyksen havainnointijärjestelmä (NIDS). Seuraavat esimerkit kuvaavat sen asennuksen ja asetusten teon.

Koodilistaus 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"

Koodilistaus 1.1: /etc/snort/snort.conf

(Askel 1)
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 ./

(Askel 2)
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

(Askel 3)
include classification.config

(Askel 4)
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

Koodilistaus 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

# NEW CLASSIFICATIONS
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

Lisätietoja löytyy Snortin veppisivuilta.

1.  Chkrootkitin käyttö haittaohjelmien tunnistuksessa

HIDSit ovat tehokkaita järjestelmän muutosten havainnointiin, mutta ei koskaan haittaa käyttää muitakin keinoja. Chkrootkit tunnistaa tietyistä järjestelmätiedostoista mahdolliset rootkit, eli sovellukset, jotka piilottavat hyökkääjän toimet ja antavat hänelle vapaan toimimismahdollisuuden, sekä etsii todennäköisiä salasanojen kaappaimia ja muita haittasovelluksia Vaikka chkrootkit ja muut vastaavat, kuten rkhunter ovat hyödyllisiä työkaluja ylläpidossa ja tehdyn hyökkäyksen havainnassa, ne eivät pidä järjestelmää turvassa.

Järkevin tapa käyttää chkrootkitiä on hyökkäysten tarkkailu cronin avulla. Chkrootkit asentuu emergellä ja toimii komennolla chkrootkit, ja suoritetaan cronista vaikkapa seuraavalla asetuksella

Koodilistaus 1.1: Chkrootkitin ajastaminen croniin

0 3 * * * /usr/sbin/chkrootkit

Viimeksi päivitetty 31. toukokuuta 2005

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.