Ajatusjohtajat
Ohjelmointihyökkäys, jota ei voida estää: toiveajattelua vai oikea huolenaihe?

Haluan tässä artikkelissa kutsua lukijan mukaan ajatusleikkiin. Väitän, että lähitulevaisuudessa tietynlainen ohjelmointihyökkäys on tehokkaasti estämätön. Argumenttini on enemmän spekulatiivinen kuin konkreettinen, joten en yritä vakuuttaa sinua mistään. Sen sijaan kutsun sinut tutkimaan näitä ajatuksia. Ennen kuin aloitan, haluan kuten kaikki vakuuttavat kirjoittajat, keskustella shakista ja shakkihirnoista.
Yliluonnolliset shakkihirnot ja väite ihmisen kokemuksesta
Yksi shakin miellyttävimmistä puolista, jota ei ole muissa tieteenaloissa, on kyky mitata pelaajan laatu tai vahvuus objektiivisesti. Tähän tarkoitukseen käytettävä ELO-luokitusjärjestelmä on virheellinen, mutta se tarjoaa hyvän karkean arvion, joka pitää paikkansa ajan myötä. 2700 tai ylempään luokituksen saavuttaminen on yleisesti tunnustettu maailmanluokan tasona (maailman 30 parhaan joukossa). Maailman paras pelaaja on juuri alle 2850. Kukaan ihminen ei ole saavuttanut 2900 luokitusta.
1990-luvun puolivälissä näimme ensimmäisen tekoälymoottorin (Deep Blue), joka saavutti maailmanluokan tason. Tämän merkittävän saavutuksen käytännön seuraus oli moottorien laaja käyttöönotto kaikilla tasoilla harjoitteluun ja analyysiin. Itse asiassa moottorikäyttö tuli välttämättömäksi maailman parhaille pelaajille. Kuitenkin useiden maailmanluokan moottorien sukupolvien ajan näiden suositeltujen siirtojen tarkastelu (ts. ulostulo) oli välttämätöntä. Jopa erityinen muoto, “edistynyt shakki”, keksittiin, jossa ihmiset kilpailivat moottorin avustuksella, ja ihmisen ja koneen yhdistelmä pidettiin ylivoimaisena koneeseen verrattuna.
Kului noin 20 vuotta ja tärkeitä edistysaskelia syvän oppimisen ja vahvistusoppimisen alalla, ennen kuin shakkihirnot saavuttivat yliluonnollisen tason (noin 3200 ELO). Mutta kerran kun tämä ilmakehä murtui noin vuonna 2017, tapahtui kaksi yllättävää asiaa. Ensimmäinen asia oli täysin odotettavissa; hirrot tulivat “totuuden lähteenä” 99 prosentissa kaikista asemissa. Käytännössä tämä tarkoitti, että astuimme “sokean luottamuksen aikakauteen” hirtoa kohtaan. Nykyään on lähes mahdotonta ihmiselle ehdottaa merkittävästi parempaa siirtoa kuin hirrolla. Vaikka “edistynyt shakki” oli viihdyttävää, se on nyt turhaa; ihmiset eivät tuota juuri mitään peliin. Mutta toinen asia oli shakkelaisten suurin yllätys. Nämä yliluonnolliset neuroniset (ts. syvät neuroniverkkohirrot) pelasivat joskus tyylissä, jota voidaan parhaiten kuvailla “romanttiseksi”. Toisin sanoen, he tekivät siirtoja, joiden arvoa voitiin arvostella vasta monien siirtojen jälkeen, kaukana siitä, mitä ihminen tai maailmanluokan hirrot voivat laskea. Tuntui todella siltä, että hirrot kehittivät “tuntemuksen” tai “vaiston” tiettyjen asemien suhteen. Paitsi että tämä vaisto ei ollut mitään, minkä ihminen voisi koskaan ymmärtää tai jäljitellä.
Toisin sanoen yliluonnollinen neuroninen hirsi voi tehdä siirtoja, jotka ovat “kognitiivisen horisontin” ulottumattomissa ihmiselle. Tässä on keskeinen pointti; ongelma ei ole “selitettävyydestä”. Ihminen ei voi ymmärtää, miksi hirsi suosittelee siirtoa ilman pelin pelaamista ja lopputuloksen havainnointia useita siirtoja myöhemmin, ts. koko pelin mahdollisten siirtosekvenssien läpikäymistä. Tuloksena on ylittämätön kykyero. On objektiivisesti optimaalista hyväksyä hirron ulostulo ilman tarkastelua. Voin yhteenveda väitteeni seuraavasti:
Shakki on olemassaolotodistus siitä, että yliluonnollinen tekoäly toimisi tehokkaasti itsenäisesti joissakin aloissa. Tekoälyjärjestelmän salliminen tekee päätöksiä ilman ihmisen tarkastelua olisi optimaalinen tapa ottaa järjestelmä käyttöön.
Koska väitteeni saattaa vaikuttaa joltakin ilmiselvältä tai merkityksettömältä, haluan korostaa pariin yksityiskohtaan. Oletetaan, että meillä on tekoälyjärjestelmä, joka osoittaa yliluonnollisen tason monimutkaisessa ja kriittisessä tehtävässä, jolla on konkreettiset ja peruuttamattomat seuraukset. On kaksi seurausta väitteeseeni:
- Järjestelmä otettaisiin käyttöön tehtävän tekemiseen ilman ihmisen tarkastelua, vaikka siinä on sisäänrakennettu riski
- Tieto, joka saadaan tällaisen järjestelmän seuraamisesta, ei estäisi haitallista päätöstä; vahinko olisi jo tapahtunut
Hirron ulostulon tarkastelu ja seuraaminen ovat tarkalleen viimeiset kaksi puolustuskerrosta ohjelmointihyökkäystä vastaan. Siispä hypoteettinen ohjelmointihyökkäys voisi ohittaa nämä kerrokset kohdistamalla hyökkäyksensä asianmukaisesti.
Tämä on erittäin realistinen skenaario ajatuksissani. Yliluonnollinen tekoälyjärjestelmä tietyssä alassa ei ole yleinen tekoäly, ja useimmat asiantuntijat uskovat, että tällaiset järjestelmät ovat jo kulman takana. Emme myöskään olleet olettaneet, että päätökset ovat aikakriittisiä, vaan vain, että tehtävä on monimutkainen riittävästi, jotta ihmisen tarkastelu olisi hankalaa.
Tietysti olemme ohittaneet vain kaksi puolustuskerrosta tähän asti, ja onneksi meillä on keinoja puolustautua lopuista. Puhkaistaksemme loput, tutustumme ohjelmointihyökkäyksen ydinasioiden pariin.
Mikä on ohjelmointihyökkäys?
Ohjelmointihyökkäys on suuren kielen mallin (LLM) manipulointi käsivaltapestien avulla, jolloin LLM suorittaa tahattomasti hyökkääjän aikomukset. Sitä voidaan pitää tekoälylle tarkoitettuna sosiaalipsykologiana. Olennaisesti se ei ole perinteinen ohjelmistovirhe. Ohjelmointihyökkäys hyödyntää sisäänrakennettua LLM-heikkoutta. Koska LLM:t käsittelevät sekä järjestelmän että käyttäjän ohjelmointikomennot tekstijonoina, ne eivät voi luonnostaan erottaa legitimejä ja haitallisia ohjeita. Heikkous on siten suunnittelun sijaan suunnittelun seuraus.
Ohjelmointitekniikat
Ohjelmointihyökkäys on yleisesti tunnustettu #1 riski LLM-sovelluksille. On useita syitä, miksi näin on. Selvin syy on injektiotekniikoiden monimuotoisuus, joita on kehitetty. Karkeasti ryhmitellessäni ne neljään kategoriaan, tunnetuimpiin tekniikoihin kuuluvat:
- Syntaksipohjainen: erityisten merkkien, emoijien tai vaihtoehtoisen kielen käyttäminen
- Epäsuora: ulkoisten lähteiden (haetaan sivustolta), koodauksen (base 64) tai multimodaalisen viittauksen (teksti kuvassa) käyttäminen
- “Leikitään kuin”: manipuloivan tyylisuunnan esittäminen esim. roolipelaamalla, hypoteettisesti, emotionaalisella vetovoimalla, eettisellä kehyksellä ja muodonmuutoksella
- Karkea: selkeä yritys “pakkopaitaan” mallin ohjeita voimakeinoin, vahvistamalla tai kielteisellä ohjelmoinnilla
Monimuotoisuus yksinään tarjoaa haasteen sovelluskehittäjille, mutta nämä hyökkäykset ovat myös kehittyneet nopeasti. Vasemmalla puolella oleva kuva esittää vuoden 2023 alun tilannetta, kun taas oikealla puolella on nykyisten hyökkäysten luonne.

LLM-sovelluskehittäjien on myös otettava huomioon käytettävyys vs. turvallisuuden kompromissi. He voivat toki esittää jokaisen asianmukaisen puolustuskerroksen ja suunnittelumallin, mutta mitä kustannuksella? Puolustuskerrokset lisäävät merkittävästi viivettä ja esittävät vääräpositiivisia (FP) – väärin merkittyjä turvallisia ohjelmointikomennoja hyökkääviksi – molemmat tekijät vaikuttavat negatiivisesti käyttäjäkokemukseen. Seurauksena on, että jokin kompromissi on välttämätön käytännössä, eikä “hopealuotia” ratkaisua ole.
Kuitenkin tässä artikkelissa en ole kiinnostunut tästä loputtomasta kissa-hiiri-pelistä. Sen sijaan tutkin, voidaanko kehittää hyökkäys, joka on periaatteessa estämätön. Kehittäjän/puolustajan näkökulmasta on vain yksi avainnäkemys:
Ohjelmointi- ja tietojen erottaminen ohjelmoinnissa on keskeistä ohjelmointihyökkäyksen riskin hallitsemiseksi
Voimme olettaa, että kompromissit eivät ole tekijöitä, ja mitä tahansa puolustuskerrosta tai -tekniikkaa voidaan käyttää. Tällaisen (vahvan) oletuksen alaisena onko mahdollista kehittää skenaario, jossa ohjelmointi- ja tietojen erottaminen ohjelmoinnissa on tehokkaasti mahdoton?
DNA-analogia
Kun asiaa tarkasteltiin ohjelmointi- ja tietojen erottamisen näkökulmasta, ajattelin aluksi käyttää biologiaa analogiana.
Otetaan huomioon solu ja DNA:n jakso (tunnettu myös nimellä geeni). Geeni antaa ohjeet proteiinin rakentamiseksi transkription ja translaation kautta. Se myös koodaa tiedon (datan), joka vaikuttaa proteiinin rakenteeseen ja toimintaan. Niinpä geeni määrää sekä mitä rakentaa että miten rakentaa, niin ajattelin. Mutta tämä on yksinkertaisesti väärin, sillä geeni ei päättä, miten sitä tulkitaan. Ei ole biologiassa vastaavaa “ohjeiden seuraamista” geenin tasolla. “Mitä” on täysin ulkoistettu solun koneistolle.
Siispä vaikka en voi pois ajatukseni siitä, että tulevaisuuden LLM:t – tai oikeammin, järjestelmät, joihin ne kehittyvät – muistuttaisivat biologisia koneita paljon enemmän, ehdotettu analogia ei toimi. Emme voi korvata solua LLM:llä ja geeniä ohjelmoinnilla ja sitten suorittaa injektiota geeniin, joka lopulta aiheuttaisi “vahingollisen” proteiinin rakentamisen. Näyttää hedelmällisemmältä pysyä luonnollisella kielellä ja tehtävillä, jotka vaativat semanttista tulkintaa.
Puolustuskerrosten irrottaminen
Ei ole yllättävää, että monikerroksiset puolustusstrategiat ovat tehokkaampia ohjelmointihyökkäysten estämisessä. Alla oleva kuva esittää yleisimmät puolustuskerrokset järjestyksessä ja niiden liittyvät tekniikat.

Olemme jo keskustelleet viimeisistä kahdesta kerroksesta (ulostulo, seuraaminen) ylempänä, joten keskitymme nyt ensimmäisiin neljään.
Otetaan huomioon syötekerros, on järkevää olettaa, että ohjelmointikomennojen puhdistus tai validointi olisi melko onnistunutta havaitsemassa epäsuoria hyökkäyksiä. Mutta jos injektio toimitetaan suoraan, ja kuten ehdotettiin ylempänä, riippuen semanttisesta tulkinnasta, ehkä puhdistus on merkityksetön (ei mitään puhdistettavaa), ja validointi on mahdoton oletusarvoisesti, koska laskenta on suoritettava ongelman tunnistamiseksi.
Ei ole rajoja sille, miten monta varoitusviivaa voidaan rakentaa havaintakerrokseen. Itse asiassa voidaan jopa käyttää omistettua LLM:ää injektioiden havaitsemiseen. Mutta jälleen kerran on vaikea luokittelijalle tai poikkeamisen havainnoitsijalle merkitä ohjelmointikomento epäilyttäväksi, kun myrkky on älykkäästi piilotettu semantiikkaan.
Mallikerros voidaan olla melko tehokas, kun tehtävän laajuus on kapea, ja hienosäätö on toteutettavissa. Samanlainen argumentti voidaan esittää järjestelmäkerrokselle, kun työkalujen käyttö on ennustettavissa. Mutta ainakin intuitiivisesti kumpikaan ei nostaisi hälytystä, jos injektio hämää tulkintaa.
Korttitalo
Aikomukseni aloittaessani tämän artikkelin oli kuvailla “estämätön” ohjelmointihyökkäys laajasti. Ehkä päädyin seuraamaan “epärakenteellista” lähestymistapaa puhkaisemalla reikiä olemassa oleviin puolustuskerroksiin. Puolustustekniikat jatkavat nopeaa kehittymistään, ja samaa tekee hyökkäyspinta. Tämä peli ei näytä loppuvan pian. Mutta uskon myös, että emme ole niitä, jotka pelaa sitä paljon aikaa. Arvelen, että onnistunut ohjelmointihyökkäys tulevaisuudessa olisi edelleen luonnollisella kielellä, mutta kielellä, jota ihmiset eivät voi ymmärtää; ja arvelen, että se olisi itsestään löydetty järjestelmällä, joka on joko tarkoitettu tähän tarkoitukseen tai ehkä vahingossa, kun se on ratkaissut liittyvän tehtävän, kuten etsimällä semanttista epäselvyyttä jossakin edustusavaruudessa.
On jotain epämiellyttävää myöntää, että menetämme hallinnan ja kuitenkin tuntemaan, että tämä on järkevin asia tehdä. Voit ajatella sitä “intuitiivisena todisteena” siitä, että jotkut hyökkäykset ovat estämättömiä. Ja jos se tekee sinut epämukavaksi, sinun olisi mielenkiintoista tietää, että GPT 5.2 piti tämän argumenttia “ei kiistanalaisena eikä uutena” ja neuvoi minua, etten “jatka asiaa” ja leikkaa 40 prosenttia artikkelista.
