Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Lo que el código dice de sí mismo

5 tareas · 30 min · Principiante

El análisis estático lee el código sin ejecutarlo y busca patrones que suelen ser fallos: una consulta a la base de datos armada pegando texto, un comando del sistema construido con datos de fuera, un cifrado roto. En la cadena de Cauce Pagos la herramienta es Semgrep, y corre pronto, sobre el código fuente. Su valor no está en correrla —eso es una línea— sino en leer lo que reporta: qué línea señala, si el hallazgo es real o ruido, y qué severidad merece parar la fusión. Esa lectura es la habilidad de esta sala.

0 de 5 · 0%

Objetivo de la sala

El análisis estático lee el código sin ejecutarlo y busca patrones que suelen ser fallos: una consulta a la base de datos armada pegando texto, un comando del sistema construido con datos de fuera, un cifrado roto. En la cadena de Cauce Pagos la herramienta es Semgrep, y corre pronto, sobre el código fuente. Su valor no está en correrla —eso es una línea— sino en leer lo que reporta: qué línea señala, si el hallazgo es real o ruido, y qué severidad merece parar la fusión. Esa lectura es la habilidad de esta sala.

«Estático» significa sin ejecutar: la herramienta lee el texto del código y reconoce formas conocidas de equivocarse. En el servicio de pagos de Cauce, Semgrep marca una consulta SQL que se arma concatenando el identificador de cuenta que llega del usuario directamente en el texto de la consulta. No ejecuta nada ni prueba el ataque; reconoce el patrón —dato de fuera pegado dentro de una consulta— que abre la puerta a una inyección. Por eso encuentra cosas antes de que existan datos reales, y por eso también se equivoca a veces: ve la forma, no el comportamiento.

Entender que el análisis estático razona sobre la forma del código, no sobre su ejecución, explica a la vez su alcance y sus falsos positivos.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

¿Qué hace un análisis estático como Semgrep sobre el servicio de pagos?

Ver pista de ayuda

La palabra es estático — sin ejecutar. Razona sobre la forma del código.

Un análisis estático marca de más: reconoce la forma sospechosa aunque en ese caso concreto no haya riesgo. Distinguir el hallazgo real del falso positivo es leer el contexto. La consulta SQL que pega el identificador de cuenta del usuario es real —ese dato viene de fuera y llega sin sanear a la consulta—. En cambio, un aviso sobre una consulta que solo usa un valor fijo escrito en el propio código, que ningún usuario controla, es ruido: la forma se parece, pero no hay dato externo. Confirmar de dónde viene el dato es lo que separa una de otra.

Comprobar el origen del dato antes de abrir un ticket es lo que evita ahogar a los desarrolladores en falsos positivos y perder su confianza en el control.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Semgrep marca dos consultas. ¿Cuál es el hallazgo real?

Ver pista de ayuda

El riesgo entra con el dato de fuera. ¿Cuál de las dos consultas usa dato del usuario?

La salida de Semgrep no dice «hay un problema»: señala el archivo, la línea exacta y la regla que disparó, con una explicación corta de por qué esa forma es peligrosa. En Cauce Pagos, el hallazgo apunta a la línea donde el identificador de cuenta se concatena en la consulta, con la regla de inyección SQL. Esa precisión es lo que hace accionable el resultado: el desarrollador va a esa línea, cambia la concatenación por una consulta parametrizada, y el hallazgo desaparece en el siguiente escaneo. Sin la línea, el aviso sería una búsqueda a ciegas.

Leer archivo, línea y regla —y saber traducir la regla al arreglo— es lo que convierte un escaneo en una corrección.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

El hallazgo señala la línea de la concatenación con la regla de inyección SQL. ¿Cuál es el arreglo?

Ver pista de ayuda

La inyección entra porque el dato se mezcla con la instrucción. ¿Cómo se separan?

No todo hallazgo del análisis estático para la fusión. El criterio se fija por severidad y por certeza: una inyección SQL confirmada en el camino de pagos es un hallazgo crítico y explotable, y se para —ese código no se fusiona hasta arreglarlo—. Un aviso de estilo, o una regla de severidad baja sobre un tramo sin datos de usuario, se registra sin bloquear. La regla que suele fijarse para una cadena como la de Cauce es clara: cero hallazgos críticos para poder fusionar, y los de severidad menor se anotan para atender sin frenar el trabajo.

Fijar el umbral en la severidad, y no en «cualquier hallazgo», es lo que mantiene el control encendido y respetado.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

El análisis reporta una inyección SQL crítica en el camino de pagos y tres avisos de estilo. ¿Qué hace la cadena?

Ver pista de ayuda

El umbral se fija por severidad. ¿Qué se para y qué solo se anota?

Abre el laboratorio del análisis de código de Cauce y lee la salida de Semgrep. Hay dos hallazgos: un aviso de estilo sin datos de usuario y la inyección crítica en el camino de pagos. Quédate con el crítico y lee el código que lo identifica.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Aísla en la salida de Semgrep el hallazgo crítico de inyección (el del camino de pagos, no el aviso de estilo) y escribe su código de hallazgo.

Formato esperado: SAST-____

Ver pista de ayuda

Con la terminal, `cat reportes/semgrep.txt`. El crítico es el de la regla de inyección con severidad ERROR; el código está bajo esa entrada.

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

Preparando el escritorio…

16:24
Terminal (user@whoami)
user@whoami:~$
Tab Autocompletar ↑/↓ Historial
bash 5.2.21
Whoami-Labs OS v3.0.1 LTS · build bcc89e

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