Blog

Näin käytät AWS CodeWhispereria turvallisesti ja vältät LLM-mallien tyypilliset sudenkuopat

APR 29, 2024

Tekoälypohjaisista koodausavustajista on nopeasti tulossa kehittäjien välttämättömyys, ja AWS CodeWhisperer on yksi suosituimmista.

Adriaan Knapen

Adriaan is a DevOps Consultant at Eficode, where he helps clients improve their development processes and build value-adding software. He specializes in cloud technologies, modern web development technologies, and optimizing developer tooling experiences. If he’s not using his free time to read HackerNews or fiddle with bleeding-edge technology, he likes to spend time in the kitchen and at the gym.

Se toimii integroitujen kehitysympäristöjen (IDE) kanssa ja tukee useita ohjelmointikieliä. Lisäksi siinä on edistyneitä tietoturva- ja mukautusominaisuuksia sekä lisähyötyjä, jos käytät AWS-ekosysteemiä.

Kun otat käyttöön tällaisia tekoälytyökaluja, sinun on kuitenkin tunnistettava ja hallittava niihin liittyvät todelliset riskit. Immateriaalioikeuksiin ja tietosuojaan liittyvistä ongelmista aina ehdotuksiin, jotka sisältävät turvattomia tai vanhentuneita toteutuksia, asiat voivat mennä nopeasti todella pahasti pieleen. Yleisen turhautumisen ja ylimääräisen työn lisäksi voit kohdata oikeudellisia ongelmia, ja toimeentulo voi olla vaarassa, jos liiketoimintasi on uhattuna. 

Toisaalta CodeWhisperer voi pelastaa tilanteen. Tässä blogikirjoituksessa käyn perustasolla läpi riskit ja sen, miten niitä voi hallita tehokkaasti.  

Näin CodeWhisperer toimii

Kirjoittaessasi CodeWhisperer antaa reaaliaikaisia koodausehdotuksia yksittäisten rivien täydennyksistä kokonaisiin koodilohkoihin. Mutta miten se toimii?

Jotta tämä onnistuu tarkasti: 

  1. CodeWhisperer kerää olennaisen kontekstin integroidusta kehitysympäristöstäsi. Tämä sisältää lähdekoodikatkelmia ja tiedostonimiä. 

  2. Se lähettää tiedot AWS-pilveen, jossa AWS käsittelee pyynnön suurilla kielimalleilla (LLM) ja luo sinulle ehdotuksia.

Voit saada LLM:ltä osuvampia koodiehdotuksia käyttämällä CodeWhispererin mukautusominaisuutta. Tällöin LLM saa tietoa lisäkoodista, joka ei sisälly sen alkuperäiseen koulutusdataan. Tällaisia ovat esimerkiksi sisäiset kirjastot ja API:t, parhaat käytännöt sekä arkkitehtuurimallit. 

Koska CodeWhisperer käsittelee arkaluonteisia tietoja, on tärkeää suojata ne sekä siirron että säilytyksen aikana.

CodeWhispererin tietoturva ja sen varmistaminen

CodeWhispereriin sovelletaan AWS:n jaetun vastuun mallia. Jaetun vastuun mallissa AWS vastaa alustansa infrastruktuurin tietoturvasta. Sinä vastaat tarjotun alustan turvallisesta käytöstä ja konfiguroinnista tarpeidesi mukaisesti.

Miten voit CodeWhispererin käyttäjänä vahvistaa oletuskonfiguraatiota? Tässä ovat tärkeimmät keinot turvallisen konfiguraation toteuttamiseen organisaatiossasi: 

  • Ota monivaiheinen tunnistautuminen (MFA) käyttöön kaikille CodeWhispererin käyttäjille. Näin esimerkiksi kaapatut tilit eivät voi vuotaa mukautusten sisältöä. 

  • Käytä modernia TLS-versiota, kun olet suoraan vuorovaikutuksessa AWS-palvelujen kanssa, esimerkiksi ladatessasi S3:een tiedostoja lisämukautuksia varten. 

  • Ota API- ja käyttäjätoimintojen lokitus käyttöön AWS CloudTraililla, jotta saat paremman näkyvyyden työkalujen käyttöön. 

  • Paranna säilytettävien mukautustiedostojen tietoturvaa ottamalla käyttöön itse hallinnoidut salausavaimet mukautustiedostoja sisältävissä S3-bucketeissa. Jos et ole määrittänyt itse hallinnoituja avaimia, AWS varmistaa salauksen säilytyksen aikana omalla hallinnoimallaan avaimella. 

  • Suojaa mukautustiedostoja sisältävät S3-bucketit Amazon Maciella. Tähän sisältyvät näiden S3-bucketien asianmukaisen käyttöoikeuksien hallinnan määrittäminen sekä arkaluonteisen sisällön, kuten henkilötietojen (PII), tarkistaminen.

CodeWhispererissa on sisäänrakennettu tietoturvaskannaustyökalu. Se voi skannata useita ohjelmointikieliä, kuten Javaa, Pythonia, JavaScriptiä ja muita. Taustalla CodeWhispererin koodiskannaus hyödyntää AWS CodeGuru Detector Librarya.

Yleiset tietoturvan parhaat käytännöt CodeWhispererin käyttöönottoon

Varmista, että kehittäjäsi tuntevat tekoälyn rajoitukset

Kun työskentelet tekoälytyökalujen kanssa, muista aina, että vastaat lopputuloksista. LLM on vain työkalu, joka auttaa kehittäjiä heidän työssään – se ei ole itsenäinen robotti, joka korvaa heidät kokonaan. 

Minkä tahansa tekoälytyökalun, myös CodeWhispererin, ehdotukset voivat ensi silmäyksellä vaikuttaa hyviltä lisäyksiltä. Ne voivat kuitenkin jäädä kauas hyvän koodilaadun vaatimuksista. 

  • Niissä voi olla huomaamattomia bugeja tai tietoturva-aukkoja.

  • Työkalu voi toteuttaa jotain muuta kuin mitä sinä kehittäjänä tarkoitit.

  • Työkalu ei välttämättä huomioi suunnitteluvaatimuksia (koska ne eivät ehkä ole olleet tekoälyn saatavilla).

Siksi on ehdottoman tärkeää kouluttaa jokainen kehittäjä ymmärtämään tekoälyn heikkoudet. Näitä ovat esimerkiksi vinoumat koulutusdatassa, jotka johtavat vääristyneisiin vastauksiin, ”hallusinaatiot”, joissa tekoäly tuottaa itsevarmasti toimimattomia ehdotuksia, sekä mahdolliset immateriaalioikeuksiin (IP) liittyvät ristiriidat, kun tekoälyn tuottamaa sisältöä käytetään suoraan.

Tiedä, mistä koodiehdotukset tulevat

Jos sinulla on CodeWhispererin Professional Tier -lisenssi, CodeWhisperer ei taatusti käytä dataa LLM-mallin kouluttamiseen. CodeWhispererin palauttama koodi voi silti muistuttaa sen koulutusdatassa olevaa julkista koodia. 

Tällaisten ehdotusten turvalliseen käsittelyyn on ominaisuus nimeltä ”public code filter and reference tracking”. Jos koodiehdotuksesi vastaavat julkista koodia, saat tiedon siitä, mistä vastaava koodi on peräisin. Kun tiedät lähteen, voit nopeasti päättää, onko vastaavan koodin lisenssi yhteensopiva käsittelemäsi koodikannan kanssa. 

Jos haluat estää CodeWhispereria ehdottamasta julkista koodia vastaavia katkelmia kokonaan, poista Reference Tracking -ominaisuus käytöstä organisaatiotasolla.

Tietoturvaskannaus eri ohjelmointikielille

Yksi CodeWhispererin erinomaisista sisäänrakennetuista tietoturvamekanismeista, johon viittasin aiemmin, on sen tietoturvaskannaustyökalu. Saat siitä parhaan hyödyn, kun määrität koodiskannauksen suoritettavaksi säännöllisin väliajoin. 

Tätä kirjoitettaessa CodeWhisperer voi ehdottaa korjauksia löytämiinsä haavoittuvuuksiin tietyillä ohjelmointikielillä: Javalla, JavaScriptillä ja Pythonilla. Huomaa kuitenkin, että kaikki ohjelmointikielillä kirjoitettu koodi, jota CodeGuru ei tue, jätetään hiljaisesti huomiotta. Et siis saa ilmoituksia koodikannan näiden osien haavoittuvuuksista etkä varoitusta siitä, ettei niitä voida käsitellä.

Älä tee koodaamisesta vaikeampaa kuin sen tarvitsee olla

Koodausavustajista on tulossa kehittäjille välttämättömiä, ja AWS CodeWhisperer on monien suosikki. LLM-malleihin liittyy kuitenkin rajoituksia ja riskejä: arkaluonteisia tietoja, kuten lähdekoodia ja mahdollisia salaisuuksia, lähetetään suoraan pilveen. Sinun on tiedettävä, miten LLM:n ehdotukset voidaan integroida tuotannon lähdekoodiin turvallisesti ja vaatimustenmukaisesti.

CodeWhispererin käyttöönotto onnistuu sujuvasti yhdistämällä AWS-organisaation hallintaportaalin määritysasetusten tiukentaminen ja huolellinen käyttäjien perehdytys. Näin kehittäjät oppivat käyttämään LLM-pohjaisia ratkaisuja turvallisesti ja tehokkaasti.

Elämä ja koodaaminen voivat olla helpompia. Älä tee niistä vaikeampia kuin niiden tarvitsee olla.

  • Software development
  • DevOps
  • Security

Subscribe to our newsletter