Öryggisúttekt
Lokaeftirlitið, keyrt eftir allar aðrar úttektir. Sjö fasar: háðir pakkar, leyndarmál og skilríki, auðkenning og heimildir, inntaksstaðfesting og innspýting, innviðaöryggi, samræmi við OWASP Top 10, og skýrsla. Lesúttekt — engu er breytt og enginn veikleiki misnotaður.
Fyrirmæli
Þú ert að framkvæma öryggisúttekt á þessu verkefni. Þetta er lokaeftirlitið — keyrt eftir allar aðrar úttektir og nútímavæðingu. Verkefnið er að finna veikleikana áður en þeir komast í framleiðslu.
FASI 1 — ÖRYGGI HÁÐRA PAKKA
- Keyrðu `npm audit` / `pip audit` / sambærilegt og fangaðu allt úttakið
- Fyrir hvern veikleika: alvarleiki, pakki, útgáfa, lagfæring til (já/nei), lýsing á misnotkun
- Merktu pakka sem eru komnir á endastöð eða eru óviðhaldnir
- Athugaðu þekkta veikleika sem eiga enga lagfæringu uppstreymis — þá þarf að skipta út, ekki uppfæra
- Leitaðu að draugapökkum (fluttir inn en ekki í skránni) og ónotuðum pökkum
FASI 2 — LEYNDARMÁL OG SKILRÍKI
- Grep-aðu að harðkóðuðum leyndarmálum, API-lyklum, lykilorðum og token í kóðanum (ekki bara í env-skrám)
- Athugaðu vara-leyndarmál í kóða (t.d. `process.env.SECRET || 'harðkóðað-sjálfgildi'`) — þau eru virk um leið og umhverfisbreytuna vantar
- Skoðaðu .env.example fyrir raunveruleg gildi sem hafa slæðst með
- Farðu yfir git-söguna að leyndarmálum sem einhvern tíma voru vistuð (grep-aðu nýlegar færslur að lykilorðum, token og lyklum)
- Staðfestu að .gitignore nái yfir allar viðkvæmar skrár (.env, .env.local, skilríki, einkalyklar)
- Gakktu úr skugga um að engin leyndarmál birtist í byggingarúttaki, annálum eða villuboðum
FASI 3 — AUÐKENNING OG HEIMILDIR
- Kortleggðu hvert einasta auðkenningarferli í kerfinu
- Fyrir hvert: staðfestu að samanburður á lykilorði/token sé tímaöruggur (constant-time), ekki `===` eða `!==`
- Skoðaðu stillingar á setu og vafrakökum: httpOnly, secure, sameSite, gildistími
- Leitaðu að hjáleiðum framhjá auðkenningu (slóðir sem ættu að krefjast innskráningar en gera það ekki)
- Athugaðu heimildir: komast notendur í gögn sem þeir eiga ekki að sjá?
- Skoðaðu CORS-stillingar
FASI 4 — INNTAKSSTAÐFESTING OG INNSPÝTING
- Athugaðu inntaksstaðfestingu á öllum API-endapunktum
- Leitaðu að SQL-innspýtingu (hráar fyrirspurnir með strengjasamsetningu)
- Leitaðu að XSS (dangerouslySetInnerHTML með inntaki frá notanda, ósloppin sniðmát)
- Leitaðu að skipanainnspýtingu (exec, spawn, system með inntaki frá notanda)
- Skoðaðu meðhöndlun skráa sem er hlaðið upp (gerðarstaðfesting, stærðarmörk, slóðaflakk)
- Athugaðu prototype pollution við JSON-þáttun
FASI 5 — ÖRYGGI INNVIÐA
- Skoðaðu CSP-hausa (Content Security Policy) — eru þeir stilltir? Eru þeir nógu þröngir?
- Athugaðu hvort HTTPS sé þvingað
- Leitaðu að opnum villuleitarendapunktum, kallstöflum í framleiðslu og of ítarlegum villuboðum
- Farðu yfir CI/CD-ferlið að leyndarmálaleka (leyndarmál í annálum, afurðum, umhverfi)
- Athugaðu hvort stjórnendaviðmót standi opin án auðkenningar
FASI 6 — SAMRÆMI VIÐ OWASP TOP 10
Gefðu verkefninu einkunn gegn hverjum flokki OWASP Top 10 (2021):
| # | Flokkur | Staða | Sönnun |
A01: Brotin aðgangsstýring
A02: Dulkóðunarbrestir
A03: Innspýting
A04: Óörugg hönnun
A05: Rangar öryggisstillingar
A06: Veikir íhlutir
A07: Auðkenningarbrestir
A08: Brestir í gagnaheilleika
A09: Brestir í öryggisannálum
A10: Server-Side Request Forgery
FASI 7 — SKÝRSLA
Skilaðu öryggisskýrslu með:
1. Yfirlit fyrir stjórnendur (3–5 setningar: heildarstaða, stærsta áhættan, brýnasta lagfæringin)
2. Töflu yfir niðurstöður:
| # | Alvarleiki | Flokkur | Niðurstaða | Skrá:lína | Tillaga | Vinna |
Alvarleiki: KRÍTÍSKT / HÁTT / MIÐLUNGS / LÁGT / UPPLÝSING
3. Öryggiseinkunn (1–10) með rökstuðningi
4. Fimm áhrifamestu lagfæringarnar:
| # | Lagfæring | Alvarleiki | Vinna | Af hverju það skiptir máli |
5. Stigatöflu gegn OWASP
TAKMARKANIR:
- Ekki breyta neinni skrá — þetta er lesúttekt sem skilar skýrslu, engu öðru
- Ekki reyna að misnota veikleika — greindu þá og skjalfestu, ekkert meira
- Ekki birta raunveruleg leyndarmál í skýrslunni — notaðu [RITSKOÐAÐ] í staðinn
- Sérhver niðurstaða verður að vísa í tiltekna skrá og línunúmer
- Aðgreindu fræðilega áhættu frá staðfestum veikleika
VERKEFNI TIL ÚTTEKTAR:
{{Límdu inn slóð verkefnisins eða lýstu því sem á að öryggisúttaka}}
Leiðbeiningar
Run this as the final step after all other audits and modernization. It's the security gate before deploying. The report gives you a clear picture of your security posture with actionable fixes.
Ábendingar
Hardcoded fallback secrets are the most common finding. Code like `process.env.SECRET || 'default'` means if the env var is missing in production, your signing key is publicly visible in your source code.
Run this on a schedule, not just once. Dependencies get new CVEs weekly. Your security posture today isn't your security posture next month.