Czy sztuczna inteligencja może powiedzieć o lukach w zabezpieczeniach programu? Być może, ale możesz nie chcieć pokładać całej swojej wiary w tym, co mówi.
Testy penetracyjne to testy bezpieczeństwa, które polegają na wykorzystaniu luk w celu wykrycia innych luk w systemie i wykonania złośliwego kodu. Testy te są szczególnie ważne dla ochrony przed eksploracją danych i zapobiegania lukom w zabezpieczeniach.
Testy penetracyjne obejmują kilka technik wykorzystywanych do testowania bezpieczeństwa sieci. Techniki te obejmują skanowanie sieci, zapory ogniowe, systemy nadzoru bezpieczeństwa i sztuczną inteligencję. Sztuczna inteligencja może analizować testy bezpieczeństwa przy użyciu technologii opracowanych w celu ujawnienia luk w zabezpieczeniach sieci.
Sztuczna inteligencja może umożliwić osiągnięcie bardziej kompleksowych i efektywnych wyników dzięki specjalnym algorytmom przeznaczonym do wykorzystania w testach penetracyjnych i automatycznie przeprowadzanych testach bezpieczeństwa.
Korzyści z wykorzystania sztucznej inteligencji do testów penetracyjnych
W dzisiejszych czasach szybki rozwój technologii i stale rosnące potrzeby bezpieczeństwa użytkowników ujawniły konieczność wykorzystania technologii AI w testach bezpieczeństwa. Wykorzystanie sztucznej inteligencji do poprawy bezpieczeństwa zapewnia znacznie szybsze i skuteczniejsze wyniki, eliminując potrzebę angażowania czasochłonnej siły roboczej do przeprowadzania często niestandardowych i złożonych testów bezpieczeństwa. Sztuczna inteligencja pomaga wykrywać luki w zabezpieczeniach tak szybko, jak to możliwe. Może również przeprowadzać unikalne i złożone testy bezpieczeństwa, ułatwiając wykrywanie luk w zabezpieczeniach.
Sztuczna inteligencja wydaje się całkiem skuteczna, zwłaszcza jeśli chodzi o wykrywanie i blokowanie ataku. Do trenowania sztucznej inteligencji potrzebne są bardzo duże zbiory danych. Aplikacja o dużym ruchu w sieci jest pod tym względem dobroczyńcą. Ponieważ możesz sprawić, że każdy ruch przychodzący będzie wyglądał jak zestaw danych do wykorzystania przez sztuczną inteligencję. W ten sposób masz sztuczną inteligencję, która potrafi czytać i analizować ruch aplikacji internetowych i wykrywać zagrożenia. To jeden z najprostszych przykładów, jakie można podać.
Może również wstępnie wykrywać nie tylko ruch internetowy, ale także wiele złośliwych programów dla Twojej aplikacji lub urządzenia. Ta metoda zaczęła być już używana przez wiele zapór sieciowych.
Oprócz tego wszystkiego błąd ludzki jest jednym z największych problemów w cyberbezpieczeństwie. Drobna luka w kodzie, która pozostaje niezauważona, może prowadzić do poważnych, nieodwracalnych problemów z bezpieczeństwem. Niektóre wtyczki, które skanują luki w kodzie, pojawiły się wraz z rozwojem sztucznej inteligencji i ostrzegają programistów o takich problemach. Jak dotąd wykazali się pewnymi sukcesami w zapobieganiu błędom ludzkim.
Ponadto bardzo ważny jest również pokazany czas reakcji na zagrożenie. Podczas ataku wykrycie ataku, zaplanowanie ścieżki obrony i uruchomienie systemów obronnych wymaga czasu. Ale sztuczna inteligencja jest bardzo pomocna w tym zakresie.
Ograniczenia sztucznej inteligencji w cyberbezpieczeństwie
Wykorzystanie sztucznej inteligencji do celów cyberbezpieczeństwa wymaga identyfikowania i analizowania złośliwych, czystych i potencjalnie niebezpiecznych aplikacji. Nawet jeśli używasz bardzo dużych zbiorów danych do uczenia algorytmu, nigdy nie możesz być pewien wyniku. W rezultacie poleganie wyłącznie na maszynach i sztucznej inteligencji nie jest bezpieczne. Konieczne jest wsparcie technologii AI interwencją człowieka.
Niektórzy twórcy narzędzi bezpieczeństwa twierdzą, że rozwiązania oparte na uczeniu maszynowym mogą analizować każdą instancję. Według producentów narzędzia te mogą wykrywać złośliwe oprogramowanie wyłącznie za pomocą środków matematycznych. Jest to jednak mało możliwe.
Bardzo dobrym tego przykładem jest złamanie kodu Enigmy przez Alana Turinga podczas drugiej wojny światowej. Nawet doskonała maszyna nie może zdecydować, czy nieznane wejście może spowodować niepożądane zachowanie w przyszłości. Dowody te można zastosować w wielu różnych dziedzinach, w tym w cyberbezpieczeństwie.
Kolejne poważne ograniczenie zastosowań uczenia maszynowego w cyberbezpieczeństwie kryje się w granicach modeli sztucznej inteligencji. Na przykład maszyny stały się wystarczająco inteligentne, aby pokonać ludzi w szachy.
Ale szachy rządzą się pewnymi zasadami. Silniki szachowe nie odbiegają od tych zasad. Jeśli chodzi o cyberbezpieczeństwo, osoby atakujące często nie mają żadnych zasad. Nieustannie zmieniający się charakter środowiska cyfrowego uniemożliwia stworzenie rozwiązania ochronnego, które może wykrywać i blokować wszystkie przyszłe zagrożenia.
Analiza kodu źródłowego za pomocą ChatGPT
ChatGPT, opracowany przez OpenAI, poważnie wkroczył w nasze życie w wielu obszarach. Jeśli możesz zadaj kilka pytań i porozmawiaj z ChatGPT, stara się również pomóc w rozwiązywaniu problemów z programowaniem i oprogramowaniem. ChatGPT próbuje nawet przeprowadzić analizę kodu źródłowego, jeśli spojrzysz na to z perspektywy cyberbezpieczeństwa. Ale ChatGPT jest wciąż w powijakach i zajmie trochę czasu, zanim zacznie działać.
Aby zobaczyć to lepiej, przetestujmy moc ChatGPT. Na przykład poniżej znajduje się prosty kod JavaScript, który tworzy lukę XSS. Zapytajmy ChatGPT o ten kod i powiedz nam o wszelkich lukach w zabezpieczeniach.
dokument.pisać("Bieżący adres URL: " + dokument.baseURI);
ChatGPT wspomniał o Luka XSS w odpowiedzi. To całkiem niezły początek. Ale kody źródłowe nigdy nie są takie proste. Spróbujmy więc uczynić ten przykład nieco bardziej skomplikowanym.
Poniżej zobaczysz kod przygotowany w języku programowania C. Ten kod C należy do podatnej aplikacji. Był nawet używany w całości w rzeczywistej aplikacji. Jeśli chcesz, możesz zbadać rzeczywiste luki w kodzie źródłowym Sonar wydany w 2022 roku.
zwęglać *ścieżka_rejestratora *cmd;
próżniaobróćLog(){
zwęglaćlogStare[PATH_MAX], logNowy[PATH_MAX], znak czasu[0x100];
czas_t t;
czas(&t);
strftime (sygnatura czasowa, sizeof (sygnatura czasowa), "%FT%T", gmtime(&t));
snprintf (stary log, rozmiar (stary log), "%s/../logs/global.log", ścieżka_rejestratora);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, znacznik czasu);
wykonaj("/bin/cp", "/bin/cp", "-A", "--", logStary, logNowy, ZERO);
}intgłówny(int argc, zwęglać **argv){
if (argc != 2) {
drukujf(„Użycie: /opt/logger/bin/loggerctl \n”);
powrót1;
}Jeśli (ustaw(0) == -1) powrót1;
Jeśli (seteuid(0) == -1) powrót1;zwęglać *Ścieżka do pliku wykonywalnego = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1];
Jeśli (!strcmp (cmd, "obracać się")) obróćLog();
w przeciwnym razie listaPolecenia();
powrót0;
}
Luka w zabezpieczeniach polega na tym, że osoba atakująca może wprowadzić zmiany w niektórych plikach bez uprawnień administracyjnych. Zobaczmy, jak ChatGPT zareaguje na tę lukę w zabezpieczeniach.
Głównym problemem w tym kodzie jest ustawić, identyfikator użytkownika (uid) i efektywny identyfikator użytkownika (euid). Jednak bez wchodzenia w zbyt wiele szczegółów technicznych, główną kwestią, na którą należy zwrócić uwagę, jest to ChatGPT nie może wykryć ta cienka część. Może zdać sobie sprawę, że istnieje problem, ale niestety nie może dotrzeć do źródła tego problemu.
Na tych przykładach można było zobaczyć reakcje na różne języki programowania i luki w zabezpieczeniach. Jeśli kod jest naprawdę prosty i ma oczywistą lukę w zabezpieczeniach, ChatGPT może Ci pomóc. Ale nie powinieneś całkowicie polegać na ChatGPT do analizy kodu źródłowego, testów penetracyjnych i innych analiz bezpieczeństwa.
Przyszłość testerów penetracyjnych
Sztuczna inteligencja będzie w przyszłości ważną częścią pracy testerów penetracyjnych. Na przykład testerzy penetracyjni nie będą musieli poświęcać czasu na ręczne wykrywanie złośliwej aktywności i będą mogli automatycznie przeprowadzać skanowanie bezpieczeństwa.
Sztuczna inteligencja pomoże również wykrywać i podejmować działania przeciwko nowym i bardziej złożonym technikom ataków na potrzeby testów penetracyjnych. Ale AI jest nadal jak dziecko bawiące się w parku i potrzebuje porady dorosłego. W najbliższej przyszłości eksperci ds. bezpieczeństwa cybernetycznego i testerzy penetracyjni nie stracą łatwo pracy.