Ar dirbtinis intelektas gali pasakyti apie programos pažeidžiamumą? Galbūt, bet galbūt nenorite visiškai tikėti tuo, kas jame sakoma.

Įsiskverbimo testavimas yra saugumo testas, kurio metu pažeidžiamumas naudojamas siekiant atrasti kitus sistemos pažeidžiamumus ir vykdyti kenkėjišką kodą. Šie testai ypač svarbūs siekiant apsisaugoti nuo duomenų gavybos ir užkirsti kelią saugumo išnaudojimui.

Įsiskverbimo testai apima keletą metodų, naudojamų tinklo saugumui patikrinti. Šie metodai apima tinklo nuskaitymą, ugniasienes, saugos stebėjimo sistemas ir dirbtinį intelektą. Dirbtinis intelektas gali analizuoti saugumo testus naudodamas technologijas, sukurtas siekiant atskleisti tinklo pažeidžiamumą.

Dirbtinis intelektas gali suteikti jums galimybę pasiekti išsamesnių ir efektyvesnių rezultatų naudojant specialius algoritmus, sukurtus naudoti atliekant įsiskverbimo testus ir automatiškai vykdomus saugumo testus.

AI naudojimo skverbties testavimui pranašumai

Šiandien sparti technologijų plėtra ir nuolat augantys vartotojų saugumo poreikiai atskleidė AI technologijų naudojimo saugumo testuose būtinybę. AI naudojimas saugumui gerinti suteikia daug greitesnių ir efektyvesnių rezultatų, todėl nereikia daug laiko atimantis darbo jėgos, norint atlikti dažnai pritaikytus ir sudėtingus saugos testus. AI padeda kuo greičiau aptikti pažeidžiamumą. Jis taip pat gali atlikti unikalius ir sudėtingus saugumo testus, kad būtų lengviau aptikti pažeidžiamumą.

AI atrodo gana sėkmingas, ypač kai reikia aptikti ir blokuoti ataką. Norint lavinti dirbtinį intelektą, reikalingi labai dideli duomenų rinkiniai. Programa, turinti didelį žiniatinklio srautą, šiuo atžvilgiu yra geradarys. Nes kiekvienas gaunamas srautas gali atrodyti kaip AI naudojamas duomenų rinkinys. Taigi jūs turite dirbtinį intelektą, kuris gali skaityti ir analizuoti žiniatinklio programų srautą ir aptikti grėsmes. Tai vienas iš paprasčiausių pavyzdžių, kokį tik galima pateikti.

Jis taip pat gali iš anksto aptikti ne tik žiniatinklio srautą, bet ir daugybę kenkėjiškų programų jūsų programoje ar įrenginyje. Šį metodą jau pradėjo naudoti daugelis ugniasienės.

Be viso šito, žmogaus klaidos yra viena didžiausių kibernetinio saugumo problemų. Nedidelis kodo pažeidžiamumas, kuris lieka nepastebėtas, gali sukelti didelių negrįžtamų saugumo problemų. Kai kurie papildiniai, nuskaitantys kode pažeidžiamumą, atsirado tobulinant AI, ir jie įspėja kūrėjus apie tokias problemas. Iki šiol jiems pavyko užkirsti kelią žmogiškoms klaidoms.

Be to, labai svarbus ir parodytas atsako į grėsmę laikas. Kai užpuolama, reikia laiko aptikti ataką, suplanuoti gynybos kelią ir paleisti gynybos sistemas. Tačiau AI šiuo atžvilgiu labai padeda.

AI apribojimai kibernetinio saugumo srityje

Norint naudoti dirbtinį intelektą kibernetinio saugumo tikslais, reikia nustatyti ir analizuoti kenksmingas, švarias ir galimai nesaugias programas. Net jei algoritmui išmokyti naudojate labai didelius duomenų rinkinius, niekada negalite būti tikri dėl rezultato. Dėl to nėra saugu pasikliauti vien mašinomis ir dirbtiniu intelektu. Būtina palaikyti dirbtinio intelekto technologiją žmogaus įsikišimu.

Kai kurie saugos įrankių gamintojai teigia, kad sprendimai, paremti mašininiu mokymusi, gali analizuoti kiekvieną atvejį. Gamintojų teigimu, šios priemonės kenkėjiškas programas gali aptikti tik matematinėmis priemonėmis. Tačiau tai vargu ar įmanoma.

Alano Turingo atliktas Enigma kodo nulaužimas Antrojo pasaulinio karo metu yra labai geras to pavyzdys. Net tobula mašina negali nuspręsti, ar nežinoma įvestis gali sukelti nepageidaujamą elgesį ateityje. Šie įrodymai gali būti taikomi daugelyje skirtingų sričių, įskaitant kibernetinį saugumą.

Kitas rimtas mašininio mokymosi programų kibernetinio saugumo srityje apribojimas yra paslėptas dirbtinio intelekto modelių ribose. Pavyzdžiui, mašinos tapo pakankamai protingos, kad įveiktų žmones šachmatuose.

Tačiau šachmatai turi tam tikras taisykles. Šachmatų varikliai nenukrypsta nuo šių taisyklių. Kalbant apie kibernetinį saugumą, užpuolikai dažnai neturi taisyklių. Nuolat kintantis skaitmeninio kraštovaizdžio pobūdis neleidžia sukurti apsauginio sprendimo, galinčio aptikti ir blokuoti visas būsimas grėsmes.

Šaltinio kodo analizė naudojant „ChatGPT“.

„OpenAI“ sukurtas „ChatGPT“ rimtai įsiliejo į mūsų gyvenimą daugelyje sričių. Kaip tu gali užduokite klausimų ir pasikalbėkite su „ChatGPT“., ji taip pat bando jums padėti sprendžiant programavimo ir programinės įrangos problemas. „ChatGPT“ netgi bando atlikti šaltinio kodo analizę, jei žiūrite iš kibernetinio saugumo perspektyvos. Tačiau „ChatGPT“ dar tik pradeda veikti ir užtruks šiek tiek laiko, kol jis pradės veikti.

Norėdami tai geriau pamatyti, išbandykime „ChatGPT“ galią. Pavyzdžiui, žemiau yra paprastas JavaScript kodas, sukuriantis XSS pažeidžiamumą. Paklauskime „ChatGPT“ apie šį kodą ir praneškite mums apie visus pažeidžiamumus.

dokumentas.write("Dabartinis URL: " + dokumentas.baseURI);

ChatGPT paminėjo an XSS pažeidžiamumas atsakant. Tai gana gera pradžia. Tačiau šaltinio kodai niekada nėra tokie paprasti. Taigi pabandykime padaryti pavyzdį šiek tiek sudėtingesnį.

Žemiau pamatysite kodą, paruoštą C programavimo kalba. Šis C kodas priklauso pažeidžiamai programai. Jis netgi buvo visiškai naudojamas realaus pasaulio programoje. Jei norite, galite ištirti realaus šaltinio kodo spragas, kurios Sonaras išleistas 2022 m.

char *loggerPath *cmd;

tuštumarotateLog(){
charlogSenas[PATH_MAX], žurnalas Naujas[PATH_MAX], laiko žyma[0x100];
laikas_t t;
laikas (&t);
strftime (timestamp, sizeof (timestamp), „%FT%T“, gmtime(&t));
snprintf (logOld, sizeof (logOld), „%s/../logs/global.log“, loggerPath);
snprintf (logNew, sizeof (logNew), „%s/../logs/global-%s.log“, loggerPath, laiko žyma);
excl("/bin/cp", "/bin/cp", "-a", "--", žurnalasSenas, žurnalasNaujas, NULL);
}

tarptpagrindinis(tarpt argc, char **argv){
if (argc != 2) {
printf("Naudojimas: /opt/logger/bin/loggerctl \n");
grąžinti1;
}

jeigu (setuid(0) == -1) grąžinti1;
jeigu (seteuid(0) == -1) grąžinti1;

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

jeigu (!strcmp (cmd, "pasukti")) rotateLog();
Kitas listCommands();
grąžinti0;
}

Pažeidžiamumas yra tas, kad užpuolikas gali keisti kai kuriuos failus neturėdamas administratoriaus teisių. Pažiūrėkime, kaip „ChatGPT“ reaguos į šį saugos pažeidžiamumą.

Pagrindinė šio kodo problema yra setuid, Vartotojo ID (uid) ir veiksmingas vartotojo ID (euid). Tačiau nesigilindami į daug techninių detalių, pagrindinis dalykas, į kurį turėtumėte atkreipti dėmesį, yra tai „ChatGPT“ nepavyko aptikti ši plona dalis. Jis gali suprasti, kad yra problema, bet, deja, negali suprasti šios problemos esmės.

Per šiuos pavyzdžius matėte reakcijas į skirtingas programavimo kalbas ir pažeidžiamumą. Jei kodas tikrai paprastas ir turi akivaizdžią saugumo spragą, ChatGPT gali jums padėti. Tačiau neturėtumėte visiškai pasikliauti „ChatGPT“ šaltinio kodo analizei, skverbties testavimui ir kitai saugumo analizei.

Skverbties tikrintojų ateitis

Dirbtinis intelektas ateityje bus svarbi skvarbos testuotojų darbo dalis. Pavyzdžiui, įsiskverbimo testeriams nereikės užtrukti, kad rankiniu būdu aptiktų kenkėjišką veiklą ir jie galės automatiškai atlikti saugos nuskaitymus.

AI taip pat padės aptikti naujus ir sudėtingesnius įsiskverbimo testo atakos būdus ir imtis veiksmų prieš juos. Tačiau dirbtinis intelektas vis dar yra tarsi vaikas, žaidžiantis parke ir jam reikia suaugusiojo patarimo. Netolimoje ateityje kibernetinio saugumo ekspertai ir skverbties tikrintojai lengvai neliks be darbo.