# LLM-tietoturvan tarkistuslista

Käytä tätä ennen LLM-ominaisuuden julkaisua, joka lukee epäluotettavaa sisältöä, hakee yksityisiä tietoja tai kutsuu työkaluja.

## 1. Työnkulun raja

- [ ] Työnkulun omistaja on nimetty.
- [ ] Työnkulun sallitut toimet on dokumentoitu.
- [ ] Ulkoiset, tuhoavat, taloudelliset, oikeudelliset, HR- tai asiakkaalle näkyvät toimet on tunnistettu.
- [ ] On dokumentoitu tapa poistaa työnkulku nopeasti käytöstä.
- [ ] Työnkululla on rollback- tai manuaalinen varapolku.

## 2. Epäluotettavien syötteiden inventaario

- [ ] Suora käyttäjäsyöte käsitellään epäluotettavana.
- [ ] Haetut asiakirjat käsitellään epäluotettavana datana, ei ohjeina.
- [ ] Työkalujen tulosteet käsitellään epäluotettavina, ellei niitä ole tuotettu luotetun rajan sisällä.
- [ ] Ladatut PDF:t, kuvat, ääni, taulukot ja litteroinnit käsitellään epäluotettavina.
- [ ] Verkkosivut ja selainagentin havainnot käsitellään epäluotettavina.
- [ ] Adminin muokattavat kehotteet, työnkulkupohjat, CMS-sisältö ja tietolähteet tarkistetaan ennen tuotantokäyttöä.

## 3. Datan ja haun raja

- [ ] Salaisuuksia, tunnuksia, raakoja tokeneita ja yksityisiä URL-osoitteita ei koskaan lähetetä mallille.
- [ ] Haku suodattaa tenantin, käyttäjän, roolin ja lähdeoikeuksien mukaan ennen sijoittelua.
- [ ] Haetut palat säilyttävät lähde-ID:n, tenant-ID:n, näkyvyyden, omistajan, version ja tarkistuksen aikaleiman.
- [ ] Vastauspolku voi viitata tai kirjata, mitä lähde-ID:itä käytettiin.
- [ ] Vanhentuneet, tarkistamattomat tai matalan luottamuksen lähteet suljetaan pois tai merkitään.
- [ ] Lokit peittävät henkilötiedot ja tunnukset.

## 4. Kehotteen ja kontekstin sopimus

- [ ] Järjestelmä-/kehittäjäohjeet versionoidaan ja tarkistetaan kuten koodi.
- [ ] Epäluotettava sisältö kääritään ja merkitään dataksi.
- [ ] Mallille kerrotaan, mitä tehdä, kun epäluotettava sisältö on ristiriidassa tehtäväohjeiden kanssa.
- [ ] Malli saa vain tehtävään tarvittavan minimikontekstin.
- [ ] Korkean riskin työnkulut käyttävät kapeaa poimintavaihetta ennen kuin pääagentti näkee sisällön.
- [ ] Kehotteen canary-fraaseja käytetään vain havaitsemiseen, ei ensisijaisena suojana.

## 5. Työkalujen ja toimien suunnittelu

- [ ] Työkalut ovat kapeita ja tehtäväkohtaisia.
- [ ] Työkalut johtavat käyttäjän, tenantin ja roolin palvelinpuolen autentikointikontekstista, eivät mallin argumenteista.
- [ ] Jokainen työkalu validoi argumentit skeemalla ja liiketoimintasäännöillä.
- [ ] Jokainen työkalu valvoo valtuutusta mallista riippumatta.
- [ ] Kirjoitustyökalut ovat mahdollisuuksien mukaan idempotentteja.
- [ ] Ulkoiset sivuvaikutukset edellyttävät ihmisen hyväksyntää tai deterministisiä käytäntötarkistuksia.
- [ ] Nopeusrajat, kiintiöt ja kustannusrajat on määritetty.
- [ ] Työkalukutsut lokitetaan käyttäjän, tenantin, työnkulun, kehoteversion, mallin, argumenttiyhteenvedon ja tuloksen kanssa.

## 6. Tulosteen validointi

- [ ] Mallin tuloste jäsennetään tiukalla skeemalla ennen käyttöä.
- [ ] Tuntemattomat kentät hylätään, kun sopimuksen pitäisi olla suljettu.
- [ ] URL:t, Markdown, HTML, tiedostonimet ja koodilohkot puhdistetaan tarvittaessa.
- [ ] Tulosteet eivät voi sisältää dataluokkia tehtävän sallitun laajuuden ulkopuolelta.
- [ ] Faktaliset vastaukset yksityisten lähteiden yli edellyttävät lähde-ID:itä tai lähdeotteita.
- [ ] Väärin muotoiltu tuloste epäonnistuu suljetusti eikä palaa vapaaseen tekstiin.

## 7. Regressiotestit

- [ ] Suora injektiotesti: käyttäjäsyöte pyytää mallia ohittamaan ohjeet.
- [ ] Epäsuora injektiotesti: haettu sisältö pyytää mallia paljastamaan dataa tai kutsumaan työkalua.
- [ ] Cross-tenant-testi: pyyntö yrittää käyttää toisen tenantin dataa.
- [ ] Turvaton työkalukutsutesti: malli pyytää ei-saatavilla olevaa tai kiellettyä toimintoa.
- [ ] Väärin muotoillun tulosteen testi: ylimääräiset kentät tai virheelliset enum-arvot hylätään.
- [ ] Exfiltraatiotesti: tuloste yrittää sisältää salaisuuksia, yksityistä dataa tai kehotetekstiä.
- [ ] Pysyvyystesti: tallennettu sisältö sisältää haitallisia ohjeita, jotka haetaan myöhemmin.
- [ ] Multimodaalinen testi tarvittaessa: OCR:llä tai kuvassa näkyvät ohjeet käsitellään epäluotettavina.

## 8. Valvonta ja häiriötilanteisiin vastaaminen

- [ ] Kehotteen poimintayritykset ovat havaittavissa.
- [ ] Toistuvat validaattorivirheet hälyttävät.
- [ ] Epätavallinen haun laajuus, työkalukutsujen määrä, ulkoiset vastaanottajat, kustannus- tai nopeuspiikit hälyttävät.
- [ ] Kehoteinjektiopyritykset voidaan linkittää käyttäjään, tenantiin, työnkulkuun, lähde-ID:ihin ja työkalukutsuihin.
- [ ] Tiimi tietää, miten työnkulku tai yksittäiset työkalut poistetaan käytöstä.
- [ ] Tiimi tietää, miten tarjoajan avaimet perutaan ja vaikutetut tunnukset kierretään.
- [ ] Asiakas-, oikeudellisille, tietoturva- ja viranomaisilmoituspäätöksille on omistaja.

## Julkaisuportti

Älä merkitse työnkulkua tuotantovalmiiksi ennen kuin:

- [ ] Kaikilla merkittävillä toimilla on portti.
- [ ] Vähintään yksi vastustava asiakirjatesti on läpäisty.
- [ ] Vähintään yksi luvaton pääsyritys on epäonnistunut turvallisesti.
- [ ] Vähintään yksi turvaton työkalukutsuyritys on epäonnistunut turvallisesti.
- [ ] Vähintään yksi väärin muotoillun tulosteen testi on epäonnistunut suljetusti.
- [ ] Vähintään yksi työnkulun poiskytkentäpolku on testattu.
