Môže vám umelá inteligencia povedať o zraniteľnostiach programu? Možno, ale možno nechcete vložiť všetku svoju vieru do toho, čo hovorí.
Penetračné testovanie je bezpečnostný test, ktorý zahŕňa použitie zraniteľností na odhalenie iných zraniteľností v systéme a spustenie škodlivého kódu. Tieto testy sú obzvlášť dôležité na ochranu pred ťažbou údajov a zabránenie zneužitiam zabezpečenia.
Penetračné testy zahŕňajú niekoľko techník používaných na testovanie bezpečnosti siete. Tieto techniky zahŕňajú skenovanie siete, firewally, bezpečnostné sledovacie systémy a umelú inteligenciu. Umelá inteligencia dokáže analyzovať bezpečnostné testy pomocou technológií vyvinutých na odhalenie slabín siete.
AI vám môže umožniť dosiahnuť komplexnejšie a efektívnejšie výsledky pomocou špeciálnych algoritmov navrhnutých na použitie pri penetračných testoch a automaticky vykonávaných bezpečnostných testoch.
Výhody používania AI na penetračné testovanie
Rýchly vývoj technológií a neustále sa zvyšujúce bezpečnostné potreby používateľov dnes odhalili nevyhnutnosť využívania technológií AI v bezpečnostných testoch. Používanie AI na zlepšenie zabezpečenia poskytuje oveľa rýchlejšie a efektívnejšie výsledky, čím sa eliminuje potreba časovo náročnej pracovnej sily na vykonávanie často prispôsobených a zložitých bezpečnostných testov. AI pomáha odhaliť zraniteľné miesta čo najskôr. Dokáže tiež vykonávať jedinečné a komplexné bezpečnostné testy, čím uľahčuje odhaľovanie zraniteľností.
Zdá sa, že AI je celkom úspešná, najmä pokiaľ ide o detekciu a blokovanie útoku. Na trénovanie umelej inteligencie sú potrebné veľmi veľké súbory údajov. Aplikácia s vysokou návštevnosťou webu je v tomto smere prínosom. Pretože každý prichádzajúci prenos môže vyzerať ako súbor údajov, ktorý môže použiť AI. Máte teda AI, ktorá dokáže čítať a analyzovať návštevnosť webových aplikácií a odhaliť hrozby. Toto je jeden z najjednoduchších príkladov, ktoré možno uviesť.
Dokáže tiež vopred zistiť nielen webovú návštevnosť, ale aj množstvo škodlivého softvéru pre vašu aplikáciu alebo zariadenie. Túto metódu už začali využívať mnohé firewally.
Okrem toho všetkého je ľudská chyba jedným z najväčších problémov kybernetickej bezpečnosti. Menšia zraniteľnosť kódu, ktorá zostane nepovšimnutá, môže viesť k veľkým nezvratným bezpečnostným problémom. S vývojom AI sa objavili niektoré doplnky, ktoré vyhľadávajú zraniteľné miesta v kóde a upozorňujú vývojárov na takéto problémy. Zatiaľ preukázali určitý úspech pri predchádzaní ľudským chybám.
Okrem toho je veľmi dôležitý aj čas odozvy zobrazený proti hrozbe. Keď ste pod útokom, detekcia útoku, plánovanie cesty k obrane a spustenie obranných systémov nejaký čas trvá. Ale AI je v tomto smere veľmi nápomocná.
Obmedzenia AI v kybernetickej bezpečnosti
Používanie AI na účely kybernetickej bezpečnosti si vyžaduje identifikáciu a analýzu škodlivých, čistých a potenciálne nebezpečných aplikácií. Aj keď na trénovanie algoritmu používate veľmi veľké množiny údajov, nikdy si nemôžete byť istí výsledkom. V dôsledku toho nie je bezpečné spoliehať sa výlučne na stroje a AI. Je potrebné podporovať technológiu AI ľudským zásahom.
Niektorí výrobcovia bezpečnostných nástrojov tvrdia, že riešenia využívajúce strojové učenie dokážu analyzovať každú inštanciu. Podľa výrobcov dokážu tieto nástroje odhaliť malvér len pomocou matematických prostriedkov. To je však sotva možné.
Rozlúsknutie kódu Enigmy počas druhej svetovej vojny Alana Turinga je toho veľmi dobrým príkladom. Ani dokonalý stroj nedokáže rozhodnúť, či neznámy vstup môže v budúcnosti spôsobiť nežiaduce správanie. Tieto dôkazy možno použiť v mnohých rôznych oblastiach vrátane kybernetickej bezpečnosti.
Ďalšie vážne obmedzenie aplikácií strojového učenia v kybernetickej bezpečnosti sa skrýva v medziach modelov umelej inteligencie. Napríklad stroje sa stali dostatočne inteligentnými na to, aby porazili ľudí v šachu.
Ale šach má určité pravidlá. Šachové motory z týchto pravidiel nevybočujú. Pokiaľ ide o kybernetickú bezpečnosť, útočníci často nemajú žiadne pravidlá. Neustále sa meniaci charakter digitálneho prostredia znemožňuje vytvorenie ochranného riešenia, ktoré dokáže odhaliť a blokovať všetky budúce hrozby.
Analýza zdrojového kódu pomocou ChatGPT
ChatGPT, vyvinutý spoločnosťou OpenAI, urobil vážny vstup do našich životov v mnohých oblastiach. Ako len vieš položte nejaké otázky a chatujte s ChatGPT, tiež sa vám snaží pomôcť s programovaním a problémami so softvérom. ChatGPT sa dokonca pokúša vykonať analýzu zdrojového kódu, ak sa na to pozriete z hľadiska kybernetickej bezpečnosti. ChatGPT je však stále v plienkach a bude chvíľu trvať, kým sa rozbehne.
Aby sme to videli lepšie, vyskúšajme silu ChatGPT. Nižšie je napríklad jednoduchý kód JavaScript, ktorý vytvára zraniteľnosť XSS. Spýtajme sa ChatGPT na tento kód a nech nám povie o akýchkoľvek slabinách.
dokument.napíš("Aktuálna adresa URL: " + dokument.baseURI);
ChatGPT spomenul an Zraniteľnosť XSS v odozve. Toto je celkom dobrý začiatok. Zdrojové kódy však nikdy nie sú také jednoduché. Skúsme teda príklad trochu skomplikovať.
Nižšie uvidíte kód pripravený v programovacom jazyku C. Tento kód C patrí zraniteľnej aplikácii. Dokonca bol úplne použitý v reálnej aplikácii. Ak chcete, môžete preskúmať zraniteľné miesta zdrojového kódu v reálnom svete Sonar vydaný v roku 2022.
char *cesta loggeru *cmd;
neplatnéRotovaťLog(){
charlogStarý[PATH_MAX], logNew[PATH_MAX], časová značka[0x100];
čas_t t;
čas(&t);
strftime (časová pečiatka, sizeof (časová pečiatka), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, časová pečiatka);
execl("/bin/cp", "/bin/cp", "-a", "--", logOld, logNew, NULOVÝ);
}intHlavná(int argc, char **argv){
if (argc != 2) {
printf("Použitie: /opt/logger/bin/loggerctl \n");
vrátiť1;
}ak (setuid(0) == -1) vrátiť1;
ak (seteuid(0) == -1) vrátiť1;char *cesta k spustiteľnému súboru = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1];
ak (!strcmp (cmd, "točiť sa")) rotationLog();
inak zoznam príkazov ();
vrátiť0;
}
Chybou zabezpečenia je, že útočník môže vykonávať zmeny v niektorých súboroch bez oprávnení správcu. Uvidíme, ako bude ChatGPT reagovať na túto bezpečnostnú chybu.
Hlavným problémom tohto kódu je setuid, ID používateľa (uid) a efektívne ID používateľa (euid). Bez toho, aby sme zachádzali do prílišných technických detailov, hlavným bodom, ktorému by ste mali venovať pozornosť, je to ChatGPT sa nepodarilo zistiť túto tenkú časť. Dokáže si uvedomiť, že existuje problém, ale bohužiaľ nemôže prísť na koreň tohto problému.
Prostredníctvom týchto príkladov ste videli reakcie na rôzne programovacie jazyky a zraniteľnosti. Ak je kód skutočne jednoduchý a má zjavnú bezpečnostnú dieru, ChatGPT vám môže pomôcť. Pri analýze zdrojového kódu, penetračnom testovaní a iných bezpečnostných analýzach by ste sa však nemali úplne spoliehať na ChatGPT.
Budúcnosť penetračných testerov
Umelá inteligencia bude v budúcnosti dôležitou súčasťou práce penetračných testerov. Napríklad penetrační testeri si nebudú musieť dávať čas na manuálne zisťovanie škodlivej aktivity a budú môcť automaticky vykonávať bezpečnostné kontroly.
Umelá inteligencia tiež pomôže odhaliť a podniknúť kroky proti novým a zložitejším útočným technikám na penetračné testovanie. Ale AI je stále ako dieťa hrajúce sa v parku a potrebuje radu od dospelého. V blízkej budúcnosti odborníci na kybernetickú bezpečnosť a penetrační testeri len tak ľahko nezostanú bez práce.