Használat helyi gépen:
wget "https://github.com/log69/myscripts/blob/master/ubuntu_integrity_check.rb"
sudo apt install ruby
sudo ruby ubuntu_integrity_check.rb
Integritás ellenőrzés távoli szerverhez:
scp ubuntu_integrity_check* root@server:
ssh root@server "ruby ubuntu_integrity_check.rb"
scp root@server:ubuntu_integrity_check*.yml .
A következőt csinálja:
- első futásra létrehoz egy db-t ubuntu_integrity_check_db.yml néven az összes fájl adataival (jog, módosítás dátuma és hash)
- többszöri futtatáskor ellenőrzi hogy mely fájlok változtak a legutóbbi futás óta és a települt csomag neveket is kiírja
- vannak kivétel mappák, pl. /home stb., lásd a forráskódot
- figyelembe veszi, hogy a db legutolsó módosítása óta mely fájlokat módosította az oprendszer frissítéssel és ezeket nem jelzi
- a dpkg plugin mellé további OS támogatást is bele lehetne tenni, pl. Arch stb.
Nyilván nem ultimate biztonsági megoldás, viszont ha külső forrásba mentem a létrehött db-t hogy ezt ne tudja módosítani semmi (pl. feltolom ssh-n valahová, kb. 6 MB nálam bzip-pel tömörítve), akkor meg tudom nézni hogy egy külső számomra megbízhatatlan szoftver futása óta módosultak-e fontos rendszer fájlok.
Egyelőre U16-on volt időm csak tesztelni. Nálam <2 perc alatt fut elsőre és többedszerre is. Szívesen veszek minden kritikát, tesztelést, ötletet.
Szerk.: szokásos módon a teszt miatt rossz volt a kód, mostantól működik és tesztelve nagyjából.
- log69 blogja
- A hozzászóláshoz be kell jelentkezni
- 928 megtekintés
Hozzászólások
Szóval feltaláltad az rpm -y Debian/Ubuntu változatát :-P Vagy épp az rkhunter egyik funkcióját :-)
- A hozzászóláshoz be kell jelentkezni
Nem feltalálta, megalkotta. És ez utóbbi jó. (Te meg mostanában morgó vén medve lettél.)
- A hozzászóláshoz be kell jelentkezni
Jóv Anna :-P Igazad van, megalkotta. Igaz, a csomagkezelőtől függetlenül, de most már van ilyenje neki :-P
- A hozzászóláshoz be kell jelentkezni
Igazad van egyébként, látom az rkhunter-nek vannak jó funkciói. Mondjuk a debsums-ot is lehet használni integritás ellenőrzéshez, de az csak a csomag fájlokhoz jó tudtommal - a nem oda tartozót nem ellenőrzi - miért is tenné. Gondolom az rpm is "csak" ennyit tud ezen területen, de a saját apró kódot jobban tudom bővíteni és alakítgatni saját igények szerint. Például színezni akarom a kimenetet gyökér mappák alapján.
Lehet teszek bele egy olyan ellenőrző funkciót, amely elemzi és tárolja, hogy mely folyamat mennyi erőforrást használt - és a "normálistól" eltérőt jelzi. Persze a normális érték megállapítása nem egyszerű és sok felé ágazó kérdéskör. (Ugye lehet vizsgálni a futás óta elvett cpu, disk, egyéb I/O stb erőforrást is, ahogy pl. ebben a kódomban is olvasom.). Ehhez vélemény?
- A hozzászóláshoz be kell jelentkezni
Az rpm is csak a csomagból felrakott fájlokat ellenőrzi, de az a csomag ugye aláírt, és a repódata része a checksum az összes fájlra. (Ha a saját magad által forgatott cuccokból csomagot csinálsz, akkor az is belekerül ebbe a körbe.)
Az rkhunter egyrészt ezt használja, másrészt meg a megadott könyvtárakban lévő fájlokra saját maga csinál checksum-ot, és azt rakja el/ellenőrzi.
- A hozzászóláshoz be kell jelentkezni
Igen, az elso feladatot oldja meg a debsums is. Oszinten szolva, en lehet, hogy a checksum szamitast ki is delegalnam neki, mivel pythonban van irva, sokkal kozelebbrol tudja az apt/dpkg API-kat hasznalni, mint egy Rubys cucc barmikor.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni