En la herramienta Black Duck Binary Analysis (también conocida como Protecode) hay varias opciones para la clasificación de vulnerabilidades.
De Ayuda:
Alcance del triaje
Puede aplicar un alcance a una vulnerabilidad clasificada dentro de un componente de terceros. Al clasificar vulnerabilidades conocidas, puede seleccionar entre las siguientes opciones:
Cuenta: Se aplica a todos los usos del componente dentro de la cuenta de la empresa.
Grupo: Se aplica a todos los usos del componente dentro del grupo.
Solicitud: Se aplica únicamente a los usos del componente dentro de la misma aplicación.
Nombre de la aplicación: se aplica a los usos del componente dentro de aplicaciones escaneadas que tienen el mismo nombre de aplicación.
hash de archivo: se aplica a los usos del componente dentro de aplicaciones escaneadas que tienen el mismo hash de archivo
Lo que quiero es clasificar CVE en mi biblioteca para que los resultados de la clasificación se transfieran a los siguientes escaneos. Espero que la opción "Hash de archivo" haga exactamente esto; sin embargo, cuando suba mi archivo la próxima vez, sigo viendo el mismo CVE como no clasificado. ¿Qué ocurre?
Respuesta1
TL;DR: utilice el ámbito "Grupo".
Detalles
La documentación API lo hace un poco más claro.
PUT /api/triage/vulnerability/
component - Component name
version - Component version
vulns - List of vulnerability ids
scope - Scope in which the triage affects. Possible values:
- CA - Account wide
- FN - Filename
- FH - File hash
- R - Result
- G - Group
product_id - In FN, FH and R scopes the related product
group_id - In G scope the related group
Entonces, en realidad se realiza la clasificación en la herramienta.no contra los archivos, perocontra versiones de biblioteca(biblioteca === componente en el contexto). Incluso no existe ninguna posibilidad teórica de clasificar un archivo, porque se clasifican las versiones. Teniendo esto en cuenta, el resto de pensamientos son sencillos.
¿Qué es entonces el "hash de archivo"?
Está claramente escrito que si usa "FH", se requerirá el product_id, y producto es sinónimo (en el contexto actual) del archivo cargado con sus archivos binarios. Por lo tanto, cada producto tiene un único "hash de archivo": el hash del archivo cargado. Lo que hace que esta opción sea completamente inútil, porque, supongo, uno no carga 100 archivos por separado, sino que carga el archivo\zip\tar.gz con el software, que contiene múltiples archivos binarios. Y, obviamente, el hash del archivo cambiará con cada reempaquetado, incluso si hubo un cambio en el archivo Léame.
Lo que quiero es clasificar CVE en mi biblioteca para que los resultados de la clasificación se transfieran a los siguientes escaneos.
Dado que el "hash de archivo" no es adecuado para este propósito, veamos otras opciones de alcance disponibles para ver qué podemos hacer aquí:
Resultado
La opción más sencilla y predeterminada. Al mismo tiempo, más inútil. Se asigna directamente al Application
alcance mencionado en la Ayuda: Applies to uses of the component within the same application only
. En resumen, no hay transferencias.
Nombre del archivo
Personalmente, encuentro que "nombre de archivo" es más claro que Application name
la línea correspondiente en la Ayuda. De todos modos, esto también está bastante claro: la clasificación se realizará solo si el nombre del archivo es el mismo. Cuando de alguna manera resuelve el problema, introduce un nuevo problema: el problema de diferenciar diferentes compilaciones. Por lo general, asignamos nombres a nuestros zips MyCoolBuild_942_ab4e3f
para que sea fácil encontrar y verificar los resultados de compilaciones anteriores. Si no le importa, entonces este alcance puede ser una opción, si nombra sus zips como MyCoolBuild.zip
.
Grupo
Como se puede adivinar, esto es sólo una clasificación de todo el grupo. Si tu equipo tiene su propio grupo, entonces estás perfectamente seguro para usarlo.
En mi caso, tenemos a toda la empresa subiendo archivos a un grupo, por lo quepuedetiene algunos conflictos, sin embargo, el manual de la herramienta dice que debe usar sufijos de versión si está creando compilaciones personalizadas de esta biblioteca (para arreglar algunos CVE usted mismo, por ejemplo). Si todos siguen esta regla, no nombrarán bibliotecas personalizadas, 1.0.2
pero 1.0.2_company_build
no habrá conflictos entre las clasificaciones de diferentes equipos.
Cuenta
No lo sé porque no tengo esta opción en nuestra instancia de BDBA -_-
Probar la exactitud de los supuestos anteriores
Todo lo anterior se puede confirmar fácilmente realizando un par de cargas de prueba.
hash de archivo- cargue el mismo archivo dos veces con nombres diferentes y clasifique un CVE con alcance "FH"; luego la clasificación se trasladará.
Nombre del archivo- cargue el archivo una vez, luego modifique un poco el archivo (agregue un archivo de texto vacío dentro) y cárguelo nuevamente. La clasificación se mantendrá.
Grupo- Cargue una biblioteca con una versión detectada automáticamente, luego modifique el binario y cárguelo con un nombre diferente. La clasificación se trasladará.
Como prueba adicional, también puede cargar un archivo con dos bibliotecas dentro y anular la versión de una de ellas; las separará en la interfaz de usuario y permitirá la clasificación por separado.