ako hacknut banku
elektronicky vykradnut banku nie je zrovna lahke, ale nie je to ani take
tazke, ako by si ludia (rozumej poulicna zmes) mysleli. takze podme na to.
prvy krok: priprava
najprv si dame dokopy team ludi. budeme potrebovat tak aspon sest
softverovych vyvojarov na hackovanie, idealne, aby medzi nimi bol
specialista na as/400, sun solaris, unix vseobecne, digital vms, ibm vms,
windoze 95/98/nt no a na bankovy aplikacny software a komunikacne
protokoly. budeme tiez potrebovat jedneho cloveka v banke. staci ak to
bude clovek na strednej urovni, asistent manazera, cloviecik pri
prepazke, klepica co nahadzuje udaje do pocitaca, take nieco. kedze
slovenske banky teraz prijimaju relativne dost ludi a otvaraju nove pobocky
kade-tade, pre schopneho cloveka nie je problem najst si v banke robotu
niekde na strednej priecke rebrika hierarchie. jo a skoro by som zabudol
- potrebujeme niekoho sikovneho do fyzickej bezpecnosti a tiez nejakeho
vhodneho "socialneho inziniera", proste niekoho s vrtkym jazykom a silnym
sarmom :)
ok, teraz si vyberieme ciel nasho utoku. nebolo by dobre vybrat si
slovensku pobocku velkej zahranicnej banky - lebo ta bude dobre
zabezpecena. vo vseobecnosti nie je vhodna ziadna velka banka. mala
lokalna banka tiez nie je dobra, lebo by si velmi rychlo vsimli
poletovanie milionov korun von ich elektronickymi dvermi. idealna je teda
banka strednej velkosti so slovenskym IT manazmentom.
ako pri kazdom dobrom podnikatelskom plane, budeme potrebovat nejake
pociatocne investicie na masiny, pocitace, nastroje, zivobytie, uplatky,
atd. pre zaciatok by sme mohli vystacit s 2-3 milionmi korun. nasim cielom
je ukradnut z banky 100-200 milionov.
druhy krok: nabeh
nas clovek na fyzicku bezpecnost sa zamestna vo vybranej banke ako
elektrikar, udrzbar, alebo podobne. nasi hackeri dostanu za ulohu
skonstruovat jednoduche plostice (napr. podla navodu z phracku), tieto
nas clovek na fyzicku bezpecnost rozmiestni po banke na vhodnych
miestach. banky na slovensku nemonitoruju elektromagneticke spektrum a
nie su schopne najst plostice. vo vecernych hodinach pod zamienkou udrzby
sa nas "udrzbar" trosku pohrabe v kancelariach, pisacich stoloch a
skriniach. ziska prevadzkove predpisy, popis pocitacovej siete, fyzicky
si omrkne zapojenia v serverovni, atd. v tom istom case sa nas socialny
inzinier pokusi zistit maximalne mnozstvo informacii o tom ako banka
otvara, modifikuje a vyplaca svoje ucty. moze sa tvarit ako seriozny
business zakaznik, alebo napriklad ako obchodnik - dodavatel vypoctovej
techniky. moze sa skamaratit so zamestnancom banky, alebo nabalit
riaditelovu sekretarku. ked vie, ze v banke maju napriklad server as/400,
nas hacker moze zavolat do banky, tvarit ako novy servisny technik IBM a
pozistovat si informacie o hardverovej a sofverovej konfiguracii ich
servera. pokial clovek ovlada ten spravny dialekt a ma potrebne know-how,
nie je problem pozovat ako technik zahranicnej dodavatelskej firmy. no a
samozrejme nas hlavny insider zamestnany na strednej urovni bude ziskavat
maximum informacii o bankovej sieti, softveri, pracovnych postupoch a
zamestnancoch.
po par tyzdnoch by sme mali byt totalne v obraze. mame spisany vsetok
inventar suvisiaci s vypoctovou technikou a pozname postupy pri
platobnych prikazoch. je cas zacat trosku hackovat. s hackovanim zacneme
spociatku velmi opatrne. zatial sa budeme drzat prec od systemov, ktore sa
staraju o medzi-uctove a medzi-bankove operacie. skusime stary dobry
war-dialing a skusime napriklad najst nejaky modem, ktory je zaveseny na
telefonnej linke a odpoveda na zavolanie. v tomto stadiu je dobre zalozit
si ucet a spravit si na nom internet banking. skusime zistit, ci manazeri
ktori cestuju s notebookmi, nemaju spraveny dial-up do banky, alebo ci
niektory z dodavatelov hardveru banke nema spraveny remote monitoring cez
modem.
akokolvek sa dostaneme dnu, v kazdom pripade budeme k tomu potrebovat
zopar hesiel zamestnancov. tie ziskame lahko. nasi hackeri maju totiz v
tejto oblasti bohate skusenosti z napadania internetovskych serverov (viz
http://hysteria.sk/hacked/). nas insider z diskety nabehne na pc-kach
programy, ktore budu zachytavat stlacene klavesy. nabehneme back oriffice,
sniffery, budeme crackovat passwd fajly rozsiahlymi wordlistmi. ked prednedavnom
skupina binary division crackla nejakych 15 tisic hesiel z home.sk, pre nas predsa
nebude problem obdobne si zaobstarat aspon za tucet hesiel.. niektore
hesla uhadnu nasi socialni inzinieri, niektore mozno najdeme napisane v
poznamkovych blokoch, osobne som videl rootovske heslo napisane na
post-it papieriku a nalepene priamo na serveri v serverovej miestnosti
istej nemenovanej institucie, aby si ho administrator nemusel pamatat.
budeme sledovat zamestnancov a zistime ci maju konta na serveroch mimo
banky. ak maju konta na freemailoch (hotmail.com, post.sk, pobox.sk,
atd.) alebo hocikde na internete, crackneme alebo sniffneme ich heslo a
mame sancu, ze heslo vo vnutri v banke je take iste.
treti krok: programovanie
ked uz sme sa dostali do par masin na vnutornej bankovej sieti, snazime
sa sniffovanim a crackovanim hesiel dostat na co najviac systemov. aj ked
vonku v internete je bezne pouzivat sifrovane komunikacne protokoly ako
ssh, vo vnutropodnikovych sietiach je bezny telnet alebo rlogin a tie
mozeme v pohode sniffovat. vo vseobecnosti plati, ze servery vystavene na
internet su neustale vystavene scanovaniu hackermi, preto ich organizacie
pravidelne patchuju a kontroluju. na vnutropodnikove masiny za firewallmi
sa vsak vacsinou z pohladu security serie. ked ziskame uzivatelsky
pristup na unixovych serveroch, je lahke ziskat roota - lebo
vnutropodnikovy server malokto patchuje koli bezpecnosti. na komercne
unixy existuje take mnozstvo exploitov, ze ak napriklad natrafime na rok
staru instalaciu solarisu 7 bez security patchov, mozeme si vybrat
minimalne z poltucta exploitov...
ked uz mame zopar root kont, vytiahneme zbrane vacsieho kalibru.
nainstalujeme backdoory, trojske kone, vytvorime si vlastne konta.
nabehneme sniffre a monitorujeme vsetok traffic na sieti. naburame sa do
archivu e-mailov a pocitame si postu vyznamnych ludi. takto sa naucime
mechanizmus, akym sa v banke pohybuju peniaze, naucime sa nazvoslovie,
slangove vyrazy, skratky a terminologiu.. stiahneme si passwd fajly a
nabehneme crackery hesiel. kedze uz mame na masinach rootov a vieme mazat
logy, nabehneme network analyzery ako su nmap, satan, iss a podobne a
skanujeme siet na otvorene porty, sluzby a masiny. vzniknute logy mazeme
"cisticmi".
sucasne zacne boj na aplikacnom fronte. ziskame kopie softverovych
aplikacii, ktore banka pouziva na manazment penazi a uctov, pretoze chceme
tento softver potajme modifikovat a nasadit. pokusime sa ziskat zdrojaky
tychto programov. idealne by bolo dostat sa k zdrojakom cgi scriptov,
ktore obsluhuju internet banking a spravit si v nich backdoor. pokial sa
k zdrojakom nedostaneme, skusime dissasemblovat aplikaciu crackermi a
upravit si ju po svojom. neskor sa pokusime nahradit aplikacie nasimi
prerobenymi verziami.
skor ci neskor budeme presne vediet ako sa interne presuvaju peniaze
medzi uctami na urovni bezneho pracovnika a ako tieto presuny
kontrolovat. budeme vediet ake druhy bezpecnostnych kontrol a verifikacii
sa robia pre dany typ a velkost transakcie, kedy sa vykonavaju audity,
ako je nastavena ochrana pocitacovych systemov a ako ich monitoruju
spravci systemov. ale stale si nezoberieme ziadne peniaze.
kym ziskavame informacie o vnutornom fungovani banky, budeme tiez
ziskavat informacie o najnovsich hackerware-virusoch, autospameroch,
distribuovanych denial-of-service utokoch a podobnych lahodkach. hackneme
si servre po svete ako vhodne gateway masiny na spustenie takychto
utokov, ale zatial nic neaktivujeme.
nakoniec si cez web a pomocou anonymizerov a redirektorov zalozime ucty v
bankach na jamaike, cypre, bahamskych ostrovoch a v dalsich krajinach,
ktore poskytuju maximalne mnozstvo sukromia a minimalne kooperuju s
medzinarodnymi policajnymi a vysetrovatelskymi organmi. zalozime si tiez
konta v slovenskych bankach pomocou "bielych konov" a nastavime si v nich
internet banking tak, aby sme okamzite mohli cez internet posuvat velke
financne ciastky.
stvrty krok: kradez
nas uder si naplanujeme na jeden zo zhruba osmich rocnych obdobi so
zvysenou bankovou aktivitou, napriklad pred vianocami. najprv aktivujeme
denial of service utoky a pocitacove virusy. toto je ekvivalent dymovnice
a granatov so slznym plynom v civilnom svete - proste spravime trosku
chaos/bordel/paniku. pripadne pridame aj nejaky vyhrazny telefonat o tom,
ze na pobocke je umiestnena bomba, zapchame odtokove potrubia
kanalizacie, sposobime nejaky ten elektricky skrat, postriekame stenu
peknym grafiti napisom a tak. nasledne budu vsetci zamestnanci
vypoctoveho strediska banky skakat tri metre bez odrazu a sialene
monitorovat vsetky systemy, sledovat logy a tak.. samozrejme ze banka by
mohla predist serioznym skodam tak, ze zavrie vsetky pobocky dokial
vsetko nebude pod kontrolou. ale nespravi to, pretoze banka musi mat vzdy
imidz dokonalej spolahlivosti a fungovat 24 hodin denne.
.. ale toto vsetko je samozrejme iba na odvratenie pozornosti nepriatela..
hlavny utok pride na troch frontoch. najprv pretransferujeme peniaze zo
stoviek uctov na tie. ktore sme si otvorili. spravime to bud cez hacknute
konta operatorov, alebo pomocou hacknutej verzie softveru na manazment
uctov, alebo aj aj. z kazdeho uctu zoberieme len skromny obnos, taky aby
bol menej ako hodnota, ktora je nastavena na spustenie vyssieho stupna
bezpecnosti - moze to byt trebars prevod nad 50 000,- Sk, alebo 10% celej
hodnoty uctu, alebo oboje. v tomto obdobi roka sa to bude javit ako bezny
pohyb medzi uctami, nikto si to nevsimne ako zvysenu aktivitu pohybov
medzi uctami. teda mozno za normalnych okolnosti by si to vsimli technici
vypoctoveho strediska, ale teraz vsetci manazeri a technici banky sialene
pobehuju a maju co robit vysporiadat sa s panikou ktoru sme sposobili.
ked sa zacnu peniaze kumulovat na nasich uctoch, postupne ich
transferujeme von do nasich vonkajsich uctov, zase len v malych
ciastkach.
druhy frontalny utok bude zachytavanie skutocnych platobnych prikazov
medzi bankami. inak povedane - budeme zachytavat prevodne prikazy
legitimnych klientov nasej banky na ucty na cudzie banky. je extremne
tazke vytvorit falosny prevodny prikaz, pretoze vsetky platobne prikazy s
vyssou sumou (dajme tomu nad 100 000,- Sk) musia mat fyzicke povolenie od
najmenej dvoch manazerov banky. nedokazeme zachytit transfery medzi
bankami, pretoze cestuju zakryptovane. takze musime prevodny prikaz
zachytit po tom ako ho potvrdia podpisom manazeri v banke, ale pred tym
ako sa zasifruje. tento typ utoku sa vola man-in-the-middle utok a v
dnesnej dobe nie je na internete vobec neobvyklym javom. jednoduchym
prikladom z internetovskeho sveta je hacknuta binarka ssh klienta, ktora
zachyti a zapise heslo po tom ako ho uzivatel naklepe z klavesnice, ale
pred tym ako sa zasifruje a posle po sieti. ked sa elektronicke
potvrdenie platobneho prikazu presunie po lokalnej sieti banky - dostane
sa na server ktory de facto kontrolujeme, aby sa tam zasifroval. podobne
ako na uvedenom priklade s ssh staci modifikovat program ktory prijme na
serveri informaciu a zasifruje ju tak, aby ju este pred tym modifikoval a
zmenil prijemcu platobneho prikazu na niektory z nasich uctov. pokial v
istej faze prenosu ide po lokalnej pocitacovej sieti informacia o
potvrdeni platobneho prikazu, existuju aj utilitky ktore ho dokazu
"zabehu" modifikovat z masiny na tom istom segmente a netreba mat k tomu
kontrolu nad cielovou masinou.
treti frontalny utok pojde na server internet bankingu. ak na nom mame
roota, tak voila, pouzijeme podobny postup ako pri modifikacii platobnych
prikazov cestujucich po lokalnej sieti. ak nemame roota, mozeme pouzit
menej elegantny, ale predsa ucinny sposob. staci ak zmenime IP adresu v
internetovskom DNS zazname na dany server a presmerujeme WWW traffic na
nejaky nas hacknuty server. tuto metodu nedavno preslavil hack
www.hzds.sk, vsakze. vacsina slovenskych bank ma primarny DNS server u
svojho internet providera, a ti maju svoje masiny povacsine derave ako
emental - takze by to mala byt prudka pohoda. na novej IP adrese
nabehneme program, ktory si pokeca SSL s klientom, zapise si alebo
zmodifikuje prijate data o prevode, a vysledok posle skutocnemu
internet-banking serveru. jasne ze webovsky browser si popinda na to, ze
sa zmenil SSL verifikacny kluc. ale drviva vacsina uzivatelov klikne "OK,
accept" na nas novy kluc. ved poznate poulicnu zmes :)
peniaze, ktore miznu z napadnutej banky sa zbiehaju na niekolkych uctoch
inych slovenskych bank. okamzite posleme predpriravene prevodne prikazy
na banky do zahranicia. postupne skonsolidujeme vsetky peniaze na
niekolkych off-shore uctoch. mnohe off-shore banky poskytuju internet
banking, alebo aspon ovladanie cez modem. preto okamzite presuvame
peniaze z jedneho off-shore uctu na druhy a nakoniec v poslednej banke
nam ich biely kon vyzdvihne v hotovosti.
potom sa vyparime zo sceny na novom sportaku s V8 motorom. kupime si vilu
na grenade a pozveme iva lexu na afterparty.
utopia ?
myslite si, ze je to len utopia? vacsina computer-security expertov vam
potvrdi, ze hore popisany scenar je realizovatelny. na slovensku urcite.
ale kludne aj inde. v roku 1994 stiahol z citibanky 24-rocny hacker
vladimir levin z petrohradu 10 milionov dolarov. neskor ho chytili,
odovzdali do spojenych statov a bol odsudeny na tri roky nepodmienecne.
(az na 400 000 dolarov sa vsetky peniaze nasli.) taketo nieco sa deje
dost casto, ale zvycajne to neprenikne na verejnost - tvrdi michael
higgins - byvaly analytik informacnej agentury ministerstva obrany
spojenych statov. v usa pozaduje federalna vlada od bank aby reportovali
vsetky straty. higgins ale tvrdi, ze koli zlej publicite reportuju banky
skody vzniknute hackermi ako inak vzniknute skody. castokrat banka vobec
nekontaktuje policiu, lebo sa boji ze keby prenikli na verejnost spravy o
tom ze banka je hacknutelna, ludia by si z nej hystericky zacali vyberat
peniaze a sli by ku konkurencii. niektore zdroje z prostredia
financnictva v USA reportuju jednotlive pripady kde skoda presiahla sumu
100 milionov americkych dolarov.
pokial sa vyssie popisane scenerio hacknutia banky uz neodohralo aj v
nasich zemepisnych sirkach, coskoro sa odohra. taketo nieco zvladne totiz
len naozaj dobry programator, znalec pocitacov a hacker. taky, ktory by
na zapade vobec nemusel hackovat, lebo by mal dobre plateny job v
prekvitajucom IT priemysle. to vsak u nas neplati - dobre platenych jobov
v IT brandzi je malo, vlastne su len v slovenskych pobockach zahranicnych
IT firiem. ale aj v tych su prijmy vo vyske zlomkov zahranicnych prijmov.
navyse sa jedna povacsine len o povysunute marketingove kancelarie v
ktorych absentuju zaujimave a kreativne IT joby - tie sa koncentruju v
materskej krajine danej IT firmy.
aj ked nasa kradez by bolo elektronicka, pravdepodobne by bola nemozna
bez informacii zvnutra banky. Levin mal pri jeho kradezi partnera vo
vnutri banky. human resources manageri v slovenskych bankach nerobia
ziadne lustracie kandidatov o joby vo vnutri banky.. az na obligatny
vypis z registra trestov. hihi, neda mi v tejto chvili nepovedat, ze na
slovensku ich maju zatial vsetci hackeri cisty.
najlepsim tercom su banky strednej velkosti ktore sa agresivne vrhli na
informacne technologie a internetovy/gsm/tele banking, pretoze citia tlak
od technologicky-zalozenych velkych bank. toto ich prinutilo vletiet
strmhlav do sveta informacnych technologii bez toho, aby na to mali naozaj
potrebnu expertizu a znalosti, cim sami vytvaraju diery v bezpecnosti.
ktora zo slovenskych bank, ktore nedavno vypustili internetovy banking
naozaj do hlbky rozumie vsetkym technologiam suvisiacim s manazmentom
citlivych informacii v prostredi internetu ?
vsetky slovenske banky si nainstalovali nejaky ten mix hardverovych a
softverovych firewallov, ktore sedia medzi divokym slovenskym internetom a
ich hlavnym vstupom do internej siete. kto im ich vsak dodal? na
slovensku neexistuje poriadna firma so zameranim na computer security.
ano, je tu niekolko dilerov firewallov, ale to su suchi obchodnici. no a
samozrejme kazdy zo systemovych integratorov posobiacich na nasom trhu
tvrdi ze robi "aj" security, nemaju vsak na to dedikovany seriozny team
odbornikov. prave tieto velke IT firmy, ktore maju v lukrativnom bankovom
businesse najvacsi podiel na dodavkach, realizovali vacsinu security
rieseni v slovenskych firmach. ten kto cosi vie o tom ako u nas
prebiehaju vyberove konania na dodavky v oblasti IT, vie, ze technicka
uroven ponukanych rieseni je v podstate irelevantna. vyhravaju kontakty a
bocne prachy, vsakze.
a co nase skolstvo? pripravuju nase univerzity mladych profesionalov na
moderne bezpecnostne riesenia? hihi, no podme radsej dalej.
v podstate aj tak mozeme zabudnut na kvalitu firewallov. niektore su
dobre, ine su slabe. ale hackeri vzdy hladaju male dierky v systeme,
zadne vratka. netreba buchat baranidlom do hlavnej brany, ked staci rozbit
okienko na kupelni a vliezt dnu. plati zname klise, ze retaz je len tak
silna, ako je silny jej najslabsi clanok. a mimochodom, slovenski dileri
krabic so security softwarom zacali ponukat aj sofistikovany (rozumej
drahy) intrusion detection softver. tento komplexny softik sa snazi
rozpoznat hackersky traffic od bezneho trafficu. velmi narocna uloha,
ktoru ale sikovny hacker zvladne obist. ista security firma zo seattlu
ktora robi penetracne testy bankam napisala ze zo styridsiatich pokusnych
testov zareagovali intrusion detection systemy len raz.
servery, ktore obsluhuju internet banking, by mali by fyzicky oddelene od
internej siete banky. kaslime na programatorov, nic nie je bezpecnejsie
ako ked je internetovy server banky totalne fyzicky mimo a nevedie z neho
ani jeden kabel do internej siete. dnes vsak tuto logicku strategiu
narusuje moderny marketingovy trend. centralizacia! klienty sa stensuju
a servre sa konsoliduju do mamutich multi-domenovych strojov. ak je
internet banking na jednej domene multi-domenoveho servera a na dalsich
domenach su senzitivne data, bezpecnost visi na sikovnosti programatorov
operacneho systemu (zatial to vo svete unixu robi len sun a compaq). a na
milosti Vsemohuceho, lebo ak chcete volaco vediet o bezpecnosti
operacnych systemov spominanych vyrobcov, natukajte si vhodne slovicka do
searchenginu na packet-storm security sajte. uvidite desiatky
reportovanych bezpecnostnych bugov a exploitov na ne len za posledny
rok-dva.
jeden zakladny problem na slovensku v oblasti compsecurity suvisi s faktom,
ze bezpecnost pocitacovych systemov su preteky s casom. aj ten
najbozskejsi bezpecnostny system sa moze ukazat zranitelny vdaka
novoobjavenej security vulnerabilite. nedavna hysteria session 2000 v
piestanoch ma presvedcila o jednej veci - na slovensku je zdrava komunita
hackerov, ktori spolu velmi efektivne komunikuju a technicke novinky sa
medzi nimi siria rychlostou motoroveho prasata. a sprav je dnes veru
neurekom. statistika hovori, ze kazdy treti den sa objavi novy security
bug vo Windowse NT. ked hovorim o potrebe byt neustale up-to-date,
nepoukazujem len na povahovy rozdiel hackera prahnuceho po informaciach
od znudeneho admina s na_setko_serem strategiou. stale totiz existuje
principialny rozdiel medzi ochotou zdielat security informacie v tychto
dvoch rozdielnych svetoch. kym hacker nadsene zdiela svoju informaciu s
internetovou komunitou, komercna firma, ak aj nieco najde si to radsej
necha pre seba. internet security je boj o to, kto je informovanejsi a u
nas su na cele peletonu hackeri s dalekym naskokom pred hlavnou skupinou
cyklistov. vacsina adminov odstupila z pretekov pred prvym stupakom a
popijaju v bufete.
prenosy dat medzi bankami su sifrovane a je nepravdepodobne, ze by sa nam
podarilo zlomit sifru ktoru pouzivaju. nie, ze by to bolo nemozne.
dejiny su plne pripadov kedy sa prelomila "neprelomitelna sifra".
spytajte sa vyrobcov mobilnych telefonov, medialnych firiem ktore
vyrabaju DVD, alebo hocijaka firma, ktora pouzivala DES enkrypciu. Vacsina
bank v dnesnej dobe pouziva triple-DES, na prelomenie ktorej, by udajne
bolo treba "mimozemsku technologiu". my ale nepotrebuje crackovat
triple-DES. dokazeme zistit heslo zamestnanca, alebo zachytit informaciu
pred tym ako sa zasifruje.
v anglicku sa napriklad stal pripad, ze pracovnicka banky zistila, ze
zmena adresy majitela uctu sa nikam nezaznamenava. takze si zmenila
adresy niekolkych klientov banky na svoju vlastnu adresu kratko pred
koncom mesiaca, dostala postou ich seky, a potom adresy zmenila naspat.
robila to pocas desiatich rokov, potom ju chytili.
dokaze sa banka ochranit proti distribuovanemu DoS utoku cez internet ?
nie. a nech vas nemyli fakt, ze sa v cechach alebo na slovensku este
nezaznamenal rozsiahly utok podobny nedavnym utokom v USA na yahoo.com a
dalsie sajty. programy ako "extended trinu" sa daju stiahnut vselikde a
na ich spustenie je akurat treba mat podchytenych desiatky alebo stovky
masin. v usa takymto utokom vyrazne pomohli domaci uzivatelia na rychlych
pevnych linkach (cez kablovu televiziu a pod.) so zle zabezpecenymi
PCkami. to nas este len caka - UPC ohlasila start internetu cez kablovku
v centre Bratislavy na jar buduceho roku. okamzite budu pribudat stovky
vhodnych kandidatov na "otrokov" distribuovanych utokov - rychla linka a
zle zabezpecene PCko (rozumej - defaultne nainstalovane windowsy)
ak - alebo, povedzme si uprimne - ked sa na slovensku stane prvy velky
hack banky, o ktorom sa bude verejne vediet, vacsina ostatnych bank
pravdepodobne zvysi uroven zabezpecenia tak, ze asi nebude mat zmysel ist
po nich. alebo aspon nie dovtedy, kym je na internete tolko dalsich
prachatych firiem s ovela mensim zabezpecenim, ktore ponukaju drahy tovar,
zaujimave data, cisla kreditiek, platby za fiktivne sluzby, a tak dalej.
z pohladu hackera chvalabohu je iba malo IT firiem, ktore si bezpecnost
kladu ako jeden z najhlavnejsich kriterii pri tvorbe softveru. takze
aspon v dohladnej buducnosti sa bude nachadzat stale dostatok
bezpecnostnych dier. preto ked si oddychneme na vile v grenade a vratime
sa o nejaky ten rok na slovensko aby sme zase zarobili hackovanim, opat
sa skvele namastime.
pajkus
..s pouzitim vselijakych zdrojov..
navrat na obsah
exploitovanie cez plt (procedure linkage table) a got (global offset table)
Ciel
Objasnit mozne sposoby exploitovania nezasobnikovych overflowov (systemy
chranene StackGuardom, StackShieldom, non-executable stackom).
StackGuard
Klasicky exploit je postaveny na modifikovani navratovej adresy prepisanim
lokalnych premennych, alebo bufra. Vedlajsi efekt takehoto typickeho
zasobnikoveho overflowu je, ze znicime/modifikujeme vsetky data na zasobniku
od prepisovaneho bufra az po navratovu adresu. Viacmenej nas to nemusi
trapit, vzhladom k tomu, ze spustenie shellcodu (nejaky ten setuid, exec
syscall) nevyzaduje pritomnost tychto dat. Problem by mohol nastat v pripade,
ze modifikujeme navratovu adresu za adresu glibc funkcie (strcpy, system,
exec), kedy je nevyhnutne, aby sa tato funkcia zavolala s presne nastavenymi
hodnotami vstupnych argumentov (bud v registroch, alebo v zasobniku) a
neposkodenym EBP.
Princip StackGuardu je jednoduchy. Uklada sa "canary" slovo hned vedla
navratovej adresy v zasobniku. Ked je hodnota "canary" slova po navrate
z funkcie zmenena, zaznamena sa pokus o overflowovanie zasobnika, program
zaloguje vystrahu o danej snahe do syslogu a skonci.
Zasobnik vyzera asi takto :
... ...
|-----------------------------------|
| parametre predavane funkcii |
|-----------------------------------|
| navratova adresa funkcie (RET) |
|-----------------------------------|
| "canary" slovo |
|-----------------------------------|
| lokalny frame pointer (%ebp) |
|-----------------------------------|
| lokalne premenne |
|-----------------------------------|
... ...
Na to, aby ochrana bola ucinna, utocnik nemoze mat moznost naspoofovat
"canary" slovo nejakou hodnotou vlozenou do zasobnika cez overflowovany
retazec. Stackguard pouziva proti takemuto moznemu spoofvaniu dve metody :
"terminator" a "random".
Terminator canary obsahuje znaky NULL(0x00), CR (0x0d), LF (0x0a) a EOF (0xff)
- 4 znaky, ktore zabezpecia prerusenie vacsiny retazcovych operacii (strcpy,
sprintf...) a znizia riziko uspesneho overflowu.
Random hodnota sa vybera nahodne v okamihu pustenia programu. Tym padom utocnik
nemoze zistit tuto hodnotu prehladanim tela binarneho suboru. Nahodna hodnota
sa berie z /dev/urandom (ak je k dispozicii) alebo sa vytvori hashovanim
casu a datumu dna (ak /dev/urandom nie je systemom podporovany). Nahodnost
je povacsine dostatocna na to, aby sme zabranili vacsine moznych snah o
overflow.
Novsie verzie StackGuardu podporuju tzv. XOR Random Canary mechanizmus, kedy
sa xoruje nahodne (random value) hodnota s navratovou adresou funkcie. Canary
valid