Tud a mesterséges intelligencia mondani egy program sebezhetőségéről? Talán, de lehet, hogy nem akarja teljes hitét abban, amit mond.
A penetrációs tesztelés egy biztonsági teszt, amely a sérülékenységek felhasználásával más biztonsági rések felfedezését és rosszindulatú kódok futtatását foglalja magában. Ezek a tesztek különösen fontosak az adatbányászat elleni védelem és a biztonsági visszaélések megelőzése szempontjából.
A penetrációs tesztek számos technikát tartalmaznak a hálózat biztonságának tesztelésére. Ezek a technikák közé tartozik a hálózat, a tűzfalak, a biztonsági felügyeleti rendszerek és a mesterséges intelligencia átvizsgálása. A mesterséges intelligencia képes elemezni a biztonsági teszteket a hálózati sérülékenységek feltárására kifejlesztett technológiák segítségével.
Az AI segítségével átfogóbb és hatékonyabb eredményeket érhet el speciális algoritmusokkal, amelyeket penetrációs tesztekhez és automatikusan végrehajtott biztonsági tesztekhez terveztek.
A mesterséges intelligencia penetrációs tesztelésének előnyei
Napjainkban a technológia rohamos fejlődése és a felhasználók egyre növekvő biztonsági igényei rávilágítottak az AI-technológiák használatának szükségességére a biztonsági tesztekben. Az AI használata a biztonság javítására sokkal gyorsabb és hatékonyabb eredményeket biztosít, így nincs szükség időigényes munkaerőre a gyakran testreszabott és összetett biztonsági tesztek elvégzéséhez. Az AI segít a sebezhetőségek mielőbbi észlelésében. Egyedi és összetett biztonsági teszteket is tud végezni, megkönnyítve a sérülékenységek észlelését.
A mesterséges intelligencia meglehetősen sikeresnek tűnik, különösen, ha a támadás észleléséről és blokkolásáról van szó. A mesterséges intelligencia képzéséhez nagyon nagy adatkészletekre van szükség. Egy nagy webes forgalommal rendelkező alkalmazás jótevő ebben a tekintetben. Mert minden bejövő forgalmat úgy tehet, mint egy adatkészletet az AI számára. Így van egy mesterséges intelligencia, amely képes olvasni és webalkalmazások forgalmának elemzése és észleli a fenyegetéseket. Ez az egyik legegyszerűbb példa.
Nemcsak a webes forgalmat, hanem sok rosszindulatú programot is képes előre észlelni az alkalmazáson vagy eszközön. Ezt a módszert már sok tűzfal elkezdte használni.
Mindezek mellett a kiberbiztonság egyik legnagyobb problémája az emberi hiba. Egy észrevétlenül jelentkező kisebb sérülékenység súlyos, visszafordíthatatlan biztonsági problémákhoz vezethet. A mesterséges intelligencia fejlesztése során megjelentek olyan bővítmények, amelyek a kódban lévő sebezhetőségeket keresik, és figyelmeztetik a fejlesztőket az ilyen problémákra. Eddig bizonyos sikereket értek el az emberi hibák megelőzésében.
Emellett nagyon fontos a fenyegetéssel szemben mutatott válaszidő is. Ha támadás alatt áll, időbe telik a támadás észlelése, a védekezés útvonalának megtervezése és a védelmi rendszerek elindítása. De az AI nagyon hasznos ebben a tekintetben.
Az AI korlátai a kiberbiztonságban
A mesterséges intelligencia kiberbiztonsági célokra való használata megköveteli a rosszindulatú, tiszta és potenciálisan nem biztonságos alkalmazások azonosítását és elemzését. Még ha nagyon nagy adatkészleteket használ is egy algoritmus betanításához, soha nem lehet biztos az eredményben. Ennek eredményeként nem biztonságos teljes mértékben a gépekre és az AI-ra hagyatkozni. Az AI technológiát emberi beavatkozással támogatni kell.
Egyes biztonsági eszközök gyártói azt állítják, hogy a gépi tanulással hajtott megoldások minden példányt elemezni tudnak. A gyártók szerint ezek az eszközök csak matematikai eszközökkel képesek észlelni a kártevőket. Ez azonban aligha lehetséges.
Ennek nagyon jó példája, hogy Alan Turing feltörte az Enigma kódot a második világháború alatt. Még egy tökéletes gép sem tudja eldönteni, hogy egy ismeretlen bemenet nemkívánatos viselkedést okozhat-e a jövőben. Ez a bizonyíték sok különböző területen alkalmazható, beleértve a kiberbiztonságot is.
A gépi tanulási alkalmazások másik komoly korlátja a kiberbiztonság területén a mesterséges intelligencia modellek korlátai között rejtőzik. Például a gépek elég okosak lettek ahhoz, hogy sakkban legyőzzék az embereket.
De a sakknak vannak bizonyos szabályai. A sakkmotorok nem térnek el ezektől a szabályoktól. Ha a kiberbiztonságról van szó, a támadóknak gyakran nincsenek szabályai. A digitális környezet folyamatosan változó természete lehetetlenné teszi olyan védelmi megoldások létrehozását, amelyek képesek észlelni és blokkolni minden jövőbeli fenyegetést.
Forráskód elemzése a ChatGPT-vel
Az OpenAI által fejlesztett ChatGPT számos területen komolyan belépett az életünkbe. Amint tudsz tegyen fel néhány kérdést, és csevegjen a ChatGPT-vel, programozási és szoftveres kérdésekben is igyekszik segíteni. A ChatGPT még a forráskód elemzését is megpróbálja elvégezni, ha kiberbiztonsági szempontból nézzük. A ChatGPT azonban még gyerekcipőben jár, és eltart egy ideig, amíg elindul.
Hogy ezt jobban lássuk, teszteljük a ChatGPT erejét. Az alábbiakban például egy egyszerű JavaScript-kód látható, amely XSS sebezhetőséget hoz létre. Kérdezzük meg a ChatGPT-t erről a kódról, és közölje velünk az esetleges sebezhetőségeket.
dokumentum.ír("Jelenlegi URL: " + dokumentum.baseURI);
A ChatGPT említett egy XSS sebezhetőség válaszul. Ez egy nagyon jó kezdet. De a forráskódok soha nem ilyen egyszerűek. Tehát próbáljuk meg egy kicsit bonyolultabbá tenni a példát.
Az alábbiakban egy C programozási nyelven elkészített kódot láthat. Ez a C kód egy sebezhető alkalmazáshoz tartozik. Még teljes egészében valós alkalmazásban is használták. Ha akarja, megvizsgálhatja a valós forráskód sérülékenységeit A Sonar 2022-ben jelent meg.
char *loggerPath *cmd;
üresrotateLog(){
charlogOld[PATH_MAX], logNew[PATH_MAX], időbélyeg[0x100];
idő_t t;
idő(&t);
strftime (időbélyeg, mérete (időbélyeg), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, időbélyeg);
execl("/bin/cp", "/bin/cp", "-a", "--", logOld, logNew, NULLA);
}intfő-(int argc, char **argv){
if (argc != 2) {
printf("Használat: /opt/logger/bin/loggerctl \n");
Visszatérés1;
}ha (setuid(0) == -1) Visszatérés1;
ha (seteuid(0) == -1) Visszatérés1;char *executablePath = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1];
ha (!strcmp (cmd, "forog")) rotateLog();
más listCommands();
Visszatérés0;
}
A biztonsági rés az, hogy a támadó rendszergazdai jogosultságok nélkül módosíthat bizonyos fájlokat. Nézzük meg, hogyan reagál a ChatGPT erre a biztonsági résre.
A fő probléma ebben a kódban az setuid, Felhasználói azonosító (uid), és a tényleges felhasználói azonosító (euid). Anélkül azonban, hogy túl sok technikai részletbe mennénk, a fő szempont, amire figyelni kell, az A ChatGPT nem észlelte ezt a vékony részt. Felismerheti, hogy van probléma, de sajnos nem tudja megkeresni a probléma gyökerét.
Ezeken a példákon keresztül különböző programozási nyelvekre és sebezhetőségekre adott reakciókat láthatta. Ha a kód nagyon egyszerű, és nyilvánvaló biztonsági rést tartalmaz, a ChatGPT segíthet. De ne hagyatkozzon teljes mértékben a ChatGPT-re a forráskód-elemzés, a penetrációs tesztelés és más biztonsági elemzések során.
A penetrációs tesztelők jövője
A mesterséges intelligencia a jövőben fontos része lesz a penetrációs tesztelők munkájának. Például a penetráció-tesztelőknek nem kell időbe telniük a rosszindulatú tevékenységek manuális észleléséhez, és automatikusan biztonsági vizsgálatokat hajthatnak végre.
A mesterséges intelligencia ezenkívül segít felderíteni és fellépni az új és összetettebb támadási technikák ellen a behatolási teszteléshez. De a mesterséges intelligencia még mindig olyan, mint egy gyerek, aki a parkban játszik, és tanácsra van szüksége egy felnőtttől. A közeljövőben a kiberbiztonsági szakértők és a penetrációtesztelők nem esnek könnyen munka nélkül.