Eining 7 / 11

Endurskoðun öryggiskóða og statísk greining: Finndu veikleika með gervigreind

Hagnaður:

  • Geta til að nota gervigreind sem annað auga og flagga OWASP flokks varnarleysi (innspýting, harður leyndarmál, aðgangsstýring) í kóðanum með því að gefa samhengi
  • Hæfni til að útrýma fölskum jákvæðum sem framleidd eru af gervigreind með samhengi og koma í veg fyrir að meðhöndla hverja uppgötvun sem raunverulegan varnarleysi án þess að staðfesta hana
  • Geta til að viðurkenna að lagfæringin sem gervigreind hefur lagt til gæti kynnt nýja veikleika/galla og komið hverjum plástri í gegnum endurskoðunar- og prófunarhliðið

Veikleikar innan hugbúnaðar eru meðal dýrustu veikleikanna vegna þess að þeir eru innbyggðir í vöruna frá upphafi og dreift til milljóna notenda. Skoðun á öruggum kóða er ferlið við að lesa frumkóðann línu fyrir línu og finna veikleika - SQL innspýting, auðkenningarveikleika, harðkóða lykilorð, röng heimild - áður en þeir fara í framleiðslu. Þegar það er gert í höndunum er það hægt og þreytandi; Það er auðvelt að missa af varnarleysi í stórum kóðagrunni.

AI er öflugt við endurskoðun kóða af tveimur ástæðum: Kóði er líka tungumál og gervigreind er góð í mynsturþekkingu. Gervigreind getur fljótt merkt hættuleg mynstur í kóða (setur notandainntak beint inn í fyrirspurnina, ódulkóðuð gagnageymsla, inntaksstaðfesting vantar), útskýrt hvers vegna hvert þeirra er áhættusamt og stungið upp á lagfæringu. En gervigreindin sér ekki allt rekstrarsamhengi kóðans (inntakið gæti verið hreinsað á öðru lagi), það gæti fundið upp varnarleysi sem er ekki til (falskt jákvætt) eða saknað raunverulegs varnarleysis (falsk neikvæð), og síðast en ekki síst, „leiðréttingin“ sem hún leggur til gæti komið með nýjan varnarleysi eða villu. AI er annað auga og bendill í kóða endurskoðun; Framkvæmdaraðilinn og öryggissérfræðingurinn ákveða hvort niðurstaða sé raunverulegt varnarleysi og hvort lagfæringin sé rétt og örugg.

Skref við endurskoðun kóða

  1. Gefðu svigrúm og samhengi. Hvaða tungumál, hvaða ramma, hvar tekur þessi kóði inntak, hvar gefur hann úttak, á hvaða lagi virkar hann? Endurskoðun kóða án samhengis gefur rangar jákvæðar niðurstöður.
  2. Leitaðu að hættulegum mynstrum. Leitaðu að þekktum AI varnarleysisflokkum (eins og OWASP Top 10): innspýting, auðkenning, birting viðkvæmra gagna, aðgangsstýring.
  3. Láttu hverja niðurstöðu réttlæta. Fyrir hvern fána: hvaða línu, hvaða varnarleysisflokkur, hvernig er hægt að nýta hann, hver eru sönnunargögnin. Óréttmæt niðurstaða er ekki tekin alvarlega.
  4. Fjarlægðu falskt jákvætt. Er í raun verið að hreinsa inntakið, er sú leið virkilega aðgengileg - athugaðu með samhengi.
  5. Staðfestu lagfæringuna. Staðfestu að plásturinn sem AI mælir með lokar í raun varnarleysinu, kynnir ekki nýja veikleika/galla og hefur staðist próf.
  6. Mannlegt samþykki. Hönnuður + öryggissérfræðingur fer yfir niðurstöðuna og lagfærið; Þannig fer það inn í kóðageymsluna.

Skilmálar: SAST (Static Application Security Testing — truflanir öryggisprófanir sem greinir frumkóðann án þess að keyra hann). DAST (Dynamísk — kraftmikil prófun sem prófar forritið sem er í gangi að utan). OWASP Top 10 er staðall listi yfir algengustu veikleika vefforrita. Innspýting er varnarleysi sem stafar af því að túlka inntak notenda sem skipun/fyrirspurn (t.d. SQL innspýting). Skilgreind fyrirspurn er rétta aðferðin sem kemur í veg fyrir inndælingu með því að aðgreina inntakið frá kóðanum.

Tafla yfir algenga varnarleysisflokka

Varnarleysisflokkur

Einkenni (í kóða)

rétt lausn

gildra AI

SQL innspýting

Tengist inntak í fyrirspurn

Stilla fyrirspurn

Getur hunsað sótthreinsun

harðkóða leyndarmál

Lykilorð/sláðu inn kóða

Leyniskápur (hólf), env

Falskt jákvætt (sýni/próf)

Veik auðkenning

Vantar/röng stjórn

Öflug, miðstýrð stjórnun

saknar samhengis

Biluð aðgangsstýring

Engin heimildaskoðun

Heimild miðlarahliðar

Skilur ekki flókið flæði

Viðkvæm upplýsingagjöf

Geymsla/skráning án lykilorðs

Dulkóðun, gríma

Kann ekki gagnrýni

Óörugg raðgreining

Afraðaðu óáreiðanlegum gögnum

Örugg þáttun

Saknar sjaldgæfs mynsturs

þrjú smámál

Tilfelli 1 - Að ná raunverulegu inndælingunni. Hönnuður lætur AI skoða gagnaaðgangsaðgerð. AI merkir línuna þar sem userId gildið frá notandanum er tengt beint inn í SQL textann og segir "þetta er klassísk SQL innspýting, breyttu því í færibreyta fyrirspurn"; Veitir sýnishornsleiðréttingu. Framkvæmdaraðilinn staðfestir að inntakið hafi ekki verið sótthreinsað annars staðar, sannreynir að það sé raunverulegt varnarleysi, útfærir fyrirhugaða færibreytufyrirspurn og skrifar próf. AI benti á varnarleysið; sannprófun og leiðréttingarpróf kom frá framkvæmdaraðila.

Mál 2 - Falskt jákvætt fast leyndarmál. Gervigreindin sér lykilorðið = „test1234“ línuna í skrá og segir „mikilvægt: harðkóðaað lykilorð“. Framkvæmdaraðilinn athugar samhengið: þetta er einingaprófunarskrá, dummy prófunargögn, ekki gefin út í framleiðslu og ekki flutt í raunverulegt kerfi. Niðurstaðan er fölsk jákvæð. Framkvæmdaraðilinn skráir þetta en grípur ekki til aðgerða vegna þess að það er ekki raunverulegt leyndarmál. Lexía: „Harða leyndarmál“ tákn gervigreindar verður að útrýma með samhengi; Ekki er hver strengur leyndarmál.

Mál 3 - Ný varnarleysisleiðrétting. AI leggur til lagfæringu fyrir XSS (cross-site scripting) varnarleysi; en kóðinn sem hann stingur upp á hreinsar inntak á röngum stað og sleppir úttakskóðun á öðru svæði; Fyrir vikið lokast bilið ekki alveg. Öryggissérfræðingurinn fer yfir lagfæringuna, tekur eftir kóðuninni sem vantar og lagar hana á réttu lagi. Lexía: Plásturinn sem gervigreind mælir með er ekki sjálfkrafa öruggur; Sérhver lagfæring er skoðuð og prófuð.

Veik kvaðning / Sterk kvaðning

Veik kvaðning:

Er glufu í þessum kóða, lagaðu það: [kóði]

Þessi hvetja gefur ekkert samhengi (tungumál, ramma, inntaksuppspretta), biður ekki um rökstuðning, efast ekki um hið falska jákvæða og er opið fyrir því að samþykkja í blindni leiðréttinguna sem gervigreindin framleiðir. AI blandaði saman vísbendingum um raunverulegt varnarleysi og það sem ekki er til.

Öflug tilvitnun:

Hlutverk þitt: aðstoðarmaður sem er ANNAÐ AUGA þróunaraðilans við endurskoðun öryggiskóða. Ákvarðanataka; telja lagfæringuna beitt beint. Kóði: [tilgreinið tungumál/ramma].Samhengi: þessi aðgerð [inntaksheimild: t.d. tekur á móti [ytri HTTP beiðni], skrifar á [úttaksáfangastað]. Verkefni þitt: (1) merktu við hugsanlega veikleika með OWASP bekknum, gefðu línunúmer + hvers vegna áhættusamt + hvernig á að nýta + sönnunargögn fyrir hvern, (2) skrifaðu að minnsta kosti 1 falska jákvæða atburðarás fyrir hverja niðurstöðu (t.d. ef inntakið er sótthreinsað í öðru lagi), (3) stingdu upp á lagfæringu en með "[endurskoða + skrifa próf]" táknið; Metið einnig hvort lagfæringin kynnir nýja veikleika/galla. Bætir við fölsuðum varnarleysi.[kóði]

Sterk hvetja gefur samhengi, biður um OWASP flokk og sönnunargögn, spurningar um falskt jákvætt og hættu á úrbótum, knýr mannlega endurskoðun.

Afritanleg hvetja sniðmát

SKANNA Sniðmát fyrir varnarleysi Skoðaðu [tungumál/ramma] kóða fyrir OWASP Top 10. Fyrir hverja mögulega niðurstöðu: línunúmer, varnarleysisflokk, hvers vegna það er áhættusamt, sýnishorn misnotkun, styrkleiki sönnunargagna (viss/líkleg/veik). Samhengi: inntak [uppspretta], úttak [markmið]. Bætir tilbúnum niðurstöðum; Ef þú ert ekki viss skaltu slá inn "[verður að staðfesta]". Kóði: [líma]

FALSK JÁKVÆTT ÚTRYMNINGSMYNSTUR Til að finna kóðann hér að neðan, listið upp aðstæður þar sem EKKI er raunverulegt varnarleysi: gæti inntakið verið hreinsað í öðru lagi, er þessi leið aðgengileg, er þetta gildi próf/sýnishorn, er ramminn sjálfkrafa verndaður. Skrifaðu hvernig á að staðfesta fyrir hvern og einn. Að finna: [líma]

LEIÐA MATSsniðmát mæli með lagfæringu fyrir eftirfarandi varnarleysi; gagnrýndu síðan þína eigin lagfæringu: (1) lokar það raunverulega varnarleysinu, (2) kynnir það nýjan varnarleysi/villu, (3) hvaða próf ætti ég að skrifa (jákvætt og neikvætt), (4) áhrif á árangur/virkni. Ég mun skoða og prófa lagfæringuna. Veikleiki + kóði: [líma]

ÖRYGGI MYNSTRAR KENNNINGARMÁT fyrir varnarleysisflokk [t.d. SQL innspýting] sýna tiltölulega öruggt innsláttarmynstur og algengt röng mynstur í þessu tungumáli/ramma. Almenn regla + gefðu kóða dæmi; en ég vil að þú spyrjir um samhengið áður en þú innleiðir það í kóðanum mínum. Tungumál/rammi: [skrifa]

Algeng mistök

  • Upprifjun án samhengis. Án tungumáls, ramma og inntaks/úttakssamhengis ruglar gervigreind saman bæði raunverulegum og röngum niðurstöðum; Vertu viss um að gefa samhengi.
  • Að misskilja hvert merki fyrir raunverulegan veikleika. AI framleiðir rangar jákvæðar (prófunargögn, inntak hreinsað í öðru lagi); Sigtið hverja uppgötvun með samhengi.
  • Að beita leiðréttingu gervigreindar í blindni. Ráðlagður plástur gæti kynnt nýja veikleika/galla; fara yfir og skrifa próf.
  • Að treysta hinu falska neikvæða. Jafnvel þó að gervigreindin segi „engin varnarleysi“ skaltu skoða mikilvægu leiðirnar sjálfur; Statísk skönnun greinir ekki alla veikleika.
  • Að gefa ytra tólinu kóðann/leyndarmálið. Einkakóði og raunveruleg leyndarmál (lykill, lykilorð) eru hugverk og varnarleysi; nafnleyndu eða notaðu einangruð fyrirtækisverkfæri.
Ábending: Þegar þú hefur AI endurskoðunarkóðann er skilvirkasta sían að biðja um „styrk sönnunargagna“ (viss/líkleg/veik) fyrir hverja niðurstöðu. Flestar niðurstöður merktar „veikar“ eru rangar jákvæðar; þú úthlutar orku þinni til þeirra „öruggu“.
Varúð: Fyrirhuguð öryggisleiðrétting gervigreindar ætti ekki að fara inn í vöruhúsið án þess að vera prófuð. Rangt „fix“ getur bæði skilið varnarleysið eftir opið og leitt til virknivillu í framleiðslu; Sérhver plástur fer í gegnum endurskoðunar- og prófunarhliðið.

Í stuttu máli

Endurskoðun á öruggum kóða er ódýrasta leiðin til að ná veikleikum áður en þeir fara í framleiðslu og þar sem kóða er tungumál verður gervigreind öflugt annað auga hér: flaggar hættulegt mynstur, útskýrir áhættu, stingur upp á lagfæringum. En gervigreind sér ekki allt rekstrarsamhengið, framleiðir rangar jákvæðar og rangar neikvæðar og plásturinn sem það mælir með gæti kynnt nýja veikleika. Þannig að endurskoðunin hefur sex skref (samhengi, skimun, réttlætingu, rangt jákvætt brotthvarf, staðfestingu lagfæringar, mannlegt samþykki) og ákvörðunin liggur hjá framkvæmdaraðilanum og öryggissérfræðingnum. Þrjár meginreglur: engin uppgötvun er túlkuð án samhengis, hvert merki er eytt með samhengi, engin lagfæring fer í geymslu óprófuð. Og kóðinn/leyndarmálið er aldrei gefið utanaðkomandi tól án nafnleyndar.

Umsóknarverkefni

Taktu sýnishorn af kóðabút (annaðhvort að fjarlægja viðkvæma hluta úr eigin kóða eða sýnishornskóða með veikleikum). Láttu gervigreind skoða það með „Vulnerability Scanning“ sniðmátinu; Notaðu „False Positive Elimination“ sniðmátið fyrir hverja uppgötvun og útrýmdu þeim raunverulegu. Taktu leiðréttingu á alvarlegustu niðurstöðunni með sniðmátinu „Miðbótamat“, skoðaðu það sjálfur og skrifaðu eitt jákvætt + eitt neikvætt próftilvik. Athugaðu hversu margar niðurstöður voru rangar jákvæðar.

gátlisti

  • [ ] Ég gaf upp tungumál, ramma og inntak/úttak samhengi áður en ég fór yfir kóðann.
  • [ ] Ég bað um línunúmer, varnarleysisflokk, nýtingarslóð og sönnunargögn fyrir hverja niðurstöðu.
  • [ ] Ég skimaði hverja niðurstöðu fyrir rangar jákvæðar með samhengi.
  • [ ] Ég beitti ekki í blindni leiðréttingu gervigreindar; Ég fór yfir og skrifaði próf.
  • [ ] Þrátt fyrir úttakið „No vulnerabilities“, skoðaði ég sjálfur mikilvægu leiðirnar.
  • [ ] Ég nafngreindi kóðann/leyndarmálin eða notaði einangrað verkfæri fyrirtækja.
  • [ ] Ég hef staðist uppgötvun og lagfæringu í gegnum þróunaraðila + öryggissamþykki.