Desenvolvimento de Software Seguro na Era da IA: Contexto, Skills e Guardrails

A inteligência artificial mudou profundamente a forma como desenvolvemos software. Ferramentas como ChatGPT, Claude, Cursor, GitHub Copilot e agentes de código já conseguem gerar funcionalidades, escrever testes, refatorar código, analisar erros e até executar comandos diretamente no ambiente de desenvolvimento. Não sobra muito para o coder raiz. Mas existe uma questão que merece muito mais atenção:

Como garantir que o código produzido por uma IA seja não apenas funcional, mas também seguro?

A resposta passa por uma mudança de mentalidade. Não basta simplesmente pedir para a IA “escrever código seguro”. É preciso fornecer contexto confiável, conhecimento atualizado, regras explícitas e mecanismos de validação. Nesse cenário, algumas ferramentas começam a se tornar particularmente interessantes.


Contexto é uma das principais defesas contra código incorreto

Um dos problemas mais comuns de ferramentas de IA para desenvolvimento é a geração de código baseada em informações desatualizadas.
Frameworks mudam, APIs são depreciadas, bibliotecas alteram seus contratos, padrões de autenticação evoluem, serviços cloud ganham novas funcionalidades e abandonam outras (Cof cof AWS). Um LLM pode produzir uma resposta extremamente convincente utilizando uma API que já não existe ou, pior, utilizando uma implementação antiga de uma funcionalidade relacionada à segurança.

É aqui que entram repositórios de documentação para IAs como o Context7.

O Context7 fornece documentação atualizada e específica para versões diretamente aos agentes e ferramentas de desenvolvimento baseadas em IA. A proposta é reduzir um problema bastante conhecido: a IA tentar lembrar como uma biblioteca funciona em vez de consultar a documentação correta antes de escrever o código. Isso pode parecer apenas uma melhoria de produtividade ou hype modernete, mas existe uma consequência importante para segurança.

Imagine um agente implementando:

  • autenticação;
  • autorização;
  • OAuth/OIDC;
  • JWT;
  • integração com AWS;
  • acesso a banco de dados;
  • APIs externas;
  • criptografia;
  • configuração de middleware;
  • gerenciamento de sessões.

Uma implementação baseada em uma versão antiga da biblioteca pode ser funcional e, ao mesmo tempo, insegura. Ter acesso à documentação correta e atualizada reduz uma classe inteira de erros antes mesmo que eles cheguem ao código. O próprio Context7 também possui mecanismos voltados à segurança do conteúdo recuperado, incluindo detecção de padrões relacionados a prompt injection e malware.

Contexto atualizado não substitui revisão

É importante deixar isso claro:

Context7 não transforma automaticamente código gerado por IA em código seguro.

Ele resolve outro problema: fornece ao agente uma fonte de contexto mais atual e relevante.

Ainda precisamos de:

  • revisão humana;
  • testes;
  • SAST;
  • análise de dependências;
  • validações de arquitetura;
  • threat modeling;
  • testes de segurança;
  • princípios de menor privilégio.

Mas eliminar documentação desatualizada da cadeia de geração já é uma melhoria importante.


Skills: ensinando a IA como desenvolver

Outro conceito que considero extremamente promissor é o de AI Skills. Em vez de simplesmente perguntar:

“Como faço isso?”

Podemos fornecer ao agente um conjunto estruturado de conhecimentos e regras que determinam como determinada tarefa deve ser executada. É exatamente esse tipo de abordagem que pode ser explorado no Quanta Intelligence – AI Skills. A plataforma disponibiliza skills organizadas em diversas categorias, incluindo desenvolvimento, DevOps, AI/ML, segurança e dados. A diferença conceitual é interessante, porque ao invés de confiar apenas no conhecimento geral do modelo, podemos fornecer ao agente um conjunto de instruções especializadas.

Por exemplo, saca só:

Security Skill

- Nunca armazenar secrets no código.
- Utilizar IAM com menor privilégio.
- Validar entradas externas.
- Não utilizar SQL concatenado.
- Não registrar tokens ou credenciais nos logs.
- Utilizar criptografia para dados sensíveis.
- Aplicar timeouts em chamadas externas.
- Implementar tratamento seguro de erros.
- Criar testes para cenários de autorização.
- Executar análise de dependências antes do merge.

Agora a IA não está apenas respondendo à pergunta: está trabalhando dentro de um conjunto de regras arquiteturais e de segurança, passo importante em direção a agentes de desenvolvimento mais governáveis.


O terceiro elemento: OWASP

Quando falamos de segurança, existe uma referência que não deveria ficar de fora:

OWASP Cheat Sheet Series – Secure Coding with AI

A OWASP publicou orientação específica para desenvolvimento seguro utilizando IA e agentes de código. E isso é particularmente relevante porque os agentes atuais não são mais simples ferramentas de autocomplete.

Eles podem:

  • executar comandos;
  • modificar arquivos;
  • instalar dependências;
  • executar testes;
  • acessar serviços;
  • utilizar credenciais;
  • interagir com APIs;
  • alterar infraestrutura;
  • criar branches e pull requests.

Consequentemente, o modelo de ameaça também mudou, porque um agente com acesso ao terminal e às credenciais do desenvolvedor possui uma superfície de ataque muito maior do que um simples chatbot. A OWASP recomenda, entre outras coisas, avaliar cuidadosamente ferramentas e servidores MCP, aplicar least privilege (MENOR PRIVILÉGIO), revisar alterações e controlar quais ferramentas um agente pode utilizar.
Vou abrir e fechar um parentesis aqui: lei do menor privilégio é assunto de 10+ anos se bobear.


Context7 + Skills + OWASP

É aqui que essas iniciativas ficam particularmente interessantes quando combinadas.

Sendo assim e baseado em tudo o que eu falei até agora, pega essa visão:

                  ┌─────────────────────┐
                  │   Desenvolvedor     │
                  └──────────┬──────────┘
                             │
                             ▼
                  ┌─────────────────────┐
                  │     AI Agent        │
                  └──────────┬──────────┘
                             │
              ┌──────────────┴──────────────┐
              ▼                             ▼
     ┌─────────────────┐          ┌─────────────────┐
     │    Context7     │          │   AI Skills     │
     │                 │          │                 │
     │ Docs atualizadas│          │ Regras e padrões│
     │ APIs / versões  │          │ Segurança       │
     └────────┬────────┘          └────────┬────────┘
              │                            │
              └──────────────┬─────────────┘
                             ▼
                  ┌─────────────────────┐
                  │   Código gerado     │
                  └──────────┬──────────┘
                             │
                             ▼
                  ┌─────────────────────┐
                  │ Security Gates      │
                  │                     │
                  │ SAST                │
                  │ SCA                 │
                  │ Tests               │
                  │ Code Review         │
                  │ Threat Modeling     │
                  └──────────┬──────────┘
                             │
                             ▼
                  ┌─────────────────────┐
                  │   Production        │
                  └─────────────────────┘

A grande mudança é que a IA deixa de ser tratada simplesmente como uma ferramenta de geração de código, ela passa a fazer parte de um processo de engenharia controlado.

Faz sentido para você? =)


A IA precisa de contexto, mas também precisa de limites

Existe uma tendência natural de pensar:

“Quanto mais acesso a gente dá (lá ele) para o agente, mais poderoso ele será.”

E está certinho! Porém, todavia, entretanto, しかし, significa o seguinte:

“Quanto mais acesso dermos para o agente, maior será o impacto de um erro.”

Por isso, o futuro do desenvolvimento assistido por IA provavelmente não será apenas sobre modelos mais inteligentes. Será também sobre agentes mais bem contextualizados e controlados.

Um agente que conhece:

  • o código da aplicação;
  • a documentação atual;
  • os padrões arquiteturais;
  • as regras de segurança;
  • as políticas da empresa;
  • as restrições de infraestrutura;

é potencialmente muito mais útil do que um agente que simplesmente possui um modelo mais poderoso.


Segurança precisa entrar antes do código

Tradicionalmente, muitas organizações tratam segurança como uma etapa posterior:

Desenvolver
    ↓
Testar
    ↓
Deploy
    ↓
Security

Com agentes de IA, esse modelo fica cada vez menos adequado e assim, uma abordagem melhor seria:

Contexto
   ↓
Regras
   ↓
IA
   ↓
Código
   ↓
Validação
   ↓
Security Gates
   ↓
Deploy

A segurança passa a fazer parte do contexto de geração, e não apenas da validação posterior. Isso não significa confiar cegamente na IA, mas sim usar a IA dentro de um sistema no qual boas práticas, documentação, políticas e validações cercam o processo de geração.


Mais algumas referências que vale acompanhar

Além do Context7, Quanta e OWASP, existem outros projetos e referências que merecem atenção nesse ecossistema.

1. Agent Skills

O conceito de Agent Skills está se consolidando como uma maneira de distribuir conhecimento especializado para agentes de IA. O próprio ecossistema do Context7 já permite pesquisar, instalar e gerar skills para diferentes stacks e agentes.

2. AWS Prescriptive Guidance

Para quem trabalha com cloud e agentes de desenvolvimento, a documentação da AWS sobre Coding Agents também é uma referência interessante. Ela trata agentes como sistemas capazes de interpretar objetivos, acessar o ambiente de desenvolvimento e executar ações.

AWS Prescriptive Guidance – Coding Agents

3. OWASP

Além do material específico sobre secure coding com IA, a OWASP está construindo uma série de referências para segurança de agentes, MCP e prompt injection.

OWASP Cheat Sheet Series


Minha conclusão

Dito isso tudo:

Acredito que já estamos em uma fase em que saber programar não será suficiente, também é necessário saber orientar, restringir, validar e supervisionar agentes de programação.

Porque digo que “já estamos”? Pois a IA avança numa velocidade jamais inimaginável, com corporações despejando caminhões de dinheiro em busca da corrida pelo “domínio da IA”. Todos os players já perceberam que “domar a IA” significa deter para si uma vantagem competitiva jamais vista antes.

Para os mais antigos, é praticamente a corrida armamentista em busca de quem consegue fabricar a bomba atômica. E o ponto não é apenas “ter a bomba na mão para jogar na cabeça de alguém” mas obter os benefícios de quem detem a tecnologia.

Mas, divago.

Tecnicamente falando, contexto atualizado + conhecimento especializado (e das regras de execução) + modelo de segurança e controles para Modelagem de Ameaças (Threat Modeling), vamos para algo muito maior: Secure AI-Assisted Software Engineering.

Não devemos perguntar apenas:

“A IA consegue escrever esse código?”

Precisamos começar a perguntar:

“Que contexto a IA recebeu, quais regras está seguindo, quais permissões possui e como vamos provar que o código produzido é seguro?”

Essa mudança de perspectiva DEVE ser uma das competências mais importantes para profissionais de software nos próximos anos, meses, dias, horas…. agora.

A IA pode escrever muito código.

Nosso trabalho é garantir que ela escreva o código certo, pelas razões certas, dentro dos limites certos.


Referências

A era do código gerado por IA já começou. A próxima etapa é torná-la segura.

(A IA me ajudou a revisar esse texto. Obrigado, IA!)