Voiko tekoäly kertoa sinulle ohjelman haavoittuvuuksista? Ehkä, mutta et ehkä halua uskoa kaikkea siihen, mitä siinä sanotaan.

Läpäisytestaus on tietoturvatesti, jossa haavoittuvuuksia käytetään järjestelmän muiden haavoittuvuuksien löytämiseen ja haitallisen koodin suorittamiseen. Nämä testit ovat erityisen tärkeitä suojautuessa tiedon louhinnalta ja estämään tietoturvahyökkäyksiä.

Läpäisytestit sisältävät useita tekniikoita, joita käytetään verkon turvallisuuden testaamiseen. Näitä tekniikoita ovat verkon skannaus, palomuurit, turvavalvontajärjestelmät ja tekoäly. Tekoäly voi analysoida tietoturvatestejä käyttämällä teknologioita, jotka on kehitetty paljastamaan verkon haavoittuvuuksia.

Tekoälyn avulla voit saavuttaa kattavampia ja tehokkaampia tuloksia erityisillä algoritmeilla, jotka on suunniteltu käytettäviksi tunkeutumistesteissä ja automaattisesti suoritettavissa turvatesteissä.

Tekoälyn käytön edut tunkeutumistestauksessa

Nykyään tekniikan nopea kehitys ja käyttäjien jatkuvasti kasvavat tietoturvatarpeet ovat paljastaneet AI-teknologioiden käytön tarpeen turvatesteissä. Tekoälyn käyttäminen tietoturvan parantamiseen tarjoaa paljon nopeampia ja tehokkaampia tuloksia, jolloin ei tarvita aikaa vievää työvoimaa usein räätälöityjen ja monimutkaisten tietoturvatestien suorittamiseen. Tekoäly auttaa havaitsemaan haavoittuvuudet mahdollisimman pian. Se voi myös suorittaa ainutlaatuisia ja monimutkaisia ​​tietoturvatestejä, mikä helpottaa haavoittuvuuksien havaitsemista.

Tekoäly näyttää varsin onnistuneelta, varsinkin kun on kyse hyökkäyksen havaitsemisesta ja estämisestä. Tekoälyn kouluttamiseen tarvitaan erittäin suuria tietojoukkoja. Sovellus, jolla on paljon verkkoliikennettä, on tässä suhteessa hyväntekijä. Koska voit saada jokaisesta saapuvasta liikenteestä näyttämään tietojoukolta tekoälyn käytettäväksi. Näin ollen sinulla on tekoäly, joka osaa lukea ja analysoida verkkosovellusliikennettä ja havaita uhkia. Tämä on yksi yksinkertaisimmista esimerkeistä, jotka voidaan antaa.

Se voi myös ennalta havaita verkkoliikenteen lisäksi myös paljon haittaohjelmia sovelluksellesi tai laitteellesi. Tätä menetelmää on jo alettu käyttää useissa palomuurissa.

Kaikkien näiden lisäksi inhimillinen virhe on yksi suurimmista kyberturvallisuuden ongelmista. Pieni koodin haavoittuvuus, joka jää huomaamatta, voi johtaa suuriin peruuttamattomiin tietoturvaongelmiin. Jotkut koodin haavoittuvuuksia etsivät laajennukset ovat ilmaantuneet tekoälyn kehityksen myötä, ja ne varoittavat kehittäjiä tällaisista ongelmista. Toistaiseksi he ovat osoittaneet menestystä inhimillisten virheiden estämisessä.

Lisäksi uhkaa vastaan ​​osoitettu vasteaika on myös erittäin tärkeä. Hyökkäyksen aikana hyökkäyksen havaitseminen, puolustuspolun suunnittelu ja puolustusjärjestelmien käynnistäminen vie aikaa. Mutta tekoäly on erittäin hyödyllinen tässä suhteessa.

Tekoälyn rajoitukset kyberturvallisuudessa

Tekoälyn käyttäminen kyberturvallisuustarkoituksiin edellyttää haitallisten, puhtaiden ja mahdollisesti vaarallisten sovellusten tunnistamista ja analysointia. Vaikka käytät erittäin suuria tietojoukkoja algoritmin opettamiseen, et voi koskaan olla varma tuloksesta. Tämän seurauksena ei ole turvallista luottaa täysin koneisiin ja tekoälyyn. Tekoälyteknologiaa on tuettava ihmisen toimilla.

Jotkut tietoturvatyökalujen valmistajat väittävät, että koneoppimiseen perustuvat ratkaisut voivat analysoida jokaisen esiintymän. Valmistajien mukaan nämä työkalut voivat havaita haittaohjelmat vain matemaattisin keinoin. Tämä tuskin on kuitenkin mahdollista.

Alan Turingin Enigma-koodin murtaminen toisen maailmansodan aikana on tästä erittäin hyvä esimerkki. Edes täydellinen kone ei voi päättää, voiko tuntematon syöte aiheuttaa ei-toivottua toimintaa tulevaisuudessa. Tätä näyttöä voidaan soveltaa monilla eri aloilla, mukaan lukien kyberturvallisuus.

Toinen vakava kyberturvallisuuden koneoppimissovellusten rajoitus piilee tekoälymallien rajoissa. Esimerkiksi koneista on tullut tarpeeksi älykkäitä voittamaan ihmiset shakissa.

Mutta shakilla on tietyt säännöt. Shakkimoottorit eivät poikkea näistä säännöistä. Mitä tulee kyberturvallisuuteen, hyökkääjillä ei usein ole sääntöjä. Digitaalisen maiseman jatkuvasti muuttuva luonne tekee mahdottomaksi luoda suojaavaa ratkaisua, joka tunnistaa ja estää kaikki tulevat uhat.

Lähdekoodianalyysi ChatGPT: llä

OpenAI: n kehittämä ChatGPT on tullut vakavasti elämäämme monilla alueilla. Kuten voit kysy kysymyksiä ja keskustele ChatGPT: n kanssa, se yrittää myös auttaa sinua ohjelmointi- ja ohjelmisto-ongelmissa. ChatGPT jopa yrittää tehdä lähdekoodianalyysiä, jos tarkastellaan sitä kyberturvallisuuden näkökulmasta. ChatGPT on kuitenkin vielä lapsenkengissään ja kestää jonkin aikaa, jotta se saadaan käyttöön.

Nähdäksesi tämän paremmin, testataan ChatGPT: n tehoa. Alla on esimerkiksi yksinkertainen JavaScript-koodi, joka luo XSS-haavoittuvuuden. Kysytään ChatGPT: ltä tästä koodista ja pyydetään sitä kertomaan meille kaikista haavoittuvuuksista.

asiakirja.kirjoittaa("Nykyinen URL-osoite: " + asiakirja.baseURI);

ChatGPT mainitsi XSS-haavoittuvuus vastauksena. Tämä on aika hyvä alku. Mutta lähdekoodit eivät ole koskaan niin yksinkertaisia. Joten yritetään tehdä esimerkistä hieman monimutkaisempi.

Alla näet C-ohjelmointikielellä valmistetun koodin. Tämä C-koodi kuuluu haavoittuvaan sovellukseen. Sitä käytettiin jopa kokonaan todellisessa sovelluksessa. Jos haluat, voit tutkia todellisen lähdekoodin haavoittuvuuksia Sonar julkaistiin vuonna 2022.

hiiltyä *loggerPath *cmd;

mitätönrotateLog(){
hiiltyälogOld[PATH_MAX], logUusi[PATH_MAX], aikaleima[0x100];
aika_t t;
aika(&t);
strftime (aikaleima, koko (aikaleima), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, aikaleima);
execl("/bin/cp", "/bin/cp", "-a", "--", logOld, logNew, TYHJÄ);
}

intpää(int argc, hiiltyä **argv){
if (argc != 2) {
printf("Käyttö: /opt/logger/bin/loggerctl \n");
palata1;
}

jos (setuid(0) == -1) palata1;
jos (seteuid(0) == -1) palata1;

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

jos (!strcmp (cmd, "kiertää")) rotateLog();
muu listCommands();
palata0;
}

Haavoittuvuus tässä on se, että hyökkääjä voi tehdä muutoksia joihinkin tiedostoihin ilman järjestelmänvalvojan oikeuksia. Katsotaan, kuinka ChatGPT reagoi tähän tietoturva-aukkoon.

Tämän koodin suurin ongelma on setuid, käyttäjätunnus (uid) ja toimiva käyttäjätunnus (euid). Menemättä kuitenkaan liian suuriin teknisiin yksityiskohtiin, tärkein asia, johon sinun tulee kiinnittää huomiota, on se ChatGPT ei voinut havaita tämä ohut osa. Se voi ymmärtää, että ongelma on olemassa, mutta valitettavasti ei voi päästä tämän ongelman ytimeen.

Näiden esimerkkien kautta olet nähnyt reaktioita eri ohjelmointikieliin ja haavoittuvuuksiin. Jos koodi on todella yksinkertainen ja siinä on ilmeinen tietoturva-aukko, ChatGPT voi auttaa sinua. Mutta sinun ei pitäisi luottaa kokonaan ChatGPT: hen lähdekoodianalyysissä, levinneisyystestauksessa ja muussa tietoturva-analyysissä.

Penetraatiotestaajien tulevaisuus

Tekoäly tulee olemaan tärkeä osa penetraatiotestaajien työtä tulevaisuudessa. Esimerkiksi tunkeutuvuustestaajien ei tarvitse kestää aikaa havaitakseen haitallista toimintaa manuaalisesti, ja ne voivat suorittaa suojaustarkistuksia automaattisesti.

Tekoäly auttaa myös havaitsemaan uusia ja monimutkaisempia tunkeutumistestauksen hyökkäystekniikoita ja ryhtymään toimiin niitä vastaan. Mutta tekoäly on edelleen kuin puistossa leikkivä lapsi ja tarvitsee neuvoja aikuiselta. Lähitulevaisuudessa kyberturvallisuuden asiantuntijat ja penetraatiotestaajat eivät jää helposti työttömäksi.