🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónFormato SARIF y consolidar resultados
5 tareas · 35 min · Principiante
Cuando un proyecto pasa por más de un analizador, cada uno entrega su lista y el tablero las suma. Sumar no es consolidar: el mismo fallo aparece dos veces con nombres distintos, un fallo corregido sigue abierto y una supresión que nadie aprobó se lee como cerrada. Seguros Caobo te entrega los dos archivos SARIF de su cotizador y el tablero que dice nueve abiertos. Te preguntan cuántos fallos tienen de verdad.
Objetivo de la sala
Cuando un proyecto pasa por más de un analizador, cada uno entrega su lista y el tablero las suma. Sumar no es consolidar: el mismo fallo aparece dos veces con nombres distintos, un fallo corregido sigue abierto y una supresión que nadie aprobó se lee como cerrada. Seguros Caobo te entrega los dos archivos SARIF de su cotizador y el tablero que dice nueve abiertos. Te preguntan cuántos fallos tienen de verdad.SARIF es el formato de intercambio de resultados de análisis estático que publicó OASIS; la versión de uso general es la 2.1.0. Un archivo tiene una lista de corridas; cada corrida dice qué herramienta la hizo, con su lista de reglas, y trae sus resultados. Cada resultado nombra su regla (ruleId), su nivel (error, warning, note o none), su mensaje y sus ubicaciones, y puede traer flujos de código con la ruta de datos, supresiones con su tipo, su estado y su justificación, y un estado respecto de una corrida anterior.
Hay un campo pensado para seguir un resultado en el tiempo: las huellas parciales (partialFingerprints). Son valores que la herramienta calcula para reconocer el mismo resultado en la corrida siguiente aunque el archivo haya cambiado y las líneas se hayan movido. Cada herramienta las calcula a su manera, así que sirven entre corridas de la misma herramienta, no entre herramientas distintas.
Responde para continuar
¿Para qué sirven las huellas parciales de un resultado SARIF?
Ver pista de ayuda
Las notas del equipo dicen dónde sirven y dónde no.
Abre el laboratorio y lee semgrep-cotizador.sarif y codeql-cotizador.sarif. Las dos herramientas tienen reglas para los mismos problemas con identificadores distintos. Para saber que dos resultados son el mismo fallo, el equipo junta por archivo, línea y tipo de debilidad: en el archivo de CodeQL el CWE va en las etiquetas de cada regla. Busca la pareja de la redirección.
Responde para continuar
¿Qué ruleId del archivo de CodeQL señala el mismo fallo que la regla caobo.python.redireccion-desde-peticion? Escríbelo tal como aparece.
Ver pista de ayuda
Busca el resultado de CodeQL con la misma ubicación que el de la redirección en el otro archivo.
Una supresión en SARIF dice de qué tipo es (en el código o fuera de él) y en qué estado está: aceptada, en revisión o rechazada. Solo la aceptada debería quitar un resultado de la lista de abiertos. Busca en el archivo de Semgrep la supresión cuyo estado no es aceptada y compárala con lo que dice tablero-exportado.csv para esa misma ubicación.
Responde para continuar
¿En qué archivo del código está el resultado cuya supresión sigue en revisión y el tablero muestra como cerrado? Escribe la ruta del archivo.
Ver pista de ayuda
Busca el estado underReview y luego la fila del tablero con la misma ubicación.
Consolida los dos archivos con el criterio del equipo: un fallo es un archivo, una línea y un tipo de debilidad, venga de una herramienta o de las dos. Cuenta también los que tienen supresión, porque siguen en el código. No cuentes los resultados que el estado respecto de la corrida anterior marca como desaparecidos: notas.txt explica por qué ya no están.
Responde para continuar
¿Cuántos fallos distintos y presentes en esta versión quedan al consolidar los dos archivos SARIF?
Ver pista de ayuda
Seis resultados en un archivo, cinco en el otro; tres parejas coinciden y uno ya no está en el código.
El estado respecto de la corrida anterior (baselineState) puede ser nuevo, sin cambios, actualizado o ausente. Ausente quiere decir que el resultado estaba en la corrida de referencia y en esta no aparece. Eso no prueba que se corrigiera: el código pudo borrarse, moverse o dejar de analizarse. El tablero de Caobo no lee ese campo y sigue mostrando como abiertas las filas del módulo heredado.
Responde para continuar
¿Qué se hace con el resultado de reportes_2019.py marcado como ausente?
Ver pista de ayuda
Ausente dice que no está; el motivo hay que comprobarlo en otra parte.
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
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.