Sikkerhetsrisiko i systemer som benytter kunstig intelligens – hva vet vi, og hva kan vi gjøre?
Ny teknologi knyttet til kunstig intelligens kan bidra til bedre pasientbehandling, bedre ressursbruk, reduserte kostnader og bedre folkehelse. Samtidig bringer kunstig intelligens inn ny sikkerhetsrisiko. Denne må forstås for å kunne ta gode valg og slik evne å maksimere positive virkninger og minske mulige negative virkninger av denne teknologien.
Helse- og omsorgssektoren trenger digitale løsninger som har god kvalitet, og sikre og robuste systemer er en del av dette. Informasjonssikkerhet, slik det er beskrevet i Normen, «handler om å håndtere risiko relatert til informasjon og behandling av personopplysninger» slik at informasjonens integritet, tilgjengelighet og konfidensialitet sikres. I Normen og i Normens risikoveileder pekes det på viktigheten av å gjøre en balansert vurdering, hvor informasjonssikkerhet veies mot andre hensyn slik som nytte i pasientbehandlingen. Det finnes sikkerhetsrisiko i alle systemer, og virksomheten må gjøre vurderinger av hvilken risiko som er akseptabel. Her er det viktig med deltakelse fra sentrale nøkkelpersoner, både brukere av systemet og de som kjenner teknologien.
Målet med denne artikkelen er å gjøre virksomheter bedre i stand til å vurdere sikkerhetsrisiko i systemer som benytter kunstig intelligens, og stille sikkerhetskrav til leverandører av slike systemer. Sikkerhet vil alltid være en kvalitet ved selve systemet, og ikke noe som kun handler om sikkerhetsmekanismer rundt systemet eller å motstå spesifikke angrep. Dermed handler god sikkerhet mye om å lage systemer av god kvalitet – systemer som er til å stole på og tåler en støyt. Denne artikkelen inkluderer derfor aspekter knyttet til kvalitet i omtalen av sikkerhetsrisiko.
Artikkelen starter med å forklare hva kunstig intelligens og maskinlæring er (kapittel 1). Så gir den en kort innføring i hva som er spesielt viktig når det gjelder sikkerhet i maskinlæring (kapittel 2), og peker på hvorfor og hvordan det er viktig at vi bruker den kunnskapen vi har nå om sikkerhet i slike systemer (kapittel 3). Deretter gir den en oversikt over sikkerhetsrisiko man typisk vil finne i en maskinlæringskomponent, og hva man bør se etter (kapittel 4). Det gis også råd knyttet til vurdering av risiko når maskinlæring er del av et større system (kapittel 5). Oversikten over risiko (kapittel 2, 4 og 5) er i hovedsak basert på en risikoanalyse av en generell maskinlæringsarkitektur, publisert av Berryville Institute of Machine Learning (se Gary McGraw et al., An Architectural Risk Analysis of Machine Learning Systems). Det gis også en oversikt over hvordan informasjonssikkerhetsrisiko relateres til det større risikobildet (kapittel 6), før det til slutt gjøres en oppsummering (kapittel 7).
1 Hva vi mener når vi snakker om kunstig intelligens og maskinlæring
Kunstig intelligens er en gren av datavitenskap som fokuserer på å utvikle intelligente maskiner som kan utføre oppgaver som normalt krever menneskelig intelligens. Dette inkluderer oppgaver som talegjenkjenning, bildesøk, anbefalingssystemer og autonom kjøring. I helse- og omsorgstjenesten kan kunstig intelligens for eksempel benyttes til diagnostisering, optimalisering av behandling, identifisering av risikofaktorer som gir mulighet for å forebygge sykdom, samt forbedring av administrative prosesser. Dette kan gi bedre pasientbehandling og mer effektiv bruk av helsepersonells tid.
Maskinlæring er en teknikk innenfor kunstig intelligens som gjør det mulig for datamaskiner å lære av data uten å være eksplisitt programmert. Dyplæring er en avansert form for maskinlæring som bruker dype nevrale nettverk for å analysere og lære av store mengder data. Et dypt nevralt nettverk har minst to lag i midten, mellom laget som henter inn data (inngangsverdien) og laget som gir oss prediksjonen (utgangsverdien). I dyplæringen trenes nevrale nettverk på store datasett, og justerer gradvis vektene i nettet for å gjenkjenne mønstre i dataene. Dyplæring har blitt stadig mer populært på grunn av sin evne til å lære komplekse mønstre i data, noe som gjør det til et kraftig verktøy for blant annet bilde- og talegjenkjenning.
Maskinlæring kan være veiledet («supervised»), noe som vil si at algoritmer trener på datasett som inneholder eksempler hvor inngangsverdier er merket med ønsket utgangsverdi (fasit). Men den kan også være uveiledet («unsupervised»), hvor det trenes på datasett som bare inneholder inngangsverdier (uten fasit), og algoritmen bruker teknikker for å finne mønstre og strukturer i dataene (som ikke er kjent på forhånd). Det kan også benyttes forsterket læring («reinforcement») hvor en algoritme lærer å ta beslutninger ved å utføre en handling og observere resultatet – den lærer ved å prøve og feile. Basert på resultatet, gir algoritmen en "belønning" eller "straff" til seg selv, alt etter hvor nærme den er å nå målet den har fått, og justerer deretter sin atferd for å maksimere den totale belønningen over tid.
2 Hva som er spesielt viktig når det gjelder sikkerhet i maskinlæring
I samfunnet vårt i dag er vi vant til å bruke systemer hvor utviklere manuelt har implementert funksjonaliteten i kildekode. Mennesker kan gjøre feil, og det oppdages stadig vekk sikkerhetssårbarheter i kode og arkitektur i slike systemer. Samtidig er det, i slike systemer, generelt mulig for en utvikler å gå tilbake til kildekoden og forstå hva som gikk galt og rette det opp.
Ved maskinlæring så lærer systemet funksjonaliteten fra data. Selv om mennesker er involvert i å bearbeide data for læring, velge en læringsalgoritme, evaluere om systemet er godt nok trent, mm., så er det ofte vanskelig for et menneske å forstå hvorfor et system gjør som det gjør. Funksjonaliteten er representert gjennom et mylder av parametre i en maskinlæringsmodell – en form som er vanskelig å forstå for mennesker. Dersom systemet gjør noe man ikke helt skjønner (modellen gir en uventet utgangsverdi), kan det være vanskelig å vite hva som er årsaken – er oppførselen riktig likevel (vi bare forstår ikke hvorfor), et resultat av dårlige treningsdata, kanskje modellen hallusinerer (finner på nye ting selv), eller kanskje er det et resultat av et målrettet angrep på systemet? Små forskjeller i inngangsverdier kan gi svært forskjellige svar ut, noe som kan være merkelig for brukere og være med på å redusere tilliten til systemet (også når systemet har riktig oppførsel). Det kan også være uklart for brukere når systemet beveger seg utenfor det systemet er trent på, og derfor ikke har forutsetninger for å gi gode svar (og for eksempel begynner å hallusinere).
Når man skal stille krav til maskinlæringskomponenter så er man selvfølgelig opptatt av hva systemet skal gjøre (funksjonaliteten). Men siden funksjonaliteten læres fra data, så må man også være opptatt av tilliten man kan ha til treningsdataene og hvordan systemet læres opp. Dette krever andre måter å tenke på i kravstilling og i vurdering av systemer.
Testing av systemer er også mer krevende enn for tradisjonell programvare, nettopp fordi man ikke nødvendigvis vet hva som er riktig resultat. Maskinlæringssystemer kan fortsette å lære også etter at det er tatt i bruk, og da må de også testes kontinuerlig.
Maskinlæring kommer med mange muligheter, men også med noen nye eller styrkede utfordringer sammenlignet med mer tradisjonelt utviklede systemer. Forklarbarhet, rettferdighet, fravær av diskriminering, transparens, robusthet og sikkerhet – dette er noen av kvalitetene som har blitt pekt på som spesielt utfordrende å kravstille og evaluere for maskinlæringssystemer (se for eksempel forskning utført av Vogelsang og Borg (2019), Horkoff (2019) og Villamizar et al. (2021)). Mange av disse aspektene, slik som forklarbarhet og transparens, er viktige for sikkerheten, samtidig som sikkerhet kan være krevende i seg selv.
Det at maskinlæringskomponenter er vanskelige å forstå for mennesker er i seg selv en risiko. Et system mennesker har vanskelig for å forstå må sies å være komplekst, og komplekse systemer er kjent for å feile på nye og spektakulære måter. Og når et system feiler, er det ofte svakere sikkerhetsmessig, og dermed mer sårbart for cyberangrep. Komplekse systemer er også mer utsatt for å bli dårlig designet og implementert, nettopp fordi det krever mer av de som utvikler systemet. Maskinlæring bygger ofte på komplisert matematikk som ikke nødvendigvis er fult ut forstått av de som utvikler systemet, og bygger på store datamengder som det er umulig å fullt ut forstå og undersøke.
3 Hva vi kan gjøre med den kunnskapen vi har nå
Det pågår mye forskning på sikkerhet i maskinlæring. Det er bra, for vi trenger mer kunnskap for å forstå denne type sikkerhetsrisiko, inkludert hvilke angrep som er spesielt relevante for systemer som benytter kunstig intelligens, hvordan man kan beskytte systemer mot disse angrepene, hvordan man bygger og forvalter robuste maskinlæringssystemer, og hvordan man kravstiller og evaluerer slike systemer. Men selv om det er behov for mer kunnskap, så har vi allerede nå kunnskap som det er viktig at vi tar i bruk. Erfaringer fra programvareutvikling generelt viser at som kunde/bestiller så har man store muligheter til å påvirke utviklingsprosjekter og leverandører til å ta sikkerhet på alvor. Ved å stille krav, spørre om sikkerhet undervegs, og ved å kreve at det gjøres vurderinger av sikkerhet, så vil sikkerhet bli mer synlig i prosjektene og det legges til rette for at sikkerhet også gis høyere prioritet. Samtidig så er hver virksomhet ansvarlig for å gjøre egne vurderinger av risiko i systemer man velger å innføre. For å være i stand til dette, også for systemer som benytter maskinlæring, bør virksomhetene sette seg inn i hva som er viktig å tenke på når man skal vurdere sikkerhetsrisiko knyttet til maskinlæring.
4 Vurdering av sikkerhetsrisiko i en maskinlæringskomponent
Når man skal vurdere sikkerhetsrisiko i en arkitektur så ser man gjerne på angrepsflaten til systemet, dvs. på hvilke steder i systemet en angriper kan forsøke å få tilgang til systemet, manipulere input, hente ut data, osv. Når man har identifisert angrepsflaten kan man systematisk gå gjennom denne og se på hvilke risikoer som er relevante på hvert sted i arkitekturen.
Maskinlæringskomponenter finnes i mange varianter. Men generelt så kan man dele angrepsflaten inn i tre hoveddeler:
- Selve tjenesten: Her gir brukere inngangsverdier (for eksempel et bilde eller en setning (prompt)) til tjenesten) og, ved hjelp av den trenede modellen, får en utgangsverdi (for eksempel en klassifisering av innholdet i bildet som en godartet føflekk, eller en tekst som responderer på setningen).
- Utvikling av løsningen: Her trenes modellen med datasett (treningsdata) som har blitt valgt ut og bearbeidet for formålet. Modellen evalueres også for å se om den er bra nok, eller trenger mer trening (ved hjelp av valideringsdata og testdata).
- Data ute i verdenen: Vi er omgitt av data, og disse dataene kan finne sin veg inn til maskinlæringsløsninger på ulike måter. Dataene som bearbeides til treningsdata, valideringsdata og testdata finnes ofte før man starter å utvikle maskinlæringssystemet, og uavhengig av systemet. Det samme kan gjelde annen type input til utviklingen, slik som modellparametre. Data brukes også som inngangsverdier til den tilbudte tjenesten, for å få en utgangsverdi.
På hver av disse angrepsflatene finnes det flere typer risiko som kan utnyttes av en angriper, og i det følgende gir vi en oversikt over noen av de viktigste – og vi starter med data som jo er grunnlaget for selve maskinlæringen. For mer detaljer om risikoene, og for flere risikoer, se risikoanalysen av en generell maskinlæringsarkitektur som var nevnt innledningsvis.
4.1 Data ute i verdenen
Data er helt grunnleggende for maskinlæring – det er jo data systemet lærer av. Om man putter dårlige data inn så vil resultatet også bli dårlig. For sikkerhet betyr det at om man putter treningsdata inn som man ikke kan stole på så vil det være vanskelig å kunne stole på det trente systemet. Det er også data som er inngangsverdier til systemet ved bruk. Data er dermed en viktig angrepsvektor både under trening og bruk av det ferdige systemet.
I mange tilfeller vil data komme fra et sted de som utvikler systemet ikke har kontroll på, for eksempel fra data tilgjengelig på internett. Om treningsdata hentes fra et sted med lite beskyttelse så kan en angriper angripe systemet før man i hele tatt har hentet data for trening.
Data systemet lærer fra kan være sensitive. Da kan systemet «huske litt for mye» ved at disse sensitive dataene bygges inn i systemet gjennom treningen, og blir en integrert del av modellen. Slik «husking» kan til og med være nødvendig for at modellene skal fungere godt. En angriper som vet hvordan man skal spørre systemet, kan lykkes i å hente ut sensitive data. Dette kan være svært kritisk, for eksempel dersom en angriper lykkes i å hente ut treningsdata fra er et medisinsk utstyr som bruker maskinlæring og er trent på sensitive pasientopplysninger. I slike tilfeller vil det være kritisk, ikke bare om treningsdata kan hentes ut, men også om man kan anslå om et gitt individ er en del av treningsdataene (membership-angrep), og dermed kan antas å ha en gitt diagnose.
Det er ikke bare sensitive data som kan være en utfordring å lære fra. Treningsdata kan ha copyright, være ulovlige (eks. barnepornografi), være urettferdige eller partiske (eksempelvis gi fordeler til menn over kvinner), ikke være representative for problemet man ønsker å løse, eller inneholde feil (for eksempel inneholde feil i diagnosekoder) . Diskusjoner og erfaringer knyttet til ChatGPT synliggjør risiko knyttet til hvilke rettigheter virksomheter har til å samle inn store mengder data for å trene modeller. Det italienske datatilsynet endte opp med å forby ChatGPT, blant annet med bakgrunn i at de hevdet det manglet rettslig grunnlag for den masseinnsamlingen og lagringen av personlige data som var gjort for å trene modellen.
Ved å benytte maskinlæringssystemer som ChatGPT, som man ikke har kontroll på selv, så utsettes man også for risiko gjennom de dataene man deler med systemet. Ansatte hos Samsung sendte kildekode og interne møtenotater til ChatGPT, som del i å få hjelp til feilsøking og til å skrive oppsummeringer. Dette er ikke en utfordring som kun gjelder Samsung. En undersøkelser gjort av sikkerhetsselskapet Cyberhaven, viste at 11% av de dataene ansatte kopierte inn i ChatGPT var konfidensielle. Oftest var det snakk om data kategorisert som sensitiv/intern, men klientdata, personlige data og helsedata var også høyt oppe på lista. Cyberhaven gir følgende tenkte eksempel på slik bruk på helsesiden, og hvilke uønskede konsekvenser det kan ha: En lege kopierer inn navn på pasient og informasjon om pasientens helsetilstand for å få ChatGPT til å skrive et brev til forsikringsselskapet og begrunne behovet for en spesiell behandling. Hvis da dette brukes til videre læring av ChatGPT, og noen senere spør ChatGPT hvilke helseutfordringer denne navngitte pasienten har, så kan ChatGPT svare på det spørsmålet ved å bruke de dataene som legen sendte inn i systemet. Merk at også det å gi inn helseopplysninger uten kobling til navn, i en del tilfeller kan innebære en fare for reidentifisering. Ifølge undersøkelsene til Cyberhaven, så er det en relativt liten andel av de ansatte som står for størstedelen av delingen av sensitiv informasjon med ChatGPT. Det peker blant annet på behov for klare regler knyttet til slik deling av data, samt tiltak for å bevisstgjøre de ansatte dette gjelder.
Noen spørsmål man kan stille til hvordan systemet bruker data ute i verden er:
- I hvilken grad kjenner man datakildene og stoler på disse? I hvilken grad er datakildene beskyttet med sikkerhetsmekanismer? Benyttes det versjonskontroll for å håndtere datasett for trening, validering og testing?
- Er det gjort grundige vurderinger av om dataene man lærer fra er av god kvalitet, er riktige og er representative for problemområdet? Er det gjort sjekker av datasettet, for eksempel om det er manglende eller unormale verdier, eller ved hjelp av statistiske metoder?
- Vet vi hvordan systemer vi deler data med benytter disse dataene, eksempelvis om de lagres og benyttes til videre læring? Hvem får tilgang til disse dataene? Er det behov for ekstra tiltak (for eksempel bevisstgjøring) for å hindre at sensitive data blir delt med systemer og aktører man ikke har tilstrekkelig tillit til?
4.2 Utvikling av løsningen
Data ute i verden må vanligvis bearbeides før de brukes som treningsdata. Mye manuelt arbeid kan gå med til å vaske, organisere og tilpasse data på ulike måter, slik at dataene kan brukes av en maskinlæringsalgoritme. Denne prosessen kan manipuleres av en angriper – tenk deg for eksempel hvilke muligheter en insider kan ha til å velge ut data, kode de på en ønsket måte, eller forgifte dataene ved å legge inn data angriperen ønsker at systemet skal lære fra. Det kan legges inn bakdører, ved å bygge inn uønsket funksjonalitet som senere kan trigges av angriperen. Det er til og med studier som hevder at rekkefølgen man lærer treningsdataene på kan påvirke resultatet. Slike angrep kan være vanskelig å oppdage, men ha store konsekvenser.
Utfordringene er ekstra store ved maskinlæringssystemer som fortsetter å lære etter at de er lansert. Et kjent eksempel der dette gikk galt er Microsoft sin chatbot Tay som de lanserte i 2016. Tay var laget for å engasjere og lære fra ungdommer på Twitter, men ble tatt ned kort tid etter den ble lansert fordi den raskt ble lært opp av Twitter-brukere til å bli et rasistisk nettroll. Det er gode grunner til å benytte løpende læring, men fra et sikkerhetssynspunkt er slike systemer mer krevende å sikre: Hva om en angriper over tid leder systemet i en uønsket retning uten at dette oppdages?
Det å trene en maskinlæringsmodell kan være dyrt. Derfor skjer det ofte at man bygger på en allerede eksisterende og trent grunnmodell når man skal lage et nytt system, og så lærer den opp til å gjøre en mer spesifikk oppgave (overført læring, «transfer learning»). Dersom grunnmodellen er kompromittert eller ikke til å stole på i utgangspunktet – eller kanskje den bare ikke er egnet – så kan det utgjøre en sikkerhetsrisiko. Dette blir et slags leverandørkjede-angrep eller en trojaner.
En annen risiko handler om modenheten til selve maskinlæringsfeltet. Siden feltet endrer seg raskt og teknologien kan være vanskelig å forstå, så ser man noen ganger at resultater (for eksempel i forskningsartikler) kan være for dårlig beskrevet og vanskelige å reprodusere. Dermed kan det være usikkerhet rundt hvor god en maskinlæringsalgoritme er, noe som gjør at man ikke er klar over svakheter og stoler for mye på systemet.
Så, når læringen har skjedd, skal man evaluere om treningen er ferdig og systemet gjør det man hadde planlagt. Da kommer spørsmålet: Hva har egentlig systemet lært? En kjent utfordring er overtilpasning («overfitting»), det vil si at systemet i liten grad generaliserer fra treningsdata, men heller husker treningsdataene. Denne utfordringen er svært reell siden vi i dag har svært kraftige maskiner som er kapable til å memorere store mengder data. Systemer som er overtilpasset kan være lettere å angripe, for eksempel med skreddersydde synsbedrag («adversarial examples» - beskrevet lenger nede). Men det kan også skje at systemet har lært seg andre sammenhenger enn hva man hadde tenkt. Et system som har som oppgave å skille mellom ufarlige og potensielt farlige føflekker kan for eksempel ha lært at bilder med potensiell kreft ofte er merket ved bruk av en spesiell type tusj, og bruke dette i klassifiseringen. I tillegg, dersom datasettet man benytter til å validere modellen har svakheter, så kan resultatene av valideringen være villedende og man kan ende opp med å tro at systemet presterer bedre enn hva som er tilfelle.
Noen spørsmål man kan stille til hvordan systemet er utviklet er:
- I hvilken grad er det gjort gode vurderinger når det gjelder oppdelingen i treningsdata og data for validering?
- Hvis systemet fortsetter å lære etter at det er lansert, er det gjort tiltak for å hindre at systemet lærer feil ting og manipuleres i en retning man ikke ønsker?
- Hvis man har bygget på en eksisterende grunnmodell, og trent denne opp til en ny oppgave, hva har blitt gjort av vurderinger når det gjelder om man kan stole på denne grunnmodellen?
- I hvilken grad er maskinlæringsalgoritmen som er benyttet for å trene modellen forstått av de som utviklet systemet, og har man gode grunner til å velge akkurat den algoritmen? I hvilken grad bygger systemet på godt beskrevne teknikker og bruker velkjente valideringsmetoder og valideringsdatasett?
- Hvis systemet er trent på konfidensielle data, hva er gjort for å sikre at disse ikke kan lekkes fra modellen?
- I hvilken grad er utviklings- og testsystemene godt sikret og overvåket? I hvilken grad er trenings-, validerings- og testdata godt sikret og overvåket?
4.3 Selve tjenesten
Når et trent maskinlæringssystem tilbys brukere, så vil en viktig angrepsvektor være de inngangsverdiene som brukere gir til systemet. En av de mest kjente angrepstypene mot maskinlæringssystemer kalles for «adversarial examples», og er et slags skreddersydd synsbedrag for maskinlæringssystemer. Ved slike angrep vil en angriper med vilje gi systemet inngangsverdier som er spesiallaget for å lure maskinlæringsmodellen. For eksempel kan pikslene i et bilde være manipulert på en måte som er usynlig for mennesker, men som gjør at maskinlæringsmodellen kategoriserer bildet på feil måte (blir «lurt» til å gi feilaktig utgangsverdi). Slik kan man lure for eksempel ansiktsgjenkjenning eller spamfiltre. En angriper kan også lure systemet ved å endre inngangsverdier på andre måter (også fysisk), eller fjerne viktig informasjon. Et eksempel som har blitt gitt en del oppmerksomhet er det å lime klistremerker på stopp-skilt på spesielle måter slik at skiltet misforstås, og systemet tror det er et skilt om fartsgrense. Om man bruker maskinlæring til å tildele lån, autentisere personer, osv., blir det viktig å se på ulike måter systemet kan «lures» på ved å manipulere inngangsverdier.
Angripere kan også ha som mål å lære selve modellen (hvis denne ikke er åpen) ved å observere relasjon mellom inngangsverdier og utgangsverdier. For en angriper kan det å lære modellen være et steg mot å gjøre andre typer angrep, for eksempel hente ut treningsdata eller lage «adversarial examples». Detaljerte feilmeldinger og informasjon om usikkerhet i prediksjonene systemet gjør kan gjøre dette lettere for angripere.
Selve utgangsverdiene fra systemet kan også angripes utenfor selve maskinlæringen – mellom utgangsverdien fra modellen og det svaret som vises til brukeren. Dette kan være vanskeligere å oppdage ved maskinlæringssystemer enn ved andre mer tradisjonelle systemer, siden det kan være lite gjennomsiktig hvorfor systemet gjør som det gjør. Dermed kan det være mindre sjanse for at brukere fatter mistanke om at svaret de får fra systemet er feil, i tilfeller der en angriper har manipulert utgangsverdier fra systemet.
Noen spørsmål man kan stille til hvordan selve tjenesten tilbys er:
- Er det gjort tiltak under treningen for å gjøre systemet mer robust mot «adversarial examples»?
- Vurder om det bør gjøres loging av spørringer til systemet for å kunne sjekke at systemet ikke lekker konfidensielle data (og beskytt denne loggen).
- Er det gjort vurderinger knyttet til feilmeldinger, og hvordan ulik informasjon systemet gir ut kan brukes av angripere?
- I hvilken grad er produksjonssystemet godt sikret og overvåket?
5 Vurdering av sikkerhetsrisiko i hele systemet
Maskinlæring er ofte del av større systemer, og integreres i systemer som er utviklet på mer tradisjonell måte. Da er det viktig å vurdere sikkerheten til maskinlæringskomponenten, i tillegg til hvordan den integreres i og benyttes av det større systemet. De som utvikler en maskinlæringskomponent vil ofte være i en posisjon der de kan vurdere sikkerheten i selve komponenten, mens de kan mangle kunnskap om hvordan komponenten faktisk vil bli brukt. Derfor er det viktig at også de som bruker systemer som benytter maskinlæring gjør egne vurderinger av risiko. Det er også svært nyttig å involvere ulike roller og perspektiver i slike risikovurderinger.
Når maskinlæringskomponenter blir del av større systemer så vil feilaktige utgangsverdier kunne spre seg videre, for eksempel hvis de mates inn i en større beslutningsprosess. Konsekvensdimensjonen av risiko må derfor vurderes for systemet som helhet, og ikke bare for maskinlæringsbiten.
Maskinlæringskomponenter kommer til å gjøre feil, slik som IT-systemer generelt noen ganger gjør feil. Men det krever kunnskap å forstå at dette vil skje, og å ta hensyn til det. Feil man ikke forstår kan lett lede til tap av tillit, og i ytterste konsekvens at man velger å ikke bruke maskinlæring i det hele tatt. Dette kan skje, selv i tilfeller der maskinlæringskomponenten kanskje gjør færre feil enn hva et menneske normalt ville gjøre.
Samtidig viser undersøkelser at vi mennesker har lett for å stole på råd vi får fra maskiner, når vi tror de er laget for å hjelpe oss (se for eksempel forskning på tillit til roboter av Salem et al (2015) og Robinette et al. (2016)). Dette gjelder selv om maskinene fremstår uperfekte. Dermed kan vi også ende opp i situasjoner der vi stoler for mye også på systemer som benytter kunstig intelligens. Det kan være vanskelig for mennesker å forstå hvorfor en maskinlæringsmodell gjør de prediksjonene den gjør, og jo bedre systemet blir, jo mer vil brukerne stole på det. Dermed kan det hende de (få) feilene systemet gjør ikke oppdages. Dette gjelder enten feilene har årsak i ekstern manipulering eller ikke – ingen vil fatte mistanke.
Det finnes ulike måter å gjøre maskinlæring på som kan påvirke hvordan man må tenke sikkerhet i systemet som helhet. Et eksempel er føderert («federated») læring, hvor maskinlæringskomponenter er spredt på ulike steder. Kommunikasjonen i slike systemer må sikres, på samme måte som man trenger å sikre annen kommunikasjon på Internett. De tradisjonelle sikkerhetsangrepene gjelder også for systemer som bruker maskinlæring, for eksempel avlytting, tjenestenektangrep, osv., og de grunnleggende sikkerhetstiltakene som er viktige for å sikre infrastruktur generelt er like viktige også for systemer som inneholder maskinlæringskomponenter
Sikkerhetsprinsipper som gjelder for systemer generelt, er relevante også for å håndtere sikkerhetsrisiko i systemer som benytter kunstig intelligens. Rapporten som denne artikkelen bygger på, beskriver på følgende sikkerhetsprinsipper for systemer med maskinlæringskomponenter. Dette er noe man kan se etter i systemer:
- Beskytt det svakeste ledd: Tenk gjennom hvilken del av systemet som vil være enklest å angripe, og hvilke mål en angriper kan ha. Husk på at i maskinlæring så er data helt grunnleggende, og en viktig angrepsvektor
- Praktiser dybdeforsvar: Ha flere tiltak som beskytter systemet, slik at om ett tiltak feiler så kan et annet slå til.
- Feil trygt: Vurder hva som skjer om systemet feiler, og i hvilken grad feilmeldinger eller beskjeder om usikkerhet i utgangsverdier kan gi nyttig informasjon til angriper.
- Gi kun minimum tilgang: Tenk på hvilken tilgang som er nødvendig for ulike roller og komponenter å ha, i ulike faser (eks. i utvikling vs. drift), og tildel bare det som er nødvendig
- Del opp systemet («compartmentalize»): Det er mye vanskeligere å sikre en stor monolitt enn mindre tjenester. Ved å dele opp trenger hver del færre tilganger, og man begrenser skaden som måtte skje om en del blir kompromittert.
- Gjør det enkelt: Jo mer komplekst, jo vanskeligere å sikre. Er maskinlæringsalgoritmene unødvendig komplekse, og har de som lager systemet nok forståelse av teknologien?
- Bygg inn personvern: Hvis systemet benytter personopplysninger, for eksempel som del av treningsdata, så må det gjøres på en måte som bevarer personvernet best mulig. Her finnes det flere ulike teknikker som kan benyttes.
- Husk at det er vanskelig å skjule hemmeligheter: Det kan være gode grunner til å ikke dele algoritmen, modellen og konfigureringene, men det kan ikke være det man bygger sikkerheten på. Dersom systemet er trent på konfidensielle data, så må det vurderes i hvilken grad disse dataene kan lekkes av systemet.
- Vær kritisk, ikke ha «blind tillit»: I hvilken grad har man hatt kontroll på datakildene, og hvilken sikkerhetskunnskap har virksomheten som har laget systemet? Når man integrerer ulike komponenter til ett system, så er det et generelt råd at man har sikkerhetsmekanismer på plass også mellom komponentene, og ikke bygger på tillit alene.
6 Informasjonssikkerhetsrisiko og annen risiko
Risiko knyttet til informasjonssikkerhet er kun en av flere ulike typer risiko som er relevante for et system som benytter maskinlæring. NIST har utgitt et risikorammeverk for kunstig intelligens (NIST AI RMF 1.0). Dette rammeverket kan benyttes til å bygge en struktur rundt håndtering av risiko knyttet til kunstig intelligens, og gir en oversikt over de ulike typene av risiko som bør vurderes. I denne artikkelen ser vi kun på denne siste biten: Hvilke ulike typer risiko som bør vurderes, og hvordan dette relateres til det denne artikkelen har presentert om informasjonssikkerhetsrisiko.
NIST AI RMF 1.0 peker på følgende karakteristikker av tillitsverdig («trustworthy») kunstig intelligens:
- Gyldig og pålitelig («valid and reliable»): I hvilken grad man har grunnlag (for eksempel gjennom testing og monitorering) for å vite at kravene til systemet er møtt og at systemet er uten feil.
- Trygg («safe»): Et trygt system leder ikke til at menneskers liv, helse, eiendom eller miljø blir skadet. Trygghet handler både om egenskaper ved systemet, og om at systemet brukes som tiltenkt og på en ansvarlig måte.
- Sikker og robust («secure and resilient»): Sikre og robuste systemer kan motstå uventede angrep eller andre endringer i miljøet. Dette inkluderer evne til gjenoppretting etter angrep.
- Ansvarlig og gjennomsiktig («accountable and transparent»): I hvilken grad har brukere av systemet tilgang til informasjon om maskinlæringen som benyttes, slik at de vet hva som skjer i systemet? Hvordan vil brukere informeres om det oppdages mulige feil gjort av systemet?
- Forklarbar og tolkbar («explainable and interpretable»): Hva deles om hvordan beslutninger gjøres av systemet og om hvorfor systemet kom til en gitt beslutning?
- Personvernvennlig («privacy-enhanced»): I hvilken grad personvern er hensyntatt og bygget inn i systemet.
- Rettferdig («fair») – med håndtering av skadelig skjevhet («bias»): Rettferdighet handler om å håndtere skjevhet, for eksempel knyttet til demografisk balanse og representativitet i treningsdata, men ikke bare dette. Eksempelvis kan det også handle om i hvilken grad systemet er universelt utformet og dermed tilgjengelig for alle grupper, og det kan handle om hvordan resultater fra systemet tolkes av mennesker. Systemer som benytter kunstig intelligens, kan ha potensiale til å forsterke urettferdigheter som allerede finnes.
Alle disse karakteristikkene har risiko knyttet til seg. Denne risikoen påvirkes av mange aspekter, inkludert datasett, valg av maskinlæringsalgoritmer, og hvordan systemet blir brukt. De ulike risikoområdene er ikke uavhengige, men vil kunne påvirke hverandre. Derfor vil det ikke være hensiktsmessig å kun se hvert område for seg. Det må forventes at det må gjøres avveininger mellom ulike typer risiko. Dette kan være krevende. Eksempelvis kan det være nødvendig å gjøre avveininger mellom personvern og nøyaktighet, hvor nøyaktighet kan være viktig i å oppnå systemer som er gyldige og pålitelige, og som er rettferdige.
I gjennomgangen av risiko i denne artikkelen, så har vi i noen tilfeller kommet inn på risiko som, i tillegg til karakteristikken «sikker og robust», også kan passe inn under karakteristikkene «gyldig og pålitelig», «ansvarlig og gjennomsiktig», «forklarbar og tolkbar», «personvernvennlig» og «rettferdig». Dette viser at risiko knyttet til informasjonssikkerhet ikke kan forstås uavhengig av annen risiko i systemet, og det underbygger viktigheten av å se helheten og sammenhengen mellom ulike typer risiko. For å oppnå det i praksis er det viktig å involvere ulik type kompetanse, erfaringer og roller i vurderingene og avveiningene som gjøres.
7 Oppsummering
Det er fortsatt mye vi ikke vet om kunstig intelligens og risiko, men vi vet noe, og denne kunnskapen kan vi allerede bruke i beslutningene som gjøres. Det er viktig at vi er proaktive, og ikke venter til det skjer en sikkerhetshendelse før vi går inn i problemstillinger knyttet til sikkerhet og maskinlæring.
En del av risikodebatten i dag knyttet til kunstig intelligens handler om en uro for at man skal lykkes i å skape generell kunstig intelligens, og at dette vil ha negative konsekvenser for oss mennesker. Men en mer nærliggende bekymring er at den kunstige intelligensen vi allerede benytter ikke er intelligent nok. Det er en risiko at vi stoler for mye på systemer som benytter kunstig intelligens, uten at de er denne tilliten verdig – for eksempel på grunn av dårlig sikkerhet, dårlige treningsdata, eller svakheter i hva de faktisk har lært.
Innen helse- og omsorgssektoren ligger det store muligheter knyttet til bruk av kunstig intelligens. Disse er det viktig å utnytte, men det er viktig å gjøre det på en trygg måte. Da må vi være bevisste på sikkerhetsrisikoen, og være i stand til å gjøre velfunderte avveininger mellom nytte og risiko. Framover må vi fortsette å følge med på kunnskapsutviklingen om sikkerhetsrisiko knyttet til kunstig intelligens, et felt hvor det heldigvis skjer mye forskning og ny og bedre kunnskap er på vei.
8 Anbefalinger til videre lesning
Denne artikkelen bygger i stor grad på en risikoanalyse av en generell maskinlæringsarkitektur, publisert av Berryville Institute of Machine Learning. Denne kan leses for en grundigere innføring i de ulike risikoene, og for å bedre forstå hvordan et typisk maskinlæringssystem er bygd opp. Det finnes også et YouTube foredrag av Dr. Gary McGraw hvor han går gjennom hovedtrekkene i denne risikoanalysen:
- Rapport: Gary McGraw, Harold Figueroa, Vicor Shepardson, Richie Bonett, An Architectural Risk Analysis of Machine Learning Systems: Toward More Secure Machine Learning, Berryville Institute of Machine Learning (BIML), Version 1.0 (1.13.20), 2020. https://berryvilleiml.com/results/
- YouTube: Gary McGraw, Security Engineering for Machine Learning, Berryville Institute of Machine Learning, https://www.youtube.com/watch?v=8BFzXEk_c_Y
For en innføring i kunstig intelligens generelt anbefaler vi Inga Strümke sin bok «Maskiner som tenker» fra 2023. Denne boken inkluderer også et kapittel om hvordan angripe en maskinlæringsmodell. I denne artikkelen har vi benyttet norske begreper i tråd med de som benyttes i boka til Inga Strümke. En annen god norsk innføring er Teknologirådets rapport «Kunstig intelligens – muligheter, utfordringer og en plan for Norge» fra 2018 (https://media.wpd.digital/teknologiradet/uploads/2018/09/Rapport-Kunstig-intelligens-og-maskinlaering-til-nett.pdf)
For en innføring i ulik type risiko knyttet til kunstig intelligens, anbefaler vi NIST AI 100-1, Artificial Intelligence Risk Management framework (AI RMF 1.0), med tilhørende materiale (https://www.nist.gov/itl/ai-risk-management-framework). Se også Digitaliseringsdirektoratets veiledning for vurdering av risiko ved bruk av kunstig intelligens, https://www.digdir.no/kunstig-intelligens/hvordan-vurderer-jeg-risiko-ved-bruk-av-kunstig-intelligens/4537, som blant annet bygger på NIST AI RMF.
For en innføring i hvordan man kan plassere sikkerhetsarbeid knyttet til kunstig intelligens i sammenheng med det generelle informasjonssikkerhetsarbeidet, se ENISA sin rapport «Multilayer framework for good cybersecurity practices for AI», 2003 (https://www.enisa.europa.eu/publications/multilayer-framework-for-good-cybersecurity-practices-for-ai)
For en grundig gjennomgang av cybersikkerhets- og personvernrisiko samt mulige tiltak i et eksempelsystem for medisinsk bildediagnostikk, se ENISA sin rapport «Cybersecurity and privacy in AI – Medical imaging diagnosis», 2023 (https://www.enisa.europa.eu/publications/cybersecurity-and-privacy-in-ai-medical-imaging-diagnosis)
(ChatGPT har blitt benyttet i skriveprosessen i mindre deler av denne artikkelen.)