Øvelse 30 – Grundlæggende taint-analyse med Snyk
https://its-software-sikkerhed-90b345.gitlab.io/exercises/30_Static_code_analysis_With_snyk/
1. Reproduktion trin for trin
-
Klon projektet fra dette repository.
-
I den klonede projekts mappe, skift til mappen SqlInjection.
-
Udfør taint-analysen ved at følge instruktionerne fra afsnittet Testing a repository from its root folder i denne dokumentation.
-
Notér, hvilket linjenummer SQL-injection sårbarheden bliver fundet på.
-
Verificér i koden, at linjenummeret for sårbarheden er der, hvor den forurenede data sendes til sink.
- Det er præcis den linje at der sendes data til databasen.
2. Reflekterende spørgsmål
-
Hvordan hjælper taint-analyse med at identificere sikkerhedsrisici i software?
- Ved at finde de steder hvor rå data slipper igennem til sink (f.eks. en sql query) uden at det bliver valideret.
-
Hvilke begrænsninger har automatiserede statiske analyseværktøjer som Snyk i forhold til kompleks kode og kontekst(domæne viden)?
- Den har ikke viden om domænet og med kompleks kode kan der være mange mulige veje for data. Derfor kan den også sagtens give falske positiver hvis den ikke kan se at data valideres.
-
Hvordan kan viden om kildedata (source) og destinationssted (sink) i koden forbedre sikkerhedsarbejdet?
- Det kan det ved at man lettere kan tjekke om man nu også husker at validere og sanitere det data som kommer ind fra en source inden det når til sink.
-
Hvordan bør fundne sårbarheder håndteres i udviklings- og driftsprocessen for at øge sikkerheden?
- Systemet bør ikke udgives hvis der findes sårbarheder ved automatiske tests eller manuelle test. Medmindre man selvfølgelig vurderer at risikoen er så lille og at man godt kan vente med at fikse det i næste udgivelse.
- Ellers skal sårbarheden eller sårbarhederne fjernes inden release.
3.
| Element i øvelsen | Relateret standard / princip | Kommentar |
|---|---|---|
| Taint-analyse og statisk kodeanalyse | ISO/IEC 27002:2022, afsnit 8.29 (Security testing) | Anbefaler brug af sikkerhedstest og sårbarhedsanalyse som en del af sikkerhedstest. |
| OWASP ASVS 5.0.0, kapitlet "Assessment and Certification" | Afsnittene "Verification Mechanisms" og "The Role of Automated Security Testing Tools" omtaler anvendelsen – hensigtsmæssig og uhensigtsmæssig – af automatiserede værktøjer. | |
| Secure by Design | Fremhæver værdien af analyseværktøjer, og viser svagheder ift. manglende invarians ved objekters instantiering. |