Visión general
Este documento describe el funcionamiento del Agente de Confianza de Secure Code Warrior con el propósito de asistir en la realización de revisiones de riesgo y seguridad. Una parte fundamental de la funcionalidad del Agente de confianza de SCW es la integración con herramientas de gestión de código fuente (SCM) basadas en Git, como GitHub, GitLab y Bitbucket. El Trust Agent proporciona una visibilidad mejorada de la postura de seguridad de las aplicaciones de una organización cerrando la brecha entre la formación de seguridad de las aplicaciones y los commits de código de los desarrolladores.
Diseño de alto nivel
SCW Trust Agent puede conectarse con su entorno Git SCM a través de una variedad de métodos dependiendo del entorno y las políticas específicas de su organización.
En las instalaciones
Este método implica la ejecución de un contenedor en su entorno totalmente configurado y gestionado por su equipo. La imagen del contenedor se publica en
- ghcr.io/securecodewarrior/trust-agent:latest
El uso de este enfoque de contenedor permite conectarse a plataformas de gestión de código fuente tanto basadas en la nube como locales, y el contenedor local puede ejecutarse con la frecuencia que usted elija.
La imagen del contenedor incluye una aplicación de línea de comandos que se ejecuta automáticamente y se configura mediante variables de entorno que se pasan al contenedor. Esto incluye todos los secretos, tokens y claves necesarios para acceder a sus repositorios Git, así como una clave API para conectarse a la API de Trust Agent. La aplicación de línea de comandos clonará los repositorios configurados localmente dentro del contenedor y, a continuación, procesará y resumirá los datos de confirmación antes de enviar automáticamente los datos resumidos a la API de Trust Agent y finalizar. En ningún momento el código fuente de su organización, o las claves para acceder al código fuente de su organización, abandonan su entorno bajo este enfoque.
Aplicación GitHub
Este enfoque es específico para organizaciones que utilizan GitHub Cloud o GitHub Enterprise Cloud como herramienta de gestión del código fuente. Implica una GitHub App que se instala en tu organización GitHub. Los entornos locales de GitHub no admiten la instalación de GitHub Apps publicadas y deberán utilizar un método alternativo.
Esta GitHub App requiere los siguientes permisos:
-
Sólo lectura - Contenido del repositorio
Se utiliza para leer los commits del repositorio con el fin de almacenar una forma resumida en el Trust Agent para su correlación con el progreso de la formación de los desarrolladores. -
Sólo lectura - Miembros de la organización
Se utiliza para verificar la pertenencia a la organización y para leer las direcciones de correo electrónico aprobadas por la organización para los autores de confirmaciones con el fin de permitir la correspondencia de las identidades de los desarrolladores de GitHub con las identidades de los alumnos de Secure Code Warrior. -
Sólo lectura - Metadatos del repositorio
Acceso obligatorio requerido para todas las aplicaciones de GitHub para buscar repositorios y acceder a los metadatos del repositorio.
En línea con la configuración estándar de instalación de GitHub Apps, puedes seleccionar repositorios específicos para instalarla, o instalarla para todos los repositorios.
Una vez instalado, se requiere un inicio de sesión OAuth adicional para demostrar la pertenencia a la organización GitHub antes de que la organización pueda ser conectada a una entidad de empresa Secure Code Warrior por un usuario administrador de empresa. Una vez conectada la organización a GitHub, el Trust Agent estará disponible para todos los usuarios administradores de la empresa dentro de la empresa Secure Code Warrior.
El Agente de confianza recuperará y actualizará los datos de confirmación cada 6 horas a través de la API de GitHub.
Carga manual
También se proporciona un enfoque manual "fuera de línea" que utiliza la línea de comandos de Git independiente del proveedor con el fin de respaldar las pruebas y los conceptos de prueba del Trust Agent sin necesidad de integrarlo directamente con su entorno de Git, lo que normalmente conlleva una serie de aprobaciones que deben solicitarse. En ningún momento el código fuente de su organización, o las claves para acceder al código fuente de su organización, abandonan su entorno bajo este enfoque.
El enfoque de línea de comandos Git es sencillo y funcionará con cualquier repositorio Git que pueda clonarse localmente en un sistema *nix, independientemente del proveedor de Git. Se proporciona un script que procesará los commits de todos los repositorios dentro de un directorio y mostrará una versión resumida en archivos YAML individuales (uno por repositorio identificado). Estos archivos YAML pueden inspeccionarse manualmente antes de cargarlos en el Trust Agent para rellenar los datos de confirmación. Consulte la sección Flujos de datos a continuación para obtener información detallada sobre los datos exactos que se capturan en los archivos YAML.
Flujos de datos
Entrada al Trust Agent
Los siguientes datos fluyen desde su entorno Git al Trust Agent:
- Datos de confirmación resumidos
- hash de confirmación para identificar de forma exclusiva confirmaciones individuales
- Nombre del autor y del autor de la confirmación para su visualización
- Dirección de correo electrónico del autor y del autor para cotejar las identidades del entorno Git con las identidades de los alumnos de Secure Code Warrior.
- Commit timestamp para determinar si la formación configurada se había completado en el momento de confirmar el código.
- Lista de extensiones de archivo modificadas y/o lenguajes de programación asociados para determinar si la formación configurada se ha completado en el lenguaje apropiado.
- [Sólo en las instalaciones] Clave de API segura de Code Warrrior para autenticarse en el punto final de la API del Agente de confianza para el envío automático de datos resumidos de confirmaciones.
- [Sólo aplicación GitHub] Datos y tokens OAuth
- Tokens para permitir el acceso a las API de GitHub para obtener datos resumidos de confirmaciones
- Información de organización o grupo para verificar la pertenencia
- [Asignación de los inicios de sesión de GitHub a las direcciones de correo electrónico de la organización para una correspondencia más sólida de las identidades del entorno Git con las identidades de los alumnos de Secure Code Warrior.
Todos los flujos de datos utilizan el protocolo HTTPS (TLS) estándar del sector para la autenticación, el cifrado y la integridad.
Salida desde el Trust Agent
Actualmente, no hay flujos de datos desde Trust Agent a su entorno Git, aparte de las comunicaciones necesarias para completar el flujo de OAuth (sólo GitHub) y las solicitudes de clonación de API o Git.
Datos conservados
Trust Agent conserva los siguientes datos y los protege con cifrado AES-256 estándar del sector para permitir el procesamiento y la visualización de información sobre confirmaciones para sus repositorios de Git:
- Hash de confirmación
- Nombre del autor y del autor de la confirmación
- Correo electrónico del autor y del autor de la confirmación
- [Cuando esté disponible, se utilizará la dirección de correo electrónico aprobada por la organización en lugar de la dirección de correo electrónico registrada en la confirmación.
- Marca de tiempo de la confirmación
- Lista de extensiones de archivo modificadas y/o lenguajes de programación asociados
Los siguientes datos se conservan como parte del funcionamiento normal del Agente de confianza:
- Registros de aplicaciones para la resolución de errores
- Análisis de productos
Comentarios
0 comentarios
El artículo está cerrado para comentarios.