Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

El formato SARIF campo a campo

5 tareas · 40 min · Principiante

Cada herramienta de análisis cuenta sus hallazgos a su manera, y un tablero que lea cinco dialectos distintos no llega lejos. SARIF es el formato de intercambio que lo evita. En esta sala abres un informe de Uvilla Alimentos, una empresa ficticia de alimentos, y lo lees campo a campo: dónde vive la regla, dónde el resultado, qué nivel manda y qué parte del formato queda en manos de cada herramienta.

0 de 5 · 0%

Objetivo de la sala

Cada herramienta de análisis cuenta sus hallazgos a su manera, y un tablero que lea cinco dialectos distintos no llega lejos. SARIF es el formato de intercambio que lo evita. En esta sala abres un informe de Uvilla Alimentos, una empresa ficticia de alimentos, y lo lees campo a campo: dónde vive la regla, dónde el resultado, qué nivel manda y qué parte del formato queda en manos de cada herramienta.

SARIF (Static Analysis Results Interchange Format) es un estándar abierto de OASIS, y su versión 2.1.0 es la que casi todas las herramientas y plataformas leen. Un archivo es un JSON con un campo version y una lista runs: cada run es una ejecución de una herramienta.

Dentro de un run hay dos mitades que conviene no confundir. En tool.driver está la herramienta (nombre, versión) y su lista rules, el catálogo de reglas que sabe aplicar, cada una con su id, su descripción y su nivel por defecto. En results están los hallazgos concretos: cada resultado apunta a su regla con ruleId (y ruleIndex, su posición en la lista) y dice dónde ocurrió.

Responde para continuar

En un informe SARIF, ¿dónde se encuentra la descripción general de una regla y dónde cada hallazgo concreto?

La ubicación de un resultado está en locations, una lista (un hallazgo puede tocar varios sitios). Cada elemento trae physicalLocation, y dentro dos cosas: artifactLocation, con el uri del archivo (relativo a la raíz del repositorio, o a una base que dice uriBaseId), y region, con la línea donde empieza (startLine) y, si la herramienta quiere, columnas.

Abre informes/analisis-estatico.sarif.

Responde para continuar

Escribe el uri del archivo donde está el resultado de la regla ue.hash-debil.

La regla trae un nivel por defecto en defaultConfiguration.level; el resultado puede traer su propio level. El estándar define una escala corta de cuatro niveles, de «ninguno» a «error». Cuando el resultado trae su nivel, ese es el que cuenta para ese hallazgo. Quien normaliza hallazgos debe saber de cuál de los dos campos lee, porque dos herramientas pueden llegar a niveles distintos para un mismo tipo de problema.

Busca el resultado de pedidos/auditoria.py.

Responde para continuar

¿Qué nivel tiene ese resultado (el campo level del propio resultado)?

Dos resultados pueden compartir regla y estar en archivos distintos: son dos hallazgos, no uno. Lo que los separa es la ubicación. Por eso un lector de SARIF siempre cruza ruleId, uri y startLine antes de decir que dos resultados hablan de lo mismo.

La regla ue.sql-armada aparece dos veces en el informe.

Responde para continuar

¿En qué línea (startLine) está el resultado de ue.sql-armada ubicado en pedidos/stock.py? Escribe solo el número.

Los resultados y las reglas tienen un campo properties: una bolsa de propiedades donde la herramienta puede guardar lo que quiera. En el informe de Uvilla cada regla trae ahí un security-severity. Ese nombre no lo define SARIF: es una convención que usan algunas plataformas, y otra herramienta podría llamarlo distinto o no ponerlo.

Esto es lo que vuelve difícil normalizar: el estándar fija la forma, pero el significado de lo que va en la bolsa lo fija cada herramienta.

Responde para continuar

Un tablero recibe informes de tres herramientas y solo una trae security-severity en properties. ¿Cómo se debe tratar ese campo?

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad