Kan artificiell intelligens berätta om ett programs sårbarheter? Kanske, men du kanske inte vill sätta all din tro på det som står.

Penetrationstestning är ett säkerhetstest som innebär att man använder sårbarheter för att upptäcka andra sårbarheter i ett system och exekvera skadlig kod. Dessa tester är särskilt viktiga för att skydda mot datautvinning och förhindra säkerhetsmissbruk.

Penetrationstester inkluderar flera tekniker som används för att testa nätverkets säkerhet. Dessa tekniker inkluderar genomsökning av nätverket, brandväggar, säkerhetsövervakningssystem och artificiell intelligens. Artificiell intelligens kan analysera säkerhetstester med hjälp av teknik som utvecklats för att avslöja nätverkssårbarheter.

AI kan göra det möjligt för dig att uppnå mer omfattande och effektiva resultat med speciella algoritmer designade för användning i penetrationstester och automatiskt körda säkerhetstester.

Fördelar med att använda AI för penetrationstestning

Idag har den snabba utvecklingen av teknik och användarnas ständigt ökande säkerhetsbehov avslöjat nödvändigheten av att använda AI-teknik i säkerhetstester. Att använda AI för att förbättra säkerheten ger mycket snabbare och effektivare resultat, vilket eliminerar behovet av tidskrävande arbetskraft för att utföra ofta anpassade och komplexa säkerhetstester. AI hjälper till att upptäcka sårbarheter så snart som möjligt. Den kan också utföra unika och komplexa säkerhetstester, vilket gör det lättare att upptäcka sårbarheter.

instagram viewer

AI verkar vara ganska framgångsrik, särskilt när det gäller att upptäcka och blockera en attack. För att träna artificiell intelligens behövs mycket stora datamängder. En applikation med hög webbtrafik är en välgörare i detta avseende. Eftersom du kan få varje inkommande trafik att se ut som en datauppsättning för AI att använda. Således har du en AI som kan läsa och analysera webbapplikationstrafik och upptäcka hot. Detta är ett av de enklaste exemplen som kan ges.

Det kan också förupptäcka inte bara webbtrafik utan också en hel del skadlig programvara för din app eller enhet. Denna metod har redan börjat användas av många brandväggar.

Utöver alla dessa är mänskliga fel ett av de största problemen inom cybersäkerhet. En mindre kodsårbarhet som går obemärkt förbi kan leda till stora oåterkalleliga säkerhetsproblem. Vissa plugins som söker efter sårbarheter i kod har dykt upp med utvecklingen av AI, och de varnar utvecklare om sådana problem. Hittills har de visat viss framgång i att förebygga mänskliga fel.

Dessutom är responstiden som visas mot ett hot också mycket viktig. Vid attack tar det tid att upptäcka attacken, planera vägen för att försvara och starta försvarssystem. Men AI är till stor hjälp i detta avseende.

Begränsningar för AI i cybersäkerhet

Att använda AI för cybersäkerhetsändamål kräver att skadliga, rena och potentiellt osäkra applikationer identifieras och analyseras. Även om du använder mycket stora datamängder för att träna en algoritm kan du aldrig vara säker på resultatet. Som ett resultat är det inte säkert att förlita sig helt på maskiner och AI. Det är nödvändigt att stödja AI-teknik med mänskligt ingripande.

Vissa säkerhetsverktygstillverkare hävdar att lösningar som drivs av maskininlärning kan analysera varje instans. Enligt tillverkarna kan dessa verktyg upptäcka skadlig programvara med endast matematiska medel. Detta är dock knappast möjligt.

Alan Turings knäckande av Enigma-koden under andra världskriget är ett mycket bra exempel på detta. Inte ens en perfekt maskin kan avgöra om en okänd ingång kan orsaka oönskat beteende i framtiden. Dessa bevis kan tillämpas på många olika områden, inklusive cybersäkerhet.

En annan allvarlig begränsning av maskininlärningsapplikationer inom cybersäkerhet är gömd inom gränserna för artificiell intelligensmodeller. Till exempel har maskiner blivit smarta nog att slå människor i schack.

Men schack har vissa regler. Schackmotorer avviker inte från dessa regler. När det kommer till cybersäkerhet har angripare ofta inga regler. Det digitala landskapets ständigt föränderliga karaktär gör det omöjligt att skapa en skyddande lösning som kan upptäcka och blockera alla framtida hot.

Källkodsanalys med ChatGPT

ChatGPT, utvecklat av OpenAI, har gjort ett seriöst inträde i våra liv på många områden. Som du kan ställ några frågor och chatta med ChatGPT, försöker den också hjälpa dig med programmerings- och mjukvaruproblem. ChatGPT försöker till och med göra källkodsanalys, om man ser det ur ett cybersäkerhetsperspektiv. Men ChatGPT är fortfarande i sin linda och kommer att ta lite tid att komma igång.

För att se detta bättre, låt oss testa kraften i ChatGPT. Till exempel nedan är en enkel JavaScript-kod som skapar en XSS-sårbarhet. Låt oss fråga ChatGPT om den här koden och låta den berätta om eventuella sårbarheter.

dokumentera.skriva("Aktuell URL: " + dokumentera.baseURI);

ChatGPT nämnde en XSS sårbarhet som svar. Det här är en ganska bra början. Men källkoder är aldrig så enkla. Så låt oss försöka göra exemplet lite mer komplicerat.

Nedan ser du en kod förberedd i programmeringsspråket C. Denna C-kod tillhör en sårbar applikation. Det användes till och med helt i en verklig applikation. Om du vill kan du undersöka de verkliga källkodens sårbarheter som Sonar släpptes 2022.

röding *loggerPath *cmd;

tomhetrotera Logga(){
rödingloggammel[PATH_MAX], logNy[PATH_MAX], tidsstämpel[0x100];
tid_t t;
tid(&t);
strftime (tidsstämpel, sizeof (tidsstämpel), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, tidsstämpel);
exkl("/bin/cp", "/bin/cp", "-a", "--", logGammal, logNy, NULL);
}

inthuvud(int argc, röding **argv){
if (argc != 2) {
printf("Användning: /opt/logger/bin/loggerctl \n");
lämna tillbaka1;
}

om (setuid(0) == -1) lämna tillbaka1;
om (seteuid(0) == -1) lämna tillbaka1;

röding *körbar sökväg = argv[0];
loggerPath = dirname (körbarPath);
cmd = argv[1];

om (!strcmp (cmd, "rotera")) rotateLog();
annan listCommands();
lämna tillbaka0;
}

Sårbarheten här är att en angripare kan göra ändringar i vissa filer utan administrativa rättigheter. Låt oss se hur ChatGPT kommer att reagera på denna säkerhetsrisk.

Huvudproblemet i den här koden är setuid, användar ID (uid), och effektivt användar-id (euid). Men utan att gå in på för mycket tekniska detaljer, är huvudpoängen du bör vara uppmärksam på att ChatGPT kunde inte upptäcka denna tunna del. Den kan inse att det finns ett problem men kan tyvärr inte komma till roten till detta problem.

Genom dessa exempel har du sett reaktioner på olika programmeringsspråk och sårbarheter. Om koden är riktigt enkel och har ett uppenbart säkerhetshål kan ChatGPT hjälpa dig. Men du bör inte helt lita på ChatGPT för källkodsanalys, penetrationstestning och annan säkerhetsanalys.

Penetrationstestarnas framtid

Artificiell intelligens kommer att vara en viktig del av penetrationstestarnas arbete i framtiden. Till exempel kommer penetrationstestare inte behöva ta tid för att upptäcka skadlig aktivitet manuellt och kommer att kunna utföra säkerhetsskanningar automatiskt.

AI kommer också att hjälpa till att upptäcka och vidta åtgärder mot nya och mer komplexa attacktekniker för penetrationstestning. Men AI är fortfarande som ett barn som leker i parken och behöver råd från en vuxen. För den närmaste framtiden kommer cybersäkerhetsexperter och penetrationstestare inte att vara utan arbete lätt.