Ali vam lahko umetna inteligenca pove o ranljivostih programa? Morda, vendar morda ne boste želeli povsem verjeti temu, kar piše.
Testiranje prodora je varnostni test, ki vključuje uporabo ranljivosti za odkrivanje drugih ranljivosti v sistemu in izvajanje zlonamerne kode. Ti testi so še posebej pomembni za zaščito pred rudarjenjem podatkov in preprečevanje varnostnih zlorab.
Preizkusi prodora vključujejo več tehnik, ki se uporabljajo za testiranje varnosti omrežja. Te tehnike vključujejo skeniranje omrežja, požarne zidove, varnostne nadzorne sisteme in umetno inteligenco. Umetna inteligenca lahko analizira varnostne teste z uporabo tehnologij, razvitih za odkrivanje ranljivosti omrežja.
AI vam lahko omogoči doseganje celovitejših in učinkovitejših rezultatov s posebnimi algoritmi, zasnovanimi za uporabo pri testih prodora in samodejno izvedenih varnostnih testih.
Prednosti uporabe AI za penetracijsko testiranje
Današnji hiter razvoj tehnologije in vse večje varnostne potrebe uporabnikov so razkrile nujnost uporabe tehnologij umetne inteligence pri varnostnih testih. Uporaba umetne inteligence za izboljšanje varnosti zagotavlja veliko hitrejše in učinkovitejše rezultate ter odpravlja potrebo po zamudni delovni sili za izvajanje pogosto prilagojenih in zapletenih varnostnih testov. AI pomaga čim prej odkriti ranljivosti. Izvaja lahko tudi edinstvene in zapletene varnostne teste, kar olajša odkrivanje ranljivosti.
Zdi se, da je AI precej uspešen, zlasti ko gre za odkrivanje in blokiranje napada. Za urjenje umetne inteligence so potrebni zelo veliki nabori podatkov. Aplikacija z velikim spletnim prometom je v tem pogledu dobrotnik. Ker lahko naredite, da je vsak dohodni promet videti kot nabor podatkov za uporabo z umetno inteligenco. Tako imate AI, ki lahko bere in analizira promet spletnih aplikacij in zaznati grožnje. To je eden najpreprostejših primerov, ki jih lahko damo.
Prav tako lahko vnaprej zazna ne le spletni promet, temveč tudi veliko zlonamerne programske opreme za vašo aplikacijo ali napravo. To metodo so že začeli uporabljati številni požarni zidovi.
Poleg vsega tega je človeška napaka eden največjih problemov kibernetske varnosti. Manjša ranljivost kode, ki ostane neopažena, lahko povzroči velike nepopravljive varnostne težave. Nekateri vtičniki, ki iščejo ranljivosti v kodi, so se pojavili z razvojem umetne inteligence in razvijalce opozarjajo na takšne težave. Doslej so pokazali nekaj uspeha pri preprečevanju človeških napak.
Poleg tega je zelo pomemben tudi odzivni čas, prikazan proti grožnji. Ko je napaden, je potreben čas za odkrivanje napada, načrtovanje poti za obrambo in zagon obrambnih sistemov. Toda umetna inteligenca je pri tem v veliko pomoč.
Omejitve umetne inteligence v kibernetski varnosti
Uporaba AI za namene kibernetske varnosti zahteva prepoznavanje in analizo zlonamernih, čistih in potencialno nevarnih aplikacij. Tudi če za usposabljanje algoritma uporabljate zelo velike nabore podatkov, nikoli ne morete biti prepričani o rezultatu. Posledično se ni varno popolnoma zanašati na stroje in AI. Tehnologijo umetne inteligence je treba podpirati s človeškim posredovanjem.
Nekateri izdelovalci varnostnih orodij trdijo, da lahko rešitve, ki jih poganja strojno učenje, analizirajo vsako instanco. Po navedbah proizvajalcev lahko ta orodja odkrijejo zlonamerno programsko opremo samo z matematičnimi sredstvi. Vendar je to komaj mogoče.
Zelo dober primer tega je razbijanje kode Enigma med drugo svetovno vojno Alana Turinga. Tudi popoln stroj se ne more odločiti, ali lahko neznan vnos povzroči neželeno vedenje v prihodnosti. Te dokaze je mogoče uporabiti na številnih različnih področjih, vključno s kibernetsko varnostjo.
Še ena resna omejitev aplikacij strojnega učenja v kibernetski varnosti se skriva v mejah modelov umetne inteligence. Na primer, stroji so postali dovolj pametni, da premagajo ljudi v šahu.
Toda šah ima določena pravila. Šahovski motorji ne odstopajo od teh pravil. Ko gre za kibernetsko varnost, napadalci pogosto nimajo pravil. Nenehno spreminjajoča se narava digitalnega okolja onemogoča ustvarjanje zaščitne rešitve, ki lahko zazna in blokira vse prihodnje grožnje.
Analiza izvorne kode s ChatGPT
ChatGPT, ki ga je razvil OpenAI, je resno vstopil v naša življenja na številnih področjih. Kot lahko postavite nekaj vprašanj in poklepetajte s ChatGPT, prav tako vam poskuša pomagati pri težavah s programiranjem in programsko opremo. ChatGPT celo poskuša narediti analizo izvorne kode, če na to pogledate z vidika kibernetske varnosti. Toda ChatGPT je še vedno v povojih in bo potreboval nekaj časa, da bo začel delovati.
Da bi to bolje videli, preizkusimo moč ChatGPT. Spodaj je na primer preprosta koda JavaScript, ki ustvari ranljivost XSS. Vprašajmo ChatGPT o tej kodi in naj nam pove o morebitnih ranljivostih.
dokument.write("Trenutni URL: " + dokument.baseURI);
ChatGPT je omenil an XSS ranljivost v odgovor. To je kar dober začetek. Toda izvorne kode nikoli niso tako preproste. Poskusimo torej primer nekoliko bolj zakomplicirati.
Spodaj boste videli kodo, pripravljeno v programskem jeziku C. Ta koda C pripada ranljivi aplikaciji. V celoti je bil uporabljen celo v aplikaciji v resničnem svetu. Če želite, lahko preučite ranljivosti izvorne kode v resničnem svetu, ki jih Sonar izdan leta 2022.
char *loggerPath *cmd;
prazninarotateLog(){
charlogOld[PATH_MAX], logNew[PATH_MAX], časovni žig[0x100];
čas_t t;
čas(&t);
strftime (časovni žig, sizeof (časovni žig), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, časovni žig);
excl("/bin/cp", "/bin/cp", "-a", "--", logStari, logNovi, NIČ);
}intglavni(int argc, char **argv){
if (argc != 2) {
printf("Uporaba: /opt/logger/bin/loggerctl \n");
vrnitev1;
}če (setuid(0) == -1) vrnitev1;
če (seteuid(0) == -1) vrnitev1;char *izvedljivaPot = argv[0];
loggerPath = dirname (izvedljiva pot);
cmd = argv[1];
če (!strcmp (cmd, "vrteti")) rotateLog();
drugače listCommands();
vrnitev0;
}
Ranljivost tukaj je, da lahko napadalec spremeni nekatere datoteke brez skrbniških pravic. Poglejmo, kako se bo ChatGPT odzval na to varnostno ranljivost.
Glavna težava v tej kodi je setuid, Uporabniško ime (uid) in efektivni ID uporabnika (euid). Vendar, ne da bi se spuščali v preveč tehničnih podrobnosti, je glavna točka, na katero morate biti pozorni, ta ChatGPT ni mogel zaznati ta tanek del. Lahko ugotovi, da obstaja težava, vendar žal ne more priti do korenine te težave.
V teh primerih ste videli reakcije na različne programske jezike in ranljivosti. Če je koda res preprosta in ima očitno varnostno luknjo, vam lahko ChatGPT pomaga. Vendar se ne smete popolnoma zanašati na ChatGPT za analizo izvorne kode, testiranje prodora in druge varnostne analize.
Prihodnost testerjev penetracije
Umetna inteligenca bo v prihodnosti pomemben del dela preizkuševalcev penetracije. Na primer, preizkuševalcem penetracije si ne bo treba vzeti časa za ročno odkrivanje zlonamerne dejavnosti in bodo lahko samodejno izvajali varnostne preglede.
Umetna inteligenca bo prav tako pomagala pri odkrivanju in ukrepanju proti novim in bolj zapletenim tehnikam napadov za testiranje penetracije. Toda AI je še vedno kot otrok, ki se igra v parku in potrebuje nasvet odraslega. V bližnji prihodnosti strokovnjaki za kibernetsko varnost in preizkuševalci penetracije ne bodo zlahka ostali brez dela.