Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Políticas sobre planes, manifiestos y SBOM

5 tareas · 40 min · Principiante

El mismo lenguaje sirve para tres documentos de forma muy distinta: el plan de infraestructura en JSON, el manifiesto de un despliegue y la lista de componentes de un software. Cada uno tiene su raíz, sus listas y sus trampas, y una política que funciona bien con uno puede quedar ciega ante el siguiente. En Bahareque Constructora lees tres políticas y los tres documentos sobre los que corren: un despliegue de pagos, el inventario de componentes de una aplicación y el plan de un bucket. Buscas lo que cada política deja pasar sin quererlo.

0 de 5 · 0%

Objetivo de la sala

El mismo lenguaje sirve para tres documentos de forma muy distinta: el plan de infraestructura en JSON, el manifiesto de un despliegue y la lista de componentes de un software. Cada uno tiene su raíz, sus listas y sus trampas, y una política que funciona bien con uno puede quedar ciega ante el siguiente. En Bahareque Constructora lees tres políticas y los tres documentos sobre los que corren: un despliegue de pagos, el inventario de componentes de una aplicación y el plan de un bucket. Buscas lo que cada política deja pasar sin quererlo.

Un manifiesto de despliegue es un documento con listas anidadas, y la política necesita recorrer la lista de contenedores y mirar cada uno. La condición típica es una ausencia: «no declara límites de recursos». Se escribe con not, y recuerda lo visto en la primera sala: not es verdadero cuando el campo falta, de modo que una política de límites denuncia a quien no los escribió.

Lee la política de límites y el despliegue de pagos.

Responde para continuar

Escribe el nombre del contenedor del despliegue de pagos que la política de límites deniega.

Ver pista de ayuda

Con la terminal, `cat politicas/limites.rego` y `cat entrada/deployment-pagos.yaml`. Revisa los límites de cada contenedor de la lista.

Un SBOM en formato CycloneDX lista los componentes de un software. Cada componente puede declarar su licencia de dos maneras: con un identificador (license.id), un nombre libre (license.name) o con una expresión (expression) que combina varias. Una política que solo lee license.id no ve las otras dos formas, y un componente cuya licencia aparece como expresión puede ofrecer una opción prohibida sin que la política lo note.

Lee la política de licencias y el inventario, y busca el componente que ella no puede evaluar pese a mencionar una licencia prohibida.

Responde para continuar

Escribe el nombre del componente cuya licencia incluye una opción prohibida pero que la política de licencias no detecta.

Ver pista de ayuda

Compara el campo que lee `politicas/licencias.rego` con los campos de licencia de cada componente de `entrada/sbom.cdx.json`.

Una política también puede exigir que el documento tenga cierta forma: que cada componente traiga su identificador de paquete (purl), por ejemplo, para poder cruzarlo con una base de avisos. Sin identificador, el componente no se puede relacionar con nada fuera del SBOM. Contarlos es una medida de la calidad del inventario, no solo de su contenido.

Cuenta los componentes del inventario que no traen purl.

Responde para continuar

¿Cuántos componentes del inventario no traen el campo purl?

Ver pista de ayuda

Recorre `entrada/sbom.cdx.json` componente por componente.

El plan de infraestructura en JSON lista cada cambio de recurso en resource_changes. Dentro de change, after guarda los valores que tendrá el recurso, y after_unknown marca los que no se conocen hasta aplicar, porque dependen de algo que todavía no existe. Una política que compara after.acl con un valor concreto no puede juzgar un campo desconocido: la condición es indefinida y el recurso pasa.

Lee la política de acceso y el resumen del plan, y busca el cambio que ella no puede evaluar.

Responde para continuar

Escribe la dirección del recurso del plan cuyo valor de acl es desconocido y por eso la política no lo juzga.

Ver pista de ayuda

Abre `entrada/plan-resumen.json` y busca el recurso del tipo que revisa `politicas/acl.rego` cuyo `acl` aparece en `after_unknown`.

Cuando una política no puede decidir porque falta información, hay tres salidas: dejar pasar, denegar o avisar. Dejar pasar es lo que ocurre por defecto, y es la peor: convierte «no sé» en «está bien». Denegar todo lo desconocido frena al equipo con un falso positivo por cada valor calculado. Lo razonable es hacer explícito el caso, con una regla propia que lo marque y que alguien pueda leer.

Responde para continuar

¿Cómo debe tratar la política de acceso un valor que el plan no conoce todavía?

Ver pista de ayuda

Busca la que no convierte «no sé» en «está bien» ni frena a todos por una falta de información.

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