luizmachado.dev

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

  1. 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.

  1. 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.

  1. 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

  1. Quarentena automática

- EventBridge ➜ Lambda ➜ remove role do agente e marca instância EC2 com tag Quarantine=true.

  1. Reversão de código

- Use git revert automatizado via pipeline; restaure ultima versão de artefato imutável.

  1. Forense

- Criar snapshot EBS; exportar logs SSM & CloudTrail; analisar rule file malicioso.

  1. 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.