Tweets by @buherablog
profile for buherator at IT Security Stack Exchange, Q&A for IT security professionals

A BitBetyár Blog

Túljártál a nagyokosok eszén? Küldd be a mutatványodat! (e-mail a buherator gmailkomra jöhet)

Full-Disclosure / Névjegy / Coming out


Promó

H.A.C.K.

Címkék

0day (110) adobe (87) adobe reader (21) anonymous (26) apple (60) az olvasó ír (49) blackhat (20) botnet (22) bug (200) buherablog (44) buhera sörözés (39) bukta (49) deface (38) dns (22) dos (29) esemény (82) facebook (26) firefox (64) flash (33) gondolat (31) google (59) google chrome (36) hacktivity (37) hírek (117) incidens (224) internet explorer (88) iphone (35) java (50) jog (22) kína (21) kriptográfia (68) kultúra (21) linux (24) malware (43) microsoft (142) móka (48) mozilla (23) office (26) oracle (40) os x (43) patch (197) php (20) politika (31) privacy (58) programozás (22) safari (34) sql injection (62) windows (85) xss (77) Címkefelhő

Licensz

Creative Commons Licenc

Slágerlisták

2009.01.17. 11:26 | buherator | 2 komment

A héten megjelent egy, a SANS, az NSA, a Symantec és még egy sor neves szervezet közreműködésével készült, a 25 legveszélyesebb programozói hibát tartalmazó toplista. A gyűjteménynek nagy médiavisszhangja lett, jó eséllyel a Common Weakness Enumeration Top 25 legalább akkora népszerűségre fog szert tenni, mint az OWASP Top 10

Az utóbbi napokban kicsit elfoglalt voltam, mások pedig úgyis megelőztek, ezért nem írtam beharangozót a témában, viszont volt időm kicsit összeszedni a gondolataimat, ráadásul  a médiafigyelem hatására több kritika is megjelent az ilyen és ehhez hasonló listákkal kapcsolatban. Én most igyekszem egy tömör összefoglalót adni arról, hogy milyen fenntartásokkal érdemes kezelni az ilyen jellegű - egyébként sok szempontból bizonyosan hasznos - gyűjteményeket.

Biznisz és Menedzsment

Ritkán írok erről, de ebben az esetben sajnos nem lehet figyelmen kívül hagyni azt, hogy a döntéseket általában nem az egyszeri mérnökök, hanem a főnökség hozza. A főnökség pedig a legritkább esetben van tisztában az alkalmazottak szakterületének mélységeivel, az ilyen n pontos listák viszont úgy tűnhet, hogy jó támpontot adhatnak a mérlegelésben: az elvárt munka jól számonkérhető, ha megvan mind az n darab pipa, akkor a feladatott teljesítettük. De a programozó is kényelmesnek találhatja ezt a megoldást, hiszen ahelyett, hogy minden függvény megírása után végig kellene gondolnia a  már-már beláthatatlan számú futási esetet, egy véges lista áll rendelkezésre az elvárt biztonsági ellenőrzésekről. 

Csak arról vagyunk hajlamosak megfeledkezni, hogy a listánk címe úgy kezdődik, hogy a Leggyakoribb... , vagy Legveszélyesebb..., nem pedig úgy, hogy az Összes... Az n+1. hiba pedig ugyanolyan végzetes lehet, mint a lista tetején álló. Ráadásul az idők változnak: új sebezhetőségtípusok jelennek meg, néhányan pedig lassan kivesznek, és teljesen más hozzáállással kell egy hagyományos C vagy C++ program kódjának átvizsgálásához állni, mint mondjuk egy Java-s webalkalmazáséhoz. Mindez máris problémát okoz, ha valaki csak a kellő számú pipát próbálja összegyűjteni.

Alkalmazhatóság és oktathatóság

De tegyük fel, hogy a listánk kellően átfogó és általános ahhoz, hogy némi mérnöki konzultáció után gyakorlatilag minden felmerülő esetben használható legyen (a CWE Top25 egyébként véleményem szerint erősen közelít ehhez)! Vajon az egyszeri programozó meg fogja tudni ítélni, hogy mi számít "megfelelő bemeneti validációnak"? Vajon a menedzser rá fogja szánni a pénzt egy erős kripto hardverre, ha Béla megoldását azzal a XOR-ral (vagy mivel) már évek óta probléma nélkül használják?

Az ilyen listák tipikusan arról szólnak, hogy mit ne csináljunk, és nem arról, hogy hogyan kellene a feladatokat elvégezni. Tipikus fehérlista-feketelista probléma: könnyű rengeteg kizárandó tevékenységet összegyűjteni, de a listát befejezni szinte lehetetlen; jó metodikát találni ezzel szemben igen nehéz, de ha egyszer sikerült, a siker garantált. Ugyanígy, a jó programozók képzése hosszútávon sokkal hatékonyabb, mintha a botcsinálta kóderbe egyenként kellene beleverni a kismillió hiba elkerülésének módját - sajnos azonban a slágerlisták pontosan ez utóbbi gyakorlatot erősítik. A hosszú évek alatt összegyűlt bugtenger felderítésére önműködő programok írhatók, melyek gyorsabban és biztosabban derítik fel a már ismert hibamintákat - az ismeretleneket azonban csak a programozó szintjén, már bizonyított módszerek átadásával és használatuk kikényszerítésével lehet kivédeni.

PEBKAC

A megfelelő képzes és körültekintés azonban mit sem ér, ha a titkárnő a montirára ragasztja a jelszavát, a könyvelő elhagyja a pendrive-ját, vagy a rendszergazdából előbújik Káosz Professzor.

Nem szabad, hogy úgy érezzük, csak a rosszul megírt programok okozhatnak problémát az IT infrastruktúrában. A legsúlyosabb biztonsági incidensek nagy részéért még mindig az emberi esendőség tehető felelőssé, a CWE Top 25 pedig "az ellen nem véd".

Akit mélyebben érdekel a téma annak tudom ajánlani Gary McGraw cikkét, amely részletes áttekintést nyújt a fenyegetettségi listák történelmét illetve problémáit illetően. 

Címkék: gondolat

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.