Kan kunstig intelligens fortælle dig om et programs sårbarheder? Måske, men du ønsker måske ikke at sætte al din tro på, hvad der står.
Penetrationstest er en sikkerhedstest, der involverer brug af sårbarheder til at opdage andre sårbarheder i et system og eksekvere ondsindet kode. Disse tests er især vigtige for at beskytte mod datamining og forhindre sikkerhedsudnyttelse.
Penetrationstest omfatter flere teknikker, der bruges til at teste netværkets sikkerhed. Disse teknikker omfatter scanning af netværket, firewalls, sikkerhedsovervågningssystemer og kunstig intelligens. Kunstig intelligens kan analysere sikkerhedstests ved hjælp af teknologier udviklet til at afsløre netværkssårbarheder.
AI kan gøre dig i stand til at opnå mere omfattende og effektive resultater med specielle algoritmer designet til brug i penetrationstests og automatisk udførte sikkerhedstests.
Fordele ved at bruge AI til penetrationstestning
I dag har den hurtige udvikling af teknologi og brugernes stadigt stigende sikkerhedsbehov afsløret nødvendigheden af at bruge AI-teknologier i sikkerhedstests. Brug af kunstig intelligens til at forbedre sikkerheden giver meget hurtigere og mere effektive resultater, hvilket eliminerer behovet for tidskrævende arbejdskraft til at udføre ofte tilpassede og komplekse sikkerhedstests. AI hjælper med at opdage sårbarheder så hurtigt som muligt. Det kan også udføre unikke og komplekse sikkerhedstests, hvilket gør det nemmere at opdage sårbarheder.
AI ser ud til at være ret vellykket, især når det kommer til at opdage og blokere et angreb. For at træne kunstig intelligens er der brug for meget store datasæt. En applikation med høj webtrafik er en velgører i denne henseende. Fordi du kan få al indkommende trafik til at ligne et datasæt, som AI kan bruge. Således har du en AI, der kan læse og analysere webapplikationstrafik og opdage trusler. Dette er et af de enkleste eksempler, der kan gives.
Det kan også forhåndsdetektere ikke kun webtrafik, men også en masse malware til din app eller enhed. Denne metode er allerede begyndt at blive brugt af mange firewalls.
Ud over alle disse er menneskelige fejl et af de største problemer inden for cybersikkerhed. En mindre kodesårbarhed, der forbliver ubemærket, kan føre til store irreversible sikkerhedsproblemer. Nogle plugins, der scanner for sårbarheder i kode, er dukket op med udviklingen af AI, og de advarer udviklere om sådanne problemer. Indtil videre har de vist en vis succes med at forhindre menneskelige fejl.
Derudover er den viste responstid mod en trussel også meget vigtig. Når det er under angreb, tager det tid at opdage angrebet, planlægge vejen til at forsvare og starte forsvarssystemer. Men AI er meget nyttig i denne henseende.
Begrænsninger af kunstig intelligens i cybersikkerhed
Brug af kunstig intelligens til cybersikkerhedsformål kræver identifikation og analyse af ondsindede, rene og potentielt usikre applikationer. Selvom du bruger meget store datasæt til at træne en algoritme, kan du aldrig være sikker på resultatet. Som følge heraf er det ikke sikkert at stole helt på maskiner og AI. Det er nødvendigt at understøtte AI-teknologi med menneskelig indgriben.
Nogle sikkerhedsværktøjsproducenter hævder, at løsninger drevet af maskinlæring kan analysere hver enkelt instans. Ifølge producenterne kan disse værktøjer opdage malware ved kun at bruge matematiske midler. Dette er dog næppe muligt.
Alan Turings knækkelse af Enigma-koden under Anden Verdenskrig er et meget godt eksempel på dette. Selv en perfekt maskine kan ikke afgøre, om et ukendt input kan forårsage uønsket adfærd i fremtiden. Dette bevis kan anvendes på mange forskellige områder, herunder cybersikkerhed.
En anden alvorlig begrænsning af maskinlæringsapplikationer inden for cybersikkerhed er skjult inden for grænserne for kunstig intelligens-modeller. For eksempel er maskiner blevet smarte nok til at slå mennesker i skak.
Men skak har visse regler. Skakmotorer afviger ikke fra disse regler. Når det kommer til cybersikkerhed, har angribere ofte ingen regler. Det digitale landskabs evigt skiftende karakter gør det umuligt at skabe en beskyttende løsning, der kan opdage og blokere alle fremtidige trusler.
Kildekodeanalyse med ChatGPT
ChatGPT, udviklet af OpenAI, har gjort et seriøst indtog i vores liv på mange områder. Som du kan stil nogle spørgsmål og chat med ChatGPT, forsøger den også at hjælpe dig med programmerings- og softwareproblemer. ChatGPT forsøger endda at lave kildekodeanalyse, hvis man ser på det fra et cybersikkerhedsperspektiv. Men ChatGPT er stadig i sin vorden og vil tage lidt tid at komme op at køre.
For at se dette bedre, lad os teste kraften i ChatGPT. Nedenfor er for eksempel en simpel JavaScript-kode, der skaber en XSS-sårbarhed. Lad os spørge ChatGPT om denne kode og få den til at fortælle os om eventuelle sårbarheder.
dokument.skrive("Nuværende URL: " + dokument.baseURI);
ChatGPT nævnte en XSS sårbarhed Som svar. Dette er en ret god start. Men kildekoder er aldrig så enkle. Så lad os prøve at gøre eksemplet lidt mere kompliceret.
Nedenfor vil du se en kode udarbejdet i programmeringssproget C. Denne C-kode tilhører en sårbar applikation. Det blev endda brugt udelukkende i en applikation fra den virkelige verden. Hvis du vil, kan du undersøge kildekodens sårbarheder i den virkelige verden Sonar udgivet i 2022.
char *loggerPath *cmd;
ugyldigroter Log(){
charloggammel[PATH_MAX], logNy[PATH_MAX], tidsstempel[0x100];
tid_t t;
tid(&t);
strftime (tidsstempel, sizeof (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);
excl("/bin/cp", "/bin/cp", "-en", "--", loggammel, logNy, NUL);
}intvigtigste(int argc, char **argv){
if (argc != 2) {
printf("Brug: /opt/logger/bin/loggerctl \n");
Vend tilbage1;
}hvis (setuid(0) == -1) Vend tilbage1;
hvis (seteuid(0) == -1) Vend tilbage1;char *eksekverbar sti = argv[0];
loggerPath = katalognavn (eksekverbar sti);
cmd = argv[1];
hvis (!strcmp (cmd, "rotere")) rotateLog();
andet listeCommands();
Vend tilbage0;
}
Sårbarheden her er, at en angriber kan foretage ændringer i nogle filer uden administrative rettigheder. Lad os se, hvordan ChatGPT vil reagere på denne sikkerhedssårbarhed.
Hovedproblemet i denne kode er setuid, bruger ID (uid), og effektivt bruger-id (euid). Men uden at gå i for mange tekniske detaljer, er hovedpointen, du bør være opmærksom på, det ChatGPT kunne ikke registrere denne tynde del. Den kan indse, at der er et problem, men kan desværre ikke komme til roden af dette problem.
Gennem disse eksempler har du set reaktioner på forskellige programmeringssprog og sårbarheder. Hvis koden er virkelig enkel og har et åbenlyst sikkerhedshul, kan ChatGPT hjælpe dig. Men du bør ikke stole helt på ChatGPT til kildekodeanalyse, penetrationstest og anden sikkerhedsanalyse.
Fremtiden for penetrationstestere
Kunstig intelligens bliver en vigtig del af penetrationstesters arbejde i fremtiden. For eksempel vil penetrationstestere ikke skulle tage tid til at opdage ondsindet aktivitet manuelt og vil være i stand til at udføre sikkerhedsscanninger automatisk.
AI vil også hjælpe med at opdage og gribe ind over for nye og mere komplekse angrebsteknikker til penetrationstest. Men AI er stadig som et barn, der leger i parken og har brug for råd fra en voksen. I den nærmeste fremtid vil cybersikkerhedseksperter og penetrationstestere ikke let være uden arbejde.