» »

Komentar: NLBjevih Petsto

Robert Škulj, 27-letni Kranjčan, je odkril varnostno luknjo v spletnobančniškem sistemu klik Nove Ljubljanske banke, preko katere je moč vdreti v bančne račune občanov ter iz njih prenesti denar na poljuben račun. Škulj je Novi Ljubljanski banki ponudil odkup programa "Trojanski konj", s katerim je luknjo moč izkoristiti, ter zaščitni program, katerega je razvijal leto in pol, za 500.000 evrov. Po petih mesecih pogajanj v tajnosti je Škulja ob izhodu iz NLB pričakala policija, mu odvzela program ter ga aretirala zaradi izsiljevanja NLB.

Kasneje se je izvedelo, da so policaji pri Kranjčanu izvedli hišno preiskavo ter mu zasegli oz. uničili vse izvode izvorne kode, prav tako pa naj bi mu zabičali k molčečnosti, češ da bo sicer izgubil službo na notranjem ministrstvu. Robert se je odločil tožiti Novo Ljubljansko banko (kateri je varnost denarja komitentov deveta briga), Microsoft ter državo v skupni vrednosti 300 milijonov tolarjev.

Tako nekako je bila "Škuljeva plat" zgodbe predstavljena preko medijev: zlobnazlobna banka, policijska država ter izvajanje represije nad dobrodušnim fantom, ki je našel napako ter zanjo izdelal popravek, postal ljubljenec javnosti, minister Varnost pa nič.


Srednji vek

O pričujoči zgodbi si je posameznik lahko izoblikoval mnenje zgolj z opazovanjem poročanj na televiziji, branju člankov ter poslušanju radijskih poročil. Roko na srce, ob prvih poročanjih sem se le nasmihal ob prečudovitih novinarskih cvetkah, torej "programih trojanskega konja" in podobnem.

Kaže, da imamo na eni strani medijsko pristranskost, na drugi pa verjetno dokajšno strokovno neznanje splošnonovičarske srenje. Ti kakopak niso strokovnjaki vseh možnih področij -- in tega jim ne moremo zameriti. Jim pa lahko zamerimo to, da se večinoma vse premalokrat obračajo na neodvisne strokovnjake, ki dejansko nemalokrat povedo popolnoma drugačno zgodbo (če so jim le podatki posredovani v neokrnjeni obliki).

Žal pa je v tem primeru opazovalec vezan na dva instrumenta. Prvi so kakopak informacije: v tem primeru (Škulj/NLB) so dosegljive le preko medijev -- tega "trojanskega konja" nekako ni moč dobiti v prosti prodaji na internetu, kajneda? Posledično je toliko pomembnejša vloga informatikove presoje: iz poročanj razločiti poročanje novinarja ter tisto, kar je spraševani pripovedoval.

Sam sem nekega dne dobil zbranega nemalo materiala na to temo, kjer so bili članki nanizani kronološko. Prvi so bili pisani v preveč ekskluzivističnem stilu, včasih celo z razodevanjem pisca, ki pa takrat, ko slednji tematike ne poznava, niso ravno primerna za objavo v sredstvih masovnega obveščanja. Proti koncu pa so sledili intervjuji, kjer je ločitev novinarja ter pripovedovalca lažja. Za lažje kasnejše vračanje k trditvam sem se odločil naslednje povzetke oštevilčiti.


Renesansa

(pozor: spodaj navedene točke so -- ponavljam -- povzetki večih intervjujev na tak način, kakor sta jih korespondenta podajala ter so logično razvrščene)

  1. Programerju pri delu ni bilo potrebno posegati v izvorno kodo Internet Explorerja ali klika, ampak je preučil javno literaturo, ki jo Microsoft izda štirikrat letno. Na podlagi prebranega je odkril varnostno luknjo.
  2. Menda glavni akter pričujoče zgodbe je v nekem intervjuju dejal, da težava ni v spletni povezavi, ampak "... v spletnem brskalniku internet explorer. Ta Microsoftov izdelek je tako hroščav, da omogoča še marsikaj drugega, a mora biti trojanski konj nameščen na uporabnikovem računalniku...".
  3. Izgled delovanja programa je opisan takole: uporabnik se prijavi na sistem klik ter vpiše svoje vstopno geslo. Nato se zbudi program, ki "zamrzne" sliko računalnika, po treh sekundah pa se Internet Explorer "sesuje" -- oz. vsaj tako izgleda. V ozadju se izvrši transfer denarja.
  4. Na vprašanje, kako uporabnik prejme trojanskega konja, se je Škuljev odgovor glasil, da preko priponke v e-mailu.
  5. Intervju se nadaljuje s tezo novinarja, da za napako torej ni krivo podjetje Zaslon d.o.o -- slednji je, kot vemo, izdelal ter postavil informacijski sistem, ki ga klik uporablja. Akter je odgovoril, da gre za posredno odgovornost.
  6. Sledi konjeniški napad na Microsoft: Internet Explorer, krivec za vse skupaj, je po njegovem tako slabo narejen, da uporabniki sami -- ki naj bi bili po NLB-jevo odgovorni za varnost na svoji strani -- luknje sploh ne morejo zakrpati.
  7. Policija naj bi ukrepala zato, ker naj bi Akter banko izsiljeval oz. naj bi bili njegovi nameni zlonamerni. Prav tako naj bi bila njegova namera, kot trdi Škulj, plemenita, torej izboljšanje varnosti.
  8. Po mnenju Nove Ljubljanske banke so sami storili vse, kar je v njihovi moči, da zaščitijo uporabnike. Ampak v tem primeru naj bi temu ne bilo tako; banka naj bi bila po zakonu zavezana storiti vse kar se le da za varnost uporabnikovih podatkov. In denarja, kakopak.
  9. Avtor programa je Robert Škulj: to dokazuje s postopkom za pridobitev patenta ter imetništvom izvorne kode. Pri tem mu je v detajlih pomagal neznan programer -- avtor pa je Akter osebno.
  10. Po tretjem odstavku 309. člena Kazenskega zakonika RS naj bi bilo razvijanje orodij vdor v računalniški sistem opredeljeno kot nezakonito. Po mnenju odgovarjajočega naj bi bilo to za lastne namene popolnoma legalno. Poleg tega je uporaba njegovega programa neizsledljiva.
  11. Zaščite za program "Lažni podpis" (ime njegovega trojanskega konja) ni -- to naj bi vedeli tudi odgovorni v Novi Ljubljanski banki. Pomagala naj ne bi nikakršna sredstva: identifikacijske kartice, požarni zidovi, protivirusno programje... Skratka, nič.
  12. Predstavniki NLB niso želeli le zaščite, ampak tudi samega trojanskega konja.

Geneza

Zaplet se prične, ko pridemo do podatka (1), da je Akter luknjo odkril med prebiranjem Microsoftove javne literature, ki jo slednji izda štirikrat letno -- sodeč po tem podatku ne gre za nič drugega kot Microsoft Developer Network naročnino, ki je povrhu vsega zelo drag artikel. V tem paketu naročniki (odvisno od različice, seveda) dobijo ogromno dokumentacije na CD-jih ter praktično vse strežniške in razvijalske produkte.

Tako se nam postavi vprašanje, kako je sploh moč govoriti o vdoru v sistem klik, če pa se tista prava nevarnost skriva na uporabnikovem računalu? Prav tako naj bi se luknja nahajala zgolj v Internet Explorerju. Dvom je potrjen v drugem odstavku -- ni ga. V kombinaciji z opisom programa pa pridemo do skoraj neverjetnih zaključkov: program uporabniku onemogoči uporabo IE-ja, da lahko sam v miru izvrši zlonamerno transakcijo. Za lažje razumevanje dodajam vzorčni opis dejanj, ki se zgodijo takrat, ko uporabnik sam zahteva prenos denarja.

  1. uporabnik požene spletni brskalnik ter odpre stran spletne banke (klik.nlb.si)
  2. uporabnik vpiše svoje geslo
  3. naloži se uporabnikov certifikat ter vzpostavi povezava po https protokolu
  4. uporabnik izvede prenos denarja na drug račun
    1. zahteva prikaz naloga za prenos
    2. vpiše podatke ter jih pošlje strežniku z uporabo metode "post"
    3. preveri pravilnost podatkov ter pritisne gumb "potrdi" -- zahtevek se potrdi z uporabo metode "post"
    4. izvede se prenos denarja
  5. uporabnik zapusti sistem klik.

Potrebno je razumeti, v kakšni obliki odjemalec dobi kakršnekoli podatke iz interneta oz. jih posreduje nekemu oddaljenemu strežniku. Kadar uporabnik sam brska po internetu -- pa naj bo to z ročnim vpisovanjem URI-ja (url; splošen zapis lokacije dokumenta na internetu -- http://www.slo-tech.com) ali s klikanjem po hyperlink povezavah -- se to povečini odvija z metodo "get". Kot pove že ime, brskalnik od strežnika "zahteva" ("dôbi") neko stran. Ta metoda se lahko uporabi tudi za posredovanje podatkov, vpisanih v razne spletne obrazce. Verjetno ste že kdaj videli kakšne zapletene povezave, recimo:

NLBjeva svninjarija

V tem primeru je splošna lokacija dokumenta -- uri -- prekinjena z znakom "?" (vprašaj), sledijo pa mu argumenti. V danem primeru je ime posredovanih spremenljivk "threadID" z vrednostjo "43210" ter "mesto" z vrednostjo "konec". Ta podatka strežnik prestreže ter nam ponudi stran, katero "zapolni" z zahtevano temo našega foruma.

Druga metoda, "post" ("pošlji"), pa je v uporabi tam, kjer podatki zaradi različnih razlogov ne smejo biti posredovani na prej omenjeni način. Tu se poleg zahtevka po spletni strani strežniku pošljejo določeni podatki, katere pa strežnik obdela na enak način kot pri uporabi metode "get" -- le, da potujejo nekaj vrstic nižje ter niso vidni v url-ju (kljub temu pa ta medota nima nobenih dodatnih varnostnih mehanizmov ter ni varnejša od metode "get").

Informacijski sistemi danes povečini uporabljajo kombinacijo obeh zgoraj omenjenih metod: prvo ponavadi za pridobivanje želene strani, drugo pa za enkratna pošiljanja podatkov.

Problem pa se pojavi pri tem, da lahko malce naprednejši uporabnik dobi vpogled v posredovane podatke in njih sestav. S tem znanjem bi lahko sam ustvaril program, ki bi umetno ustvaril natanko tak promet get in post zahtevkov, kakršnega bi ustvaril uporabnik sam s prenakazovanjem denarja.

Druga možnost bi bil tak program, ki bi deloval kot skripta: namesto uporabnika bi klikal na potrebne gumbe na sistemu za spletno bančništvo ter tako uporabniku olajšal prenakazovanje denarja -- tudi v tem primeru lahko govorimo o umetno ustvarjenem prometu zahtevkov.

V danem primeru ne moremo z gotovostjo trditi, kašen pristop je bil uporabljen. V ta namen bi bil potreben zelo natančen vpogled v delovanje in izvorno kodo programa, kar pa ni mogoče: konec koncev si ne želimo tudi sami nakopati tožbe za 100 milijonov, kajne? Lahko pa sklepamo (1), da je programer izkoristil "prednost" v Microsoftovem spletnem brskalniku, ki omogoča t.i. skriptiranje. Ta je sicer v prvi vrsti namenjena izdelovalcem raznih razširitev za omenjeni program, ki so svetu bolje poznani pod tujko "plug-in". Dilema: ta lastnost (oz. "dobrota") je namenjena čisto legalni uporabi ter je hudo uporabna; konec koncev, podobno podporo imajo tudi drugi brskalniki, recimo Mozilla, Netscape. V tem primeru pa je bila izkoriščena v potencialno zle namene, t.j. uporabniku izprazniti njegov bančni račun. Varnostna Luknja ali ne?

Nadalje se pojavi tehnično vprašanje: "Kako ločiti med prometom, ki ga je ustvaril uporabnik s prenakazovanjem denarja in onim, ki ga je ustvaril nek zlonameren program?" Odgovor: "V primeru, da se program izvede na nivoju spletnega brskalnika je to mogoče le, v kolikor program prometu pridoda nek svoj podpis." Ta podpis je "razlika" med obema ustvarjenima prometoma -- recimo, da je "post" zahtevkom na koncu dodan še kakšna spremenljivka, ki jo bančni sistem ne upošteva, ali pa le nek dodaten znak "&", ki sicer služi ločevanju spremenljivk med seboj. Takšno dejanje bi bilo s strani programerja zlonamernega programa skrajno neumesno in neumno, saj bi si tako na dolgi rok onemogočil izkoriščanje svojega umotvora, in ga tako običajno ni pričakovati.

Uporabnik pa lahko tudi sam (6, 11) prepreči izvajanje tovrstnih skript: z onemogočenjem postavk "Scripting" v varnostnih nastavitvah Internet Explorerja oz. izklop postavke "Enable third-party browser extensions" za onemogočenje zunanjih COM objektov. Po predvidevanjih naj bi v tem primeru delovala zadnja rešitev.

Bolj zaskrbljujoče pa je dejstvo, da je na internetu prosto dostopnih veliko trojanskih konjev v pravem (računalniškem) pomenu besede, ki pošiljatelju dejansko omogočijo skoraj popolen nadzor nad oddaljenim računalnikom. Če ponudim primer, bi tako nepazljivemu uporabniku podtaknili trojanskega konja (najpogosteje preko priponke elektronski pošti ali zlorabo kakšne druge napake v sistemu), ki bi mu onemogočil varnostne mehanizme kot so protivirusno programje ter požarni zid, prestregel uporabnikovo geslo ter celo na svoj računalnik prenesel certifikat. Še uporabnejši pa bi se oddaljeni okuženi računalnik izkazal v primeru, ko bi iz njega naprej izvajali podobna dejanja: delo bi si lahko celo olajšali z namestitvijo programa tipa "PC Anywhere" (omogoči delo na oddaljenem računalniku v okenskem - grafičnem načinu); transakcije bi bile v tem dejanju na računalniški strani sledljive zgolj do lastnika okuženega računalnika!

"Kaj je Akter sploh pogruntal novega?" Hja, v bistvu bi lahko rekli, da je ustvaril (ali priredil) nekega drugega trojanskega konja, ga zelo okrnil ter njegovo delovanje avtomatiziral oz. priredil za delo s sistemom klik. Z malo truda bi lahko izdelali podoben program, katerega spekter delovanja bi bil bistveno širši (druge banke, spletne trgovine...) -- pravzaprav nam ga sploh ne bi bilo potrebno na novo delati: vzemimo recimo NetBus (pred časom zelo razširjen trojanski konj) ter ga malenkostno avtomatizirajmo. Vprašanje varnosti je tako celo bolj pereč problem! Protivirusini programi večino dostopnih trojanskih konjev sicer poznajo, vendar to zaradi njihove razširjenosti. Vsak virus morajo namreč najprej prejeti pristojni na inštitutih za varovanje računalniškega zdravja, nakar njegovo definicijo (podpis) vključijo v protivirusne programe. Če je nek program tako zelo malo razširjen oz. deluje v izoliranih okoljih, je kaj takega skoraj nemogoče, kar ga naredi veliko nevarnejšega. Akterjev zaščitni sistem bi tako lahko deloval na dva načina:

  • zgolj z njegovim lastnim trojancem, saj bi moral poznati njegovo delovanje oz. podpis; zaščita se lahko namesti na bančne strežnike.
  • na uporabnikovem računalniku: pojavi se problematika zaupanja -- Kako pa lahko vemo, da tudi ta zaščita ne deluje kot kakšen trojanec? Avtor namreč ni priznana osebnost, primerljiva z uveljavljenimi imeni in znamkami. Zopet bi deloval zgolj z njegovim trojanskim konjem.

V vsakem primeru pa bi ta zaščita delovala le proti programu "Lažni podpis" -- katerega je ustvaril Akter in ga ni moč dobiti. No, če pa bi ga v javnosti nekdo dejansko dobil, bi ga lahko le od gospoda Škulja. Ča pa bi ga nek posameznik dejansko dobil na e-mail v neprepoznavni obliki, bi šlo za kaznivo dejanje. No, vsi pa približno vemo, kdo je avtor tega trojanskega konja...

... Pravzaprav ne. R. Š. priznava, da mu je v "detajlih" (9) pomagal kolega programer. Žal pa ne moremo mimo bledega nasmeška ob njegovih izjavah in dejanjih, ki na vseh krajih kažejo ne le manjka poznavanja osnov informatike, ampak precejšnje nespecifičnosti pri delovanju programa ter njega izdelavi, še posebej pa pri njegovi tako imenovani "zaščiti" -- da o "alternativah" ne govorimo.

Kakor pa so mi povedali nekateri, naj v Sloveniji (Evropi) ne bi bilo moč patentirati programske opreme, softwarea -- pravzaprav je to mogoče le v ZDA. Kje je bila vložena vloga za patent, za kaj?


Inkvizicija

Če naredimo kratek povzetek:

R.Š. oz. tretja oseba ("njegov programer") je nekaj, čemur lahko rečemo "feature" MS Internet Explorerja, izkoristil v zlonamerna dejanja ter to lastnost oklical za "varnostno luknjo", ki je baje ni moče zakrpati. Paradoks se ponuja kar sam. It's a bug, not a feature!

V tem primeru je sporno tudi ponujanje zaščite, katero je Akter želel NLB prodati za menda 500.000 evrov. Lepo in prav, če ta zaščita ne bi delovala proti programu, ki ga je napisal on sam. Prodajanje zaščite pred samim seboj? (Mimogrede, v NLB so nekaj imenovali "izsiljevanje"...) Seveda nihče ne bi potreboval take zaščite, če gospod ne bi tega programa sam spustil v divjino -- v divjini pa je že nemalo podobnih-a-boljših trojanskih konjev, proti katerim zaščita sploh ne bi delovala. (Mimogrede, ob tem se mi je v izprijenih možganih pojavila sledeča misel: "Izumljanje tople vode, pogrete na 10 stopinj celzija.")

Nekako ne smemo mimo dejstva, da do vdora v sistem klik ni prišlo -- vsaj ne v tehničnem smislu. Tovrstna besedila so torej (nenamerna) zavajanja laične publike, z izjemo izjav Akterja -- ki pa so morda prav tako nenamerne.

Kakopak, omenjena zadeva bo svoj epilog verjetno dosegla na sodišču.


Laisses-faire

V času pisanja se govori o treh tožbah:

  • proti Novi Ljubljanski banki: zaradi nesklenitve pravnega posla pogajanjem navkljub;
  • proti Microsoftu: v namene strokovne ocene naj bi od policije dobili izvorno kodo programa
  • proti državi: ker naj bi se policija izkazala za zaščitnika banke ter naj bi ravnala brez potrebnih odredb sodišča.

Pravnik nisem, zatorej tožb nikakor ne morem komentirati. Žal pa se mi -- kot laiku -- zadnji dve zdita upravičeni (seveda, v kolikor je zgodba takšna, kakor so nam jo podali mediji -- kar pa se je ravno v tem primeru izkazalo za rahlo dvorezen meč). Možna je tudi tožba v drugi smeri, vendar o tej še ni kaj veliko znanega.

Po besedah Kristijana Gnilšaka, Akterjevega odvetnika, se "junak javnosti" sooča z izgubo svojega avtorskega dela -- ki naj bi bilo istočasno tudi njegovo življenjsko delo.

Za 500.000 evrov oz. 300.000.000 sit? Zagotovo.


Več o varnosti v spletnem poslovanju ter sredstvih zaščite si lahko preberete v našem forumu -- Klik!

Kršitve avtorskega prava na internetu

Kršitve avtorskega prava na internetu

“Stvar je preprosta. Piratiziranje = slabo. Se komu zdi, da je prav, če se software kar daje naokrog? Se vam? Meni se tudi zdi prav ampak ne za ves software, za tistega, kjer ima uporabnik dovoljenje, da ga lahko daje naokrog. Open Source software to v večini primerov omogoča. Izvolite ...

Preberi cel članek »

Nadloge interneta - spyware

Nadloge interneta - spyware

V članku bomo obravnavali temno plat uporabe računalnika, ki je povezana predvsem z operacijskimi sistemi MS Windows, ki so najbolj razširjeni med domačimi in poslovnimi uporabniki. Govora je o tim. spyware programih - parazitnih ali vohunskih programih, katerih namen je pridobivanje ...

Preberi cel članek »

Pogovor z Gorazdom Božičem, vodjo Si-CERT

Pogovor z Gorazdom Božičem, vodjo Si-CERT

Področje računalniške varnosti postaja čedalje bolj pereč problem, s katerim se v zadnjem času ukvarjajo tudi policija, tožilstvo in sodstvo. Računalniški strokovnjaki pa se s temi problemi srečujejo že dlje časa. Eden takih je tudi Gorazd Božič, ...

Preberi cel članek »

Spam, spam, spam

Spam, spam, spam

Oglaševanje in propagiranje raznovrstnih izdelkov nas spremlja že dolgo časa. Reklame na televiziji ter radiu, gigantski posterji ob cestah, deljenje reklamnih letakov in njihovo zatikanje v poštne nabiralnike so le najbolj tipični predstavniki oglaševanja, ki smo se ga ...

Preberi cel članek »

Napadi na delovni pomnilnik

Napadi na delovni pomnilnik

Delovni pomnilnik ali RAM (Random Access Memory) je del računalnika, v katerem se začasno shranjujejo podatki. Podatki v RAM pomnilniku naj bi se po izključitvi računalnika iz napajanja izgubili, vendar bomo v nadaljevanju videli, da to ne drži povsem. Poleg tim. "običajnega" delovnega pomnilnika, ...

Preberi cel članek »