Polku 01Oppitunti 1 / 6

Mitä vibe coding opettaa, ja mitä se jättää selvittämättä

Auta ihmisiä tutkimaan ideoita AI:n avulla. Pankkisovelluksen prototyyppi näyttää, miksi oikea data ja API-oikeudet vaativat näyttöä tietoturvasta.

Perusteet11 minTarkistettu

Julkaisija Näin kirjoitamme

Mitä opit

  • Erotat idean tutkimisen julkaisupäätöksestä.
  • Tunnistat vastuut, joita toimiva demo ei vielä kata.
  • Rajaat ensimmäisen harjoituksen niin, että virheen seuraukset pysyvät hallinnassa.

Anna ihmisille tilaa rakentaa

CTO voi auttaa yhä useampaa muuttamaan oman työnsä tuntemuksen ohjelmistoideaksi. Kutsu mukaan talouden, operatiivisen toiminnan, myynnin ja kehityksen ihmiset. Tarjoa aikaa, synteettistä dataa, sandbox-API-yhteyksiä ja tukea.

Anna ihmisten tutkia ideoita eri työkaluilla. Määritä selkeät rajat asennuksille, käyttäjätileille ja sallituille syötteille. Selainpohjainen sovellusrakentaja, coding assistant tai paikallinen agentti voi auttaa idean testaamisessa. Työkalun valinta ei anna lupaa syöttää siihen yrityksen tietoja tai liittää tuotantojärjestelmää.

Tee hyödylliselle prototyypille selkeä reitti engineering- tai platform-tiimin arvioitavaksi. Tekijä tuo mukanaan ongelman, esimerkkityönkulun ja havaitun hyödyn. Hänestä ei tarvitse tulla palvelun tietoturva- ja ylläpitotiimiä.

Päätä ensin, mitä haluat oppia

Vibe coding tarkoittaa yleensä työskentelyä, jossa kuvaat tavoitteesi, hyväksyt generoidun koodin ja ohjaat työtä näkemäsi toiminnan perusteella. Termin rajat vaihtelevat. Tässä oppaassa olennaista on, ettei työn ohjaaja välttämättä tunne kaikkia toteutuksen ratkaisuja.

Tapa voi olla hyödyllinen. Karkea käyttöliittymä paljastaa, että työnkulussa on liikaa vaiheita. Kertakäyttöinen skripti auttaa arvioimaan tiedostomuotoa. Prototyypin äärellä tuotteesta on helpompi keskustella. Oppi säilyy, vaikka koodi päätyisi roskiin.

Rajaa kysymys ensin. ”Ymmärtääkö tiiminvetäjä tämän hyväksymisprosessin?” on parempi lähtökohta kuin ”Voiko AI rakentaa kululaskujärjestelmämme?”. Ensimmäiseen voit saada havaittavan vastauksen. Jälkimmäinen niputtaa suunnittelun, tiedot, käyttöoikeudet, ylläpidon ja vastuut yhden vakuuttavan näkymän taakse.

Tiistaina rakennettu pankkisovellus

Kuvitellaan taloustiimin kollega, joka rakentaa tiistaina Lovablella dashboardin keksityistä tilitapahtumista. Sovellus ryhmittelee menot ja näyttää maksamattomat laskut. Tiimillä on nyt konkreettinen työnkulku arvioitavana.

Joku ehdottaa yrityksen pankkitilin liittämistä sovellukseen. Seuraukset muuttuvat, vaikka sovelluksen nimen perässä lukisi yhä ”prototyyppi”.

Lukuoikeus voi APIsta riippuen paljastaa saldot, tilitapahtumat, asiakkaiden nimet tai maksuviitteet. Jos yhteys sallii myös maksut, virhe voi siirtää oikeaa rahaa. Selvitä todelliset oikeudet: pankkiyhteys ei aina sisällä maksuoikeutta.

Demo ei osoita, että käyttäjä näkee vain hänelle sallitut tilit. Piilotettu painike ei valvo käyttöoikeutta. OWASP kuvaa, miten puuttuva tili- tai tietuetason tarkistus voi paljastaa toisen käyttäjän tietoja.

Mikä voi mennä pieleen?Miksi sillä on merkitystä?Näyttö ennen tuotantoyhteyttä
Salainen API-tunnus päätyy selainkoodiin tai lokiinUlkopuolinen voi käyttää tunnuksen oikeuksiaTarkasta salaisuuksien käsittely ja testaa pääsyn peruminen
Backend hyväksyy tilin tunnisteen tarkistamatta kutsujan oikeuksiaKäyttäjä voi lukea toisen tilin tietojaTestaa estettävät pyynnöt toisten käyttäjien tileille
Maksupyyntö aikakatkaistaan ja sovellus lähettää sen uudelleenUudelleenyritys voi tehdä toisen maksunTestaa retry-toiminta ja täsmäytä tulos palveluntarjoajan tietoihin
Sovellus lähettää tilitapahtumia AI-palveluun, jota ei ole hyväksytty tähän käyttöönLuottamukselliset tiedot poistuvat sallitulta alueeltaSelvitä pyynnöt, lokit, vastaanottajat ja säilytysajat
Riippuvuudesta löytyy haavoittuvuus julkaisun jälkeenMuuttumatonkin sovellus voi tarvita tietoturvakorjauksenNimeä vastuut jatkuvalle skannaukselle, korjauksille ja tuotantoversion varmennukselle

Maksu-APIn idempotency tarkoittaa, ettei saman pyynnön toistaminen toista tarkoitettua vaikutusta. Stripe kuvaa yhden toteutustavan. Tarkista käytössä olevan palveluntarjoajan toiminta, rajat ja retry-säännöt. Sovelluksen rollback ei peru pankin jo käsittelemää maksua.

Esimerkki ei osoita virhettä Lovablessa. Lovablen oma tietoturvaohje edellyttää salaisuuksien suojaamista, palvelinpuolen tarkistuksia, testattuja data policyja ja jatkuvaa arviointia. Vaadi sama näyttö muiltakin sovellusrakentajilta, agenteilta ja käsin kirjoitetulta koodilta.

Varmenna pääsy ennen oikeiden järjestelmien liittämistä

Jatka työnkulun testaamista synteettisellä datalla ja sandbox-tileillä. Ennen tuotantoyhteyttä palvelun, tietoturvan ja platformin vastuuhenkilöt varmentavat sovelluksen ja sen käyttöympäristön.

Käytä pankin tai palveluntarjoajan hyväksymää yhteystapaa. Myönnä vain tarvittavat tilit ja oikeudet. Säilytä salaiset tunnukset hyväksytyssä secret storagessa, poissa prompteista ja selainkoodista. Määritä maksujen hyväksynnät ja rajat, jos sovellus tarvitsee maksutoimintoja. Varmenna pääsyn peruminen, virheiden selvitys ja reagointi epäilyttävään toimintaan.

Tee nämä päätökset ennen luottamuksellisten tietojen tai tuotantotunnusten antamista järjestelmälle. Virallisen tuotantojulkaisun odottaminen voi olla liian myöhäistä. Jatka aiheisiin datan käsittelyn rajat ja yrityksen IT-infrastruktuuri.

Kasvavat seuraukset muuttavat vastuita

Keksityllä datalla tehty harjoitus voi olla lyhytikäinen ja pienen joukon käytössä. Kun oikeat ihmiset alkavat luottaa sovellukseen, vastuut pitää sopia. Nimeä omistaja, sallitut käyttäjät, käsiteltävät tiedot ja toimintatapa virhetilanteessa. Säilytä lähdekoodi ja konfiguraatio niin, että toinenkin ihminen voi tarkastaa ja toistaa toteutuksen.

Jokainen skripti ei tarvitse enterprise-alustaa. Henkilökohtainen muotoilutyökalu ilman arkaluonteisia tietoja tarvitsee vähemmän kontrolleja kuin maksuja hyväksyvä sovellus. Arvioi virheen seuraukset sekä mahdollisuutesi havaita ja perua se.

Ennen kuin viet prototyypin pidemmälle, erottele ongelmasta saamasi oppi toteutuksesta saamastasi näytöstä. Käyttöliittymän voi säilyttää ja sisäisen toteutuksen vaihtaa. Käyttötarkoitusta voi rajata. Joskus järkevin päätös on pitää prototyyppi kertakäyttöisenä.

Varaudu haavoittuvuuksiin myös demon jälkeen

Toimiva demo voi peittää vakavan ylläpitopuutteen. Riippuvuudesta voidaan julkaista uusi haavoittuvuustieto, vaikka oma koodisi ei muutu. Julkaisuhetken skannaus kuvaa vain yhtä ajankohtaa.

Jos sovellus jää käyttöön, jonkun pitää havaita, arvioida ja korjata haavoittuvuuksia jatkuvasti. Korjauksen pitää päätyä tuotantoon ja läpäistä varmennus. Skanneri ilman toimivaa korjausketjua jättää altistuksen ratkaisematta.

Tarkista käytössä olevan työkalun ja konfiguraation todelliset ominaisuudet. Myöhempi haavoittuvuuksien hallinnan oppitunti käsittelee koko ketjun, myös skannausten virheet ja tuotantoversiot.

Rajaa seuraava muutos tarkastettavaksi

Anna agentille seuraavaksi yksi pieni muutos, selkeät hyväksymiskriteerit ja sallitut toimet. Tarkasta diff. Aja tarkistukset, jotka voisivat myös hylätä väärän toteutuksen. Pidä julkaisu erillisenä päätöksenä, kunnes julkaisun vastuut on sovittu.

NISTin Secure Software Development Framework antaa taustaa turvallisen ohjelmistokehityksen käytännöille. Kehikkoa ei tarvitse opetella ulkoa. Avoimet kysymykset pitää silti tunnistaa ennen kuin ohjelmiston virheillä on seurauksia muille ihmisille.

Sovella käytäntöön

Valitse pieni ominaisuus, jonka olet hiljattain nähnyt demossa. Kirjaa yksi asia, jonka demo osoitti, kolme asiaa, joita se ei osoittanut, ja vastuuhenkilö kullekin avoimelle kysymykselle. ”Tehdään tietoturvalliseksi” ei riitä: nimeä virhetilanne ja tarkistus, joka paljastaisi sen.

Lataa työpohja (Markdown)

Testaa, mitä opit

Pankkisovelluksen dashboard toimii keksityillä tilitapahtumilla. Kollegasi ehdottaa oikean tilin liittämistä read-only-oikeuksilla. Miten toimit?

Lähteet ja lisälukeminen

Aiheesta Taigan sivuilla