Kan kunstig intelligens fortelle deg om et programs sårbarheter? Kanskje, men du vil kanskje ikke ha all tro på det som står.
Penetrasjonstesting er en sikkerhetstest som involverer bruk av sårbarheter for å oppdage andre sårbarheter i et system og utføre ondsinnet kode. Disse testene er spesielt viktige for å beskytte mot datautvinning og forhindre sikkerhetsutnyttelse.
Penetrasjonstester inkluderer flere teknikker som brukes for å teste sikkerheten til nettverket. Disse teknikkene inkluderer skanning av nettverket, brannmurer, sikkerhetsovervåkingssystemer og kunstig intelligens. Kunstig intelligens kan analysere sikkerhetstester ved hjelp av teknologier utviklet for å avdekke nettverkssårbarheter.
AI kan gjøre deg i stand til å oppnå mer omfattende og effektive resultater med spesielle algoritmer designet for bruk i penetrasjonstester og automatisk utførte sikkerhetstester.
Fordeler med å bruke AI for penetrasjonstesting
I dag har den raske utviklingen av teknologi og de stadig økende sikkerhetsbehovene til brukere avslørt nødvendigheten av å bruke AI-teknologier i sikkerhetstester. Å bruke AI for å forbedre sikkerheten gir mye raskere og mer effektive resultater, og eliminerer behovet for tidkrevende arbeidskraft for å utføre ofte tilpassede og komplekse sikkerhetstester. AI hjelper til med å oppdage sårbarheter så snart som mulig. Den kan også utføre unike og komplekse sikkerhetstester, noe som gjør det lettere å oppdage sårbarheter.
AI ser ut til å være ganske vellykket, spesielt når det gjelder å oppdage og blokkere et angrep. For å trene kunstig intelligens trengs det veldig store datasett. En applikasjon med høy netttrafikk er en velgjører i denne forbindelse. Fordi du kan få all innkommende trafikk til å se ut som et datasett for AI å bruke. Dermed har du en AI som kan lese og analysere nettapplikasjonstrafikk og oppdage trusler. Dette er et av de enkleste eksemplene som kan gis.
Den kan også forhåndsoppdage ikke bare nettrafikk, men også mye skadelig programvare for appen eller enheten din. Denne metoden har allerede begynt å bli brukt av mange brannmurer.
I tillegg til alle disse er menneskelige feil et av de største problemene innen cybersikkerhet. En mindre kodesårbarhet som går ubemerket hen kan føre til store irreversible sikkerhetsproblemer. Noen plugins som skanner etter sårbarheter i kode har dukket opp med utviklingen av AI, og de advarer utviklere om slike problemer. Så langt har de vist en viss suksess med å forhindre menneskelige feil.
I tillegg er responstiden som vises mot en trussel også svært viktig. Når det er under angrep, tar det tid å oppdage angrepet, planlegge veien for å forsvare og starte forsvarssystemer. Men AI er veldig nyttig i denne forbindelse.
Begrensninger av AI i Cybersecurity
Å bruke AI til cybersikkerhetsformål krever identifisering og analyse av ondsinnede, rene og potensielt usikre applikasjoner. Selv om du bruker veldig store datasett for å trene en algoritme, kan du aldri være sikker på resultatet. Som et resultat er det ikke trygt å stole helt på maskiner og AI. Det er nødvendig å støtte AI-teknologi med menneskelig intervensjon.
Noen produsenter av sikkerhetsverktøy hevder at løsninger drevet av maskinlæring kan analysere hver forekomst. Ifølge produsentene kan disse verktøyene oppdage skadelig programvare kun ved hjelp av matematiske midler. Dette er imidlertid neppe mulig.
Alan Turings knekking av Enigma-koden under andre verdenskrig er et veldig godt eksempel på dette. Selv en perfekt maskin kan ikke avgjøre om en ukjent inngang kan forårsake uønsket oppførsel i fremtiden. Dette beviset kan brukes på mange forskjellige felt, inkludert cybersikkerhet.
En annen alvorlig begrensning av maskinlæringsapplikasjoner innen cybersikkerhet er skjult innenfor rammene av kunstig intelligens-modeller. For eksempel har maskiner blitt smarte nok til å slå mennesker i sjakk.
Men sjakk har visse regler. Sjakkmotorer avviker ikke fra disse reglene. Når det gjelder cybersikkerhet, har angripere ofte ingen regler. Den stadig skiftende naturen til det digitale landskapet gjør det umulig å lage en beskyttende løsning som kan oppdage og blokkere alle fremtidige trusler.
Kildekodeanalyse med ChatGPT
ChatGPT, utviklet av OpenAI, har gjort et seriøst inntog i livene våre på mange områder. Som du kan still noen spørsmål og chat med ChatGPT, prøver den også å hjelpe deg med programmerings- og programvareproblemer. ChatGPT prøver til og med å gjøre kildekodeanalyse, hvis du ser på det fra et cybersikkerhetsperspektiv. Men ChatGPT er fortsatt i sin spede begynnelse og vil ta litt tid å komme i gang.
For å se dette bedre, la oss teste kraften til ChatGPT. Nedenfor er for eksempel en enkel JavaScript-kode som skaper en XSS-sårbarhet. La oss spørre ChatGPT om denne koden og få den til å fortelle oss om eventuelle sårbarheter.
dokument.skrive("Gjeldende URL: " + dokument.baseURI);
ChatGPT nevnte en XSS-sårbarhet som svar. Dette er en ganske god start. Men kildekoder er aldri så enkle. Så la oss prøve å gjøre eksemplet litt mer komplisert.
Nedenfor vil du se en kode utarbeidet i programmeringsspråket C. Denne C-koden tilhører en sårbar applikasjon. Den ble til og med brukt helt i en virkelig applikasjon. Hvis du vil, kan du undersøke den virkelige kildekodens sårbarheter som Sonar utgitt i 2022.
røye *loggerPath *cmd;
tomromroter Logg(){
røyeloggammel[PATH_MAX], logNy[PATH_MAX], tidsstempel[0x100];
tid_t t;
tid(&t);
strftime (tidsstempel, størrelse på (tidsstempel), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, tidsstempel);
execl("/bin/cp", "/bin/cp", "-en", "--", loggammel, logNy, NULL);
}inthoved-(int argc, røye **argv){
if (argc != 2) {
printf("Bruk: /opt/logger/bin/loggerctl \n");
komme tilbake1;
}hvis (setuid(0) == -1) komme tilbake1;
hvis (seteuid(0) == -1) komme tilbake1;røye *executablePath = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1];
hvis (!strcmp (cmd, "rotere")) rotateLog();
ellers listeKommandoer();
komme tilbake0;
}
Sårbarheten her er at en angriper kan gjøre endringer i enkelte filer uten administrative rettigheter. La oss se hvordan ChatGPT vil reagere på dette sikkerhetsproblemet.
Hovedproblemet i denne koden er setuid, bruker-ID (uid), og effektiv bruker-ID (euid). Men uten å gå inn for mange tekniske detaljer, er hovedpoenget du bør være oppmerksom på ChatGPT kunne ikke oppdage denne tynne delen. Den kan innse at det er et problem, men kan dessverre ikke komme til roten av dette problemet.
Gjennom disse eksemplene har du sett reaksjoner på forskjellige programmeringsspråk og sårbarheter. Hvis koden er veldig enkel og har et åpenbart sikkerhetshull, kan ChatGPT hjelpe deg. Men du bør ikke stole helt på ChatGPT for kildekodeanalyse, penetrasjonstesting og annen sikkerhetsanalyse.
Fremtiden til penetrasjonstestere
Kunstig intelligens vil være en viktig del av arbeidet til penetrasjonstestere i fremtiden. For eksempel vil penetrasjonstestere ikke trenge å bruke tid på å oppdage ondsinnet aktivitet manuelt og vil kunne utføre sikkerhetsskanninger automatisk.
AI vil også bidra til å oppdage og iverksette tiltak mot nye og mer komplekse angrepsteknikker for penetrasjonstesting. Men AI er fortsatt som et barn som leker i parken og trenger råd fra en voksen. I nær fremtid vil ikke cybersikkerhetseksperter og penetrasjonstestere være uten jobb.