Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Implemente la validación de seguridad de la codificación en tiempo real mediante un servidor MCP con Kiro y otros asistentes de codificación
Ivan Girardi e Iker Reina Fuente, Amazon Web Services
Resumen
Este patrón describe cómo implementar un servidor de Model Context Protocol (MCP) que integre tres herramientas de escaneo de seguridad estándar del sector para proporcionar un análisis exhaustivo de la seguridad del código. El servidor permite a los asistentes de codificación de IA (como Kiro, Amazon Q Developer y Cline) escanear automáticamente fragmentos de código y configuraciones de infraestructura como código (IaC). Con estos escaneos, los asistentes de codificación pueden ayudar a identificar las vulnerabilidades de seguridad, los errores de configuración y las infracciones de conformidad.
Los generadores de códigos de IA entrenados con millones de fragmentos de código crean un punto ciego en materia de seguridad. ¿Cuán seguros estaban los datos de entrenamiento? Este patrón proporciona una validación de seguridad en tiempo real durante la generación del código, lo que ayuda a los desarrolladores a identificar y comprender los posibles problemas de seguridad a medida que codifican. Este enfoque ayuda a los desarrolladores a abordar tanto las vulnerabilidades directas como los riesgos heredados de las dependencias. Al cerrar la brecha entre la eficiencia de la IA y el cumplimiento de las normas de seguridad, este patrón ayuda a permitir la adopción segura de herramientas de desarrollo impulsadas por la IA.
Este patrón ayuda a las organizaciones a mejorar sus prácticas de seguridad de desarrollo mediante herramientas de codificación asistidas por IA, que proporcionan capacidades de escaneo de seguridad continuo en varios lenguajes de programación y definiciones de infraestructura. La solución combina las capacidades de las siguientes herramientas:
Compruebe si puede escanear archivos de IaC, incluidos los manifiestos de Terraform y AWS CloudFormation Kubernetes
Semgrep para analizar múltiples lenguajes de programación como Python JavaScript, Java y otros
Bandit para el escaneo de seguridad especializado en Python
Entre las principales características de esta solución se incluyen las siguientes:
Escaneo delta de nuevos segmentos de código, lo que reduce la sobrecarga computacional
Entornos de herramientas de seguridad aislados, lo que evita la contaminación entre herramientas
Integración perfecta con los asistentes de codificación de IA (Kiro, Amazon Q Developer, Cline y otros)
Comentarios de seguridad en tiempo real durante la generación de código
Reglas de escaneo personalizables para el cumplimiento organizacional
El patrón proporciona una interfaz unificada para el escaneo de seguridad con formatos de respuesta estandarizados, lo que facilita la integración de los controles de seguridad en los flujos de trabajo de desarrollo. El patrón utiliza Python y el marco MCP para ofrecer comentarios de seguridad automatizados. Este enfoque ayuda a los desarrolladores a identificar y abordar los problemas de seguridad al principio del proceso de desarrollo, a la vez que aprenden sobre las mejores prácticas de seguridad a través de hallazgos detallados.
Requisitos previos y limitaciones
Requisitos previos
Un desarrollador activo Cuenta de AWS con acceso a Kiro o Amazon Q, si quieres usar alguno de esos asistentes de codificación
Familiaridad con las herramientas y conceptos de escaneo de seguridad
Comprensión básica de la IaC y la seguridad de las aplicaciones
Limitaciones
El escaneo de bandidos se limita únicamente a los archivos de Python.
El escaneo en tiempo real puede afectar al rendimiento de bases de código grandes.
Las limitaciones específicas de la herramienta se basan en los formatos de archivo y los idiomas compatibles.
Se requiere una revisión manual para validar los hallazgos de seguridad.
Los resultados de los escaneos de seguridad requieren experiencia en seguridad para una interpretación adecuada.
Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte AWS Services by Region
. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.
Versiones de producto
Python versión 3.10 o posterior
Checkov versión 3.0.0 o posterior
Semgrep versión 1.45.0 o posterior
Bandit, versión 1.7.5 o posterior
MCP [cli] versión 1.11.0 o posterior
Pydantic, versión 1.10.0 o posterior
Loguru versión 0.6.0 o posterior
Arquitectura
En el siguiente diagrama se muestra la arquitectura para esta solución.

En el diagrama, se muestra el siguiente flujo de trabajo:
El desarrollador utiliza asistentes de IA (por ejemplo, Kiro, Cline, Amazon Q Developer o Roo Code) para generar o analizar el código. El asistente de IA envía el código para escanearlo de seguridad.
El servidor de escáner de seguridad MCP procesa la solicitud enrutándola al escáner especializado apropiado: Checkov para archivos IAC, Semgrep para el análisis de múltiples lenguajes de programación o Bandit para el escaneo de seguridad específico de Python.
El asistente de IA envía al desarrollador los resultados del escáner, con los datos de seguridad, los niveles de gravedad, las descripciones detalladas y las correcciones sugeridas.
Se establece un circuito de retroalimentación continuo en el que el desarrollador recibe una validación de seguridad en tiempo real, lo que permite realizar correcciones automatizadas mediante asistentes de IA y promueve las mejores prácticas de seguridad durante el desarrollo.
La arquitectura mitiga los siguientes riesgos de seguridad comunes:
Inyección de comandos
Inyección rápida
Recorrido de trayectoria
Ataques de dependencia
Agotamiento de recursos
La arquitectura mitiga estos riesgos de seguridad comunes mediante la implementación de las siguientes prácticas recomendadas:
Todas las entradas del usuario y del modelo de IA se escriben en archivos temporales.
No se proporcionan entradas directas a los comandos de la interfaz de línea de comandos (CLI).
El acceso al sistema de archivos está restringido únicamente a los directorios y archivos temporales.
Los archivos temporales se limpian automáticamente.
Las respuestas de escaneo están desinfectadas.
Se aplica un aislamiento del proceso que restringe las capacidades del proceso.
Se registran todas las actividades de escaneo.
Automatización y escala
El patrón admite la automatización a través de las siguientes capacidades:
Integración con asistentes de codificación de IA para el escaneo automático de códigos
Respuestas de API estandarizadas para el procesamiento automatizado
Configuración mediante archivos de configuración MCP
Support para el procesamiento por lotes de varios archivos
Escaneo escalable en varios lenguajes de programación y formatos IaC
El proceso de escaneo se puede automatizar a través de los puntos finales de la API proporcionados:
scan_with_checkovpara escanear iACscan_with_semgreppara escanear códigos en varios idiomasscan_with_banditpara escaneos específicos de Pythonget_supported_formatspara la validación del formato
Al ampliar las herramientas de digitalización, siga los principios de diseño y las prácticas recomendadas descritos anteriormente en esta sección. Consulte también las prácticas recomendadas.
Tools (Herramientas)
Servicios de AWS
Kiro
es un servicio de programación agencial que trabaja junto con los desarrolladores para convertir las indicaciones en especificaciones detalladas y, luego, en código funcional, documentos y pruebas. Los agentes de Kiro ayudan a los desarrolladores a resolver problemas complejos y a automatizar tareas como la generación de documentación y las pruebas unitarias. Amazon Q Developer es un asistente conversacional generativo basado en inteligencia artificial que puede ayudarlo a comprender, crear, ampliar y operar aplicaciones. AWS
Otras herramientas
Bandit
es una herramienta de escaneo de seguridad especializada en Python. Detecta problemas de seguridad comunes de Python, como funciones inseguras, secretos codificados y vulnerabilidades de inyección. Bandit proporciona índices detallados de confianza y gravedad. Checkov
es una herramienta de análisis de código estático que comprueba si el IaC está mal configurado en materia de seguridad y conformidad. Además, Checkov detecta las infracciones de conformidad y las mejores prácticas de seguridad. Cline
es un asistente de codificación impulsado por IA que se ejecuta en VS Code. Loguru
es una biblioteca de validación de datos para Python. El Model Context Protocol (MCP)
es un marco de código abierto para crear herramientas de desarrollo asistidas por IA. Pydantic
es una biblioteca de validación de datos para Python. Semgrep
analiza el código fuente en busca de vulnerabilidades y errores de seguridad. Es compatible con varios lenguajes de programación. Semgrep utiliza conjuntos de reglas centrados en la seguridad para un análisis exhaustivo. Proporciona calificaciones detalladas de confianza y gravedad.
Repositorio de código
El código de este patrón está disponible en el repositorio GitHub MCP Security Scanner: Real-Time Protection for AI Code Assistants
La estructura del repositorio incluye lo siguiente:
security_scanner_mcp_server/- Implementación del servidor principaldocs/- Documentación y materiales de demostracióntests/- Archivos de pruebamcp-config-example.json- Ejemplo de configuración de MCPrequirements.txt- Dependencias del proyecto
Prácticas recomendadas
Implementación de escaneos de seguridad
Revise los hallazgos de seguridad para validar y priorizar los problemas.
Mantenga las herramientas de escaneo (Checkov, Semgrep y Bandit) actualizadas a las versiones más recientes.
Utilice la herramienta de seguridad MCP de este patrón junto con otras medidas y herramientas de seguridad.
Actualice los conjuntos de reglas y políticas de seguridad con regularidad.
Administración de la configuración
Utilice los archivos de configuración del MCP de la fuente oficial de control de versiones.
Documente las reglas y configuraciones personalizadas.
Integration
Integre el escaneo de seguridad al principio del ciclo de desarrollo.
Configure el escaneo automatizado en enlaces previos a la confirmación o en canalizaciones de integración e implementación continuas (CI/CD).
Configure los umbrales de gravedad adecuados para su entorno.
Establezca procedimientos claros para gestionar los hallazgos de seguridad.
Consideraciones operativas
Supervise el rendimiento del escaneo y el uso de los recursos.
Implemente un manejo y registro de errores adecuados.
Mantenga la documentación de las configuraciones personalizadas.
Establezca un proceso para revisar y actualizar las reglas de seguridad.
Además, tenga en cuenta las siguientes prácticas recomendadas:
Valide siempre los hallazgos de seguridad en su contexto específico.
Mantenga actualizadas las dependencias y las herramientas de seguridad.
Utilice varias herramientas de seguridad para obtener una cobertura integral.
Siga las mejores prácticas de seguridad en su proceso de desarrollo.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configure los ajustes del MCP. | Puede editar los archivos de configuración en Kiro (opción 1) localizándolos manualmente o (opción 2) utilizando el IDE de Kiro.
| Desarrollador de aplicaciones |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configure los ajustes del MCP. | Para configurar los ajustes del MCP manualmente, siga estos pasos:
| Desarrollador de aplicaciones |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configure los ajustes del MCP. | Para configurar los ajustes del MCP manualmente, siga estos pasos:
| Desarrollador de aplicaciones |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Realice el análisis del código. | Para realizar un análisis de código mediante Python y Bandit, siga los siguientes pasos:
| Desarrollador de aplicaciones |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Realice el análisis del código. | Para realizar un análisis de código mediante Terraform y Checkov, siga los siguientes pasos:
| Desarrollador de aplicaciones |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Realice un escaneo específico. | A continuación, se muestran algunos ejemplos de solicitudes que puede utilizar para realizar un análisis específico:
| Desarrollador de aplicaciones |
Utilice el escaneo de seguridad con la generación de código. | Para resolver los problemas de seguridad mediante bucles de generación de código, siga los siguientes pasos (en este ejemplo se utiliza Kiro como asistente de codificación):
| Desarrollador de aplicaciones |
Resolución de problemas
| Problema | Solución |
|---|---|
Problemas de configuración del entorno |
|
Problemas con el escáner |
|
Problemas de integración |
|
Compatibilidad adicional |
|
Recursos relacionados
AWS documentación
La infraestructura como código (AWS documento técnico: introducción a DevOps On) AWS
Otros recursos AWS
Otros recursos
Información adicional
Ejemplo de configuración de MCP con la aprobación automática habilitada
Si no autoApprove está configurado, el usuario debe aprobar el envío del código al servidor de seguridad MCP para su escaneo. Cuando autoApprove está configurado, el asistente de código puede invocar las herramientas sin la aprobación del usuario. Estas herramientas se ejecutan localmente en la máquina, no se envían datos y solo se escanea el código.
La siguiente configuración permite la ejecución automática de todas las funciones de escaneo de seguridad:
{ "mcpServers": { "security-scanner": { "command": "uvx", "args": [ "--from", "git+https://github.com/aws-samples/sample-mcp-security-scanner.git@main", "security_scanner_mcp_server" ], "env": { "FASTMCP_LOG_LEVEL": "ERROR" }, "disabled": false, "autoApprove": [ "scan_with_checkov", "scan_with_semgrep", "scan_with_bandit", "get_supported_formats" ] } } }
Para habilitar el registro de depuración, establézcalo en"FASTMCP_LOG_LEVEL". "DEBUG"
Formatos de archivo compatibles con las herramientas de análisis de seguridad
Cada herramienta de análisis de seguridad de esta solución admite los siguientes formatos de archivo:
Checkov (iAC)
Terraform: .tf, .tfvars, .tfstate
CloudFormation — .yaml, .yml, .json, .template
Kubernetes: .yaml, .yml
Dockerfile — Dockerfile
ARM — .json (administrador de recursos de Azure)
Bíceps: .bicep
Sin servidor: .yml, .yaml
Helm: .yaml, .yml, .tpl
GitHub Acciones: .yml, .yaml
GitLab_ci: .yml, .yaml
Ansible: .yml, .yaml
Semgrep (código fuente)
Python — .py
JavaScript — .js
TypeScript — .ts
Java — .java
Ir — .go
C — c.
C++ — .cpp
C# — .cs
Ruby — .rb
PHP — .php
Scala — .scala
Kotlin — .kt
Rust — .rs
Bandit (solo en Python)
Python — .py
Demostraciones
Para escanear códigos, prueba los siguientes ejemplos de instrucciones con tu asistente de IA:
«Escanea el script actual y dime los resultados».
«Escanea las líneas 20 a 60 y dime los resultados».
«Escanee este recurso de tabla de Amazon DynamoDB y dígame el resultado».
Para obtener más información, consulte esta demostración de escaneo de código
Para generar código seguro, prueba los siguientes ejemplos de instrucciones:
«Genere una configuración de Terraform para crear una tabla de DynamoDB con el cifrado activado y escanéela para detectar problemas de seguridad».
«Cree una función Lambda de Python que escriba en DynamoDB y analícela en busca de vulnerabilidades».
«Genere una CloudFormation plantilla para un bucket de S3 con la configuración de seguridad adecuada y compruebe que supera las comprobaciones de seguridad».
«Escriba un script de Python para consultar DynamoDB con paginación y busque las mejores prácticas de seguridad».
«Cree un manifiesto de despliegue de Kubernetes para un microservicio que refuerce la seguridad y valídelo».
Para obtener más información, consulta esta demostración de generación de código con escaneo de seguridad