Kernelpatch ismert exploitokkal való próbálkozások detektálására

Címkék

Az Oracle alkalmazásában álló Vegard Nossum egy kernelpatchet küldött a minap az LKML-re, ami egy egyszerű ötletet valósít meg: a támadó (felhasználó vagy program) gyakran több különböző exploitot is kipróbálhat, mielőtt sikerrel jár. A Vegard által beküldött kód a rendszeradminisztrátornak "jelent", ha valaki (vagy valami) egy már korábban kijavított sebezhetőségre rápróbál valamilyen ismert, publikus exploittal. Támadás detektálása esetén üzenet kerül a kernel logba.

Részletek bejelentésben. Az egyébként még fizetős LWN cikk most a HUP olvasóknak ingyen elérhető.

Hozzászólások

Local script kiddie-k ellen biztos jó lesz. Sejti valaki, hogy a remote exploitok mekkora hányada olyan, ami önmagában nem elég a sikerhez, és további exploitokkal kell próbálkozni? Mert ha van egy 0day, és adott gépen bejutnak vele, akkor azt így önmagában nem fogják elkapni, pont azért, mert az a 0day ott még javítatlan.

--

Az túlzás, hogy semmi értelme, de nem vagyok meggyőzve, hogy ez a fajta próbálkozás lenne a gyakoribb. Arra célzok, hogy egy rendesen patchelt gépen kevésbé fognak próbálkozni, de csak szerintem. Ha kijön egy 0day remote exploit, akkor pár botnet végigszalad az összes IP-n, és felnyomnak mindenkit, aki útjukba kerül, és 0day lévén nem lesz detektálva. Ha már egyszer valaki bejutott egy gépre jogosulatlanul, de még nincs rootja (webes exploitok szerveren, buta user által letöltött vírusos futtatható állományok desktopon), akkor könnyen fel tudja deríteni, hogy miből milyen verzió van fent, és mi fog jó eséllyel eredményre vezetni. Akinek rendesen jogot adtak egy gépre, az pedig még kevésbé fog próbálkozni, hiszen tudják róla, hogy kicsoda.

--

Nagyon sok esetben (nincs statisztikám, de érzésre a túlnyomó többségben) a támadók először felhasználói jogot szereznek. Ritka ma már a hálózatról támadható kernel szintű hiba és a root-ként futó szerver. Ha meg user van, akkor lehet privilégium szintet emelgetni, arra jók az ilyen támadások. A való világban a nem legutolsó kernel sajnos nagyon is gyakori. Nem lehet akármikor reboot. Tervezett leállás kell, amit egyáltalán nem egyszerű egyeztetni, egy nagyobb szervezetnél simán hetekig is eltarthat. Vagy egyszerű üzemeltetői túlterheltség, alul szabályozottság, trehányság miatt. Aki üzemeltetett valós rendszereket, az tudja, miről beszélek. Emiatt sajnos nem ritkák a nagyon nagy uptime-ok. Ezért az ilyen detektáló rendszer nagyon is hasznos.

ezzel az erővel lehetne egy kernel verzió randomizáló is.... hogy nehezebb legyen a :
1. próbálkozó scriptkiddie-nek eldönteni, hogy melyik 0day-t futtassa a sok közül :-D

2. a felhasználóknak ne sikerüljön használható bugreport-ot adni :-D.

minden esetre hajrá, hátha a kihoznak valami használható fail2ban jellegű cuccot kernelhez is. Egy szóval nem vagyok a fejlődés útjába, de első hallásra nem tűnik ebben a formában túl hasznosnak.