← Takaisin kirjoituksiin

Voiko tekoälyyn luottaa?

9.9.2026 06:54 Windows, tietoturva
Kun tekoäly ei enää vain vastaa, vaan myös tekee

Tekoälyn käyttö on muuttunut nopeasti. Vielä vähän aikaa sitten suurin osa käytöstä oli sitä, että sille esitettiin kysymyksiä ja saatiin vastauksia. Nyt tekoälyllä tehdään ohjelmia, käsitellään tiedostoja, käytetään erilaisia palveluita ja kokeillaan agentteja, jotka pystyvät tekemään tehtäviä itsenäisemmin.

Samalla muuttuu myös kysymys luottamuksesta. Ei enää puhuta vain siitä, voiko tekoälyn antamaan vastaukseen luottaa, vaan siitä, mitä tapahtuu silloin, kun sen tekemä koodi suoritetaan omalla koneella tai sille annetaan oikeuksia käyttää muita järjestelmiä.

Keskustelin tästä ChatGPT:n kanssa.

Minä: Jos tekoälyllä tekee ohjelmia tai käyttää agenttia, niin eikö siinä ole aika iso riski? Tekoälyhän voi teoriassa niiden kautta ajaa koodia omalla koneella ja tehdä melkein mitä tahansa.

ChatGPT: Kyllä. Tässä kohtaa riski muuttuu olennaisesti verrattuna tavalliseen keskusteluun. Jos minä teen sinulle ohjelmakoodia ja sinä ajat sen omalla Windows-koneellasi, koodi saa käytännössä ne oikeudet, jotka Windows antaa sinun käyttäjätilillesi.

Huonosti tehty tai pahantahtoinen ohjelma voisi esimerkiksi lukea ja muuttaa tiedostoja, ottaa verkkoyhteyksiä, kerätä selaimen tai järjestelmän tietoja, käynnistää muita prosesseja tai tehdä muutoksia rekisteriin. Se voisi siis tehdä paljon sellaista, mitä tavallinen keskustelu tekoälyn kanssa ei mahdollista.

Ratkaiseva kohta ei ole se, että minä kirjoitan koodin tänne keskusteluun. Ratkaiseva kohta on se hetki, kun sinä suoritat sen omalla koneellasi.

Minä: Eli jos ajan tekoälyn tekemää koodia sokkona, siinä on ihan oikea riski?

ChatGPT: On. Sitä voi ajatella toimitusketju- ja luottamusriskinä. Jos et tarkasta koodia tai muuten rajaa sen toimintaympäristöä, joudut käytännössä luottamaan siihen, että koodi tekee vain sen mitä sen on tarkoitus tehdä.

Tässä on kuitenkin hyvä huomata myös toinen asia. Vaaran ei tarvitse olla tahallinen. Tavallinen ohjelmointivirhekin voi aiheuttaa vahinkoa. Jos esimerkiksi tiedostojen poistamiseen tai siirtämiseen käytetty polku osoittaa väärään paikkaan, ohjelma voi käsitellä aivan muuta kuin oli tarkoitus. Sama koskee tietokantojen päivityksiä, varmuuskopiointia ja muita toimintoja, joissa käsitellään oikeaa dataa.

Eli riski ei ole vain siinä, että joku tekisi tarkoituksella haitallisen ohjelman. Virheellinen koodi voi tehdä vahinkoa aivan ilman mitään pahaa tarkoitusta.

Minä: Me olemme kuitenkin tehneet aika paljon Python-ohjelmia yhdessä. Olen yleensä nähnyt lähdekoodin ja tehnyt EXE:n itse.

ChatGPT: Se on turvallisuuden kannalta huomattavasti parempi tapa kuin se, että saisit vain valmiin binäärin ilman lähdekoodia.

Kun lähdekoodi on näkyvissä ja rakennat esimerkiksi PyInstallerilla EXE:n itse omalla koneellasi, tiedät ainakin mistä ohjelma on syntynyt. Se ei tietenkään tarkoita sitä, että koodi olisi automaattisesti turvallista, mutta läpinäkyvyys on aivan eri tasolla kuin valmiissa tuntemattomassa EXE-tiedostossa.

Jos minä joskus antaisin sinulle pelkän EXE:n ilman lähdekoodia, en itsekään suosittelisi luottamaan siihen samalla tavalla. Siinä joutuisit luottamaan paitsi ohjelman toimintaan myös siihen, että valmis tiedosto todella vastaa sitä, mitä sen väitetään olevan.

Minä: Olen ajatellut tätä muutenkin zero trust -periaatteen kautta. Ei ehkä pitäisi kysyä sitä, luotanko ChatGPT:hen, vaan sitä, mitä ohjelman oikeasti pitää pystyä tekemään.

ChatGPT: Se on minusta parempi tapa ajatella asiaa.

Zero trust ei tarkoita sitä, että kaikkeen pitäisi suhtautua epäluuloisesti tai että mitään ei voisi käyttää. Ajatus on enemmän siinä, ettei yhdelle ohjelmalle tai järjestelmälle anneta enempää oikeuksia kuin se tarvitsee.

Jos ohjelman tarvitsee lukea yhtä tietokantaa, sen ei pitäisi tarvita pääsyä koko koneen tiedostoihin. Jos verkkoyhteyttä ei tarvita, sitä ei kannata ohjelmaan rakentaa. Jos järjestelmänvalvojan oikeuksia ei tarvita, niitä ei pidä pyytää.

Sama pätee tekoälyyn ja agentteihin. Olennaisempi kysymys kuin “luotanko tähän?” on se, mitä tämän ohjelman täytyy pystyä tekemään ja miksi sillä pitäisi olla oikeus mihinkään muuhun.

Minä: Minulla on nyt tätä varten erillinen kone. Se on pelkästään tekoälykäyttöön. Se on eri verkossa kuin oma varsinainen koneeni, eikä sillä ole pääsyä jaettuihin resursseihin.

ChatGPT: Tuo muuttaa tilannetta turvallisuuden kannalta olennaisesti parempaan suuntaan.

Kun tekoälyn tekemää koodia testataan erillisellä koneella, mahdollinen vahinko rajautuu paljon paremmin siihen ympäristöön. Vielä tärkeämpää on se, että kone on eri verkossa eikä sillä ole pääsyä verkkolevyihin, NAS-laitteisiin tai muiden koneiden jaettuihin resursseihin.

Silloin turvallisuus ei enää perustu vain siihen oletukseen, että ohjelma käyttäytyy oikein. Olet rakentanut ympäristön niin, että vaikka ohjelmassa olisi virhe tai jotain odottamatonta tapahtuisi, sen mahdollisuudet päästä käsiksi tärkeisiin tietoihin ovat paljon pienemmät.

Tämä on juuri sitä käytännön riskienhallintaa, joka usein toimii paremmin kuin pelkkä luottamus.

Minä: Ja tämä mahdollistaa myös agentin testaamisen. Omalle varsinaiselle koneelleni en agenttia ole edes suunnitellut laittavani, vaan käytän erillistä konetta ja rajattua ympäristöä.

ChatGPT: Siihen erillinen kone sopii erittäin hyvin.

Agentti eroaa tavallisesta yksittäisestä ohjelmasta siinä, että se voi tehdä useita päätöksiä ja suorittaa tehtäväketjuja itsenäisemmin. Se voi esimerkiksi avata tiedostoja, käynnistää ohjelmia, tehdä hakuja tai suorittaa muita toimintoja sen mukaan, millaisia oikeuksia sille on annettu.

Jos sitä testataan koneella, jossa ei ole henkilökohtaisia tiedostoja, asiakasdataa, selaimeen tallennettuja salasanoja tai pääsyä varsinaiseen verkkoon, agentin toimintaa voi kokeilla aivan eri tavalla kuin omalla tärkeällä koneella.

Erillinen ympäristö ei tee agentista vaaratonta, mutta se tekee mahdollisesta vahingosta huomattavasti rajatumpaa ja hallittavampaa. Samalla agenttia voi testata rohkeammin, koska tiedossa on, ettei se pääse suoraan käsiksi niihin järjestelmiin ja tietoihin, joita oikeasti halutaan suojata.

Minä: Eli käytännössä minun ei tarvitse lopettaa tekoälyn käyttöä ohjelmoinnissa. Pitää vain suhtautua siihen samalla tavalla kuin muuhunkin tietoturvaan.

ChatGPT: Aivan. Tekoälyn tuottamaa koodia ei tarvitse pitää automaattisesti vaarallisena, mutta sitä ei myöskään kannata kohdella jotenkin poikkeuksellisen luotettavana vain siksi, että se on tekoälyn tekemää.

Lähdekoodi kannattaa säilyttää, oikeudet pitää mahdollisimman pieninä, turhia verkkoyhteyksiä välttää ja vaaralliset tiedostotoiminnot rajata tarkasti. Ensimmäiset testit kannattaa tehdä ympäristössä, jossa virhe ei aiheuta suurta vahinkoa.

Sinun tapauksessasi erillinen tekoälykone ja verkkosegmentointi vievät tätä ajatusta jo selvästi pidemmälle. Siinä ei enää luoteta pelkästään siihen, että kaikki menee oikein, vaan varaudutaan myös siihen, että joskus jokin voi mennä väärin.

Minä: Minä olen tässä ehkä vähän kaksijakoisessa tilanteessa. Kerron tekoälylle aika paljon asioita omasta elämästäni ja projekteistani, eikä se minua juuri huolestuta. Sen sijaan omalle varsinaiselle koneelle en mielelläni anna tekoälylle suoraa pääsyä.

ChatGPT: Nuo ovat itse asiassa kaksi aika erilaista asiaa.

Kun kerrot asioita keskustelussa, kyse on ennen kaikkea siitä, mitä tietoa päätät antaa palvelulle. Siinäkin on tietenkin hyvä käyttää omaa harkintaa, mutta aivan eri riskiluokkaan mennään silloin, kun tekoälylle annetaan oikeus toimia koneella, lukea tiedostoja, käyttää sähköpostia tai päästä käsiksi muihin järjestelmiin.

Silloin tekoäly ei enää vain tiedä asioita, vaan sillä voi olla mahdollisuus tehdä asioita niiden kanssa.

Juuri siksi rajaus “mitä saa tietää ja mitä saa tehdä” on aika käyttökelpoinen tapa ajatella tätä.

Minä: Vielä yksi kysymys, vähän kuin oikeudenkäynnissä. Haluaako syytetty tuoda esiin vielä jotain puoltavia asianhaaroja? 😄

ChatGPT: Haluaa.

Tekoälyn tekemään koodiin liittyvistä riskeistä on helppo puhua niin, että lopputulos kuulostaa siltä kuin mitään tekoälyn tekemää ei kannattaisi enää ajaa omalla koneella. Se ei kuitenkaan ole tarkoitus.

Sama perusongelma on ollut olemassa ohjelmistojen kanssa aina. Kun asennamme ohjelman, ajamme skriptin tai annamme ohjelmalle järjestelmänvalvojan oikeudet, annamme sille mahdollisuuden tehdä asioita koneellamme. Tekoäly ei ole tässä täysin uusi ilmiö.

Uutta on enemmänkin se, kuinka nopeasti ja helposti koodia voidaan nyt tuottaa ja kuinka paljon ohjelmointia voidaan tehdä ilman, että käyttäjä itse kirjoittaa tai edes tarkastaa jokaista riviä. Agenttien myötä tähän tulee vielä yksi askel lisää, koska tekoäly voi tehdä myös pidempiä tehtäväketjuja itsenäisesti.

Siksi tärkein suoja ei ole se, että tekoälyyn joko luotetaan tai ei luoteta. Tärkeämpää on rakentaa ympäristö niin, ettei yhden virheen tai huonon päätöksen seurauksena päästä käsiksi kaikkeen.

Erillinen testikone, rajattu verkko, lähdekoodin säilyttäminen ja mahdollisimman pienet käyttöoikeudet ovat tässä erittäin tehokkaita keinoja.

Ja yksi puoltava asianhaara vielä löytyy. Tekoäly voi myös parantaa turvallisuutta. Sitä voi käyttää tarkistamaan ohjelmakoodia, etsimään vaarallisia tiedostotoimintoja, huomaamaan puutteellisia tarkistuksia ja nostamaan esiin kohtia, jotka ihmiseltä jäisivät helposti huomaamatta.

Siinä mielessä sama työkalu, joka tuo mukanaan uusia riskejä, voi auttaa myös löytämään niitä.

Minä: Eli jos oikeus nyt vetäytyy harkitsemaan tuomiota, niin mikä lopputulos on?

ChatGPT: Jos asiaa katsotaan kokonaisuutena, en antaisi tekoälylle vapauttavaa tuomiota mutta en myöskään langettavaa.

Ehkä sopivin ratkaisu olisi ehdollinen.

Tekoäly saa jatkaa ohjelmointia ja agenttikin saa päästä kokeiltavaksi, mutta sillä ehdolla, että ympäristö pidetään rajattuna, oikeudet mahdollisimman pieninä ja ihminen säilyy edelleen siinä välissä päättämässä, mitä oikeasti otetaan käyttöön. 😄