Theo de Raadt: a securelevel-ek haszontalanok

Címkék

A SecurityFocus egyik írója, Jason Miller, vélemény rovatában elégedetlenségének adott hangot azzal kapcsolatban, ahogy az OpenBSD fejlesztők, pontosabban a projekt vezetője reagált egy biztonsági hibára.

Nemrég felbukkant egy biztonsági figyelmeztetés, amelyben arról számol be a RedTeam Pentesting csapat, hogy a BSD securelevel megoldás némely implementációjában biztonsági hiba van. Pontosabban az OpenBSD, a FreeBSD és a Linux kernel BSD securelevel implementációja szenved a hibától. A NetBSD nem érintett a hibában. A hiba pontos leírása a bejelentésben található, de nem is ezzel foglalkozik cikkében a szerző. Sokkal inkább azzal, ahogy Theo de Raadt reagált a hiba bejelentésére.

A cikk írója szerint az OpenBSD-sek ahelyett, hogy azon dolgoznának, hogy hogyan tudják a kérdéses hibát kijavítani, elutasítják annak javítását.

Theo a bejelentésre a következőket mondta:

``Sajnálom, mi nem fogunk változtatni semmit. [A] Securelevel-ek haszontalanok."

A FreeBSD-sek azon dolgoznak, hogy hogyan tudják a kérdéses hibát kiküszöbölni.

A cikk írójának az nem tetszik, hogy noha az OpenBSD célként dekralálta azt az irányvonalat, miszerint biztonságos rendszer létrehozására törekszik, mégsem így tesz, hiszen olyan kódot tart a rendszerben, amely sebezhető, ráadásul szerinte használhatatlan is.

Vajon ha a kód sebezhető és amúgy is ``useless'', akkor miért nem dobják ki?

Jason Miller cikke itt.

Hozzászólások

Jason Miller ezek szerint nem ismeri Theo-t. Aki véleményem szerint 2 7 alatt kidobja a seclevelt az OBSD-ből, és iszonyatos fejlesztési erőfeszítések segítségével visszaváltoztatja kedvenc rendszerét kb. a 4.3BSD-Tahoe változat szintjére. (Ja, nem, annak nem volt OpenSSH-ja, meg OpenNNTP-je, meg Open??? -mije is?)

Végülis igaza van Theo-nak...

A securelevel csak akkor ér valamit, ha a kernel 'trusted'. Az idők alatt ezek szerint ő is rájött, hogy az OpenBSD kernele sem az. Ha egy támadó lokális hozzáférést szerzett, akkor egy securelevel nem fogja semmiben sem meggátolni. Remek olvasmány a témában Sinan 'noir' Eren "Smashing The Kernel Stack For Fun And Profit" [www.phrack.org] írása, amely pont egy OpenBSD kernel bugot boncolgat és használ ki többek között chroot-ból való kitörésre és securelevel átállításra.

Az más tészta, hogy miért nem javítják ezt ki, hisz minimális változtatást igényel. Még gondolkodniuk sem kellene sokat (amely számukra néha úgy tűnik elég megterhelő :), csak portolni a megfelelő eljárást/megoldást a NetBSD-ből... ;)

Szerintem a helyzet nem ilyen sötét.

Volt már jailből kijövős/átjárós és mindenféle bug is a BSD-kben és mégis megvannak még. A securelevel dolog szerintem elég hasznos, mert sokmindent tilt/megfog úgy alapjáraton. Azt persze egyáltalán nem biztos, hogy megfogja ha egy megfelelő kernel részben vagy alkalmazásban van hiba és lesz rootshell. Azon viszont segíthet, hogy egyáltalán mekkora károkozást/gondot tud okozni a behatoló.

Aki a törhetetlen, megasecure rendszerben vakon bízik az szerintem inkább húzza ki az UTP kábelt. Aki pedig szeretne mindent megtenni, hogy a rendszere kompromitálását megakadályozza/megnehezítse az szintén tehessen így. Használhasson securelevelt, OpenSSH-t, jaileket. ACL-eket, MAC frameworkot, illetve fekete autót. Az nyilvánvaló, hogy ha bármelyik védelmi vonalon rés támad az kihasználható HA ahhoz hozzáférnek valahogy. (Olyanra gondolok, hogy pl. anno a jail hibát csak 'tetszőleges kódfuttatós' hibával lehetett, ha valami publikus dologban volt ilyen.) Aki pedig az első védelmi vonalakat nem tartja karban, annak szerintem mind1, mert tésztaszűrő lesz, csak talán 2-3 lépéssel több kell.

Szerintem Theo erős iróniával írta amit írt. A leírt hiba erősen teoretikus. Ha egy támadó mountolásig jut el éles rendszeren, az szerintem régen rossz.