Como mitigar ataques a code agents na AWS
(ex.: “Rules File Backdoor”, que afeta Copilot/Cursor)
Ferramentas de geração assistida de código — Copilot, Cursor, Amazon Q, agentes LLM customizados, etc. — aumentam a produtividade, mas introduzem uma nova superfície de ataque: o próprio agente pode ser “conduzido” para inserir backdoors ou executar comandos indesejados. Em março de 2025, pesquisadores mostraram o Rules File Backdoor: bastou um arquivo “.rules” (com caracteres Unicode invisíveis) no repositório para induzir Copilot/Cursor a gerar código malicioso e, em certos IDEs, até executá-lo automaticamente.
E aqui segue algumas boas práticas para evitar isso na AWS, com o objetivo de prevenir, detectar e responder a esse tipo de ataque dentro da AWS.
1 • Verificando as camadas
Ação | Como fazer na AWS |
---|---|
Assinatura de commits & revisão obrigatória | • Ative regras de branch protection no CodeCommit ou GitHub.• Exija dois revisores humanos para arquivos “.” (.rules, .vscode, .copilot) e CI/CD. |
Varredura de dependências e secrets | • Amazon CodeWhisperer security scans • Amazon Inspector (ECR / Lambda) + ferramentas OSS (Trivy, Checkov). |
SAST/IAST antes do merge | • AWS CodeBuild + CodeGuru Reviewer para detectar APIs inseguras geradas pelo agente. |
Regras de CODEOWNERS | Atribua proprietários obrigatórios para diretórios contendo configurações de agentes (p. ex. “.copilot/”). |
2 • Confinando o agente
- Ambiente isolado por conta
- Use uma Dev Account por exemplo separada na AWS Organizations.
- Aplique apenas políticas de leitura em repositórios e artifacts, nunca chaves de produção.
- IAM sempre aplicando o menor privilégio
- Crie uma role exclusiva para o agente sem permissão de gravação em S3 críticos, CloudFormation ou IAM.
- Bloqueie ações sensíveis com Service Control Policies (SCPs). Ex.: negar
iam:PutRolePolicy
,s3:DeleteBucket
.
- Network e runtime sandbox
- Rode o agente/IDE em Cloud9, EC2 ou contêiner Fargate numa sub-rede privada.
- Permita saída apenas pelos endpoints necessários (Git, CodeArtifact).
- Use SSM (Systems Manager) Session Manager para acesso auditável, sem portas SSH.
3 • Detectando comportamento malicioso
Sinal | Ferramenta |
---|---|
Downloads ou execuções automatizadas de scripts desconhecidos | GuardDuty (EC2/Flow Logs) + VPC Traffic Mirroring para Suricata. |
Pull-requests contendo código ofuscado/Unicode invisível | CodeGuru Reviewer & filtros RegEx no CodeBuild.(Dica: rejeitar se contiver tags invisíveis do bloco Unicode “Tags”). |
Surge de chamadas API que alteram infraestrutura | CloudTrail + CloudWatch Alarms; integre achados no Security Hub. |
Modificações a .rules , .editorconfig , .copilot* |
Lambda gatilhada por evento do CodeCommit/GitHub Webhook → notifica Slack. |
4 • Guardrails de IA
Camada | Recurso |
---|---|
Entrada | Valide prompts enviados ao agente com Amazon Bedrock Guardrails ou funções Lambda de “lint” que removem comandos perigosos (rm -rf / ). |
Saída | Use a API de Explainability do CodeWhisperer ou CodeGuru para comentar diffs sugeridos e sinalizar inseguranças. |
Políticas de execução | No CodeCatalyst/CodePipeline, habilite aprob. manual obrigatória quando o build contém código gerado por AI (> xx% das linhas alteradas). |
5 • Backups e resiliência contra criptografia de repositórios
- CodeCommit: ativar CloudWatch Events → snapshot externo (S3 Object Lock + versionamento).
- EBS / EFS: políticas imutáveis pelo AWS Backup com cópia cruzada de conta.
- S3 Artifacts: habilitar versão + Object Lock (Governance mode) para impedir sobrescrita.
6 • Resposta rápida
- Quarentena automática
- EventBridge ➜ Lambda ➜ remove role do agente e marca instância EC2 com tag
Quarantine=true
.
- EventBridge ➜ Lambda ➜ remove role do agente e marca instância EC2 com tag
- Reversão de código
- Use
git revert
automatizado via pipeline; restaure ultima versão de artefato imutável.
- Use
- Forense
- Criar snapshot EBS; exportar logs SSM & CloudTrail; analisar rule file malicioso.
- Rotação de credenciais
- Systems Manager ➜ secrets rotation para tokens CI/CD e chaves CodeArtifact.
7 • Checklist rápido
- AWS Account separada + SCP.
- Roles específicas para agentes com MFA condição (
aws:MultiFactorAuthPresent
). - Repositórios com branch protection e CODEOWNERS.
- Pipeline: CodeGuru + Inspector + SAST OSS.
- GuardDuty & Security Hub habilitados.
- Backups imutáveis em outra conta/região.
- Playbook de incidente testado (game day).
Conclusão disso:
Ataques como o “Rules File Backdoor” mostram que o agente de código deve ser tratado como parte da superfície de ataque. A mitigação combina segurança de supply-chain, governança IAM, sandboxing, detecção em tempo real e resposta automatizada. Ao aplicar as camadas acima, você reduz drasticamente a chance de que um agent comprometido alcance seus ambientes AWS ou injete vulnerabilidades silenciosas no seu software.