AIDE

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page AIDE and the translation is 100% complete.


Az AIDE (Advanced Intrusion Detection Environment), (fejlett behatolásérzékelő környezet) egy gazdagép alapú behatolásészlelő rendszer. Az AIDE átvizsgálja a fájlokat és egyéb erőforrásokat, és adatbázisban tárolja a fájlokkal kapcsolatos információkat. A tárolt információk közé tartoznak a kulcsfontosságú fájlattribútumok. Például a fájl hash kimenet, a fájl mérete, a tulajdonjog, a módosítási idő, a létrehozási idő stb. A kezdeti adatbázis létrehozása után az AIDE újraellenőrzi a rendszert, és összehasonlítja az új vizsgálati eredményeket a korábban tárolt értékekkel. Ha az értékek eltérnek, akkor a fájl megváltozott, és a változás jelentésre kerül. Az AIDE használatának ötlete az, hogy pillanatfelvételt készítsünk a rendszerről, majd összehasonlítsuk a pillanatképet egy másik időpontban létrehozott pillanatfelvétellel, hogy megtaláljuk a kompromittálódott fájlokat.

Telepítés

USE jelölőzászlók

Az app-forensics/aide telepítése a USE jelölőzászlók megfelelő beállítása után egyszerű.

Egy bizonyos csomagra jellemző USE jelölőzászló módosításait az /etc/portage/package.use fájlban vagy egy /etc/portage/package.use nevű könyvtárban található szövegfájlban kell meghatározni. Például egy /etc/portage/package.use fájl használatakor:

FILE /etc/portage/package.useEnable zlib support for AIDE
app-forensics/aide zlib

Emerge

A USE jelölőzászlók beállítása után telepítse a szoftvert:

root #emerge --ask app-forensics/aide

Konfiguráció

Áttekintés

Az app-forensics/aide konfigurációs fájlja nem olyan ijesztő, mint amilyennek első látásra tűnik. Az alapértelmezett fájl az /etc/aide/aide.conf helyen található, de a rendszergazdák szükség esetén könnyen létrehozhatnak több konfigurációs fájlt. Néhány változó mellett a konfigurációs fájl rövidített jelöléseket tartalmaz arra vonatkozóan, hogy a fájlok milyen szempontjait kell keresni (csak hash kivonatokat, vagy inode-információkat is stb.), és mely fájlokat kell vizsgálni.

Nézze meg az adatbázis változókat:

FILE aide.confAIDE database configuration variables
database=file:/var/lib/aide/aide.db
database_out=file:/var/lib/aide/aide.db.new

A fenti példa első sora (database) meghatározza, hogy hol található az ismert értékeket tartalmazó adatbázis helye. A második sor (database_out) meghatározza, hogy hol kell tárolni az új adatbázisokat, amikor egy másikat generál. Általában nem ajánlott, hogy ezek a változók ugyanarra az adatbázisra mutassanak (minden változóhoz ugyanaz az útvonal). Ha az egyik adatbázis felülírja a másikat, akkor a legjobb módszer az előállított adatbázis manuális átmásolása egyik helyről a másikra. Például, ezt a parancsot használhatjuk azért, hogy az első adatbázist felülírjuk a másodikkal:

root #cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Egyelőre hagyja az adatbázis-változókat úgy, ahogy vannak. A cikk későbbi részében részletesebben foglalkozunk velük.

Ezután vegyük fontolóra azokat a változókat, amelyek rövid jelölések arra vonatkozóan, hogy milyen információkat kell rögzíteni az adatbázisban.

FILE aide.confAIDE configuration using shorthand notation
Binlib = p+i+n+u+g+s+b+m+c+md5+sha1
Logs = p+i+n+u+g+S
...
Note
Nyilvánvalónak kell lennie, hogy az md5 és sha1 azt jelenti, hogy az MD5 és az SHA-1 ellenőrzőösszegek vannak használva.

A betűket az alapértelmezett aide.conf fájl írja le, de a kényelem kedvéért a következő táblázat áttekintést nyújt a leggyakoribb lehetőségekről:

Short Leírás
p Jogosultságok
i inode szám
n (Hard)linkek száma
u Felhasználó információ
g Csoport információ
s Méret
S Méret (akkor jelez amikor a méret hirtelen lefelé csökken - a növekedés megengedett)
b Blokk számláló
m Módosítási idő

A következő áttekintés arról, hogy mely könyvtárakat és mit keressen. A követendő háromsoros példában az AIDE utasítja a /bin és /sbin könyvtárat a Binlib rövid jelölési változóban azonosított mértékek segítségével. A /var/log fájl megjeleníti a vizsgálati méréseket a fent definiált Logs változóban meghatározottak alapján.

FILE aide.confScan target options
/bin Binlib
/sbin Binlib
/var/log Logs
...

Az AIDE támogatja a reguláris kifejezéseket, és a felhasználók "eltávolíthatják" az egyezéseket. Például azért, hogy a /var/log vizsgálva legyen, de a /var/log/portage ne legyen vizsgálva, a felkiáltójelet (!) kell használni a kizárt útvonalak előtt:

FILE aide.confOther scan targets
/var/log Logs
!/var/log/portage

Részletes opciók

A konfigurációs fájl reguláris kifejezéseken, makrókon és fájlok és könyvtárak szabályain alapul. A tripwire solution használatában tapasztalt felhasználóknak nem okoz nehézséget a segéd konfigurációs fájljának kezelése. A következő makrók állnak rendelkezésre:

Makró Leírás Szintaxis
ifdef Ha definiálva van @@ifdef "name"
ifndef Ha nincs definiálva @@ifndef "name"
define Define a variable @@define "name" "value"
undef Egy változó undefiniálása @@undef "name"
ifhost Ha "hostname" @@ifhost "hostname"
ifnhost Ha nem "hostname" @@ifnhost "hostname"
endif Az endif-et a fenti makrók bármelyike ​​után kell használni, kivéve a define és az undef @@endif

Ezek a makrók nagyon hasznosak lehetnek, ha több Gentoo számítógépet kezelünk, miközben ugyanazt a konfigurációt használjuk mindegyiken. Nem minden számítógép futtatja ugyanazokat a szolgáltatásokat, sőt nem is mindig ugyanazok a felhasználók.

Ezután van egy zászlókészletünk, amely azonosítja az engedélyeket, fájltulajdonságokat, ellenőrző összegeket, kriptográfiai hash-eket, ... a fájlok és könyvtárak érvényesítéséhez.

Jelölés Leírás
p jogosultság
i inode
n linkek száma
u felhasználó
g csoport
s méret
b blokk számláló
m midő
a aidő
c cidő
S méretnövekedés ellenőrzése
md5 md5 checksum
sha1 sha1 checksum
rmd160 rmd160 checksum
tiger tiger checksum
R p+i+n+u+g+s+m+c+md5
L p+i+n+u+g
E Üres csoport
> Naplófájl növekedés p+u+g+i+n+S

Ha az AIDE az mhash támogatással van lefordítva, akkor a következő jelölések is használhatók:

Jelölés Leírás
haval haval checksum
gost gost checksum
crc32 crc32 checksum

Inicializálás és szkennelési gyakoriság

Egy alap AIDE beállításhoz egy adatbázist kell inicializálni. Ezt a --init kapcsolóval hajtjuk végre. Annak érdekében, hogy az AIDE az előző szakaszokban meghatározott konfigurációs beállításokat használja, ügyeljen arra, hogy a --config kapcsoló a megfelelő konfigurációs fájlra mutasson:

root #aide --init --config=/etc/aide/aide.conf
AIDE, version 0.14.2
  
### AIDE database at /var/lib/aide/aide.db.new initialized.

Az inicializálást követően bármely már előzőleg létező adatbázisfájl átmásolható:

root #cd /var/lib/aide; cp aide.db.new aide.db

Ha az új adatbázis rendelkezésre áll, akkor a bejegyzések újra átvizsgálhatók (most vagy egy későbbi időpontban) a --check opcióval. Ezzel egy másik adatbázist hoz létre, amely tartalmazza a fájlrendszeren az első adatbázis létrehozása óta végrehajtott módosításokat. Ügyeljen arra, hogy a --config opciót használja, amely ugyanarra a konfigurációs fájlra mutat, amellyel az első adatbázist létrehozták:

root #aide --check --config=/etc/aide/aide.conf
AIDE, version 0.14.2
  
### All files match AIDE database. Looks okay!

Ha fájlmódosítás(ok) történt(ek), akkor értesítés lesz küldve. Ha egyáltalán nem létezik kezdeti adatbázis, akkor figyelmeztetés jelenik meg, mint például:

root #aide --init --config=/etc/aide/aide.conf
Couldn't open file /var/lib/aide/aide.db.new for writing

Ez nem valós hiba, és egyszerűen csak segít kijelenteni, hogy nincs adatbázis találva, ezért létre kell hoznia egyet. Ez több percig is eltarthat.

root #aide --check --config=/etc/aide/aide.conf
AIDE found differences between database and filesystem!!
Start timestamp: 2013-04-11 15:31:02
  
Summary:
  Total number of files:        318
  Added files:                  0
  Removed files:                0
  Changed files:                2
  
  
---------------------------------------------------
Changed files:
---------------------------------------------------
  
changed: /etc/pam.d
changed: /etc/pam.d/run_init
  
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
  
  
Directory: /etc/pam.d
  Mtime    : 2013-04-09 22:11:18              , 2013-04-11 15:31:01
  Ctime    : 2013-04-09 22:11:18              , 2013-04-11 15:31:01
  
File: /etc/pam.d/run_init
  Size     : 205                              , 208
  Mtime    : 2013-04-09 22:11:18              , 2013-04-11 15:31:00
  Ctime    : 2013-04-09 22:11:18              , 2013-04-11 15:31:01
  Inode    : 394203                           , 394053
  MD5      : Mm0KPzpPt63eqGClTJ/KaQ==         , eLUrP2BsIq25f3AZX+dlBA==
  SHA1     : NrQtsUeOsXS4RHUq+ejYBne5V6E=     , 5A6ef6VJCcMiqEjKQ7e9xkBNZB8=

Legjobb gyakorlatok

Legyen egyértelmű, hogy mit kell átvizsgálni

Az alapértelmezett AIDE konfiguráció hasznos, de finomítani kell, hogy megfeleljen a felhasználók igényeinek. Fontos tudni, hogy mely fájlokat kell vizsgálni és miért.

Ha például az összes hitelesítéssel kapcsolatos fájlt keresni szeretné, de más fájlokat nem, akkor használja a következő konfigurációt:

FILE aide.confauthentication-related scan targets
# SELinux policy and settings
/etc/selinux ConfFiles
# Authentication databases
/etc/passwd ConfFiles
/etc/shadow ConfFiles
/etc/nsswitch.conf ConfFiles
# Authentication configuration
/etc/pam.d ConfFiles
/etc/securetty ConfFiles
/etc/security ConfFiles
# PAM libraries
/lib(64)?/security Binlib

Tartsa az adatbázist offline és csak-olvasható állapotban

Egy másik fontos szempont, hogy az eredmény-adatbázist offline kell tárolni, amikor nincs rá szükség, és csak-olvasható (read only) módban kell használni, amikor az adatbázisra szükség van. Ez némi védelmet nyújt egy rosszindulatú felhasználóval szemben, amely feltörhette a számítógépet, és éppen módosítani szeretné az eredmény-adatbázist. Például adja meg az eredmény-adatbázist egy csak olvasható NFS mount csatoláson (kiszolgálókhoz) vagy csak olvasható adathordozón (ha lehetséges a géphez való fizikai hozzáférés). Például CD/DVD-n vagy csak olvasható USB-meghajtón.

Miután az adatbázist csak-olvasható helyen tárolta el, frissítse az aide.conf fájlt, hogy az adatbázis erre az új helyre mutasson.

Végezzen offline szkennelést

Adott esetben próbáljon meg offline szkennelési módszereket használni a rendszeren. Virtuális platformok esetén lehetséges, hogy pillanatképet készítsünk a rendszerről. Mountolással felcsatoljuk ezt a pillanatképet (csak-olvasható módon), majd lefuttatjuk az AIDE vizsgálatot a csatlakoztatott fájlrendszeren.

root #losetup /dev/loop0 /srv/virt/gentoo.img
root #vgscan
root #vgchange -ay
root #mount -o ro /dev/volgrpX/volumeY /mnt/image
root #chroot /mnt/image
root #aide --check --config=/path/to/aide.conf
root #exit
root #umount /mnt/image
root #vgchange -an /dev/volgrpX
root #losetup -d /dev/loop0

A fenti megközelítés a chroot kifejezést használja. Erre csak akkor van szükség, ha a kezdeti fájlrendszer ellenőrzése megtörtént az élő rendszerről, és a rendszergazda offline ellenőrzést szeretne végezni. Ha a kezdeti vizsgálat offline módban történt, akkor a aide.conf fájl már a felcsatolási pontra mutat, és az adatbázis azonnal használni fogja ezeket az útvonalakat, így nincs szükség chroot-olásra.

További olvasnivaló a témában

Külső források