El alcance de clasificación del BDBA (Análisis binario del pato negro) es engañoso

El alcance de clasificación del BDBA (Análisis binario del pato negro) es engañoso

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 Applicationalcance 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 namela 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_ab4e3fpara 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.2pero 1.0.2_company_buildno 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.

información relacionada