Øvelse 28 – Detektering af sårbare afhængigheder med Dotnet CLI-værktøjet
Scanninger og resultater
1. Normal scanning med dotnet cli værktøj
Project `WebGoat.NET` has the following vulnerable packages
[net8.0]:
Top-level Package Requested Resolved Severity Advisory URL
> System.Data.SqlClient 4.8.3 4.8.3 Moderate https://github.com/advisories/GHSA-8g2p-5pqh-5jmc
High https://github.com/advisories/GHSA-98g6-xh36-x2p7
2. Include Transitive scanning med dotnet cli værktøj
Project `WebGoat.NET` has the following vulnerable packages
[net8.0]:
Top-level Package Requested Resolved Severity Advisory URL
> System.Data.SqlClient 4.8.3 4.8.3 Moderate https://github.com/advisories/GHSA-8g2p-5pqh-5jmc
High https://github.com/advisories/GHSA-98g6-xh36-x2p7
Transitive Package Resolved Severity Advisory URL
> NuGet.Packaging 6.6.1 Critical https://github.com/advisories/GHSA-68w7-72jg-6qpp
> SQLitePCLRaw.lib.e_sqlite3 2.1.4 High https://github.com/advisories/GHSA-2m69-gcr7-jv3q
> System.Formats.Asn1 5.0.0 High https://github.com/advisories/GHSA-447r-wph3-92pm
> System.Net.Http 4.3.0 High https://github.com/advisories/GHSA-7jgj-8wvc-jh57
> System.Text.Json 7.0.0 High https://github.com/advisories/GHSA-hh2w-p6rv-4g7w
> System.Text.RegularExpressions 4.3.0 High https://github.com/advisories/GHSA-cmhx-cq75-c4mj
Funden CVE eksempel
CVE-2024-0056
- https://www.cve.org/CVERecord?id=CVE-2024-0056
- Updated: 2025-05-03
- Published: 2024-01-09
- Title: Microsoft.Data.SqlClient and System.Data.SqlClient SQL Data Provider Security Feature Bypass Vulnerability
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-0056
Refleksionsspørgsmål
- Hvorfor er det vigtigt at være opmærksom på sårbarheder i tredjepartsbiblioteker?
Fordi de muligvis kan udnyttes når de bruges i ens eget system.
- Hvordan kan brug af et værktøj som Dotnet CLI hjælpe med at styrke sikkerheden i softwareprojekter?
Det kan gøre at man får husket at opdatere eller måske helt fjerne afhængigheden til en sårbar pakke.
- Hvilke udfordringer kan der være ved at håndtere transitive afhængigheder?
At man ikke selv kan opdatere disse, men måske en nyere version af den pakke man bruger også har opdateret de transitive afhængigheder.
- Hvordan hænger SBOM (Software Bill of Materials) sammen med risikostyring i softwareudvikling?
Det giver en et overblik over de pakker man bruger, hvis man ikke kender til pakkerne, så kan man heller ikke tjekke for sårbaheder (ihvertfald ikke ordentligt eller med overblik). Samtidigt ville det forhåbentligt stoppe tidligere men nu ubrugte afhængigheder i at blive liggende.
- Bør en skanning for 3. Parts sårbarheder ekskveres løbende?
Ja, der kan komme nye sårbarheder (CVE reports) hver dag.
- Bør en skanning for 3. Parts sårbarheder være en manuel, eller automatisk process?
Det bør være automatisk så man opdager det inden evt. kode når ud i produktion.
Kobling til relevante standarder og principper
| Element i øvelsen | Relateret standard / princip | Kommentar |
|---|---|---|
| Sårbarhedsscanning | ISO/IEC 27002:2022, afsnit 8.8 (Styring af tekniske sårbarheder, særligt stykke d. og f.) | Anbefaler løbende scanning og håndtering af kendte sårbarheder i softwarekomponenter. |
| OWASP Application Security Verification Standard (ASVS), Kontrol 15 | Krav om håndtering af tredjepartskomponenter og kendte sårbarheder i applikationer. | |
| Secure by Design (Johnsson et al.) | Fremhæver vigtigheden af at kende og minimere risiko ved tredjepartssoftware. |