NSA

Splošna prepoved šifriranja za državljane?

Teroristični napad na Charlie Hebdo je opogumil nekatere državnike po svetu, da so ponovno prišli na plano z idejami o prepovedi šifriranja, saj ob njegovi uporabi država ne more nadzirati komunikacij in pravočasno preprečiti terorističnih napadov (pustimo ob strani dejstvo, da šifriranje ob poboju v Parizu ni igralo popolnoma nobene vloge). Šifriranje je danes na spletu v široki uporabi za e-bančništvo, spletno nakupovanje in prenos naših vsakdanjih sporočil, zato se ga kar ukiniti ne da. Plan B torej: države v šifrirne postopke vgradijo stranska vrata, ki samo njim omogočajo hitro dešifriranje. Vendar ne bo šlo, vsaj ne na hitro.

Katere države?

Vsak državnik ima verjetno v mislih pač svojo državo, ki bi prisilila proizvajalce programja in aplikacij, da bi za njih vgradila stranska vrata. Mogoče bi se nekaj velikih držav vsedlo in podpisalo sporazum, po katerem bi si delile dostop. V luči medsebojnih prisluškovanj med zaveznicami na zahodu, ki jih je razkril Snowden, takšna rešitev danes ni preveč verjetna. Vendar imajo želje po tem tudi drugi režimi, ki med cilji državne politike niti slučajno ne omenjajo svobode govora in zaščite zasebnosti posameznika. Bosta Lukašenko in Kim Jong Un imela isto pravico do stranskih vrat, kot David Cameron? Spomnimo se tudi na probleme državnih trojancev in kam vse so prodali FinFisherja.

Kriminaliziranje neodvisnih rešitev

Pogosta refleksna reakcija v državni upravi za reševanje operativnih problemov je: sprejmimo zakon! Zakon, ki bo recimo določal, da lahko programerji implementirajo le državno-odobrene šifrirne algoritme (s stranskimi vrati in za katere so se medtem morale države uskladiti, kot smo videli malo prej, saj sicer lahko svojo rešitev prodajate samo na domačem tržišču). In Platon reče: “Dobri ljudje ne potrebujejo zakonov da bi delovali odgovorno; medtem, ko slabi ljudje vedno znajo zaobiti zakone.”

Seveda bodo resni teroristi in kriminalci plačali razvoj lastnih kvalitetnih rešitev, zakon seveda ni ovira. Razen, če se zraven še prepove uporabo računalnikov za splošno rabo in se prodaja le še specializirane naprave, nad katerimi nimamo nadzora (blizu temu pride Apple s svojim iOS okoljem in nadzorom aplikacij). Ampak morda kriminalci vendarle lahko pohekajo in sprogramirajo te naprave po lastnih načrtih navkljub prepovedi? Zato potem še omejimo dostopnost znanja o šifriranju in programiranju. Z današnje perspektive, kjer družba uživa sadove odprtokodnega programja in se računalniška industrija zanaša na neodvisne varnostne strokovnjake, ki jim iščejo napake po kodi, povsem absurdno. Neprijetno vprašanje je, ali se bomo začeli premikati v bolj orveljanski svet, kjer bodo takšni ukrepi postali običajni?

Tehnologija

Ne gre pa pozabiti tudi na to, da voditelji držav govorijo eno, kriptografi pa javno razlagajo, kako “zadeva ne bo delovala“. Vendar pa stroka dandanes že ne more biti ovira, ne?

Če pustim cinizem ob strani, lahko končam s pozitivnim primerom. Gre za odziv nizozemske kriminalistke na konferenci o kibernetski varnosti pred kratkim, ki je protestirala ob trditvah, da si organi pregona vedno želijo slabo šifriranje, takšnega ki ga lahko vedno zlomi. Nizozemci so vedno nekaj posebnega.

Tisti, ki želite vedeti več, so oglejte pa še posnetek predavanja Cory Doctorowa: “The coming war on general computing” iz konference 28c3, ki jo vsako leto organizira Chaos Computer Club.

Državni trojanec

Ali je prav, da policija podtakne na vaš računalnik prisluškovalni program? Zakaj? Zato ker ne more posneti vaših pogovorov po Skypu, kot jih lahko na mobilnih ali stacionarnih telefonih, vi pa ste osumljeni resnega kaznivega dejanja in so potrebni dokazi o vašem početju. Vsaj tako si predstavljam, da gre argumentacija v prid predlaganim spremembam Zakona o kazenskem postopku (ZKP-M). Tole recimo piše v sami obrazložitvi:

Naslednja posledica razvoja informacijske in komunikacijske tehnologije je možnost, da uporabniki že pri viru kriptirajo komuniciranje preko spletnega omrežja (na primer Skype in elektronska pošta). S tem praktično onemogočijo izvedbo prikritega preiskovalnega ukrepa iz 1. točke prvega odstavka 150. člena ZKP (nadzor elektronskih komunikacij s prisluškovanjem in snemanjem), saj se ta ukrep izvaja tako, da operater prestreže komunikacijo v svojem omrežju in nato vsebino komunikacije posreduje nadzornemu centru policije, kjer se izvaja nadzor prestreženih komunikacij. Zato je treba na ustrezen omogočiti prestrezanje komunikacije že pri viru – torej preden se kriptira in samo v primeru, ko so izpolnjeni zakonski pogoji za odreditev ukrepa iz 1. točke prvega odstavka 150. člena ZKP (ožji nabor hujših in zapletenejših kaznivih dejanj s hujši predpisano kaznijo, obstoj utemeljenih razlogov za sum, nemožnost pridobitve dokazov z drugimi – manj invazivnimi – ukrepi, odredba preiskovalnega sodnika).

Res je. Tehnološki napredek je omogočil šifriranje, ki je dostopno vsem, razbiti pa ga je praktično nemogoče (razen velikanom, kot je ameriška NSA, pa še to ne vedno in ob dragem dolgoletnem trudu). Edina možnost, ki ostane policiji, je torej prestrezanje na enem ali drugem koncu komunikacije – preden se besedilo ali govor zašifrira, ali potem, ko se že odšifrira. Ker se to dogaja na napravah osumljencev, predlog sprememb predvideva namestitev prestreznih programov prav tam. Tu pa se stvari zapletejo.

IMG_1499Stranski učinki

S podtikanjem programa na tuj računalnik nanj vnesemo spremembe. Te so lahko manjše ali večje in bolj ko želimo, da bo podtaknjen program deloval pritajeno in ne bo odkrit, globje posege v operacijski sistem moramo praviloma narediti. V nemškem primeru iz leta 2011, ko je Chaos Computer Club odkril “Bundestrojaner”, so ugotovili tudi, da je ta omogočal namestitev dodatnih modulov in da “je trojanec slabo zaščiten in da ga lahko prevzame (in s tem nadzor nad računalnikom, kjer je nameščen) tudi nepooblaščena oseba. V dokaz so sami razvili ustrezni nadzorni program.”

Tudi industrija je že pomislila na pritajene programe. Sony je pred leti na 22 milionov CD plošč namestil rootkit, ki je okužil računalnik in tako poskusil preprečiti njihovo kopiranje. Podtaknjence je nekdo odkril in Sony je doživel odmeven škandal in nekaj tožb.

Naloga protivirusnih programov je, da takšne “artefakte” zaznavajo. Če bi vlade po svetu želele od teh podjetih, da vzdržujejo seznam državno odobrenih trojancev, se stvari zapletejo. Za katere države? Kitajsko? Savdsko Arabijo? ZDA? Če pristanejo na ene države, ne pa na druge, potem izgubijo sloves nepristranskosti in verjetno tudi tamkajšnji trg. Kaj, če trojanca najdejo v kriminalnem podzemlju in ga (ker vedo, da ga protivirusniki ignorirajo) ugrabijo zase in začnejo z njim krasti e-bančne podatke? Bomo morali tudi na odzivnih centrih razmišljati pri preiskovanju škodljive kode s kakšnega prenosnika o tem, da gre morda za policijsko kodo? Nas bo kdo o tem obveščal, ter kakšne bodo takrat naše zakonsko določene obveznosti? Predvidene ta trenutek niso nobene.

Če se počutimo čisto malo futuristično, pa moramo misliti tudi na prepletanje elektronskega in biološkega. Google Glass je samo začetek in čez nekaj let lahko pričakujemo kontaktne leče, kasneje pa bo mogoče naša čutila nadgraditi z elektronskimi komponentami — malimi računalniki (nekaj tega se dogaja že sedaj). Bodo danes sprejete zakonske spremembe pravno utemeljile podtikanje trojancev čez leta tudi v naše telo? Kakšni bodo lahko stranski učinki v tem prepletenem okolju?

Stroški izdelave

Ni nujno, da je izdelava ali nakup takšne opreme drag. Enostavne “tarče” bi verjetno organi pregona lahko ustrezno naciljali že z majhnimi in sorazmerno nezahtevnimi trojanci. Ne verjamem, da bodo vsi osumljenci blazno pripravljeni na takšne vdore v njihove sisteme (se recimo spomnite vdora Anonimnih v sistem HB Gary?). Ni treba vedno kupiti 0-day ranljivosti, socialni inženiring dela čuda (glej “spear phishing”). Na njem tudi večinoma temeljijo ciljani napadi s škodljivo kodo. Tisti zelo resni pa bodo morda res nedosegljivi, ali pa bo treba za vdor v njihov sistem povezan velik strošek priprave.

Če bi policija želela na trgu kupiti tako programje, pa imamo nov problem. Trg ponudbe IT storitev in programske opreme vsebuje polno zanič podjetij, ki želijo zaslužiti na hitro. Ponudili bodo nekaj za visoko ceno in kako bo naročnik vedel, da je res dobil kvalitetno opremo?

Kaj sedaj?

Če želimo, da se policija bori proti kriminalu, potem ji moramo dati na voljo primerna orodja in pooblastila. To je treba uravnotežiti s primerno zaščito zasebnosti državljanov in nadzorom. Zelo jasno, kajne? Vsak bo to podpisal. Kako pa v praksi najti tisto pravo razmerje? Glede državnega trojanca lahko ta trenutek sam rečem le to, da je tema vsaj kontroverzna in da odpira kopico zapletenih vprašanj, na katera ta trenutek še ni videti jasnih odgovorov.

Življenje po Snowdenu

Široko prisluškovanje ameriške NSA že mesec dni vzdržuje zanimanje javnosti. Sedaj je recimo jasno tudi to, da NSA letno nameni kar 250 milijonov dolarjev za slabljenje šifrirnih postopkov. Denar je namenjen vstavljanju ranljivosti v komercialne šifrirne sisteme, ter vplivanju na specifikacije in standarde tehnologij za šifriranje na osnovi javnih ključev. V sodelovanju s proizvajalci strojne in programske opreme NSA in britanska GCHQ poskrbijo, da imajo odprta stranska vrata v razširjene protokole za šifrirano izmenjavo podatkov. Tiste, ki jih vsak dan uporabljamo tudi za nakupovanje po spletu in e-bančništvo. V dokumentih je navedeno, da gre za TLS/SSL, SSH, IPSec in različne VPN rešitve, internet telefonijo, “in še več.” Kako je to mogoče?

Najprej lahko izdelate šibke šifrirne postopke, ki jih znate že vnaprej razbiti ali zaobiti. To je težko, saj so ti algoritmi ponavadi javno znani in izpostavljeni presoji matematikov po vsem svetu, zato vas lahko razkrinkajo. Po drugi strani je res, da je NSA dolga leta veljala za močno avtoriteto na področju kriptografije in je tudi sama predlagala številne standarde, ki jih je sprejel ameriški inštitut NIST in se danes tudi uporabljajo. Vsi algoritmi na koncu živijo v kakšnem čipu, bolj pogosto pa so implementirani v programski opremi. Tu je druga točka napada. Prispevate lahko svoj del kode, ki je ravno prav pokvarjen. Toliko, da vam bistveno skrajša čas, potreben za dešifriranje sporočila (če ste NSA, imate doma namreč ogromen superračunalniški center). Ali pa kar neposredno stopite do proizvajalca in ga s svojo avtoriteto prepričate, da vstavi stranska vrata za lov teroristov v svoje produkte.

Že slišim zmagoslavne krike zagovornikov odprte kode, češ da je rešitev prav pri njih! Tam je izvorna koda na voljo za pregled prav vsem in programerska skupnost bo zato v njej hitro odkrila napake in podtaknjene pomanjkljivosti. Po tej logiji odprtokodni programski paketi skoraj ne bi imeli več varnostnih lukenj, vendar to še zdaleč ni res. Kdo pravi, da so vsi programerji na odprtokodnih projektih vrhunski? Poglejte samo zgodovino lukenj v PHP ali Joomli! Odprtokodni projekt je recimo tudi selinux, modul varnostnih izboljšav za jedro linuxa, kjer je glavni razvijalec prav NSA. Se boste zakopali v izvorno kodo, ali pa boste v luči vseh člankov o NSA sedaj imeli pomisleke pri njegovi namestitvi? Dobro – vzemimo za primer raje openssl, ki verjetno poganja večino šifriranja na spletu. C-jevske kode je okoli 350.000 vrstic. Med njimi so velike, skrbno sestavljene številčne tabele, ki so nujna sestavina uporabljenega šifrirnega algoritma. Pa sedaj najdite podtaknjeno spremembo entropije v njih, če znate.

openssl-1.0.1e/crypto/seed/seed.c

openssl-1.0.1e/crypto/seed/seed.c

Vsej šifrirni kolobociji se izognete, če znate priti do vira komunikacije, se naseliti v sam računalnik in tam prestrežete ključe. To boste naredili s posebno zlonamerno kodo, virusom, ki bo tarčo okužil. Če ga prej podpišete z ukradenim razvijalskim certifikatom, je vaš dostop do tarče še lažji, saj se bo virus recimo predstavil kot nadgradnja gonilnika.

Kaže, da so v omenjenih tajnih službah počeli prav vse od naštetega. To zadnje smo recimo videli pri Stuxnet programu, ki je z okužbo Windows nadzornih postaj za leta 2010 uspešno izvedel fizične sabotaže Siemensovih centrifug za bogatenje urana v iranskem jedrskem programu. Virus je bil podpisan z veljavnima digitalnima certifikatoma podjetij Realtek in JMicron.

Eni bodo seveda rekli, da so to vseskozi vedeli in da je vse to itak normalno delo tajnih služb. Tem ljudem ne verjamem prav zares. Ja, vsi smo leta govorili o Echelon programu prisluškovanja in ugibali, kaj od šifriranja lahko NSA razbije in česa ne. Vendar pa vse do Snowdena nihče ni prišel na plan z jasnimi dokazi, da je kaj takšnega mogoče. Njegova razkritja nam menjajo perspektivo pogleda na omrežje in naše komunikacije v njem. Če se je najprej začelo majati zaupanje v dobroto internet velikanov, ki nam takorekoč zastonj ponujajo vse te lepe oblačne storitve, se sedaj maje naše zaupanje v same tehnološke osnove komunikacijskih protokolov, ki so ustvarjeni ravno za to, da skrijemo podatke pred neželenim prisluškovanjem. Vedno bolj je razločen občutek, da je za boj proti terorizmu sprejemljiva cena zloraba vseh nas. Sam pa sem se to poletje spominjal odgovora kriptografa in guruja informacijske varnosti Bruca Schneierja, lansko leto na konferenci Def Con 20. Na okrogli mizi je dobil vprašanje, kaj si misli o do hekerjev nadvse prijaznem in všečnem vabljenem predavanju direktorja NSA Keitha B. Alexandra dan prej. Odgovor je bil zelo kratek: “Pa mu ja niste nasedli?!”

Kolumna je bila objavljena v oktobrski številki revije Monitor.

DefCon 20

DefCon je največja hekerska konferenca, ki je ravnokar proslavila dvajsetletnico svojega obstoja. Prve konference so imele nekaj sto udeležencev, med katere so se skušali infiltrirati tudi ameriški zvezni agenti. Hekerji so to hitro ugotovili in zato kar uvedli javno tekmovanje “Spot the Fed”. Dvajset let kasneje je DefCon brez dvoma najbolj množična konferenca za omrežno varnost, ki ima še vedno zelo jasno hekersko identiteto. Le da so sedaj zvezni agenti tudi čisto uradni gosti (“Spot the Fed” še vedno traja, dodana pa je prijazna “Meet the Fed” okrogla miza). Predprijava na konferenco ne obstaja, plačilo kotizacije ($200) pa je možno le v gotovini na licu mesta. No questions asked. DefCon je vedno v Las Vegasu, par dni prej pa lahko obiščete tudi Black Hat, ki je DefConov alter ego, namenjen bolj uradni publiki (temu primerna je tudi cena).

DefCon 20: Udeleženca

Udeleženca konference

Na DefConu boste takoj opazili nenavadno veliko ljudi, ki si na predavanjih zapiske delajo v blokce s kuliji. Saj: če kje, potem bodo luknjo v vašem laptopu našli tu. Seznam prestreženih gesel nepazljivih udeležencev na konferenčnem Wi-Fi omrežju redno osvežujejo na Wall of Sheep projekciji. Poleg predavanj se lahko udeležite različnih tekmovanj (v hekanju, razbijanju šifrirnih kod ali računalniških igrah), skupine pa se pomerijo v Capture the Flag tekmovanju.

Po toliko letih ima konferenca že svoje slavne osebnosti. Prvi je sigurno Jeff Moss alias Dark Tangent, kreator in organizator DefCona. Letos je govoril tudi Bruce Schneier, sigurno največju “guru” infoseca (nekateri mu pravijo tudi rock zvednik informacijske varnosti), na podpisovanje svojih knjig pa je prišel najbolj slavni heker do sedaj, Kevin Mitnick (preberite njegovo knjigo Ghost in the Wires).

Vse pa je močno zasenčil letošnji uvodni govorec, direktor NSA (National Security Agency), general Keith B. Alexander. Izkušen govorec, ki ni skoparil s komplimenti hekerski skupnosti. Na oder je povabil mlado CyFi, ki je zmagala na tekmovanju DefCon Kids in jo predstavil kot pozitiven zgled in up države v boju proti sovražnikom. Neposredno je izjavil, da je preiskovanje ranljivosti, ki ga opravlja hekerska skupnost, pomemben prispevek k izboljšanju varnosti in dodal: “We need you!” NSA je imela celo svojo stojnico na konferenci (in objavila možnosti zaposlitve), malo ironično zraven EFF (Electronic Frontier Foundation), ki je takoj po konferenci objavila prispevek o tem, zakaj NSA ne sme biti zadolžena za kibervarnost.

Bruce Schneier je naslednji dan na vprašanje o predavanju direktorja NSA dejal: “Pa ja niste nasedli?”

Predavanje raziskovalcv iz Penn State University o ranljivostih P25 radijskih naprav, ki jih uporablja ameriška vojska, policija, reševalci in gasilci (ter skoraj vse druge službe na terenu) me je spomnila na nedavno objavo GSM ranljivosti na Slo-techu pred nekaj tedni, sploh ko smo pri nas doma slišali tudi mnenja, da je vsako tako preiskovanje ranljivosti avtomatično tudi kaznivo. V ZDA so nemalokrat takšne raziskave državno financirane (v konkretnem primeru preko NSF, National Science Foundation). Posnetkov iz DefCona še ni, ogledate pa si lahko bolj ali manj isto predavanje iz USENIX konference.

Razbijanje gesel je zrela panoga, ki se je skladno s trendi premaknila v oblak (kot vse drugo). Pedavanje Cryptohaze Cloud Cracking je še enkrat zelo jasno izpostavilo, da so “nesoljena” gesla lahka tarča in da je potrebno pazljivo izbrati tudi samo sol. Časi, ko si je lahko “zaščito” izmislil poljubni programer spletne aplikacije, so brez kančka dvoma mimo! Programerji: uporabite bcrypt, če se le da, sicer pa sha-512 ali sha-256. Sol naj bo čimbolj naključna, nevezana na uporabnikov račun ali kakšno drugo njegovo lastnost. Moja priljubljena mantra letošnjega leta pa je: razvoju aplikacij naj sledi neodvisni varnostni pregled in testiranje.

Vseeno se je večina programske opreme z varnostnega stališča vendarle izboljšala v zadnjih desetih letih. Microsoft je bil takrat konstantno na sramotilnem stebru, danes nič več. Obrat je prišel pri njih s tem, ko je vodstvo ugotovilo, da je varnost operacijskega sistema pomemben del produkta in ustanovilo ekipe, ki so se zaščite lotile sistematično in jo vpele v procese razvoja. Takrat je Microsoft prvič tudi stopil v kontakt s CERT centri po svetu in neodvisnimi raziskovalci, ki so odkrivali napake. Obstajajo pa zatohli žepi na področju razvoja programske opreme, ki so ostali kar nekje v prejšnjem stoletju, med njimi je SCADA oprema.

SCADA (Supervisory Control And Data Acquisition) je oznaka za sisteme, s katerimi krmilimo industrijske procese. Lahko gre za krmiljenje tekočih trakov v proizvodnji, ali pa nadzorne sisteme za elektrarne, plinarne in raznovrstno drugo zanimivo infrastrukturo. Ker se je vsa zaščita tam prevedla na predpostavko, da ti nadzorni sistemi niso priključeni na internet, se zdi, kot da so razvijalci ostali na nivoju študenta, ki naredi svojo prvo resno aplikacijo. Prikazani so bili primeri hrambe gesel v čisti obliki, neumno zasnovanih obvodov okoli gesel in podobno. Ti sistemi bi morali biti deležni največje pozornosti, saj preko njih lahko manipuliramo s kritično infrastrukturo. Od te pa je odvisna kvaliteta, včasih pa tudi življenje samo. (Doma smo že obravnavali nekaj takih primerov, sigurno nas čaka še več. V romanu pa je tema obdelana v Russinovichevem Zero Day.)

Ogled predavanj, ko bodo na voljo na Youtubu, bi moral biti obvezen za vse, ki v državi sodelujejo pri vpeljavi (recimo) pametnih števcev in druge avtomatizacije naše infrastrukture. Da moramo zdaj poskrbeti za zdravo zasnovo in vse rešitve temeljito preveriti, je jasno prikazano na DefConu in vseh drugih konferencah informacijske varnosti. V stroki dileme o tem sploh ni. Kako to sporočilo spraviti do odločevalcev, je pa drugo vprašanje.

Anonymous se je podpisal na dvigalo (DefCon 20)

Čeprav konferenca še vedno nosi feeling hekerske subkulture iz 90. let prejšnjega stoletja, je jasno, da odrašča skupaj z ljudmi, ki so jo ustvarili. O tem priča sama popularnost konference in raznovrstna publika, hekerska tekmovanja za otroke (DefCon Kids) in nagovor direktorja NSA (tega noben jasnovidec ne bi mogel napovedati pred leti).

Enhanced by Zemanta