As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implemente a validação de segurança de codificação em tempo real usando um servidor MCP com Kiro e outros assistentes de codificação
Ivan Girardi e Iker Reina Fuente, Amazon Web Services
Resumo
Esse padrão descreve como implementar um servidor Model Context Protocol (MCP) que integra três ferramentas de verificação de segurança padrão do setor para fornecer uma análise abrangente de segurança de código. O servidor permite que assistentes de codificação de IA (como Kiro, Amazon Q Developer e Cline) digitalizem automaticamente trechos de código e configurações de infraestrutura como código (IaC). Com essas verificações, os assistentes de codificação podem ajudar a identificar vulnerabilidades de segurança, configurações incorretas e violações de conformidade.
Geradores de código de IA treinados em milhões de trechos de código criam um ponto cego de segurança. Quão seguros eram esses dados de treinamento? Esse padrão fornece validação de segurança em tempo real durante a geração do código, ajudando os desenvolvedores a identificar e entender possíveis problemas de segurança à medida que codificam. Essa abordagem ajuda os desenvolvedores a lidar com as vulnerabilidades diretas e os riscos herdados das dependências. Ao preencher a lacuna entre a eficiência da IA e a conformidade com a segurança, esse padrão ajuda a permitir a adoção segura de ferramentas de desenvolvimento baseadas em IA.
Esse padrão ajuda as organizações a aprimorar suas práticas de segurança de desenvolvimento por meio de ferramentas de codificação assistidas por IA, fornecendo recursos contínuos de verificação de segurança em várias linguagens de programação e definições de infraestrutura. A solução combina os recursos das seguintes ferramentas:
Checkov para escanear arquivos IaC, incluindo manifestos do Terraform e do AWS CloudFormation Kubernetes
Semgrep para analisar várias linguagens de programação, como Python JavaScript, Java e outras
Bandit para escaneamento de segurança especializado em Python
Os principais recursos dessa solução incluem o seguinte:
Escaneamento delta de novos segmentos de código, reduzindo a sobrecarga computacional
Ambientes isolados de ferramentas de segurança, evitando a contaminação entre ferramentas
Integração perfeita com assistentes de codificação de IA (Kiro, Amazon Q Developer, Cline e outros)
Feedback de segurança em tempo real durante a geração do código
Regras de varredura personalizáveis para conformidade organizacional
O padrão fornece uma interface unificada para verificação de segurança com formatos de resposta padronizados, facilitando a integração das verificações de segurança nos fluxos de trabalho de desenvolvimento. O padrão usa Python e a estrutura MCP para fornecer feedback de segurança automatizado. Essa abordagem ajuda os desenvolvedores a identificar e resolver problemas de segurança no início do processo de desenvolvimento, enquanto aprendem sobre as melhores práticas de segurança por meio de descobertas detalhadas.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS com acesso para usar o Kiro ou o Amazon Q Developer, se você quiser usar qualquer um desses assistentes de codificação
uvgerenciador de pacotes instaladoFamiliaridade com ferramentas e conceitos de escaneamento de segurança
Compreensão básica de IaC e segurança de aplicativos
Limitações
O escaneamento do Bandit é limitado somente aos arquivos Python.
A varredura em tempo real pode afetar o desempenho de grandes bases de código.
As limitações específicas da ferramenta são baseadas nos formatos e idiomas de arquivo suportados.
A revisão manual é necessária para validar as descobertas de segurança.
Os resultados da verificação de segurança exigem experiência em segurança para uma interpretação adequada.
Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Versões do produto
Python versão 3.10 ou versões posteriores
Checkov versão 3.0.0 ou posterior
Semgrep versão 1.45.0 ou posterior
Bandit versão 1.7.5 ou posterior
MCP [cli] versão 1.11.0 ou posterior
Pydantic versão 1.10.0 ou posterior
Loguru versão 0.6.0 ou posterior
Arquitetura
O diagrama apresentado a seguir ilustra a arquitetura para esta solução.

O diagrama mostra o seguinte fluxo de trabalho:
O desenvolvedor usa assistentes de IA (por exemplo, Kiro, Cline, Amazon Q Developer ou Roo Code) para gerar ou analisar código. O assistente de IA envia o código para verificação de segurança.
O servidor do scanner de segurança MCP processa a solicitação roteando-a para o scanner especializado apropriado: Checkov para arquivos IaC, Semgrep para análise de várias linguagens de programação ou Bandit para escaneamento de segurança específico para Python.
Os resultados do scanner com descobertas de segurança, níveis de severidade, descrições detalhadas e correções sugeridas são enviados de volta ao desenvolvedor por meio do assistente de IA.
Um ciclo de feedback contínuo é estabelecido em que o desenvolvedor recebe validação de segurança em tempo real, permitindo correções automatizadas por meio de assistentes de IA e promovendo as melhores práticas de segurança durante o desenvolvimento.
A arquitetura reduz os seguintes riscos comuns de segurança:
Injeção de comando
Injeção imediata
Percurso transversal
Ataques de dependência
Esgotamento de recursos
A arquitetura reduz esses riscos comuns de segurança implementando as seguintes melhores práticas:
Todas as entradas do usuário e do modelo de IA são gravadas em arquivos temporários.
Nenhuma entrada direta é fornecida aos comandos da interface de linha de comando (CLI).
O acesso ao sistema de arquivos é restrito somente a diretórios e arquivos temporários.
Os arquivos temporários são limpos automaticamente.
As respostas de digitalização são higienizadas.
O isolamento do processo que restringe os recursos do processo é imposto.
Todas as atividades de escaneamento são registradas.
Automação e escala
O padrão oferece suporte à automação por meio dos seguintes recursos:
Integração com assistentes de codificação de IA para digitalização automática de código
Respostas de API padronizadas para processamento automatizado
Configuração por meio de arquivos de configuração MCP
Support para processamento em lote de vários arquivos
Digitalização escalável em várias linguagens de programação e formatos IaC
O processo de digitalização pode ser automatizado por meio dos endpoints de API fornecidos:
scan_with_checkovpara digitalização IaCscan_with_semgreppara digitalização de código em vários idiomasscan_with_banditpara escaneamento específico do Pythonget_supported_formatspara validação de formato
Ao estender as ferramentas de digitalização, siga os princípios de design e as melhores práticas descritos anteriormente nesta seção. Veja também as melhores práticas.
Ferramentas
Serviços da AWS
O Kiro
é um serviço de codificação agente que trabalha junto com desenvolvedores para transformar solicitações em especificações detalhadas e, em seguida, em código, documentos e testes funcionais. Os agentes Kiro ajudam os desenvolvedores a resolver problemas desafiadores e automatizar tarefas como gerar documentação e testes unitários. O Amazon Q Developer é um assistente conversacional generativo baseado em IA que pode ajudar você a entender, criar, estender e operar aplicativos. AWS
Outras ferramentas
O Bandit
é uma ferramenta especializada de scanner de segurança em Python. Ele detecta problemas comuns de segurança do Python, como funções inseguras, segredos codificados e vulnerabilidades de injeção. O Bandit fornece classificações detalhadas de confiança e severidade. O Checkov
é uma ferramenta estática de análise de código que verifica o IaC em busca de configurações incorretas de segurança e conformidade. Além disso, o Checkov detecta violações de conformidade e as melhores práticas de segurança. O Cline
é um assistente de codificação com inteligência artificial que é executado no VS Code. Loguru
é uma biblioteca de validação de dados para Python. O Model Context Protocol (MCP)
é uma estrutura de código aberto para criar ferramentas de desenvolvimento assistidas por IA. Pydantic
é uma biblioteca de validação de dados para Python. O Semgrep
analisa o código-fonte em busca de vulnerabilidades e bugs de segurança. Ele suporta várias linguagens de programação. O Semgrep usa conjuntos de regras focados na segurança para uma análise abrangente. Ele fornece classificações detalhadas de confiança e severidade.
Repositório de código
O código desse padrão está disponível no repositório GitHub MCP Security Scanner: Real-Time Protection for AI Code Assistants
A estrutura do repositório inclui:
security_scanner_mcp_server/- Implementação do servidor principaldocs/- Documentação e materiais de demonstraçãotests/- Arquivos de testemcp-config-example.json- Exemplo de configuração MCPrequirements.txt- Dependências do projeto
Práticas recomendadas
Implementação da digitalização
Analise as descobertas de segurança para validar e priorizar os problemas.
Mantenha as ferramentas de digitalização (Checkov, Semgrep e Bandit) atualizadas para as versões mais recentes.
Use a ferramenta de segurança MCP desse padrão em conjunto com outras medidas e ferramentas de segurança.
Atualize os conjuntos de regras e políticas de segurança regularmente.
Gerenciamento de configuração
Use os arquivos de configuração do MCP na fonte oficial de controle de versão.
Documente regras e configurações personalizadas.
Integration
Integre a verificação de segurança no início do ciclo de desenvolvimento.
Configure a digitalização automatizada em ganchos de pré-confirmação ou em pipelines de integração contínua e implantação contínua (CI/CD).
Configure os limites de severidade apropriados para seu ambiente.
Estabeleça procedimentos claros para lidar com as descobertas de segurança.
Considerações operacionais
Monitore o desempenho da digitalização e o uso de recursos.
Implemente o tratamento e o registro de erros adequados.
Mantenha a documentação das configurações personalizadas.
Estabeleça um processo para revisar e atualizar as regras de segurança.
Além disso, lembre-se das seguintes práticas recomendadas:
Sempre valide as descobertas de segurança em seu contexto específico.
Mantenha as ferramentas e dependências de segurança atualizadas.
Use várias ferramentas de segurança para uma cobertura abrangente.
Siga as melhores práticas de segurança em seu processo de desenvolvimento.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Defina as configurações do MCP. | Você pode editar os arquivos de configuração no Kiro (Opção 1) localizando manualmente os arquivos de configuração ou (Opção 2) usando o Kiro IDE.
| Desenvolvedor de aplicativos |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Defina as configurações do MCP. | Para definir as configurações de MCP manualmente, use as seguintes etapas:
| Desenvolvedor de aplicativos |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Defina as configurações do MCP. | Para definir as configurações de MCP manualmente, use as seguintes etapas:
| Desenvolvedor de aplicativos |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Realizar a análise do código. | Para realizar a análise de código usando Python e Bandit, use as seguintes etapas:
| Desenvolvedor de aplicativos |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Realizar a análise do código. | Para realizar a análise de código usando o Terraform e o Checkov, use as seguintes etapas:
| Desenvolvedor de aplicativos |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Execute a digitalização direcionada. | Veja a seguir exemplos de solicitações que você pode usar para realizar uma verificação direcionada:
| Desenvolvedor de aplicativos |
Use a varredura de segurança com geração de código. | Para resolver descobertas de segurança usando loops de geração de código, use as etapas a seguir (este exemplo usa o Kiro como assistente de codificação):
| Desenvolvedor de aplicativos |
Solução de problemas
| Problema | Solução |
|---|---|
Problemas de configuração do ambiente |
|
Problemas com o scanner |
|
Problemas de integração |
|
Suporte adicional |
|
Recursos relacionados
AWS documentação
Infraestrutura como código (AWS Whitepaper Introdução à DevOps on) AWS
Outros AWS recursos
Outros recursos
Mais informações
Exemplo de configuração MCP com aprovação automática ativada
Sem autoApprove configurado, o usuário deve conceder aprovação para enviar o código ao servidor de segurança MCP para digitalização. Quando autoApprove configurado, o assistente de código pode invocar as ferramentas sem a aprovação do usuário. Essas ferramentas são executadas localmente na máquina, nenhum dado é enviado e somente uma varredura de código é executada.
A configuração a seguir permite a execução automática de todas as funções de verificação de segurança:
{ "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 ativar o registro de depuração, "FASTMCP_LOG_LEVEL" defina "DEBUG" como.
Formatos de arquivo suportados pelas ferramentas de verificação de segurança
Cada ferramenta de verificação de segurança dessa solução oferece suporte aos seguintes formatos de arquivo:
Checkov (IAc)
Terraform — .tf, .tfvars, .tfstate
CloudFormation — .yaml, .yml, .json, .template
Kubernetes — .yaml, .yml
Dockerfile — Dockerfile
ARM — .json (Gerenciador de Recursos do Azure)
Bíceps — .bíceps
Sem servidor — .yml, .yaml
Capacete — .yaml, .yml, .tpl
GitHub Ações — .yml, .yaml
GitLab_ci — .yml, .yaml
Ansible — .yml, .yaml
Semgrep (Código fonte)
Python — .py
JavaScript — .js
TypeScript — .ts
Java — .java
Vá — .go
C — c.
C++ — .cpp
C# — .cs
Rubi — .rb
PHP — .php
Scala — .scala
Kotlin — .kt
Ferrugem — .rs
Bandit (somente Python)
Python — .py
Demos
Para digitalização de código, experimente os seguintes exemplos de solicitações com seu assistente de IA:
“Examine o script atual e me diga os resultados.”
“Examine as linhas 20—60 e me diga os resultados.”
“Examine esse recurso de tabela do Amazon DynamoDB e me diga o resultado.”
Para obter mais informações, consulte esta demonstração de digitalização de código
Para gerar um código seguro, experimente os seguintes exemplos de prompts:
“Gere uma configuração do Terraform para criar uma tabela do DynamoDB com criptografia ativada e escaneá-la em busca de problemas de segurança.”
“Crie uma função Python Lambda que grava no DynamoDB e verifique se há vulnerabilidades.”
“Gere um CloudFormation modelo para um bucket S3 com as configurações de segurança adequadas e verifique se ele passa nas verificações de segurança.”
“Escreva um script em Python para consultar o DynamoDB com paginação e verifique as melhores práticas de segurança.”
“Crie um manifesto de implantação do Kubernetes para um microsserviço com reforço de segurança e valide-o.”
Para obter mais informações, consulte esta demonstração de geração de código com verificação de segurança