Kas tehisintellekt võib teile öelda programmi haavatavused? Võib-olla, kuid te ei pruugi soovida kogu oma usku sellesse, mida see ütleb.

Tungimise testimine on turvatest, mis hõlmab turvaaukude kasutamist, et avastada süsteemis muid turvaauke ja käivitada pahatahtlikku koodi. Need testid on eriti olulised andmekaevandamise eest kaitsmiseks ja turvalisuse ärakasutamise vältimiseks.

Läbitungimistestid hõlmavad mitmeid võrgu turvalisuse testimiseks kasutatavaid tehnikaid. Need tehnikad hõlmavad võrgu, tulemüüride, turvaseiresüsteemide ja tehisintellekti skannimist. Tehisintellekt suudab analüüsida turvateste, kasutades võrgu haavatavuste paljastamiseks välja töötatud tehnoloogiaid.

AI võimaldab teil saavutada põhjalikumaid ja tõhusamaid tulemusi spetsiaalsete algoritmidega, mis on mõeldud kasutamiseks läbitungimistestides ja automaatselt täidetavates turvatestides.

AI kasutamise eelised läbitungimistestimisel

Tänaseks on tehnoloogia kiire areng ja kasutajate üha suurenevad turvavajadused toonud esile AI tehnoloogiate kasutamise vajaduse turvatestides. AI kasutamine turvalisuse parandamiseks annab palju kiiremaid ja tõhusamaid tulemusi, välistades vajaduse sageli kohandatud ja keerukate turvatestide tegemiseks aeganõudva tööjõu järele. AI aitab haavatavused võimalikult kiiresti avastada. Samuti saab see läbi viia unikaalseid ja keerulisi turbeteste, mis muudab haavatavuste tuvastamise lihtsamaks.

AI näib olevat üsna edukas, eriti kui tegemist on rünnaku tuvastamise ja blokeerimisega. Tehisintellekti treenimiseks on vaja väga suuri andmekogusid. Suure veebiliiklusega rakendus on selles osas heategija. Sest saate muuta iga sissetuleva liikluse AI jaoks kasutatavaks andmestikuks. Seega on teil AI, mis suudab lugeda ja analüüsida veebirakenduste liiklust ja tuvastada ohte. See on üks lihtsamaid näiteid, mida saab tuua.

See võib lisaks veebiliiklusele eeltuvastada ka palju teie rakenduse või seadme pahavara. Seda meetodit on juba hakanud kasutama paljud tulemüürid.

Lisaks kõigele sellele on küberturvalisuse üks suuremaid probleeme inimlik eksitus. Väike koodihaavatavus, mis jääb märkamatuks, võib põhjustada suuri pöördumatuid turvaprobleeme. Mõned pistikprogrammid, mis otsivad koodi haavatavust, on tekkinud AI arendamise käigus ja hoiatavad arendajaid selliste probleemide eest. Seni on nad näidanud edu inimlike vigade ärahoidmisel.

Lisaks on väga oluline ka ohule reageerimise aeg. Rünnaku ajal kulub rünnaku tuvastamiseks, kaitsetee planeerimiseks ja kaitsesüsteemide käivitamiseks aega. Kuid AI on selles osas väga abiks.

AI piirangud küberturvalisuses

AI kasutamine küberturvalisuse eesmärkidel nõuab pahatahtlike, puhaste ja potentsiaalselt ohtlike rakenduste tuvastamist ja analüüsimist. Isegi kui kasutate algoritmi treenimiseks väga suuri andmekogumeid, ei saa te kunagi tulemuses kindel olla. Seetõttu ei ole ohutu täielikult masinatele ja tehisintellektile loota. AI-tehnoloogiat on vaja toetada inimese sekkumisega.

Mõned turbetööriistade tootjad väidavad, et masinõppel põhinevad lahendused saavad analüüsida iga eksemplari. Tootjate sõnul suudavad need tööriistad pahavara tuvastada vaid matemaatilisi vahendeid kasutades. See on aga vaevalt võimalik.

Alan Turingi Enigma koodi murdmine Teise maailmasõja ajal on selle väga hea näide. Isegi täiuslik masin ei suuda otsustada, kas tundmatu sisend võib tulevikus soovimatut käitumist põhjustada. Neid tõendeid saab rakendada paljudes erinevates valdkondades, sealhulgas küberjulgeolekus.

Teine tõsine küberturvalisuse masinõppe rakenduste piirang on peidetud tehisintellekti mudelite piiridesse. Näiteks on masinad saanud piisavalt targaks, et võita inimesi males.

Kuid males on teatud reeglid. Malemootorid nendest reeglitest kõrvale ei kaldu. Küberturvalisuse osas pole ründajatel sageli reegleid. Digimaastiku pidevalt muutuv olemus muudab võimatuks luua kaitsva lahenduse, mis suudaks tuvastada ja blokeerida kõik tulevased ohud.

Lähtekoodi analüüs ChatGPT-ga

OpenAI välja töötatud ChatGPT on meie ellu paljudes valdkondades tõsiselt sisenenud. Nagu sa saad esitage küsimusi ja vestelge ChatGPT-ga, püüab see teid aidata ka programmeerimis- ja tarkvaraprobleemide korral. ChatGPT proovib isegi lähtekoodi analüüsi teha, kui vaadata seda küberturvalisuse vaatenurgast. Kuid ChatGPT on alles lapsekingades ja selle käivitamine võtab aega.

Selle paremaks nägemiseks testime ChatGPT võimsust. Näiteks allpool on lihtne JavaScripti kood, mis loob XSS-i haavatavuse. Küsige ChatGPT-lt selle koodi kohta ja laske tal meile turvaaukude kohta teada anda.

dokument.write("Praegune URL: " + dokument.baseURI);

ChatGPT mainis XSS-i haavatavus vastuseks. See on päris hea algus. Kuid lähtekoodid pole kunagi nii lihtsad. Nii et proovime näidet veidi keerulisemaks muuta.

Allpool näete C programmeerimiskeeles koostatud koodi. See C-kood kuulub haavatavale rakendusele. Seda kasutati isegi täielikult reaalses rakenduses. Kui soovite, saate uurida tegelikke lähtekoodi haavatavusi, mis Sonar ilmus 2022. aastal.

char *loggerPath *cmd;

tühinerotateLog(){
charlogiVana[PATH_MAX], logiUus[PATH_MAX], ajatempel[0x100];
aeg_t t;
aeg(&t);
strftime (ajatempel, suurus (ajatempel), "%FT%T", gmtime(&t));
snprintf (logOld, suurus (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, ajatempel);
execl("/bin/cp", "/bin/cp", "-a", "--", logiVana, logiUus, NULL);
}

intpeamine(int argc, char **argv){
if (argc != 2) {
printf("Kasutus: /opt/logger/bin/loggerctl \n");
tagasi1;
}

kui (setuid(0) == -1) tagasi1;
kui (seteuid(0) == -1) tagasi1;

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

kui (!strcmp (cmd, "pööra")) rotateLog();
muidu listCommands();
tagasi0;
}

Haavatavus seisneb selles, et ründaja võib mõnda faili muuta ilma administraatoriõigusteta. Vaatame, kuidas ChatGPT sellele turvaaugule reageerib.

Selle koodi peamine probleem on setuid, kasutaja ID (uid) ja tõhus kasutaja ID (euid). Kuid tehnilistesse üksikasjadesse laskumata on peamine asi, millele peaksite tähelepanu pöörama ChatGPT ei suutnud tuvastada see õhuke osa. Ta võib mõista, et probleem on olemas, kuid kahjuks ei saa ta selle probleemi juurteni jõuda.

Nende näidete kaudu olete näinud reaktsioone erinevatele programmeerimiskeeltele ja haavatavustele. Kui kood on tõesti lihtne ja sellel on ilmne turvaauk, saab ChatGPT teid aidata. Kuid te ei tohiks lähtekoodi analüüsimisel, läbitungimistestimisel ja muul turbeanalüüsil täielikult tugineda ChatGPT-le.

Läbitungimistestijate tulevik

Tehisintellekt on tulevikus läbitungimistestijate töös oluline osa. Näiteks ei pea läbitungimistestijad pahatahtliku tegevuse käsitsi tuvastamiseks aega võtma ja saavad automaatselt turvakontrolli teha.

AI aitab tuvastada ka uusi ja keerukamaid läbitungimistesti ründetehnikaid ja nende vastu meetmeid võtta. Kuid tehisintellekt on ikkagi nagu pargis mängiv laps ja vajab täiskasvanult nõu. Lähitulevikus ei jää küberturvalisuse eksperdid ja läbitungimise testijad kergesti tööta.