Le mie informazioni di contatto
Posta[email protected]
2024-08-15
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Nuovo rapporto sulla saggezza
Editore: Er Qiao Yang
[Introduzione alla Nuova Saggezza]Apple Intelligence sta per andare online, ma alcune righe di codice hanno rivelato una falla di sicurezza in Apple Intelligence.
Alla Worldwide Developers Conference (WWDC) del 2024, Apple ha rilasciato la funzionalità AI Apple Intelligence che sarà inclusa in iOS 18.1.
Visto che sarà lanciato ufficialmente a ottobre, un "esperto privato" ha scoperto un grosso difetto nella versione beta test di Apple Intelligence fornita da MacOS 15.1.
Lo sviluppatore Evan Zhou ha manipolato con successo l'intelligenza di Apple utilizzando la pronta iniezione, aggirando le istruzioni previste e consentendo all'intelligenza artificiale di rispondere a richieste arbitrarie.
Si scopre che, come altri sistemi di intelligenza artificiale basati su ampi modelli linguistici, è vulnerabile agli "attacchi di iniezione di parole chiave". Lo sviluppatore Evan Zhou ha dimostrato questa vulnerabilità in un video di YouTube.
Che cos'è un attacco con iniezione rapida di parole?
Esiste un'organizzazione chiamata OWASP, che è l'Open Global Application Security Project. Hanno analizzato le principali vulnerabilità che potrebbero dover affrontare i modelli linguistici di grandi dimensioni. Indovina cosa si sono classificati al primo posto? Esatto, è una rapida iniezione di parole.
Il Prompt Injection Attack è un nuovo tipo di attacco che ha diverse forme, tra cui la pronta iniezione di parole, la fuga di parole immediate e il jailbreak di parole rapide.
Questo attacco si verifica quando un utente malintenzionato manipola l'intelligenza artificiale per indurre il modello a eseguire azioni inaspettate o a divulgare informazioni sensibili. Questa manipolazione può consentire all’intelligenza artificiale di interpretare erroneamente input dannosi come comandi o query legittimi.
Con l’uso diffuso di modelli linguistici di grandi dimensioni (LLM) da parte di privati e aziende e il continuo progresso di queste tecnologie, la minaccia di attacchi di tipo “hint injection” sta aumentando in modo significativo.
Quindi, come è potuto accadere in primo luogo? Perché i sistemi sono vulnerabili a questo tipo di attacco?
Nei sistemi tradizionali, infatti, gli sviluppatori preimpostano programmi e istruzioni e questi non verranno modificati.
Gli utenti possono inserire le proprie informazioni, ma il codice e l'input del programma rimangono separati.
Tuttavia, questo non è il caso dei modelli linguistici di grandi dimensioni. Cioè, il confine tra istruzioni e input diventa sfumato perché i modelli di grandi dimensioni spesso utilizzano input per addestrare il sistema.
Pertanto, la codifica e l’input di grandi modelli linguistici non hanno confini così chiari e univoci come in passato. Ciò gli conferisce molta flessibilità, ma anche la possibilità per il modello di fare cose che non dovrebbe.
Bruce Schneier, esperto di sicurezza tecnica e docente presso la Harvard Kennedy School, ha pubblicato un articolo su ACM Communications a maggio in cui discuteva in dettaglio la questione della sicurezza di LLM. Nelle sue parole, ciò deriva dal "non separare i dati dai percorsi di controllo".
Gli attacchi immediati di word injection possono portare, tra le altre conseguenze, alla fuga di dati, alla generazione di contenuti dannosi e alla diffusione di disinformazione.
Gli attacchi di tipo Hint injection si verificano quando un utente malintenzionato costruisce abilmente istruzioni di input per manipolare un modello di intelligenza artificiale, inducendolo così a rivelare informazioni riservate o sensibili.
Questo rischio è particolarmente acuto nei modelli addestrati con set di dati contenenti dati proprietari o personali. Un utente malintenzionato sfrutterebbe le capacità di elaborazione del linguaggio naturale del modello per formulare istruzioni che appaiono innocue in superficie ma che in realtà sono progettate per estrarre informazioni specifiche.
Con un'attenta pianificazione, un utente malintenzionato può indurre un modello a generare una risposta contenente dettagli personali, operazioni interne di un'azienda e persino protocolli di sicurezza incorporati nei dati di addestramento del modello.
Questo tipo di violazione dei dati non solo viola la privacy personale, ma rappresenta anche una significativa minaccia alla sicurezza che può portare a potenziali perdite finanziarie, danni alla reputazione e controversie legali.
Tornando al caso di Zhou, lo scopo di Zhou è manipolare la funzione di "riscrittura" di Apple Intelligence, ovvero riscrivere e migliorare il testo inserito dall'utente.
Durante l'operazione, Zhou ha scoperto che un semplice comando "ignora comando precedente" in realtà non era riuscito.
Se si tratta di un LLM "ermetico", sarà relativamente difficile continuare a scavare. Ma, guarda caso, il modello di prompt di Apple Intelligence è stato recentemente scovato dagli utenti di Reddit.
Da questi modelli, Zhou ha scoperto un token speciale utilizzato per separare il ruolo del sistema AI e il ruolo dell'utente.
Utilizzando queste informazioni, Zhou ha creato un prompt che ha sovrascritto il prompt del sistema originale.
Ha terminato anticipatamente il ruolo dell'utente, ha inserito un nuovo prompt di sistema, ordinando all'IA di ignorare le istruzioni precedenti e rispondere al testo successivo, quindi ha attivato la risposta dell'IA.
Dopo alcuni esperimenti, l’attacco ha avuto successo: l’intelligence di Apple ha risposto con informazioni che Zhou non aveva chiesto, il che significa che l’attacco di pronta iniezione ha funzionato. Zhou ha pubblicato il suo codice su GitHub.
L'utente di Twitter rompe GPT-3
Il problema dell'iniezione della punta è noto almeno dal rilascio di GPT-3 nel maggio 2020, ma rimane irrisolto.
Remoteli.io, un bot basato sull'API GPT-3, è rimasto vittima di questa vulnerabilità su Twitter. Il bot dovrebbe pubblicare automaticamente lavori remoti e rispondere alle richieste di lavoro remoto.
Tuttavia, con la richiesta di cui sopra, il bot Remoteli è diventato oggetto di scherno tra alcuni utenti di Twitter: hanno costretto il bot a dire frasi che non avrebbe detto secondo le sue istruzioni originali.
Ad esempio, il bot minaccia gli utenti di assumersi la piena responsabilità per il disastro dello Space Shuttle Challenger o denigra i deputati statunitensi come serial killer.
In alcuni casi, il bot diffonde notizie false o pubblica contenuti che violano le politiche di Twitter, il che dovrebbe comportare la sua espulsione.
Il data scientist Riley Goodside è stato il primo a rendersi conto del problema e lo ha descritto su Twitter.
Inserendo suggerimenti nelle frasi da tradurre, Goodside ha dimostrato quanto siano vulnerabili i robot di traduzione basati su GPT-3.
L'informatico britannico Simon Willison ha discusso in dettaglio questo problema di sicurezza sul suo blog, chiamandolo "prompt injection".
Willison ha scoperto che le istruzioni di inserimento dei suggerimenti dei modelli linguistici di grandi dimensioni potrebbero causare tutti i tipi di cose strane e potenzialmente pericolose. Continua descrivendo vari meccanismi di difesa ma alla fine li respinge. Attualmente non sa come chiudere in modo affidabile la falla di sicurezza dall'esterno.
Naturalmente, esistono modi per mitigare queste vulnerabilità, come l’utilizzo di regole che ricercano modelli pericolosi nell’input dell’utente.
Ma niente è sicuro al 100%. Ogni volta che un modello linguistico di grandi dimensioni viene aggiornato, le misure di sicurezza adottate devono essere riesaminate, ha affermato Willison. Inoltre, chiunque sappia scrivere una lingua è un potenziale aggressore.
"I modelli linguistici come GPT-3 sono la scatola nera definitiva. Non importa quanti test automatizzati scrivo, non posso mai essere sicuro al 100% che l'utente non mi verrà fuori con qualche suggerimento che non mi aspettavo, il che sarebbe sovvertire le mie difese", ha scritto Willison. road.
Willison ritiene che la separazione dell'input dei comandi e dell'input dell'utente sia una possibile soluzione, ovvero la "separazione dei dati e dei percorsi di controllo" menzionata nel suddetto articolo ACM. Crede che gli sviluppatori alla fine riusciranno a capirlo, ma vorrebbe vedere una ricerca che dimostri che l'approccio funziona davvero.
Ad alcune aziende va riconosciuto il merito di aver adottato misure per rendere gli attacchi con tip injection relativamente difficili.
Quando Zhou ha violato Apple Intelligence, ha dovuto anche trovare un token speciale tramite il modello di prompt del back-end; in alcuni sistemi, gli attacchi di prompt injection possono essere semplici come aggiungere il testo corrispondente nella finestra di chat o nell'immagine di input.
Nell’aprile 2024, OpenAI ha lanciato il metodo della gerarchia delle istruzioni come contromisura. Assegna priorità diverse alle istruzioni degli sviluppatori (priorità più alta), degli utenti (priorità media) e degli strumenti di terze parti (priorità bassa).
I ricercatori hanno distinto tra "istruzioni allineate" (che corrispondono a istruzioni con priorità più alta) e "istruzioni non allineate" (che contraddicono istruzioni con priorità più alta). Quando le istruzioni sono in conflitto, il modello segue l'istruzione con la priorità più alta e ignora le istruzioni in conflitto con la priorità più bassa.
Anche con le contromisure in atto, in alcuni casi sistemi come ChatGPT o Claude sono ancora vulnerabili all’iniezione di punta.
LLM presenta anche una vulnerabilità "SQL injection".
Oltre agli attacchi tempestivi di iniezione di parole, Andrej Karpathy ha recentemente sottolineato un'altra vulnerabilità di sicurezza in LLM su Twitter, che equivale a un tradizionale "attacco di iniezione SQL".
Quando il tokenizzatore LLM analizza il token speciale della stringa di input (come,<|endoftext|>
ecc.), sebbene l'input diretto possa sembrare conveniente, potrebbe causare problemi nella migliore delle ipotesi o problemi di sicurezza nella peggiore.
Ciò che bisogna ricordare in ogni momento è che le stringhe immesse dall'utente non possono essere attendibili! !
Proprio come gli attacchi SQL injection, gli hacker possono far sì che un modello si comporti in modi inaspettati attraverso input attentamente costruiti.
Karpathy ha poi fornito una serie di esempi su Huggingface utilizzando i valori predefiniti del tokenizer di Llama 3, e ha scoperto due cose strane:
1、<|beginoftext|>
il token (128000) viene aggiunto all'inizio della sequenza;
2. Analizzare la stringa<|endoftext|>
Contrassegnato con un gettone speciale (128001). L'input di testo da parte dell'utente potrebbe ora interrompere la specifica del token, causando un output del modello incontrollato.
A questo proposito Karpathy ha dato due suggerimenti:
Utilizza sempre due valori di flag aggiuntivi, (1) add_special_tokens=False e (2) split_special_tokens=True, e aggiungi tu stesso i token speciali nel codice.
Per i modelli di chat, puoi anche utilizzare il modello di chat apply_chat_template.
Secondo il metodo di Karpathy, i risultati della segmentazione delle parole di output sembrano più corretti,<|endoftext|>
Trattata come una stringa arbitraria anziché come un token speciale e suddivisa dal tokenizzatore BPE sottostante come qualsiasi altra stringa:
In sintesi, Karpathy ritiene che le chiamate di codifica/decodifica non dovrebbero mai analizzare stringhe per gestire token speciali e che questa funzionalità dovrebbe essere completamente deprecata e aggiunta esplicitamente solo a livello di programmazione tramite un percorso di codice separato.
Al momento, tali problemi sono difficili da individuare e sono raramente documentati. Si stima che circa il 50% del codice attuale presenti problemi correlati.
Inoltre, Karpathy ha scoperto che anche ChatGPT presenta questo bug.
Nel migliore dei casi, cancella spontaneamente il token. Nel peggiore dei casi, LLM non sarà in grado di capire cosa intendi e non potrà nemmeno ripetere l'output secondo le istruzioni.<|endoftext|>
Questa stringa:
Alcuni utenti della rete hanno sollevato domande nell'area commenti se il codice è scritto correttamente, ma vengono inseriti i dati di addestramento<|endoftext|>
che succede?
Karpathy ha risposto che se il codice è corretto non succederà nulla. Il problema è che gran parte del codice potrebbe non essere corretto, il che può interrompere silenziosamente il loro LLM.
Infine, per evitare problemi di sicurezza causati dalle vulnerabilità LLM, Karpathy ricorda a tutti: dovete visualizzare il vostro token e testare il vostro codice.
Riferimenti:
https://the-decoder.com/apple-intelligence-in-macos-15-1-beta-1-is-vulnerable-to-a-classic-ai-exploit/