Může vám umělá inteligence říct o zranitelnosti programu? Možná, ale možná nebudete chtít vložit veškerou svou víru do toho, co říká.

Penetrační testování je bezpečnostní test, který zahrnuje použití zranitelností k odhalení dalších zranitelností v systému a spuštění škodlivého kódu. Tyto testy jsou zvláště důležité pro ochranu proti dolování dat a prevenci zneužití zabezpečení.

Penetrační testy zahrnují několik technik používaných k testování bezpečnosti sítě. Tyto techniky zahrnují skenování sítě, firewally, bezpečnostní sledovací systémy a umělou inteligenci. Umělá inteligence dokáže analyzovat bezpečnostní testy pomocí technologií vyvinutých k odhalení zranitelnosti sítě.

Umělá inteligence vám může umožnit dosáhnout komplexnějších a efektivnějších výsledků pomocí speciálních algoritmů navržených pro použití v penetračních testech a automaticky prováděných bezpečnostních testech.

Výhody použití AI pro penetrační testování

Rychlý vývoj technologií a stále se zvyšující bezpečnostní potřeby uživatelů dnes odhalily nutnost využití technologií AI v bezpečnostních testech. Použití umělé inteligence ke zlepšení zabezpečení poskytuje mnohem rychlejší a efektivnější výsledky a eliminuje potřebu časově náročné pracovní síly k provádění často přizpůsobených a složitých bezpečnostních testů. Umělá inteligence pomáhá odhalit zranitelná místa co nejdříve. Dokáže také provádět unikátní a komplexní bezpečnostní testy, což usnadňuje odhalování zranitelností.

instagram viewer

Zdá se, že AI je docela úspěšná, zejména pokud jde o detekci a blokování útoku. K trénování umělé inteligence jsou potřeba velmi velké soubory dat. Aplikace s vysokou návštěvností webu je v tomto ohledu přínosem. Protože každý příchozí provoz může vypadat jako datová sada pro použití AI. Máte tedy AI, která umí číst a analyzovat provoz webových aplikací a detekovat hrozby. Toto je jeden z nejjednodušších příkladů, které lze uvést.

Dokáže také předem detekovat nejen webový provoz, ale také mnoho malwaru pro vaši aplikaci nebo zařízení. Tuto metodu již začalo používat mnoho firewallů.

Kromě toho všeho je lidská chyba jedním z největších problémů kybernetické bezpečnosti. Menší zranitelnost kódu, která zůstane nepovšimnuta, může vést k velkým nevratným bezpečnostním problémům. Některé pluginy, které vyhledávají zranitelnosti v kódu, se objevily s vývojem AI a varují vývojáře před takovými problémy. Zatím prokázaly určitý úspěch v prevenci lidských chyb.

Kromě toho je také velmi důležitá doba odezvy na hrozbu. Když jste pod útokem, chvíli trvá, než odhalíte útok, naplánujete cestu k obraně a spustíte obranné systémy. Ale AI je v tomto ohledu velmi užitečná.

Omezení AI v kybernetické bezpečnosti

Použití umělé inteligence pro účely kybernetické bezpečnosti vyžaduje identifikaci a analýzu škodlivých, čistých a potenciálně nebezpečných aplikací. I když k trénování algoritmu používáte velmi velké datové sady, nikdy si nemůžete být jisti výsledkem. V důsledku toho není bezpečné spoléhat se výhradně na stroje a AI. Je nutné podporovat technologii AI lidským zásahem.

Někteří výrobci bezpečnostních nástrojů tvrdí, že řešení založená na strojovém učení mohou analyzovat každou instanci. Podle výrobců dokážou tyto nástroje detekovat malware pouze pomocí matematických prostředků. To je však sotva možné.

Rozluštění kódu Enigmy během druhé světové války Alana Turinga je toho velmi dobrým příkladem. Ani dokonalý stroj nemůže rozhodnout, zda neznámý vstup může v budoucnu způsobit nežádoucí chování. Tyto důkazy lze použít v mnoha různých oblastech, včetně kybernetické bezpečnosti.

Další závažné omezení aplikací strojového učení v kybernetické bezpečnosti se skrývá v mezích modelů umělé inteligence. Například stroje se staly dostatečně chytrými, aby porazily lidi v šachu.

Ale šachy mají určitá pravidla. Šachové motory z těchto pravidel nevybočují. Pokud jde o kybernetickou bezpečnost, útočníci často nemají žádná pravidla. Neustále se měnící povaha digitální krajiny znemožňuje vytvořit ochranné řešení, které dokáže detekovat a blokovat všechny budoucí hrozby.

Analýza zdrojového kódu pomocí ChatGPT

ChatGPT, vyvinutý společností OpenAI, se vážně zapsal do našich životů v mnoha oblastech. Jak můžeš položte nějaké otázky a chatujte s ChatGPT, také se vám snaží pomoci s programováním a problémy se softwarem. ChatGPT se dokonce pokouší provést analýzu zdrojového kódu, pokud se na to podíváte z pohledu kybernetické bezpečnosti. ChatGPT je ale stále v plenkách a bude nějakou dobu trvat, než se rozběhne.

Abychom to viděli lépe, pojďme otestovat sílu ChatGPT. Níže je například jednoduchý kód JavaScript, který vytváří chybu zabezpečení XSS. Zeptejme se ChatGPT na tento kód a ať nám řekne o případných zranitelnostech.

dokument.napsat("Aktuální URL: " + dokument.baseURI);

ChatGPT zmínil an Zranitelnost XSS v odpověď. To je docela dobrý začátek. Ale zdrojové kódy nejsou nikdy tak jednoduché. Pokusme se tedy příklad trochu zkomplikovat.

Níže uvidíte kód připravený v programovacím jazyce C. Tento kód C patří zranitelné aplikaci. Byl dokonce zcela použit v reálné aplikaci. Pokud chcete, můžete prozkoumat zranitelnosti zdrojového kódu v reálném světě Sonar vydán v roce 2022.

char *cesta loggeru *cmd;

prázdnotarotovatLog(){
charlogOld[PATH_MAX], logNový[PATH_MAX], časové razítko[0x100];
čas_t t;
čas(&t);
strftime (časové razítko, sizeof (časové razítko), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, časové razítko);
execl("/bin/cp", "/bin/cp", "-A", "--", logOld, logNew, NULA);
}

inthlavní(int argc, char **argv){
if (argc != 2) {
printf("Použití: /opt/logger/bin/loggerctl \n");
vrátit se1;
}

-li (setuid(0) == -1) vrátit se1;
-li (seteuid(0) == -1) vrátit se1;

char *executablePath = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1];

-li (!strcmp (cmd, "točit se")) rotationLog();
jiný listCommands();
vrátit se0;
}

Chyba zabezpečení spočívá v tom, že útočník může provádět změny v některých souborech bez oprávnění správce. Uvidíme, jak bude ChatGPT reagovat na tuto bezpečnostní chybu.

Hlavním problémem v tomto kódu je setuid, uživatelské ID (uid) a efektivní ID uživatele (euid). Aniž bychom zacházeli do přílišných technických detailů, hlavní bod, kterému byste měli věnovat pozornost, je to ChatGPT se nepodařilo zjistit tato tenká část. Může si uvědomit, že existuje problém, ale bohužel nemůže přijít na kořen tohoto problému.

Prostřednictvím těchto příkladů jste viděli reakce na různé programovací jazyky a zranitelnosti. Pokud je kód opravdu jednoduchý a má zjevnou bezpečnostní díru, ChatGPT vám může pomoci. Při analýze zdrojového kódu, penetračním testování a dalších bezpečnostních analýzách byste se však neměli zcela spoléhat na ChatGPT.

Budoucnost penetračních testerů

Umělá inteligence bude v budoucnu důležitou součástí práce penetračních testerů. Například penetrační testeři nebudou muset zdržovat ruční detekci škodlivé aktivity a budou moci automaticky provádět bezpečnostní kontroly.

Umělá inteligence také pomůže odhalit a podniknout kroky proti novým a složitějším útočným technikám pro penetrační testování. Ale AI je stále jako dítě, které si hraje v parku a potřebuje radu od dospělého. V blízké budoucnosti nebudou odborníci na kybernetickou bezpečnost a penetrační testeři jen tak bez práce.