Téma umelej inteligencie je v posledných rokoch veľmi populárna a často vzbudzuje protichodné emócie. Napriek tomu sa viac či menej nápadne dostáva do produktov a bežného života. Možno aj bez toho, aby o tom ľudia vedeli. V druhom rozhovore s Jurajom Jánošíkom, odborníkom na umelú inteligenciu zo spoločnosti ESET, sme sa rozprávali o tom, ako umelá inteligencia ovplyvňuje a v budúcnosti ovplyvní kybernetickú bezpečnosť.
V rozhovore sa dozviete:
- Ako sa dá umelá inteligencia použiť aj na škodlivý účel?
- Čo sa stane v prípade, keď proti sebe postavím 2 umelé inteligencie?
- Ako vyzerá správanie škodlivého kódu?
- Prečo je potrebné umelú inteligenciu neustále trénovať?
V prvom rozhovore sme sa rozprávali o tom, čo je umelá inteligencia, aké prístupy sa v nej používajú a či skutočnú umelú inteligenciu vôbec niekedy dosiahneme. Pozrime sa teraz na jej konkrétnejšiu aplikáciu a význam umelej inteligencie pre kybernetickú bezpečnosť.
Z nášho pohľadu je to ďalšia možnosť ochrany. Je to ďalšia technológia, ktorá nám môže pomôcť zvýšeniť bezpečnosti našich používateľov. Určite to ale nie je nejaký zázrak, čo by nás v rámci kybernetickej bezpečnosti zachránil.
Stretol som sa názorom, že je to v princípe len nástroj, ktorý môžeme použiť na pozitívny ale aj negatívny úmysel. Je to tak?
Presne tak, je to neutrálny nástroj. Tak isto, ako napríklad programovací jazyk, alebo TCP komunikácia po sieti. Až reálne využívanie z toho nástroja robí hrozbu, alebo naopak prospešný nástroj.
Umelá inteligencia sa teda dá aj zneužiť. Ako konkrétne?
Presne tým istým spôsobom, akým ju my využívame na dobrý účel. Otázku môžeme položiť aj takto: čo potrebujú spraviť útočníci, aby boli úspešní? Oni majú tiež k dispozícii veľký objem dát a ich cieľom je napadnúť veľký počet ľudí. A podobne ako my, aj oni sa snažia svoju prácu zautomatizovať. Rovnaké princípy a koncepty strojového učenia a automatizácie tak môžu použiť na škodlivú činnosť.
Uveďme nejaké konkrétne príklady.
Vedia si zautomatizovať širokú škálu činností počínajúc vyhľadávaním zraniteľností či vytváraním škodlivého kódu až po zmeny v škodlivom kóde, ktoré im umožnia vytvoriť si imunitu voči najpoužívanejšími bezpečnostným programom.
Ak mám umelú inteligenciu na strane ochrany aj na strane útočníkov, môže sa stať, že na seba narazia s protichodnými úlohami. Čo sa stane v prípade, ak proti sebe takto postavím dve umelé inteligencie?
To je zložitá otázka. Pomôžem si príkladom s umelou inteligenciou, ktorá porazila najlepšieho hráča v hre GO. Hovorili sme o nej aj v predchádzajúcom rozhovore.
Umelá inteligencia AlphaGo v tomto zápase spravila ťah, ktorý šokoval všetkých skúsených hráčov. V danom momente sa tento krok zdal byť úplne nevýhodný a žiadny rozumný hráč Go by ho nikdy neurobil. Avšak, po približne ďalších piatich krokoch sa ukázalo, že to bol správny postup, ktorý viedol k víťazstvu. Tento reťazec krokov pritom nikto predtým neurobil práve preto, že sa na začiatku javí ako nevhodný a iba nasledujúce ťahy ho robia výhodným. Samotnú postupnosť krokov však vopred nik neskúsil a ani nepredpokladal.
Ponaučenie z tohto príkladu sa dá preniesť aj na detekciu škodlivého kódu. My tiež používame algoritmy, z ktorých sa niektoré dajú interpretovať a iné nie. Typická otázka našich analytikov je, prečo niektorý súbor naša detekcia zachytáva? Niekedy to na prvý pohľad nedáva zmysel. Ja im na to neraz úprimne odpovedám, že tiež neviem. Naša neurónová sieť to tak vyhodnotila a ja neviem prečo. V danom momente neviem predvídať celý reťazec budúcich krokov a teda neviem, ktorá strana má navrch. Aj tu však platí, že ak sa na niečo na prvý pohľad môže zdať nevýhodné, môže byť na konci dňa výhodné a naopak.
Reálne sa môže stať, že napríklad neurónová sieť ESETu označí nejaký súbor za podozrivý a ty nevieš identifikovať prečo?
Áno, môže sa to stať, a aj sa to deje. Ona sa však naučila, že tento typ súboru, alebo niektoré jeho špecifiká sú podozrivé, aj keď sa to na prvý pohľad nezdá. Dôležité však je, že to náš systém zachytil a následne sa na to môžu pozrieť naši experti. Inak by tento súbor mohol roky fungovať a my by sme si ho ani nevšimli. Aj toto ilustruje, že súboj medzi ochranou a útočníkmi je komplikovaný a pravdepodobne nikdy neskončí. Oni sa vždy budú snažiť nájsť slabé miesto a využiť ho. A je jedno, či to bude skúšať umelá inteligencia, alebo človek.
Typická otázka našich analytikov je, prečo niektorý súbor naša detekcia zachytáva? Ja im na to neraz úprimne odpovedám, že tiež neviem.
Čo je podľa teba náročnejšia úloha? Ochrániť zariadenie, alebo doň preniknúť?
Keď má človek typ úlohy, pri ktorej sa snaží obísť ochranu, môže neustále meniť svoje spôsoby a skúšať nové prístupy. Preto sme my v nevýhode, keď sa snažíme zákazníkov ochrániť. Pomôžem si slovami jedného kolegu: obrana musí brániť všetky cesty útokov, ktorých môže byť nespočetne veľa. Útočníkom však stačí nájsť jedinú dieru v obrane, aby uspeli.
Pre obranu je to preto násobne náročnejšia úloha, no dá sa to a my na tom úspešne pracujeme už roky. Ale ak chce niekto spraviť útok, ide najmä o to koľko snahy, času a zdrojov do toho investuje. Strojové učenie nás nespasí, nie je to konečná technológia. Môže pomôcť nám, ale samozrejme aj druhej strane.
Evidujeme nárast používania umelej inteligencie na škodlivú činnosť? Vieme identifikovať moment, kedy vznikol prvý škodlivý kód s využitím umelej inteligencie?
Na túto otázku odpoviem zoširoka. Doba, kedy si vírus napísal študent na internáte, je už dávno za nami. Dnes ide o profesionalizovaný a vysoko výnosný organizovaný zločin, alebo dokonca o priemyselnú či medzištátnu špionáž. Títo ľudia sú ochotní investovať veľké peniaze do toho, aby vedeli preniknúť rôznymi obrannými technológiami. V dnešnej dobe, ktorá je veľmi rýchla, potrebujú aj oni robiť automatizáciu. Tak ako strojové učenie ovplyvnilo developerov aplikácii, alebo bezpečnostných softvérov, prirodzene to muselo ovplyvniť aj ľudí snažiacich sa zarobiť si nelegálnou cestou. Boli by hlúpi, ak by túto technológiu nevyužili. Najmä keď je dnes už dostupná a vývojári nepotrebujú hlbokú unikátnu vedomosť v strojovom učení.
Ak chce niekto dosiahnuť, aby bol škodlivý kód čo najviac odolný voči detekčným metódam, potrebuje skúsiť množstvo ciest a zistiť, či sa vďaka nim dokáže vyhnúť detekcii. A toto je jasne formulovateľná úloha pre automatizáciu. Pri dnešnom rozšírení strojového učenia sa priam ponúka využiť niektoré jeho metódy práve na túto úlohu a uľahčiť si robotu.
Vieme sa ale vyjadriť k rozšírenosti využívania umelej inteligencie, alebo strojového učenia, pri tvorbe škodlivého kódu?
K tomu presne smerujem. Vidíme, že je tu z ich pohľadu priestor na automatizáciu. A navyše z našich dát vieme s vysokou pravdepodobnosťou tvrdiť, že niektoré populárne a pokročilé škodlivé kódy pravdepodobne používajú strojové učenie. Na základe toho, ako sa tieto kódy chovajú usudzujeme, že sa pri ich tvorbe použili metódy strojového učenia. Nevieme síce identifikovať konkrétnu metódu, ale vieme povedať, že na to boli pravdepodobne použité metódy strojového učenia.
Čo si mám predstaviť pod pojmom „správanie škodlivého kódu“?
Povedzme, že máme trójskeho koňa, čo je typ škodlivého kódu. On štandardne komunikuje s nejakým serverom, z ktorého získava príkazy čo má robiť, kam má posielať dáta, odkiaľ získať aktualizácie, alebo ďalší škodlivý kód. Momentálne jeden z najpopulárnejších a najrozšírenejších trójskych koní tohto druhu je Emotet.
Ten si okrem už toho čo sme si vymenovali na svoj server posiela aj množstvo informácií o samotnom zariadení obete. Od jazykových nastavení, cez verzie systému, aktuálne bežiace procesy, až po nainštalovaný softvér. Server sa následne na základe týchto informácií rozhoduje, čo sa bude diať. Zaujímavé je, čo pozorujeme, keď sa naši výskumníci hrajú s nastaveniami fiktívneho zariadenia obete. Často sa totiž stáva, že pri nejakom nastavení server odpovie, aby sa nedialo nič. Emotet jednoducho sedí a čaká na ďalšie príkazy. Pri inom príkaze zase ožije a operuje. Z toho je zjavné, že vďaka telemetrii zo zariadenia obete sa rozhodujú, čo sa bude diať.
S ohľadom na rozšírenie tohto škodlivého kódu a pri rozsahu informácií, ktoré zbiera, ide o príliš náročnú úlohu na to, aby sa vykonávala manuálne. Zároveň je to úloha, ktorá sa hodí na automatizáciu a niektoré techniky sa tu dajú veľmi dobre využiť. Z toho usudzujeme, že sa v tomto prípade skutočne používajú prvky strojového učenia.
Priamo sa to ale z kódu zistiť nedá, správne?
Nie, nedá. Avšak jeho správanie ho usvedčuje. Ak by to chcel niekto robiť dobre – a v tomto prípade to asi dobre robí, keďže ide o jeden z najrozšírenejších trójskych koňov na svete – mal by využívať aj techniky automatizácie. Treba zdôrazniť, že ide o naozaj populárny škodlivý kód, ktorý sa teší obľube aj na čiernom trhu. Kupujú si ho iní a používajú ho na šírenie svojich produktov. Emotet sa napríklad používa na šírenie kódu na kradnutie hesiel, alebo prístupov do internet bankingu. Je to veľmi populárny distribučný mechanizmus. Na to, aby mal niekto úspešný distribučný mechanizmus, potrebuje aj dobré služby a spoľahlivosť. Práve preto veríme, že autori využívajú aj strojové učenie.
Nevieme teda s určitosťou povedať, kedy sa prvky umelej inteligencie začali používať pri tvorbe škodlivého kódu. Vieme ale povedať, kedy sa začala používať na odhaľovanie škodlivých praktík v kybernetickej bezpečnosti?
Ku konkurencii sa vyjadriť neviem. Za ESET môžem povedať, že už od prvých dní od vzniku firmy riešil jeden zo zakladateľov, Miroslav Trnka, použitie prístupov strojového učenia. Rozprávame sa o začiatku deväťdesiatych rokov, čo bolo pred takmer 30 rokmi. Už vtedy sa u nás experimentovalo so strojovým učením. Išlo najskôr o interné riešenia. Do koncových produktov, ktoré užívatelia dostali v tom čase na disketách alebo CD nosičoch, sa neurónové siete dostali približne v rokoch 1997 a 1998. Dávno pred tým, ako vznikol ošiaľ okolo umelej inteligencie.
V roku 2005 sme prišli s pokročilou heuristikou, ktorá detekciu posunula na novú úroveň. Dnes sa táto technológia nazýva skôr online strojovým učením. Následne pribúdali ďalšie prístupy ako napríklad clustering (zhluková analýza) či ďalšie predikčné modely, ktoré sú dnes k dispozícii.
Spomenul si pokročilú heuristiku. Vieš mi vysvetliť, o čo ide?
Jednoducho povedané ide o komplexnejšiu a flexibilnejšiu metódu, ktorá v sebe spája statické a dynamické prvky. Zoberme si fungovanie našej pokročilej heuristiky. Predstavme si, že dostanem nejaký súbor a mám vyhodnotiť, či je škodlivý. Jedna časť analýzy sa sústreďuje na vlastnosti súboru, napríklad aký je veľký, v akom programe je napísaný, aké knižnice boli použité pri jeho kompilácii a tak ďalej. Statická analýza vyhodnocuje všetky dostupné informácie o súbore.
Ďalšou časťou je dynamická analýza, pri ktorej priamo v produkte v kontrolovanom prostredí spustíme tento program a získavame ďalšie informácie o jeho správaní. Vo výsledku teda dáme dokopy množstvo informácii o vlastnostiach ale aj správaní daného súboru a náš program dokáže určiť presnejšie, či ide o škodlivý alebo neškodný kód.
Pri statických vlastnostiach súboru si uviedol aj príklady. Vieš byť konkrétny aj pri podozrivom správaní súboru v simulovanom prostredí? Čo si mám pod tým predstaviť?
Predstavme si dokument vo Worde, s ktorým sa väčšina ľudí pravdepodobne stretla. Keď ho otvoríme v simulovanom prostredí, vidíme, že sa v ňom nachádza skript, ktorý sa snaží z neznámej externej url adresy stiahnuť iný súbor a spustiť ho. To je veľmi podozrivá aktivita najmä, ak je cieľová adresa mimo domén tvorcu aplikácie, v tomto prípade Microsoftu.
Ako si spomínal, útočníci neustále skúšajú nové cesty. Ako sa voči tomu bránime?
Tak ako menia stratégiu útočníci, aj my pravidelne trénujeme naše modely strojového učenia a prispôsobujeme ich novým stratégiám útočníkov. Kybernetická bezpečnosť sa neustále vyvíja na oboch stranách barikády. Preto musíme reagovať pružne. Niekedy samozrejme zasiahnu naše modely a detekujú automaticky veci, ktoré ešte nik nezachytil. Inokedy musíme naše modely naučiť nové spôsoby útočníkov. Ak by sme to nerobili, nastala by degradácia našich modelov. Ak to domyslíme do dôsledku, ak by dnes niekto spravil najlepší model vytvorený strojovým učením na základe dnešných dát, ktorý by bol schopný zachytiť všetko, za niekoľko dní, týždňov, či mesiacov by bol zastaraný. Celý ekosystém sa vyvíja a preto aj my musíme ostať flexibilní.
Hovoril si, že umelá inteligencia nie je konečným riešením kybernetickej bezpečnosti. Môže nám však pomôcť aspoň s väčšinou problémov? Dnes sa to takto často prezentuje.
S nárastom popularity umelej inteligencie vzniklo v posledných rokoch množstvo startupov, ktorých mantrou je práve umelá inteligencia. Z nášho pohľadu to nie je pravda, pretože ide iba o ďalšiu vrstvu ochrany. Pripomína mi to obdobie spred desiatich rokov, kedy veľa dodávateľov bezpečnostných riešení tvrdilo, že všetky bezpečnostné problémy vyrieši cloud. Vyriešil ich? Nie, nevyriešil a dokonca priniesol aj nejaké nové.
Podobný vývoj by som preto očakával aj pri strojovom učení. A ktovie, možno sa už o pár rokov objaví nejaká ďalšia technológia, ktorá opäť zmení náš pohľad na bezpečnosť v online priestore.
Juraj Jánošík
Na Slovenskej Technologickej Univerzite v Bratislave získal titul bakalára v aplikovanej informatike a titul inžinier v robotike. V roku 2008 nastúpil do spoločnosti ESET na pozíciu analytika škodlivého kódu. Od roku 2013 vedie tím zodpovedný za automatickú detekciu hrozieb a umelú inteligenciu, v súčasnosti je zodpovedný za integráciu strojového učenia do detekčného jadra. Pravidelne prednáša na odborných konferenciách po celom svete.