[megoldva] Bináris integritás ellenőrzés utólagosan Live CD-ről

Fórumok

Üdv,

Neten nem nagyon találtam választ.

Debian-hoz szeretnék olyan script-et vagy megoldást keresni, amelyet egy Live CD-ről futtatva ellenőrizni tudnám egy régóta működő - de viszont teljesen friss update-tel rendelkező rendszer binárisainak integritását.

Mindenképpen utólagos ellenőrzés érdekelne.

Nálam azért merül fel, mert több user rendszerét is karban tartom, ahol néhol több jogosúltságot kellett adnom, mint szerettem volna. Viszont egy ilyen egyszerű módszerrel könnyen infót kaphatnék arról, hogy a user telepítgetései során legalább a rendszer binárisok nem korruptak.

Gondolom csak felmerülhetett már másnál is ilyen igény. Néhány ötlet jól jönne hogy merre keresgessek :)

Mellékesen: FreeBSD-hez is létezhet ilyen?

(debsums, stealth nem megfelelő)

Hozzászólások

Ha jol gondolom neked olyan kell ami az rpm alapu csomagokban van,hogy minden filerol az md5 alapjan tudja hogy valtozott-e.
pl:
Valtozas elott:
[root@fw ~]# rpm -Vv zip
........ /usr/bin/zip
........ /usr/bin/zipcloak
........ /usr/bin/zipnote
........ /usr/bin/zipsplit
........ /usr/share/doc/zip-2.31
........ d /usr/share/doc/zip-2.31/BUGS
........ d /usr/share/doc/zip-2.31/CHANGES
........ d /usr/share/doc/zip-2.31/LICENSE
........ d /usr/share/doc/zip-2.31/MANUAL
........ d /usr/share/doc/zip-2.31/README
........ d /usr/share/doc/zip-2.31/TODO
........ d /usr/share/doc/zip-2.31/WHATSNEW
........ d /usr/share/doc/zip-2.31/WHERE
........ d /usr/share/doc/zip-2.31/algorith.txt
........ d /usr/share/man/man1/zip.1.gz
[root@fw ~]# vi /usr/share/doc/zip-2.31/TODO

Utan:
[root@fw ~]# rpm -Vv zip
........ /usr/bin/zip
........ /usr/bin/zipcloak
........ /usr/bin/zipnote
........ /usr/bin/zipsplit
........ /usr/share/doc/zip-2.31
........ d /usr/share/doc/zip-2.31/BUGS
........ d /usr/share/doc/zip-2.31/CHANGES
........ d /usr/share/doc/zip-2.31/LICENSE
........ d /usr/share/doc/zip-2.31/MANUAL
........ d /usr/share/doc/zip-2.31/README
S.5....T d /usr/share/doc/zip-2.31/TODO
........ d /usr/share/doc/zip-2.31/WHATSNEW
........ d /usr/share/doc/zip-2.31/WHERE
........ d /usr/share/doc/zip-2.31/algorith.txt
........ d /usr/share/man/man1/zip.1.gz

deb alatt ilyen szerintem nincs, de javaslom, hogy ne adj telepitesi jogot az "usernek" mindenhova.

Az is felmegoldas, ha a fileket atnezed egy egyszeru find-el, hogy az adott napon ami neked gyanus valtoztak-e.

Udv

Szijártó Zoltán
Aki tud az alkot, aki nem tud az csak szövegel.

Igen, ez így jó lenne, de úgy szeretném, hogy külső forráshoz hasonlítsa a fájlok hash-eit.

Mert pl. a debsums azt csinálja amit írtál, hogy a debian csomagban van egy .md5sums fájl md5 listával és ahhoz hasonlít, de ugye én azt preferálnám, ha nem a gépen lévő forráshoz hasonlítana, mert imho az is korruptálódhatott már.

pontosítom hogyan képzelem:
1.) lista a telepített csomagokról
2.) csomagok állományinak md5sum-jainak begyűjtése (pl referencia rendszerről, vagy közvetlenül a telepítés után)
3.) md5sum-ok alapján rendszeres ellenőrzés

Ebből a 2. lépés időigényes és húzós lehet.

-TamsA-

Köszi a linkeket. Az utóbbin sok érdekes hozzászólás is volt (mint pl. az integrity ellenőrző binárisa és adatbázisa külső adattárolón való tárolása helyett e két fájl hash-ét tárolni másik gépen). De ezeket már rendszer telepítéskor telepíteni kell és felépíteni az adatbázist.

Az rkhunter meg ugye rootkit-eket keres. Én a bináris fájlok érintetlenségére vagyok kíváncsi.

Na, addig eljutottam, hogy online van egy md5sums.gz ami tartalmazza a teljes debian disztribúció md5 ellenőrző összegeit. Ha minden igaz, elvileg ez a fájl alá van írva digitálisan a Release.gpg fájlban (ahogy kivettem, de még vizsgálom).

Az md5sum elérhető itt pl:
http://ftp.us.debian.org/debian/indices/md5sums.gz

(meg a /var/apt/lists-ben is van Release és Release.gpg, ez is ok)

Viszont ez ugye a .deb fájlok hash-eit tartalmazza. De ugye nekem a .deb csomag fájlon belüli fájlok md5-jei kellenek.

Járható út lenne vajon, ha írnék egy olyan script-et, amely megkeresi a .deb fájlt a gépen, annak ellenőrzi az integritását, majd kicsomagolom átmenetileg, és összevetem a benne található futtatható binárisokat a fájlrendszeren lévőkkel?

Közben látom hogy nem tárolódik az eredeti .deb fájl a gépen.

A /var/lib/dpkg/info/*.md5sums fájlokból könnyen ki tudom greppelni a /bin és a többi könyvtárban lévő binárisok md5sum-jait és ellenőrizni. Eddig egyszerű lenne.

(szerk.: illetve gondolom pontosan ezt teszi a debsums).

Egy kérdésem lenne: hogyan tudnék megbizonyosodni arról egyszerűen, hogy a /var/lib/dpkg/info/ könytár tartalma eredeti értékeket mutat? Megtalálható vajon valahol ezekhez a fájlokhoz digitális aláírás online, vagy pedig a rendszeren?

Es? Egy prod szerverre nem pakolaszik fel az ember minden masodpercben mindenfeleket. Kell rendes upgrade plan, upgrade elott force ellenorzes, gep netrol lekapcsol, apt mirrorszerverre rakapcsol, es apt-get upgrade.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Nem szerverről van szó, hanem desktop-ok karbantartásához szeretnék egy utólagos eljárást, hogy akár fél év múlva meg tudjak legalább a binárisok érintetlenségéről győződni (amit addig nem én használtam). Mert ha korrupt binárissal találkoznék, akkor nem nyúlok a rendszerhez, vagy újratelepítés. Korrupt rendszert nem érdemes javítgatni imho.

Szerveren persze az első telepítés után nálam pl. tripwire. Ott amúgy is csak én telepítek.

Nem életbevágó jelenleg, csak szeretnék a végére járni a dolognak. Karbantartok olyan desktop-okat, amelyeknél szükség volt root jog adására (vagy sudo jogot adnom). És ha esetleg karban kellene még tartanom, akkor jó lenne, ha egyetlen paranccsal meg tudnám hogy a binárisok jók-e. Mivel egyszerű user használja, ezért a rendszerben ezek után megbíznék. Illetve utána futtathatnék anti-rootkit progikat.

Néha kiküszöbölhetetlen, hogy saját jelszavakat használjak idegen rendszeren (ftp-hez, stb.). Persze van vagy 20 pwgen-es jelszavam, de ez egyike lenne néhány olyan megoldásnak, ami hosszú távon sokat spórolna.

Nem igazán találok infót arról, hogy létezne hivatalos MD5SUMS lista az összes fájlról online, nem csak a .deb csomagokról.

Mivel a release verzión van md5 lista a fájlokról és csomagokról, és ez alá is van írva, eddig úgy gondolom a .deb csomag határozottan ellenőrizhető.

De miért nem generálnak le egy md5sum listát az összes csomag összes fájljáról, hogy ha 1 binárist be akarok azonosítani, akkor megtehessem egyszerűen?

Hát azt hittem hogy nagyobb igény van arra, hogy egyszerűen lehessen bináris integritást végezni olyan működő rendszeren, amelyen eredetileg nem volt ilyen telepítve és adatbázis létrehozva.

Amúgyis szar macerás a tripwire is, mert minden csomag frissítés előtt persze futtatni kell, aztán a frissítés után a tripwire adatbázist is frissíteni, meg persze szemmel figyelgetni hogy melyik konfig fájl változott.. (szerk.: meg ugye a tripwire bináris és adatbázis is érintetlen legyen és erről megbizonyosodni, lehetőleg külső adathordozón legyen vagy ellenőrizni a hash-t)

Ezzel szemben egy hivatalosan generált teljes md5 (vagy sha mindegy) listából egyértelműen meg lehetne határozni, hogy legalább a gyári binárisok közül korruptálódott-e valamelyik.
(meg persze alá is írhatnák ezt a fájlt).

Ti mit csináltok, ha egy rendszerről meg kell állapítani, hogy a binárisai rendben vannak-e?

Ti mit csináltok, ha egy rendszerről meg kell állapítani, hogy a binárisai rendben vannak-e?

1. egy adott bináris beazonosítása: dlocate -md5check $csomagnev

2. aptitude install tiger. tiger

De miért nem generálnak le egy md5sum listát az összes csomag összes fájljáról, hogy ha 1 binárist be akarok azonosítani, akkor megtehessem egyszerűen?

dpkg -S el kikeresed a csomagnevet, és dlocate -m5check a csomagra ami azt tartalmazza.

Megtalálható vajon valahol ezekhez a fájlokhoz digitális aláírás online, vagy pedig a rendszeren?

Ez lesz a bukó része a dolognak, mert ezek a fájlok nem részei a normál csomagtartalomnak, így dig aláírásuk sincs.

Ezek a fájlok egyébként túlnyomórészt prerm/postinst szkriptek, melyeket a dpkg az adott csomag telepítésekor/eltávolításakor futtat. futtatás előtt ugye kicsomagolás alapjáraton felülcsapja a tartalmat.

tehát ha mondjuk én átírom a iceweasel postinst szkriptjét, az akkor fut le, ha iceweasel (újra)települ, az aptitude reinstall, viszont eleve felülcsapja a postinst szkriptet a kicsomagolás során , tehát a korábbi "módosított" verziót a "hivatalossal.

Csak akkor nem, ha létrehozok egy olyan csomaghoz postinst szkriptet, amihez amúgy nincsen. (nem minden csomaghoz van).

Bár ha ilyen helyre van írási joga akinek nem kéne, és ilyen fájlokat létre tud hozni, akkor már úgyis root , és becseszett.. ;-)

----------------

20:45 < Mizu> amiota ubuntu van azota csinalja
20:45 < Mizu> debian alatt nem csinalta
20:45 < Mizu> ott mukodott faszan

tiger jónak tűnik, áttekinthető report-ot generált, köszi a tippet.

Azt hiszem attól függetlenül még tovább keresem a megoldást a teljesen megbízható utólagos integritás ellenőrzésre. Ha más nem, akkor megírom majd a script-et, ami egy telepítő DVD-ből megcsinálja a teljes md5sum listát, majd a rendszer binárisokkal összehasonlítja.