L'intelligenza artificiale può informarti sulle vulnerabilità di un programma? Forse, ma potresti non voler riporre tutta la tua fiducia in ciò che dice.
Il test di penetrazione è un test di sicurezza che prevede l'utilizzo di vulnerabilità per scoprire altre vulnerabilità in un sistema ed eseguire codice dannoso. Questi test sono particolarmente importanti per la protezione dal data mining e per prevenire gli exploit di sicurezza.
I test di penetrazione includono diverse tecniche utilizzate per testare la sicurezza della rete. Queste tecniche includono la scansione della rete, i firewall, i sistemi di sorveglianza della sicurezza e l'intelligenza artificiale. L'intelligenza artificiale può analizzare i test di sicurezza utilizzando tecnologie sviluppate per rivelare le vulnerabilità della rete.
L'intelligenza artificiale può consentirti di ottenere risultati più completi ed efficaci con algoritmi speciali progettati per l'uso nei test di penetrazione e nei test di sicurezza eseguiti automaticamente.
Vantaggi dell'utilizzo dell'intelligenza artificiale per i test di penetrazione
Oggi, il rapido sviluppo della tecnologia e le sempre crescenti esigenze di sicurezza degli utenti hanno rivelato la necessità di utilizzare le tecnologie AI nei test di sicurezza. L'utilizzo dell'intelligenza artificiale per migliorare la sicurezza fornisce risultati molto più rapidi ed efficienti, eliminando la necessità di manodopera che richiede tempo per eseguire test di sicurezza spesso personalizzati e complessi. L'intelligenza artificiale aiuta a rilevare le vulnerabilità il prima possibile. Può anche eseguire test di sicurezza unici e complessi, facilitando il rilevamento delle vulnerabilità.
L'intelligenza artificiale sembra avere un discreto successo, soprattutto quando si tratta di rilevare e bloccare un attacco. Per addestrare l'intelligenza artificiale, sono necessari set di dati molto grandi. Un'applicazione con un traffico web elevato è un benefattore in questo senso. Perché puoi trasformare ogni traffico in entrata in un set di dati che l'intelligenza artificiale può utilizzare. Quindi, hai un'intelligenza artificiale in grado di leggere e analizzare il traffico delle applicazioni web e rilevare le minacce. Questo è uno degli esempi più semplici che si possano fare.
Può anche pre-rilevare non solo il traffico web ma anche molti malware per la tua app o dispositivo. Questo metodo ha già iniziato ad essere utilizzato da molti firewall.
Oltre a tutto ciò, l'errore umano è uno dei maggiori problemi nella sicurezza informatica. Una vulnerabilità minore del codice che passa inosservata può portare a gravi problemi di sicurezza irreversibili. Alcuni plug-in che eseguono la scansione delle vulnerabilità nel codice sono emersi con lo sviluppo dell'intelligenza artificiale e avvertono gli sviluppatori di tali problemi. Finora, hanno mostrato un certo successo nel prevenire gli errori umani.
Inoltre, anche il tempo di risposta mostrato contro una minaccia è molto importante. Quando si è sotto attacco, ci vuole tempo per rilevare l'attacco, pianificare il percorso per difendersi e lanciare sistemi di difesa. Ma l'intelligenza artificiale è molto utile in questo senso.
Limitazioni dell'IA nella sicurezza informatica
L'uso dell'intelligenza artificiale per scopi di sicurezza informatica richiede l'identificazione e l'analisi di applicazioni dannose, pulite e potenzialmente non sicure. Anche se utilizzi set di dati molto grandi per addestrare un algoritmo, non puoi mai essere sicuro del risultato. Di conseguenza, non è sicuro fare affidamento interamente su macchine e intelligenza artificiale. È necessario supportare la tecnologia AI con l'intervento umano.
Alcuni produttori di strumenti di sicurezza affermano che le soluzioni basate sull'apprendimento automatico possono analizzare ogni istanza. Secondo i produttori, questi strumenti possono rilevare malware utilizzando solo mezzi matematici. Tuttavia, questo è difficilmente possibile.
Il cracking del codice Enigma da parte di Alan Turing durante la seconda guerra mondiale ne è un ottimo esempio. Anche una macchina perfetta non può decidere se un input sconosciuto può causare comportamenti indesiderati in futuro. Queste prove possono essere applicate a molti campi diversi, inclusa la sicurezza informatica.
Un altro grave limite delle applicazioni di machine learning nella sicurezza informatica è nascosto nei limiti dei modelli di intelligenza artificiale. Ad esempio, le macchine sono diventate abbastanza intelligenti da battere gli umani a scacchi.
Ma gli scacchi hanno alcune regole. I motori scacchistici non si discostano da queste regole. Quando si tratta di sicurezza informatica, gli aggressori spesso non hanno regole. La natura in continua evoluzione del panorama digitale rende impossibile creare una soluzione protettiva in grado di rilevare e bloccare tutte le minacce future.
Analisi del codice sorgente con ChatGPT
ChatGPT, sviluppato da OpenAI, è entrato seriamente nelle nostre vite in molti settori. Come puoi fai alcune domande e chatta con ChatGPT, cerca anche di aiutarti con problemi di programmazione e software. ChatGPT cerca persino di eseguire l'analisi del codice sorgente, se lo guardi dal punto di vista della sicurezza informatica. Ma ChatGPT è ancora agli inizi e ci vorrà del tempo per diventare operativo.
Per vederlo meglio, testiamo la potenza di ChatGPT. Ad esempio, di seguito è riportato un semplice codice JavaScript che crea una vulnerabilità XSS. Chiediamo a ChatGPT informazioni su questo codice e ci informiamo su eventuali vulnerabilità.
documento.scrivere("URL corrente: " + documento.baseURI);
ChatGPT ha menzionato un Vulnerabilità XSS in risposta. Questo è un buon inizio. Ma i codici sorgente non sono mai così semplici. Quindi proviamo a rendere l'esempio un po' più complicato.
Di seguito vedrai un codice preparato nel linguaggio di programmazione C. Questo codice C appartiene a un'applicazione vulnerabile. È stato persino utilizzato interamente in un'applicazione del mondo reale. Se lo desideri, puoi esaminare le vulnerabilità del codice sorgente del mondo reale che Sonar rilasciato nel 2022.
char *loggerPath *cmd;
vuotoruotareLog(){
charlogOld[PATH_MAX], logNuovo[PATH_MAX], timestamp[0x100];
tempo_t t;
tempo(&t);
strftime (timestamp, sizeof (timestamp), "%FT%T", gmtime(&t));
snprintf (logOld, sizeof (logOld), "%s/../logs/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, timestamp);
esegui("/bin/cp", "/bin/cp", "-UN", "--", logVecchio, logNuovo, NULLO);
}intprincipale(int argc, char **argv){
if (argc != 2) {
printf("Utilizzo: /opt/logger/bin/loggerctl \n");
ritorno1;
}Se (setuid(0) == -1) ritorno1;
Se (setuid(0) == -1) ritorno1;char *eseguibilePath = argv[0];
loggerPath = dirname (executablePath);
cmd = argv[1];
Se (!strcmp (cmd, "ruotare")) ruotaLog();
altro listCommands();
ritorno0;
}
La vulnerabilità qui è che un utente malintenzionato può apportare modifiche ad alcuni file senza privilegi amministrativi. Vediamo come ChatGPT risponderà a questa vulnerabilità di sicurezza.
Il problema principale in questo codice è setuid, ID utente (fluido) e ID utente effettivo (euid). Tuttavia, senza entrare troppo nei dettagli tecnici, il punto principale a cui dovresti prestare attenzione è quello ChatGPT non è stato in grado di rilevare questa parte sottile. Può rendersi conto che c'è un problema ma sfortunatamente non può arrivare alla radice di questo problema.
Attraverso questi esempi, hai visto reazioni a diversi linguaggi di programmazione e vulnerabilità. Se il codice è davvero semplice e presenta un evidente buco di sicurezza, ChatGPT può aiutarti. Ma non dovresti fare affidamento interamente su ChatGPT per l'analisi del codice sorgente, i test di penetrazione e altre analisi di sicurezza.
Il futuro dei penetration tester
L'intelligenza artificiale sarà una parte importante del lavoro dei penetration tester in futuro. Ad esempio, i penetration tester non dovranno impiegare tempo per rilevare manualmente attività dannose e saranno in grado di eseguire scansioni di sicurezza automaticamente.
L'intelligenza artificiale aiuterà anche a rilevare e agire contro tecniche di attacco nuove e più complesse per i test di penetrazione. Ma l'intelligenza artificiale è ancora come un bambino che gioca nel parco e ha bisogno del consiglio di un adulto. Per il prossimo futuro, gli esperti di sicurezza informatica e i penetration tester non rimarranno senza lavoro facilmente.