Use CPE dictionary to improve recall on NVD API detector
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
Línea de trabajo
Start in pkg/vuln/nvdapi/detector.go around lines 331-440 and review how CPEs are generated for NVD lookups. Then examine the NVD CPE Dictionary and determine whether dictionary entries should be reviewed manually or resolved automatically. Done means a decided dictionary-based approach improves CVE recall without undermining the current precision.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
Today, we search NVD for CVEs by constructing a CPE per package, and using that CPE for CVE lookups. The approach to this CPE generation was taken from Alpine's secfixes-tracker project, and extended slightly in some areas. Today the CPE generation code is here: https://github.com/wolfi-dev/wolfictl/blob/main/pkg/vuln/nvdapi/detector.go#L331-L440
This code helps the wolfictl adv discover command find new CVEs for our packages. While the precision of today's implementation is high, the recall is unverified and probably on the low side.
Idea
We could probably greatly improve recall by examining NVD's CPE Dictionary and trying to find dictionary entries that correspond to Wolfi packages. We could treat any hits in the dictionary as authoritative CPEs and avoid generating our own CPEs in that case.
We could extend today's CPE approach by manually reviewing the CPE dictionary, and that alone would be a win.
Bonus: It would be even cooler if we can automate this dictionary lookup, either by embedding some form of the dictionary in wolfictl, or by having wolfictl fetch and parse the dictionary at runtime.
- Lenguaje dominante
- Go
- Estrellas
- 76
- Forks
- 84
- Merge medio
- 2 d 14 h
- PR fusionados (30 d)
- 19
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de wolfi-dev/wolfictl
-
It'd be nice to have line numbers from wolfictl lintQuizá libre de nuevo @sratslla la tomó hace 727 días y no hay ningún pull request abierto. Abiertoenhancement needs-triage
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
wolfi-dev/wolfictl#1203 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
enhancement needs-triage
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
wolfi-dev/wolfictl#785 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de wolfi-dev/wolfictl
Issues similares
-
feat(gmail): make gmail get --format raw text output the exact message, like drafts get --format rawAbiertoclawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
openclaw/gogcli#1276 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
enhancement ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
coder/chat#151 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
hiero-ledger/hiero-sdk-go#1886 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
cloudevents/sdk-go#1346 ·