iki | 85.162.243.183/127.0.0.* | 9.10.2011 15:08 |
| Par poznamek, ktere clovek ziska v praktickem provozu u vetsich a zajimavejsich aplikaci. Dulezite je pripomenout, ze prace programatora se na tvorbe zranitelnosti podili jen castecne, protoze programator ma sanci ovlivnit jen (malou) cast zivotniho cyklu SW. Nezanedbatelny podil maji provozaci aplikace, jeji uzivatele, rizeni vyvoje, autori zadani a zmen, architekti okolniho prostredi. Jednotlivi lide, kteri se pohybuji okolo SW mezi sebou nekomunikuji, neresi dokumentaci a tyhle mezilidske diry jsou pro netradicnim pouhle na vec ty nejzajimavejsi.
Jednou z nejdůležitějších věcí pro každého hackera, ale i programátora je znalost systému. Ve chvíli kdy daný systém dokonale poznáte na úrovni tvůrce systému pro vás většinou nebývá problém vidět chyby a zjistit jak je zneužít.
Ve skutecnosti programator zpravidla nezna ani vsechny vrstvy frameworku, ktere pouziva. Dobu, kterou by potreboval na seznameni, mu nikdo nezaplati. Ze by znal pouzity system nebo DB, to uz je spise vyjimka.
Napsat více/méně nehacknutelný systém není takový problém, jak se zdá. Pokud poučený programátor použije jazyky a frameworky které za něj většinu bezpečnostní práce odvedou samy, systém se stává prakticky nehacknutelným běžnými, známými technikami.
S prvni vetou lze v kratkodobem horizontu souhlasit, ale udrzet takovy system po celou dobu provozu pri zivote muze byt ukol temer nadlidsky. Kreativita (i pouceneho) programatora prekonava vsechny meze a pri trose snahy zvladne podrazit nohy i bezpecnemu frameworku.
Další možností je tzv Trashing, který je ale prakticky uplatnitelný jen v útocích vůči firmám (jednotlivci citlivá data nevyhazují do koše, navíc jich mají o HODNĚ méně než firmy).
Tady bych si dovolil nesouhlasit, kam asi vyhazuji jedinci citliva data? Navic jedinci citliva data chrani mnohem mene nez firmy, zpravidla ani neresi, zda jsou data citliva nebo ne. Pouzit sociotechniku na jedince a jeho NB nebo domaci pocitac ma vetsi sanci nez pri utoku na firmu.
Jedním z minimálně praktikovaných způsobů hackingu je útok na matematickou funkci, protože vyžaduje mocné matematické schopnosti a vysoký intelekt. Jde o útoky na různé šifry hledáním slabin v algoritmu, nebo-li hledání chyb v myšlení tvůrců algoritmu.
No tady bych si opet dovolil nesouhlasit. Velka cast zdrojovych kodu, ktere jsem videl, pouziva kryptograficke prostredky spatne, neresi dobre praci s nahodnymi cisly, sifrovaci mody, padding, kryptograficka primitiva, ... Na prekonani techto veci clovek nemusi byt zadny extra lumen, staci par let vysokoskolske matematiky a neco peclive prace.
Jako nejvetsi problem bych dnes videl kvalitu programovani. Prgramator si neuvedomuje, ze je lopata, soucast mnohem vetsiho mechanismu a snazi se zachovat si tvar tvorbou a pouzitim "elegantnich" postupu. Behem posledniho mesice jsem prochazel kod tri aplikaci v ruznych jazycich ale vsechny mely neco spolecneho. Fungovaly, delaly vse, co by mely, ale programator, ktery by podobny vytvor predlozil na zkousce z programovani v prvnim rocniku VS, by letel velikym obloukem. Programatori nekopirovali postupy fyzickeho sveta, jejich dila mela tolik postrannich kanalu, ze i pri pouziti bezpecneho frameworku nebyl velky problem ziskavat data s vyuzitim timimg utoku a kryptografickych nedostatku.
|
|