Del caos a la claridad: navegando por el motor de políticas para el cumplimiento

Todos los Artículos

Bienvenido de nuevo a la segunda parte de nuestra serie de blogs, donde profundizamos en las potentes capacidades de Valint. En este artículo, nos centraremos en el motor de políticas de Valint y su papel fundamental para garantizar el cumplimiento en toda su cadena de suministro.
En nuestra entrada de blog anterior, proporcionamos una descripción general de Principios de diseño de Valint..

Cómo funciona el motor de políticas

El motor de políticas de Valint opera con un conjunto de reglas organizadas en políticas verificadas con evidencia recopilada de la cadena de suministro. Analicemos sus componentes clave:

Evidencia: objetos inmutables que las políticas deben consumir automáticamente. Estos objetos contienen metadatos necesarios para permitir la aplicación de políticas y cumplir con los requisitos de cumplimiento. El contenido de evidencia incluye metadatos sobre artefactos, eventos y configuraciones, pero también puede recopilar informes, configuraciones o análisis reales. La evidencia puede presentarse tanto firmada como sin firmar. Sugerimos seguir el Intoto especificación de atestación utilizando el firmado certificación y formatos sin firmar, respectivamente.

  • Atestiguaciones (también conocidas como evidencia firmada verificable): Evidencia verificable vinculada a un determinado contexto ambiental, transmitiendo confianza mediante algún tipo de firmas PKI.

Políticas: Estos definen los requisitos que debe cumplir su cadena de suministro y cubren varios aspectos como la validación, los detalles de cumplimiento y el veredicto final sobre la evidencia. Como ejemplo, la organización podría tener una “política de Imagen de Contenedor”

Reglas de política: Las políticas constan de reglas, cada una de las cuales representa una verificación de cumplimiento específica. Los ejemplos incluyen la verificación de firmas e identidades, verificación de componentes SBOM, verificación de ausencia de vulnerabilidades críticas. Siguiendo el ejemplo anterior, la “política de Imagen de Contenedor” podría constar de las siguientes reglas:

  • Hacer cumplir la firma de imágenes.
  • Advertencia sobre imagen, no queja con etiquetas específicas.

Manojos: Colecciones de políticas y reglas a las que se puede hacer referencia convenientemente en su conjunto. Los paquetes proporcionan una forma modular y organizada de gestionar y aplicar conjuntos de políticas como código. El paquete de políticas predeterminadas de Scribe se publica en https://github.com/scribe-public/sample-policies, no dudes en consultarlo.

Uso de políticas con Valint

Valint permite a los usuarios consumir políticas como código de repositorios públicos o privados, ofreciendo flexibilidad y opciones de personalización. Para comenzar, simplemente instale Valint y defina sus políticas de acuerdo con sus necesidades de cumplimiento.

Instalación: Comience instalando Valint usando el script proporcionado. Ejecute el siguiente comando en su terminal:

curl -sSfL https://get.scribesecurity.com/install.sh | sh -s — -t valint

Definición de política: A continuación, defina sus políticas de acuerdo con los requisitos de cumplimiento de su organización. Cree un archivo YAML, como my_policy.yamly estructurarlo para encapsular las reglas deseadas. A continuación se muestra un ejemplo de cómo podría verse su archivo de política:

nombre: my_image_policy valores predeterminados: evidencia: firmado: verdadero reglas: - usos: imágenes/fresh-image@v1 con: max_days: 100 - usos: imágenes/verify-labels-exist@v1 nivel: advertencia con: etiquetas: # imagen requerida para ser etiquetado (comando Dockerfile LABEL) - mantenedor # Requiere una etiqueta de mantenedor. - org.opencontainers.image.source # Requerir que las imágenes estén etiquetadas con sus fuentes

En este ejemplo, hemos definido una política denominada my_image_policy, que exige que los artefactos de evidencia deben estar firmados y que las imágenes deben crearse dentro de los últimos 100 días. Además, emite una advertencia si las imágenes carecen de etiquetas específicas.

Siéntase libre de revisar otras reglas apoyamos desde el primer momento.

Creación de evidencia: Antes de evaluar sus políticas, necesita generar la evidencia necesaria. Utilice Valint para crear evidencia para su imagen de destino:

valint bom nginx:latest -o attest

Este comando genera evidencia para el nginx:latest imagen, asegurándose de que incluya metadatos como la identidad de la imagen y el tiempo de creación. De forma predeterminada, Valint utiliza el tienda de firmas servicio como firmante para la generación de evidencia, que vincula una identidad OIDC a un certificado. Sin embargo, Valint también admite el uso de su propia x509 Claves PKI y cadenas CA para firma.

Iniciar sesión en Sigstore

Simplemente seleccione el identificador OIDC de su elección para iniciar sesión.

Finalmente, puede revisar el éxito del proceso de generación de evidencia junto con su identidad para garantizar su integridad y confiabilidad.

[2024-03-26 12:41:55] INFORMACIÓN atestada: [CONFIABLE] firma exitosa, CA: fulcio-signer, CN: sigstore-intermediate, Correos electrónicos: [your_identity@gmail.com], URI: []... [2024-03-26 12:41:55] Certificado INFO: evidencia generada exitosamente

Evaluación de políticas: una vez definida su política y generada la evidencia, es hora de evaluarla con respecto a los componentes de su cadena de suministro. Utilice el valint verify comando seguido de la imagen de destino y su archivo de política:

valint verify nginx:latest --policy my_policy.yaml

Resumen de la evaluación:

Una vez que se complete la evaluación, revise la tabla de resumen proporcionada por los registros de Valint.

Mesa

En este caso particular, el análisis de Valint ilustra que la nginx:latest La imagen cumple con éxito el requisito de frescura pero no cumple con los criterios de etiquetado, como se anticipó. La tabla proporcionada describe de manera concisa el estado de evaluación de cada regla y señala si las pruebas se firmaron correctamente.

Resultados con formato SARIF:

Además, puede explorar los resultados con formato SARIF producidos por Valint como otra prueba más para detallar la evaluación, las violaciones, los niveles y las referencias de evidencia.

Plataformas de gestión compatibles:

Este formato estandarizado cuenta con el soporte de varios sistemas de gestión de seguridad, como GitHub, Azure y Scribe SAAS. Las plataformas Scribe no solo manejan resultados de políticas, sino que también facilitan la gestión de evidencia y ofrecen amplias funciones para la gestión de vulnerabilidades, seguimiento de métricas y más.

Vista previa de la información:

Para dar una idea de la información disponible en los resultados de las políticas:

Captura de pantalla

{ "versión": "2.1.0", "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", "ejecuta": [ { "herramienta": { "controlador": { "informationUri": "https://scribesecurity.com", "nombre": "valint", "reglas": [ { "id": "fresh -image", "name": "Imagen nueva", "shortDescription": { "text": "Una regla para verificar que la imagen no sea anterior a un umbral" }, }, { "id": "labels", "name": "Etiquetas", "shortDescription": { "text": "Una regla para verificar que la imagen tenga todas las etiquetas requeridas" }, }, "resultados": [ { "ruleId": "fresh-image" , "ruleIndex": 0, "kind": "pass", }, { "ruleId": "labels", "ruleIndex": 1, "kind": "fail", "level": "advertencia", "política .violación": { "tipo": "Etiquetas faltantes", "detalles": [ { "etiqueta": "not_found" }, { "etiqueta": "org.opencontainers.image.source" } }, ... ] }

Paquetes de pólizas

Un paquete en Valint es una política como paquete de código, esencialmente un Repositorio de Git albergar un conjunto de políticas y reglas. Los usuarios pueden configurar su propio paquete bifurcando el repositorio de muestra proporcionado por Valint y personalizándolo según sus necesidades.

Bifurcar y personalizar: Comience bifurcando Valint's repositorio de muestra. Personalice políticas y reglas para alinearlas con las necesidades de su organización.

Provisión a Valint: Proporcione su paquete personalizado a Valint:

valint verificar --bundle https://github.com/my_org/my_bundle.git \ --policy my_policy.yaml

Reglas personalizadas

Al personalizar las reglas, la responsabilidad fundamental es analizar la carga útil de evidencia e informar violaciones según los criterios de cumplimiento definidos. Ya sea que esté modificando reglas existentes o creando otras nuevas.

Definición de criterios de cumplimiento: Definir los criterios de cumplimiento basados ​​en políticas organizacionales, estándares de seguridad o regulaciones.

Definición de los criterios de evidencia: Definir las pruebas que se espera que transmitan el cumplimiento.

Evaluación del cumplimiento y notificación de infracciones: Utilice la carga útil de evidencia para evaluar el cumplimiento con respecto a los criterios definidos. Informar violaciones si el componente no cumple con los requisitos.
Valint garantiza que los requisitos de origen de pruebas y firmas estén disponibles para cualquier regla personalizada.

Si bien Valint actualmente emplea OPA Rego Para la formulación de reglas, aguarda un horizonte emocionante ya que las reglas de Python están programadas para su integración en un futuro cercano.

¿Qué es lo siguiente?

¡La integración con Gatekeeper ya es accesible! Consulte nuestro documentación para detalles. Estén atentos a una próxima publicación de blog donde profundizaremos en este emocionante desarrollo.

Esté atento a futuras publicaciones de blog donde exploraremos iniciativas de políticas, incluidas políticas de alto nivel que implementarán marcos de seguridad como SLSA y SSDF.

¡Noticias emocionantes para los entusiastas de Python! Nuestra última actualización incluye una amplia compatibilidad con Python, lo que proporciona un aumento significativo de la compatibilidad. Esto permite a los redactores de políticas personalizar reglas utilizando Python y aprovechar su amplia gama de bibliotecas.

Conclusión

En resumen, el motor de políticas de Valint ofrece una solución sólida para garantizar el cumplimiento dentro de su cadena de suministro. Al aprovechar sus componentes, como evidencia, políticas y paquetes, las organizaciones pueden optimizar los esfuerzos de cumplimiento y mitigar los riesgos de manera efectiva.

Este contenido es presentado por Scribe Security, un proveedor líder de soluciones de seguridad de la cadena de suministro de software de extremo a extremo, que ofrece seguridad de última generación para artefactos de código y procesos de desarrollo y entrega de código en todas las cadenas de suministro de software. Más información.