Informacijska varnost: Dobre varnostne prakse

Objavljeno: 28.2.2017 | Avtor: Matej Huš | Kategorija: Monitor Pro | Revija: Marec 2017

V svetu elektronov in bitov na nas prežijo številne nevarnosti, a to ne pomeni, da smo povsem brez moči. Verjetnost, da nas zadenejo nevšečnosti, lahko korenito zmanjšamo z uporabo dobrih varnostnih praks. Nekatere izmed njih so samoumevne, druge bodo še postale take. Nekatere so namenjene rabi doma, druge uporabljajo tudi velike organizacije.

Navadili smo se že, da se moramo v avtomobilu pripeti z varnostnim pasom, čeprav nepripeti nevarnost v glavnem predstavljamo sebi. Toda država je ocenila, da interes družbe v tem primeru prevlada nad svobodo posameznika, in predpisala obvezno pripenjanje ter globe za kršitelje. Avtomobil je v očeh zakona nevaren predmet, zato je za njegovo rabo treba imeti posebno dovoljenje in zavarovati odgovornost. Podobno mora, kdor uporablja peči na fosilna goriva, obvezno namestiti merilnik ogljikovega monoksida, pa čeprav velika večina naprav ne povzroči nobenega incidenta in čeprav je ogljikov monoksid (smrtno) nevaren samo za ljudi v istem prostoru. Pa tudi hiše ne smemo postaviti, kakor želimo, temveč se mora pod projekt podpisati usposobljena odgovorna oseba.

Z računalniki lahko danes vplivamo na življenje neprimerno bolj kot z enim osebnim avtomobilom ali tudi podrto hišo. Decembra 2015 je bilo v Ukrajini 80.000 gospodinjstev več ur brez električne energije zaradi hekerskega napada, ki se je ponovil tudi lanskega decembra. Leta 2016 so domnevno ruski hekerji onesposobili 12 kanalov, ki jih je oddajala francoska televizija TV5. Iz bangladeške centralne banke so hekerji natanko pred letom dni ukradli več kot 80 milijonov dolarjev.

V večjih organizacijah je za informacijsko varnost bolj ali manj poskrbljeno, marsikod pa zelo pomanjkljivo ali sploh ne. Poizkusite si izposoditi službeni avtomobil, pa boste morali dobiti tri podpise nadrejenih, oddati načrt potovanja in na koncu oddati poročilo z natančnim opisom poti. Po drugi strani pa lahko zaposleni v službo prinese prenosni računalnik, ga priključi v prvo prosto ethernetno vtičnico in dostopi do intraneta. Preverjeno.

Doma je še slabše. Vsakdo lahko v računalnik namesti, kar mu poželi srce, računalnik priključi v internet in ga začne uporabljati. Nihče ne zagovarja striktne regulacije domačih računalnikov, a lepo bi bilo, ko bi ljudje poznali vsaj osnovne varnostne prakse. Navsezadnje je okužen, v internet priključen računalnik nevarnejši od nepripetega voznika, saj lahko pošilja smetje, izvaja napade DoS itd.

Toda niti podjetja, ki bi na to morala paziti, niso nič boljša. Prav vsak izdelovalec lahko poljubno napravo naredi pametno, kar je zgolj fin izraz za povezavo z internetom ali Bluetoothom, pri čemer se požvižga na varnostne standarde. Pameten termostat za hišo lahko uporablja najboljše varnostne standarde ali pa sploh nima požarnega zidu in ima privzeto geslo. Oba se bosta enako dobro prodajala pri najboljšem sosedu ali specialistu za delavnico, hišo in vrt.

V Nemčiji so minuli mesec kupci otroške igračke lutke Cayla od Zvezne agencije za omrežja dobili navodila, da morajo to pametno igračko zaradi varnostnih lukenj v implementaciji Bluetootha uničiti. V Nemčiji je namreč zaradi slabih zgodovinskih izkušenj prepovedano imeti naprave za prikrito snemanje.

Toda mehanizmi in dobre prakse za preprečevanje vdorov so, le uporabiti jih je treba. Nekatere doma, druge v podjetjih, tretje povsod.

Požarne pregrade

Eden izmed osnovnih sistemov za zagotavljanje varnosti računalnikov so požarni zidovi, ki so dobili ime po analogiji z zidovi za preprečevanje širjenja požarov v stavbah. Požarni zid deluje kot vratar, ki analizira ves promet med zaupanja vrednim omrežjem in ne-varnim omrežjem. Na ravni omrežja je požarni zid navadno strojni in ločuje krajevno intranetno omrežje od zunanjega interneta. Posamezni računalniki imajo lahko tudi programske požarne zidove (v Windows so od različice XP na primer že vgrajeni in vključeni), ki opravljajo isto funkcijo na ravni enega računalnika.

Požarni zidovi načeloma prepuščajo le promet, ki je izrecno dovoljen, vse drugo zavračajo. Ključ je določiti, kateri promet je dovoljen. Prvi požarni zidovi so delovali po načelu ACL (access control list), torej so imeli seznam omrežnih naslovov in vrat, ki jim je dovoljen dostop do interneta in kam. Posredniški požarni zidovi (proxy firewalls) se predstavljajo kot končni cilj, potem pa pregledajo ves promet in določijo, ali ga bodo posredovali dejanskemu naslovniku ali ne. To sicer zahteva veliko zmogljivosti. Tretja generacija požarnih zidov promet analizira na dva načina. Najprej preveri, v katero vsebinsko kategorijo sodi. To ugotovi iz vrat, kamor je namenjen (npr. http na 80, https na 443). Potem analizira interakcije vseh povezav, ki jih promet vzpostavi. Tako dovoljuje promet, ki je posledica zahtevka iz notranjega omrežja (npr. odgovor spletne strani, ki jo želimo obiskati), ne dovoljuje pa nezahtevanega prometa (npr. zunanji napad).

Danes so moderni požarni zidovi, ki združujejo več funkcij in tudi druge vrste opreme, denimo imajo integriran protivirus. Imenujejo se UTM (unified threat management). Razvijajo se že požarni zidovi naslednje generacije (NGFW), ker so pisci zlonamerne programske opreme postali že tako premeteni, da analiza po izvoru prometa in vratih ne predstavlja več zadostne zaščite.

Požarne zidove je treba nujno uporabljati, da se avtomatično rešimo vsaj najosnovnejših poizkusov vdorov in energijo porabljamo za preprečevanje bolj dodelanih in izvirnejših.

Sistem za odkrivanje vdorov

Požarni zidovi in protivirusni programi bolj malo pomagajo, če zlonamerna programska koda izkorišča kakšno ranljivost. Zato potrebujemo tudi sistem za odkrivanje (intrusion detection system ali IDS) ali preprečevanje vdorov (intrusion prevention system ali IPS). Po svoje so podobni protivirusnim programom, ki iščejo sumljivo kodo v računalnikih, saj iščejo sumljivo dogajanje v računalniku oziroma sumljiv promet v omrežju. IDSi so lahko omrežni (network IDS) ali na gostitelju (host IDS). Prvi so nameščeni na strateških točkah v omrežju in nadzorujejo ves promet v omrežju. Ko zaznajo sumljivo dogajanje, denimo pretakanje velikih količin podatkov, ponovljene zahtevke za avtentikacijo ali povezovanje na čudna vrata, opozorijo, da se je zgodilo nekaj nenavadnega. IDS na gostitelju tečejo na posameznih računalnikih v omrežju in preverjajo promet na tem računalniku ter drugo dogajanje na njem, kamor sodi tudi zaganjanje neobičajnih procesov ali poizkus dostopa do določenih virov.

Sistem za zaznavanje vdorov (IDS) ni enako učinkovit zoper vse grožnje.

IDS lahko dogajanje primerja z znanimi podpisi (signature-based) zlonamerne programske opreme, podobno kot protivirusni program zaznava viruse. Tak sistem je omejen zgolj na napadalce in ranljivosti, ki so že znani. Lahko pa IDS išče anomalije (anomaly-based), torej odstopanja od običajne rabe računalniških in omrežnih sredstev, in opozori nanje. Zaradi tega napadalci pogosto več mesecev neopazno tičijo v omrežnem sistemu in spremljajo dogajanje, da bi se čim bolje seznanili z običajnim dogajanjem in potem svoje nakane izvedli podtalno.

Tu se torej požarni zidovi in IDS dopolnjujejo. Požarni zidovi blokirajo ves nezaželen promet in so prva obrambna linija, IDS pa nadzoruje prepuščeno in varuje omrežje. Odvisno od vrste lahko IDS zgolj opozarja na čudno dogajanje ali pa se nanj tudi odzove. Napredni IDS v kombinaciji s požarnimi zidovi so v bistvu kar IPS.

Dvostopenjska avtentikacija

Eden najtežjih problemov v računalništvu je preverjanje identitete in zagotavljanje dostopa. Najšibkejši člen je človek, ki si 32-mestnih gesel iz naključno nametanih črk ne more zapomniti. Da je pisanje gesel na listke slaba zamisel, je jasno vsem, a paradoksalno to ni najhujša pregreha, ki si jo lahko privoščimo. Heker iz Rusije ali Kitajske verjetno ne bo vdrl v vašo pisarno in premetal predalov, da bi našel zapisano geslo. Drugače seveda velja, če imate sodelavce z nepoštenimi nameni. Dosti slabša je uporaba predvidljivih gesel, ki jih z malce socialnega inženirstva (ime psa ste verjetno kdaj omenili na Facebooku) in dostopno računsko močjo (reks, rex, r3x, r3ks in kar je še možnosti) hitro zlomimo. To je problem v vseh organizacijah, kjer dovolimo, da si zaposleni gesla izbirajo sami. Večina vdorov v velike sisteme se zgodi prek okužbe računalnika enega izmed zaposlenih, kar napadalci dosežejo s podtaknjeno zlonamerno povezavo ali zlomom gesla. Nič kaj boljša zamisel ni dodeljevanje gesel, ker si jih bodo ljudje pač zapisovali marsikam.

Dvostopenjska avtentikacija poleg poznavanja gesla zahteva še dostop do pametnega telefona.

Za zagotavljanje dostopa imamo na voljo tri vrste uporabnikovih karakteristik. Preverjamo lahko nekaj, kar uporabnik ve (geslo), nekaj, kar ima (bančna kartica), ali nekaj, ker je (prstni odtis). Dvostopenjska avtentikacija pomeni uporabo dveh karakteristik. V vsakdanjem življenju jo že uporabljamo, ko se na primer v Gmail prijavimo iz druge države in novega računalnika. V tem primeru vnos gesla ne zadostuje, temveč Google preveri, ali imamo pri sebi tudi svoj telefon. Dvostopenjsko avtentikacijo lahko pri številnih storitvah privzeto vključimo, tako da bomo morali ob vsaki prijavi vpisati geslo in na primer kodo, ki jo dobimo na pametni telefon.

Možna pa je tudi »ničstopenjska« avtentikacija, ki jo je Google uvedel pod imenom Smart Lock. Pametni telefon z Androidom ostane odklenjen, dokler je priključen na zaupanja vredno napravo ali dokler je na znanem mestu. Vedno pač tehtamo med enostavnostjo rabe in varnostjo, kjer se zavedamo, da imajo pretirani varnostni ukrepi zaradi človeške lenobe pogosto nasproten učinek.

Šifriranje

V internetu ima tako kot v resničnem življenju vsakdo kaj skriti, saj si tudi sicer ne pošiljamo pisem na razglednicah in ne živimo v steklenih hišah. Šifriranje je način za pretvorbo sporočila v obliko, ki nepooblaščenemu bralcu ne pomeni ničesar. Šifriranje je starejše od računalnikov, saj je že Julij Cezar uporabljal primitivne metode šifriranja (zamenjalna Cezarjeva šifra). So pa računalniki tej disciplini dodali povsem novo dimenzijo. Ko je Julij Cezar poslal šifrirano sporočilo po slu, ga ni smel razumeti sel in morebitni napadalec, ki bi ga prestregel. V dobi računalnikov in interneta je napadalcev neomejeno mnogo, obenem pa imajo na voljo zelo veliko znanja, časa in računske moči.

Decembra 2015 je bilo v Ukrajini 80.000 gospodinjstev več ur brez električne energije zaradi hekerskega napada, ki se je ponovil tudi decembra lani. Leta 2016 so domnevno ruski hekerji onesposobili 12 kanalov, ki jih je oddajala francoska televizija TV5. Iz bangladeške centralne banke so hekerji natanko pred letom dni ukradli več kot 80 milijonov dolarjev.

Zato se je šifriranje s skrivanjem, kot je delovala na primer Enigma med drugo svetovno vojno, že zdavnaj poslovilo. Današnje šifriranje mora biti matematično trdno. Moderni algoritmi so zasnovani tako, da so povsem javni, a da jih napadalec z vso računsko močjo na tem svetu ne more razbiti v razumnem času. Včasih smo se zanašali na produkt dveh velikih praštevil, ki ga je bilo mogoče enostavno in hitro izračunati, medtem ko je bila obratna operacija v praksi neizvedljiva, razen z nepraktično dolgim poizkušanjem. Danes so na voljo tudi drugačni algoritmi, a osnovna zamisel ostaja enaka. Operacija šifriranja mora biti hitra in preprosta, dešifriranje pa ne.

Asimetrično šifriranje se uporablja za prenos ključa (skupne skrivnosti), ki se uporabi pri prenosu podatkov, ki so zaradi hitrosti simetrično šifrirani.

Šifrirne metode delimo na asimetrične in simetrične. Če sporočilo zaklene in odklene isti ključ, govorimo o simetrični metodi. Kadar pa en ključ sporočilo zaklene, drugi pa odklene, govorimo o asimetričnem šifriranju. Uporabljamo kombinacijo. Pri simetričnem šifriranju imamo problem izmenjave ključev, saj moramo prejemniku nekako varno dostaviti ključ. Če varnega kanala za to nimamo, tega ne moremo storiti, če pa varni kanal imamo, odpade potreba po šifriranju. Asimetrično šifriranje to težavo rešuje, saj vsakdo javno deli svoj javni ključ, ki ga pošiljatelji uporabijo za šifriranje njemu namenjenih sporočil. Odklene jih lahko le prejemnik, ki ima ustrezen zasebni ključ.

V resničnosti se asimetrično šifriranje uporablja zgolj za izmenjavo podatka o uporabljenem simetričnem ključu (ki je vsakokrat drugačen), s katerim se potem šifrira dejanski promet. Razlog je v hitrosti – simetrično šifriranje je bistveno hitrejše.

Šifriranje se je v internetu začelo uporabljati za občutljive podatke, denimo e-bančništvo, sčasoma pa se je razširilo. Danes številne spletne strani in storitve omogočajo šifriran dostop. Zanimivo, da je bila elektronska pošta na začetku nešifrirana in da še danes nekateri strežniki (Gmail nas nanje opozori) ne podpirajo šifrirane izmenjave elektronskih sporočil. Takšna e-pošta je elektronska ustreznica poštnih razglednic.

Napadi man-in-the-middle

Lepo je vedeti, s kom se pogovarjamo, v internetu pa je to sploh ključnega pomena. Asimetrično šifriranje rešuje problem prisluškovanja, ne rešuje pa problema prestrezanja z zavajanjem. Če želimo, da šifrirano sporočilo lahko prebere le prejemnik, ga moramo zašifrirati z njegovim javnim ključem. Toda če nam zlonamerni napadalec podtakne svoj javni ključ, bo sporočilo lahko prebral napadalec (ki seveda ima pripadajoč zasebni ključ) in ga potem zašifriral z dejanskim javnim ključem želenega prejemnika, ki ne bo opazil, da je bilo sporočilo prebrano. Temu pravimo napad MITM (man-in-the-middle). Načeloma se je pred napadi MITM težko ubraniti, a je kopica dobrih praks, ki jih skorajda v celoti preprečijo, dokler ne ubiramo bližnjic.

Javnih ključev ne sprejemamo kar od povsod, temveč zgolj, če jim zaupamo. Da je neki ključ zaupanja vreden, dokazujejo overitelji (certificate authority CA). To so velike in ugledne ustanove, ki jim zaupamo samim po sebi, potem pa te z lastnim zasebnim ključem podpisujejo druge certifikate (razširjeni javni ključ). Seveda pa mora vsak svoj zasebni ključ ščititi sam. Celotna infrastruktura se imenuje PKI (public key infrastructure). Sestavljajo jo korenski overitelji, ki jim moramo zaupati, ter overitelji nižjih rangov, ki so morali dobiti overitev.

Pri napadu MITM se pogovarjamo z napadalcem, misleč, da govorimo z želenim prejemnikom.

Pred napadi MITM nas varujejo še druge koristne prakse, denimo pripenjanje digitalnih potrdil (certificate pinning). V takem primeru spletni strani ne zaupamo več, ker jo je certificiral neki overitelj – slednji so že bili tarče vdorov ali pa so celo sami površno izdajali certifikate – temveč zaupamo samo točno določenim digitalnim potrdilom. To zaupanje je časovno omejeno in če se certifikat spremeni pred iztekom, je to znak, da nekaj ni v redu (ali pa da je upravljavec strežnika zgolj izgubil zasebni ključ).

Precej težav rešuje tudi DNSSEC (DNS Security Extensions), ki uvaja podpisane razrešitve zahtevkov DNS. Ko vtipkamo ime domene, gre spletni brskalnik vprašat domenski strežnik, kateremu naslovu IP pripada (to se zgodi v več korakih). Odkrite ranljivosti v DNS so pokazale, da lahko napadalci ugrabijo sejo in uporabniku servirajo lažne naslove IP, tipično ga preusmerijo na svoje zlonamerne strežnike. DNSSEC, ki se še ni množično uveljavil, rešuje ta problem, ker uvaja digitalno podpisovanje zahtevkov in odgovorov.

Navidezna zasebna omrežja (VPN)

Kadar želimo od doma delati v službenem omrežju, kadar želimo v internet prek ne nujno varne povezave (na primer javen Wi-Fi) ali kadar želimo prikriti svojo lokacijo (če bi radi ameriški Netflix), v vseh teh primerih je rešitev VPN. Navidezno zasebno omrežje (VPN) je ovoj ali tunel, ki omogoča varno povezavo različnih omrežij prek javnega nezaščitenega interneta. Podobno kakor požarni zid varuje podatke v računalniku, jih VPN varuje med tranzitom po internetu.

Ko se povežemo s strežnikom VPN, je do njega vzpostavljena varna šifrirana povezava. To pomeni, da prometu ni mogoče prisluškovati. Če je strežnik VPN v podjetju, imamo od doma povsem enako povezljivost, kakor če bi bili fizično v prostorih podjetja. Vidimo isti intranet, imamo dostop do istih omrežnih virov (denimo tiskalnikov ali podatkovnih centrov). Kadar ima podjetje naročene določene storitve, do katerih je dostop omejen na podlagi IPja, lahko zaposleni prek VPNja tudi od doma gledajo iste stvari, kakor če bi bili fizično v podjetju. Tak primer so znanstveni članki na univerzah in inštitutih.

Z navideznim zasebnim omrežjem (VPN) vzpostavimo varno povezavo s strežnikom in šifriramo ves promet do njega.

Druga uporaba je varovanje podatkov in prikrivanje izvirnega IPja. Tehnologija je ista, namen pa drugačen. Ponavadi se v takem primeru povezujemo do komercialne storitve VPN, potem pa prek tega izhoda brskamo po internetu. Prednosti sta dve: vse obiskane strani bodo namesto našega IPja videle naslov IP strežnika VPN, s čimer lahko obidemo številne geoblokade. Netflix in podobni sicer intenzivno dodajajo znane naslove IP strežnikov VPN, a vsaj nekaj časa se lahko pretvarjamo, da smo na primer iz ZDA. Druga prednost pa je šifriranje, saj računalniki med uporabnikom in strežnikom VPN ne vidijo niti cilja niti vsebine prometa, kar je koristno pri uporabi odprtih in drugih ne-varnih omrežij. Niti ponudnik dostopa do interneta (ISP) pri uporabi VPNja ne more spremljati našega prometa, kar je koristno pri uporabi manj legalnih metod (torrenti). Seveda pa ponudnik VPNja vidi, kaj gledamo. Na Kitajskem so se zato VPNji množično uporabljali za pot mimo velikega požarnega zidu cenzure.

Če imate dostop do dobrega (geografsko) in hitrega VPNja, praktično ni razloga, da ga ne bi uporabljali. A taki stanejo.

Nadzor dostopa

Na koncu vedno pridemo do preprostega dejstva, da je vsak dostop možnost za zlorabo, zato je treba dostope pač omejiti. V unixovskih operacijskih sistemih smo se že zdavnaj navadili, da za vsakdanje delo ne uporabljamo skrbniškega (root) računa. V Windows tega zavedanja še nismo povsem ponotranjili, a na neki način pomaga UAC (User Account Control), ki ne dovoli izvajanja programov s skrbniškimi pravicami, dokler tega izrecno ne potrdimo (kot nekakšen sudo v Linuxu).

Omejitve dostopa nas spremljajo povsod. V brezžičnih omrežjih lahko dostop omejimo na znane naslove MAC, v podjetjih lahko zunanje povezave omejimo le na znane naslove IP (domače naslove zaposlenih). Znan slovenski portal s torrenti se je srdu organizacij za zaščito avtorskih pravic izognil s tem, da enostavno blokira dostop z vseh neslovenskih IPjev (pomaga mu tudi zelo specifična slovenska zakonodaja).

Kritični sistemi, ki ne potrebujejo dostopa do interneta, so najvarnejši brez interneta. Prav nobenega razloga ni, da bi bili domači termostat, industrijska linija ali jedrska elektrarna priključeni v internet. Vsaka možnost dostopa je pač potencialno tveganje, ki ga je treba primerno obravnavati, zato se mu je najbolje izogniti, če je le mogoče.

Sterilizacija vnosov

Morda se sliši medicinsko, a v resnici gre za zelo pomembno načelo. Vedno, kadar pričakujemo interakcijo z uporabnikom ali vnos kakega podatka, moramo pričakovati, da je na drugi strani zlonameren igralec. To pomeni, da moramo predvideti vse možne vnose, oziroma poskrbeti, da vnosi, ki se razlikujejo od pričakovanih, ne povzročajo škode. Vrivanje SQL (SQL injection) je učbeniški zgled zlorabe slabe obravnave vnosov, a je še vedno odgovoren za zelo veliko napadov na zbirke podatkov.

Če uporabnik vnese niz znakov, ki se lahko interpretirajo kot ukazi, povzroči veliko škodo, če zbirka vnosa pred izvedbo ustrezno ne počisti. Na primer, če pri prijavi uporabnika določate z ukazom SELECT * FROM `users` WHERE `username`='$user' AND `pass`='$pass', lahko zlonamerni napadalec vpiše username -> admin' AND 1=1 OR 1='1 in password -> pass. Če vnosi niso ustrezno počiščeni pred izvedbo, mu to omogoča prijavo kot administrator. Čiščenje vnosa (input sanitizing) pomeni dopuščanje samo dovoljenih znakov in zamenjavo vseh kontrolnih znakov z neškodljivimi.

Algoritmi za odkrivanje prevar

Pri uporabi kreditnih kartic je verjetno 1000 transakcij legitimnih, ena pa lažna in predstavlja prevaro. To je malo, a je še vedno vsaka uspešna prevara draga, ker jo večinoma pokrijejo banke. To seveda niso edini primeri, kjer potrebujemo algoritme za odkrivanje prevar. Zavarovalnice, telekomunikacijski operaterji, davčne uprave in drugi se prav tako spoprijemajo s pritiskom prevar.

Algoritmov za lovljenje teh prevar je več in v glavnem temeljijo na analizi velikanskih količin podatkov (big data) in statističnih metodah. Pomembno vlogo prevzemajo tudi nevronske mreže in računalniško učenje, ki se rinejo v vse pore našega življenja. Vsem tem metodam je skupno, da so neeksaktne, a v povprečju dobro delujejo. Še vedno pa se vam lahko zgodi, da ste v ZDA dva dni lačni, ker vam slovenske banke v soboto zjutraj pozorno zablokirajo vse kreditne kartice, češ da so vam jih zlorabili sredi Pittsburgha. In preden dobite koga na telefon in jim dopoveste, da ne gre za zlorabo, temveč ste res poizkusili dvigniti sto dolarjev, je že ponedeljek.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki