Leiðbeiningar

Öryggisgátlisti fyrir öpp smíðuð með gervigreind: hvað á að athuga fyrir birtingu

Áður en raunverulegt fólk notar app sem þú hefur smíðað með gervigreind skaltu athuga sjö atriði: hver síða og hvert API athugar hver notandinn er og hvað hann má gera; leyndarlyklar eru á þjóninum, aldrei í vafranum eða spjallinu; allt inntak er staðfest á þjóninum; hver notandi nær aðeins í sínar eigin færslur; innskráning og dýr endapunktar eru með hraðatakmörkunum; forsendur eru uppfærðar; og þú getur endurheimt gögnin þín ef eitthvað fer úrskeiðis. Gátlistinn hér að neðan breytir hverju þessara atriða í sérstakar prófanir sem þú getur keyrt án þess að lesa kóðann.

Smíðatól með gervigreind eru góð í að láta hluti virka. Þau eru ekki sjálfkrafa varkár, því „varkárni“ er sjaldan í fyrirmælunum. Flest vandamálin hér að neðan koma af hlutum sem enginn bað um, svo lagfæringin er yfirleitt að biðja um þá.

Hvernig á að nota þennan gátlista

Farðu í gegnum hann í röð, og fyrir hvert atriði gerðu tvennt: biddu gervigreindina um að ganga úr skugga um að það sé meðhöndlað og prófaðu sjálf/ur. Gervigreindin getur skrifað heimildaathugun; aðeins prófun segir þér að hún virki. Atriðin eru merkt:

  • Skylda, gerðu þetta áður en aðrir nota appið.
  • Ætti, gerðu þetta áður en þú ert með raunverulega notendur eða raunveruleg gögn.
  • Seinna, þess virði að gera þegar appið stækkar.

Ef þú hefur aðeins klukkutíma, gerðu öll Skylda-atriðin.

1. Auðkenning: hver er þetta?

Auðkenning felur í sér að staðfesta hver einhver er, venjulega með innskráningu. Sjá hvað auðkenning er til grunnatriða og hvernig þú bætir innskráningu við appið fyrir valkosti.

  • Skylda: Hver síða sem sýnir einkagögn krefst innskráningar. Prófun: skráðu þig út og límdu vefslóð einkasíðu beint í vafrann.
  • Skylda: Hver API-endapunktur á bak við þessar síður krefst líka innskráningar, ekki bara síðan. Prófun: skráðu þig út, opnaðu netkerfisflipann í vafranum og endurtaktu beiðni sem appið gerði þegar þú varst innskráð/ur.
  • Skylda: Lykilorð eru geymd dulkóðuð með hægri lykilorðadulkóðun, aldrei í skýrum texta. Leiðbeiningar OWASP um geymslu lykilorða mæla fyrst með Argon2id, með scrypt, bcrypt eða PBKDF2 sem valkostum. Spurðu: „Hvernig eru lykilorð geymd?“
  • Ætti: Hlekkir til að endurstilla lykilorð renna út og virka aðeins einu sinni.
  • Ætti: Setukökur eru merktar Secure, HttpOnly og SameSite, og útskráning lýkur setunni á þjóninum.
  • Seinna: Bjóddu tveggja þátta auðkenningu, eða innskráningu í gegnum þjónustuaðila sem býður hana.

Athugaðu hverja API-leið og síðu sem skilar gögnum notanda. Hver þeirra verður að hafna beiðnum frá notendum sem eru ekki innskráðir, á þjóninum, ekki aðeins í kóða síðunnar. Settu lista yfir leiðirnar sem þú athugaðir.

2. Heimildir: hvað mega þeir gera?

Heimildir eru skrefið eftir innskráningu: ákvörðun um hvað þessi tiltekni notandi má sjá og breyta. Hér eru gervigreindarsmíðuð öpp oftast með alvarlegar gloppur, því appið lítur út fyrir að vera rétt. Mælaborð hvers notanda sýnir aðeins hans eigin gögn, á meðan þjónninn afhendir gögn hvers sem er ef beðið er um þau beint.

  • Skylda: Hver lesning, uppfærsla og eyðing athugar á þjóninum að færslan tilheyri núverandi notanda (eða teymi hans).
  • Skylda: Prófaðu það: búðu til tvo reikninga, A og B. Sem A, opnaðu eina af færslum A og skráðu auðkennið í vefslóðinni eða netbeiðninni. Skráðu þig inn sem B og biddu um sama auðkenni. B verður að fá villu, ekki gögn A.
  • Skylda: Stjórnendasíður og stjórnendaendapunktar athuga hlutverk notandans á þjóninum. Að fela stjórnendatengilinn er ekki vörn.
  • Skylda: Notendur geta ekki breytt eigin hlutverki, verði, stöðu eða eigandasviðum með því að breyta beiðninni. Prófun: í netkerfisflipanum skaltu skoða hvað uppfærsla á prófíl sendir. Ef hún inniheldur reiti eins og role eða isAdmin, biddu gervigreindina um að hunsa þá frá viðskiptavininum.
  • Ætti: Auðkenni í vefslóðum eru erfið að giska á (slembin auðkenni í stað 1, 2, 3). Þetta kemur ekki í stað heimildaathugana en takmarkar skaðann þegar ein vantar.

Fyrir hvern endapunkt sem les eða breytir færslu, athugaðu á þjóninum að innskráði notandinn eigi hana eða hafi aðgang að henni. Skilaðu 404 ef ekki. Sýndu mér síðan hvernig þú myndir prófa þetta með tveimur reikningum.

3. Aðgangur að línum í gagnagrunninum

„Aðgangur að línum“ þýðir að hver röð í töflu (ein bókun, einn reikningur) sést aðeins af þeim notendum sem hún tilheyrir. Það eru tvær algengar leiðir til að framfylgja því:

AðferðHvernig hún virkarVarist
Í kóða þjónsinsHver fyrirspurn inniheldur síu eins og „þar sem eigandi er núverandi notandi“Ein gleymd sía opnar allt
Í gagnagrunninum (t.d. öryggisreglur á línum í Postgres)Gagnagrunnurinn sjálfur hafnar línum sem notandinn má ekki sjáMeiri uppsetning; þjónninn verður að tengjast sem réttur notandi

Hvort tveggja er hægt að gera vel. Það sem skiptir máli:

  • Skylda: Ef vafrinn talar beint við gagnagrunninn (sumar hýstar gagnagrunnsþjónustur leyfa það), eru reglur um línur kveiktar fyrir hverja töflu. Án þeirra getur hver sem er með opinbera lykilinn lesið alla töfluna.
  • Skylda: Fyrirspurnir sía eftir núverandi notanda eða teymi, ekki eftir auðkenni sem vafrinn sendir.
  • Ætti: Sameiginleg gögn (verkefni teymis) hafa skýra reglu um hverjir eru í teyminu, framfylgda á einum stað.

4. Leyndarlyklar og API-lyklar

API-lykill er lykilorð fyrir þjónustu. Stripe, póstþjónusta og gervigreindarveitendur nota allir slíka. Til bakgrunns, sjá hvað umhverfisbreytur og leyndarlyklar eru.

  • Skylda: Lyklar eru geymdir í umhverfisbreytum eða leyndarlyklum verkefnisins, aldrei skrifaðir inn í kóðann.
  • Skylda: Lyklar sem geta eytt peningum eða lesið einkagögn eru aðeins notaðir á þjóninum. Prófun: opnaðu lifandi vefsíðuna þína, skoðaðu síðuuppsprettuna og JavaScript-skrárnar í þróunarverkfærunum og leitaðu að upphafinu á lyklinum þínum (t.d. sk_). Hann má ekki birtast.
  • Skylda: Lyklar hafa aldrei verið límdir í spjall, opna geymslu eða skjámynd. Ef það gerðist, skiptu um lykil hjá þjónustuveitandanum (búðu til nýjan og eyddu þeim gamla).
  • Ætti: Notaðu takmarkaða eða afmarkaða lykla þar sem þjónustuveitandinn býður þá. Stripe mælir til dæmis með takmörkuðum lyklum sem hafa aðeins þær heimildir sem samþættingin þarfnast.
  • Ætti: Prófunarlyklar og lifandi lyklar eru aðskildir, og lifandi appið notar lifandi lykla aðeins þegar þú ert tilbúin/n.

Sumir lyklar eru hannaðir til að vera opinberir, eins og birtingarlykill Stripe (pk_…) eða kortalykill sem er takmarkaður við lénið þitt. Reglan snýst um lykla sem veita vald, ekki sérhvern streng sem lítur út eins og lykill.

5. Staðfesting inntaks

Allt sem notandi sendir (reitir í eyðublöðum, skráaupphleðslur, breytur í vefslóðum) getur verið hvað sem er, ekki bara það sem eyðublaðið þitt leyfir.

  • Skylda: Staðfesting fer fram á þjóninum, ekki aðeins í vafranum. Athuganir í vafranum eru fyrir þægindi; hver sem er getur sleppt þeim.
  • Skylda: Gagnagrunnsfyrirspurnir nota breytur, ekki texta sem er límdur saman úr innslætti notanda (þetta kemur í veg fyrir SQL-innspýtingu). Biddu gervigreindina að staðfesta það.
  • Skylda: Texti sem notendur slá inn birtist sem texti, ekki sem HTML sem keyrt er. Prófun: skrifaðu <b>hello</b> sem nafnið þitt. Þú átt að sjá merkin, ekki feitletraðan texta.
  • Ætti: Skráaupphleðslur athuga tegund og stærð, og upphlaðnar skrár eru ekki birtar af aðallénu appsins sem keyranlegar síður.
  • Ætti: Villur sem sýndar eru notendum eru einfaldar („Eitthvað fór úrskeiðis“); ítarlegar villur fara aðeins í atburðaskrár þjónsins.
  • Ætti: Vefkrókar frá þjónustum eins og Stripe staðfesta undirskrift veitandans áður en þeir bregðast við. Sjá hvað vefkrókur er.

Bættu staðfestingu á þjóninum við hvert eyðublað og API-endapunkt: nauðsynlegir reitir, lengdir, snið og leyfð gildi. Hafnaðu öllu öðru með skýrum skilaboðum. Ekki sýna notendum innri villuupplýsingar.

6. Hraðatakmarkanir og misnotkun

Hraðatakmörk takmarka hversu margar beiðnir einhver getur sent á tilteknu tímabili. Án þeirra getur hver sem er giskað á lykilorð allan daginn, flætt yfir nýskráningareyðublaðið þitt eða hækkað reikninginn þinn hjá greiddu API-i.

  • Skylda: Innskráning, nýskráning og endurstilling lykilorðs eru með hraðatakmörkun fyrir IP-tölu og fyrir hvern reikning.
  • Skylda: Allt sem kostar þig pening á hverja notkun (beiðnir til gervigreindarlíkana, SMS, tölvupóstur) hefur takmörk á hvern notanda og krefst innskráningar.
  • Ætti: Opin eyðublöð (samband, biðlisti) hafa ruslpóstsvörn: hraðatakmörkun, falinn gildra-reit eða CAPTCHA.
  • Ætti: Settu útgjaldaþak eða viðvaranir hjá greiddum þjónustuveitendum, svo villa eða árásarmaður geti ekki framkallað ótakmarkaðan reikning.

7. Forsendur

Öpp eru byggð úr opnum pakka og pakkar hafa stundum þekkta veikleika.

  • Ætti: Biddu gervigreindina að athuga með þekkta veikleika (fyrir JavaScript-verkefni, npm audit eða sambærilegt fyrir pakkastjórann þinn) og uppfæra það sem er fyrir áhrifum.
  • Ætti: Fjarlægðu pakka sem appið notar ekki lengur.
  • Ætti: Vertu varkár við pakka með mjög fáa notendur eða nöfn sem líkjast stafsetningarvillum á vinsælum pökkum.
  • Seinna: Athugaðu aftur einu sinni eða tvisvar í mánuði, eða kveiktu á sjálfvirkum viðvörunum ef kóðinn þinn er á GitHub.

8. Afrit og endurheimt

Öryggi felur líka í sér að geta endurheimt eftir mistök, þín, gervigreindarinnar eða árásarmanns.

  • Skylda: Vita hvar gögnin þín eru geymd og hvort þau séu afrituð. Ekki gera ráð fyrir því; athugaðu skjöl hýsingaraðilans.
  • Ætti: Geymdu þína eigin reglubundna útflutning á mikilvægum gögnum (t.d. CSV-útflutningsaðgerð eða gagnagrunnsafrit), á stað sem er aðskilinn frá appinu.
  • Ætti: Geymdu kóðann þinn í útgáfustýringu, svo hægt sé að endurheimta hvaða útgáfu sem er.
  • Ætti: Eyðingaraðgerðir (eyða reikningi, eyða verkefni) biðja um staðfestingu, og íhugaðu „mjúka eyðingu“ sem hægt er að afturkalla um tíma.
  • Seinna: Prófaðu endurheimt einu sinni í alvöru. Afrit sem þú hefur aldrei endurheimt er von, ekki áætlun.

9. Fyrir opnun

  • Skylda: Lifandi vefsíðan notar HTTPS alls staðar.
  • Skylda: Sýnisgögn, prófunarreikningar og villuleitarsíður úr þróun eru fjarlægðar.
  • Ætti: Persónuverndarstefna lýsir hvaða gögnum þú safnar og af hverju. Hún er krafa á mörgum stöðum ef þú safnar persónugreinanlegum gögnum. Ekki segjast hafa vottanir (SOC 2, HIPAA) sem þú hefur ekki.
  • Ætti: Þú hefur leið fyrir fólk til að tilkynna þér öryggisatvik, og þú veist hvernig á að skipta um alla lykla hratt.

Fyrir víðtækari yfirferð fyrir opnun, umfram öryggi, sjá hvernig þú tekur gervigreindarfrumgerð í framleiðslu.

Hvenær á að fá fagmannlega yfirferð

Gátlisti grípur algeng mistök en kemur ekki í stað sérfræðings. Íhugaðu að borga fyrir yfirferð ef þú vinnur úr kortanúmerum sjálf/ur í stað þess að nota hýsta greiðslusíðu, geymir heilsufars-, fjárhags- eða barnagögn, selur fyrirtækjum sem biðja um öryggisspurningalista, eða myndir skaðast alvarlega ef gögn leka. Að geta flutt kóðann út gerir slíka yfirferð mun auðveldari.

Öryggi þegar byggt er á Mythex

Mythex er ekki með öryggisskönnunarglugga, svo gátlistinn hér að ofan er ferlið sem þú fylgir. Nokkur atriði hjálpa:

  • Leyndarlyklar verkefnisins. Geymdu lykla undir stillingum verkefnis → Secrets, eða í gegnum leyndarlykilskortið sem umboðsmaðurinn sýnir í spjallinu, svo þeir haldist utan kóðans og skilaboðanna. Eftir að þú breytir leyndarlykli fyrir lifandi app, birtu aftur.
  • Áætlunar- og spurningastillingar. Biddu umboðsmanninn að yfirfara heimildir án þess að breyta: „Í Ask-stillingu, listaðu hverja API-leið og hvaða heimildaathugun hún gerir.“
  • /test lætur umboðsmanninn smella í gegnum forskoðunina þína sem notandi, gagnlegt fyrir tveggja reikninga prófunina í kafla 2.
  • Vistunarpunktar leyfa þér að snúa aftur í breytingu sem braut eitthvað.

Sjá öryggi fyrir öpp sem þú smíðar og umhverfisbreytur og leyndarlyklar í skjölunum. Ef þú bætir notandareikningum við næst, lestu hvernig þú bætir innskráningu við appið.

Spurningar

Eru öpp sem smíðuð eru með gervigreind óöruggari?

Ekki sjálfkrafa, en smíðatól með gervigreind eru bjartsýnd á að hlutirnir virki, og öryggisathuganir falla auðveldlega niður þegar enginn biður um þær. Algengustu gloppurnar eru vantandi heimildaathuganir á þjóninum og API-lyklar settir þar sem vafrinn getur lesið þá.

Hver er mikilvægasta öryggisathugunin fyrir app sem smíðað er með gervigreind?

Skráðu þig inn sem einn notandi og reyndu að skoða eða breyta gögnum annars notanda, bæði í gegnum síður appsins og með því að breyta auðkennum í vefslóðum. Brotin aðgangsstýring af þessu tagi er í fyrsta sæti á OWASP Top 10:2025, listanum yfir helstu öryggisáhættur vefforrita.

Hvar eiga API-lyklar að vera í appi sem smíðað er með gervigreind?

Í umhverfisbreytum eða leyndarlyklum verkefnisins, og aðeins notaðir af kóða á þjóninum. Lyklar sem geta eytt peningum eða lesið einkagögn eiga aldrei að birtast í kóða vafrans, í spjallinu eða í Git-geymslu.

Þarf öryggisúttekt áður en app er opnað?

Fyrir lítið app með lítið viðkvæm gögn er það skynsamleg byrjun að fara yfir gátlista eins og þennan. Ef þú tekur við greiðslum beint, meðhöndlar heilsufars-, fjárhags- eða barnagögn eða hefur samningsbundnar öryggiskröfur, láttu hæfan aðila fara yfir það.

Mythex · Pricing · Smíðaðu hvað sem er með gervigreind · Sniðmát fyrir vefsíður og forrit · Mythex í samanburði · Orðasafn um forritasmíði með gervigreind · Ókeypis verkfæri fyrir forritasmíði með gervigreind · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)