DEV Community

Quando a IA escreve o código, quem é o responsável pela segurança do software?

Fala galera,

Tudo beleza?

Nos últimos anos, a Inteligência Artificial deixou de ser apenas uma ferramenta de apoio e passou a ocupar um papel ativo dentro do processo de desenvolvimento de software. (ate voltar do futuro e matar todos nós :P)

Hoje é comum encontrar desenvolvedores utilizando GitHub Copilot, ChatGPT, Claude, Gemini, Cursor, Windsurf e outras ferramentas para gerar código, criar testes unitários, construir APIs inteiras, elaborar consultas SQL, escrever documentação e até mesmo propor arquiteturas completas.

A produtividade aumentou significativamente. (Quando utilizada de forma correta e como seu co-piloto)

Mas junto com essa nova "Brincadeira" uma pergunta importante aparece:

Quando a IA escreve o código, quem é o responsável pela segurança do software?

A resposta curta é simples:

Acho que Não é a IA , não é? .

A responsabilidade continua sendo das pessoas, dos times e das empresas que colocam aquele software em produção.

Porém, se nós formos cavar mais ainda a resposta completa é muito mais interessante e nos faz (ou deveria) pensar.

Durante décadas aprendemos que o desenvolvimento de software era uma atividade exclusivamente humana.

Um desenvolvedor escrevia código. Outro revisava. O time de segurança realizava validações. O pipeline executava testes. E o software era publicado.

Com a chegada da IA Generativa, esse fluxo mudou.
Agora temos uma entidade capaz de produzir milhares de linhas de código em segundos.

O problema é que produtividade não significa qualidade. Muito menos segurança.

Eu sei , eu sei... o que eu vou escrever abaixo abre um debate de : "Não mais a minha entende, não mas no meu prompt eu..." . De verdade, na maioria dos casos não.

  • A IA não entende o contexto completo do negócio.
  • Ela não conhece as ameaças específicas da sua organização.
  • Ela não sabe quais controles regulatórios precisam ser atendidos.
  • Ela não conhece sua política de segurança.
  • Ela apenas prevê qual é a próxima sequência de tokens mais provável.

E isso muda completamente a forma como devemos enxergar a responsabilidade sobre o software produzido.

Deixa eu te explicar, você deu as chaves daquele seu carro de estimação que você leva todo final de semana no lava rápido e fica encerando todo domingo pra deixar ele bonito, para um piloto profissional. Porem você nao disse pra ele onde ele pode andar, qual velocidade máxima ele pode atingir e se seu carro tem algum problema, "macete" , o que fazer ou não fazer. Por mais que seja um piloto profissional, você que conhece seu carro...

A IA pode gerar vulnerabilidades?

Meu amigo, as vezes ate quem tem experiencia de anos gera, imagina a IA ?

E isso acontece com muito mais frequência do que muita gente imagina.

Diversos estudos acadêmicos e pesquisas de mercado já demonstraram que ferramentas de geração de código frequentemente produzem soluções vulneráveis.

Entre os problemas mais comuns encontramos:

• SQL Injection
• Command Injection
• Path Traversal
• Hardcoded Secrets
• Autenticação inadequada
• Criptografia insegura
• Falhas de autorização
• Uso de bibliotecas vulneráveis
• Exposição de informações sensíveis

Por exemplo:

`string query =
$"SELECT * FROM Users WHERE Email = '{email}'";

var user = connection.QueryFirstOrDefault(query);`

Uma IA pode facilmente sugerir esse código. Ele funciona. Compila. Entrega o resultado esperado. Mas também introduz uma vulnerabilidade clássica de SQL Injection.

O problema não está na IA.
O problema está em assumir que código funcional é necessariamente código seguro.

Um problema gerado por "vai gerando ai" que eu só preciso colocar no ar. Se é um problema que eu vejo muito em empresas que nem as pessoas querem revisar códigos de equipe, quem dirá o código da IA, que deveria ser pra agilizar a entrega....

A ilusão da confiança

Existe um fenômeno interessante acontecendo dentro das equipes.
Quanto melhor a IA parece ser (ou aqueles 500 agentes que você colocou), mais as pessoas tendem a confiar nela.

Esse comportamento é conhecido como: Automation Bias Ou viés de automação.

É a tendência humana de assumir que uma decisão tomada por um sistema automatizado está correta apenas porque foi produzida por uma máquina.

Na prática isso significa:
• Menos revisões
• Menos questionamentos
• Menos validações
• Menos pensamento crítico

E isso é extremamente perigoso. A IA não substitui o julgamento técnico. Ela amplia a produtividade, São coisas completamente diferentes.

Se uma aplicação sofrer um vazamento de dados, ninguém irá responsabilizar o modelo de IA.

O responsável continuará sendo:
• O desenvolvedor
• O arquiteto
• O time de segurança
• A organização

A responsabilidade continua sendo humana.

A IA não assina contratos.
A IA não responde por auditorias.
A IA não sofre sanções regulatórias.
A IA não participa de processos judiciais.

A responsabilidade continua sendo integralmente humana.

Isso significa que aceitar código gerado por IA sem validação é equivalente a copiar código de um blog ou site aleatório (Alo galera que copiava sem ser do StackOverflow) e enviar diretamente para produção.

Parece absurdo né? Então por que vc ta fazendo isso com o código gerado pela sua IA com informações da sua empresa?

O impacto da IA no SSDLC

O SSDLC (Secure Software Development Lifecycle) nunca foi tão importante.
Na verdade, a IA aumenta ainda mais sua relevância.

Antes, uma vulnerabilidade podia ser introduzida por um desenvolvedor.
Agora ela pode ser reproduzida centenas de vezes por uma IA em poucos minutos.

Por isso cada fase do ciclo de desenvolvimento precisa ser fortalecida.
Requisitos

Requisitos

Definir requisitos de segurança desde o início.

Exemplos:
• MFA obrigatório
• Criptografia de dados
• Logs auditáveis
• Controle de acesso baseado em papéis

Design

Realizar Threat Modeling.

Perguntas importantes:
• O que pode dar errado?
• Quem pode atacar?
• Qual é o impacto?

Implementação

Aplicar boas práticas da OWASP.

Utilizar:
• Parameterized Queries
• Validação de entrada
• Output Encoding
• Gestão adequada de segredos

Verificação

Executar:
• SAST
• DAST
• SCA
• Code Review

Mesmo para código gerado por IA. Principalmente para código gerado por IA.

Operação

Monitoramento contínuo. Detecção de comportamentos anômalos. Resposta a incidentes.

Continua sendo obrigatório prestar atenção nesses pontos.

E claro, se você ainda tem duvidas do SSDLC, aqui no meu blog tenho vários artigos explicando sobre : SSDLC

A IA também pode ajudar a segurança

Beleza, no bom e velho "Morde e assopra" se você tiver um processo seguro bem definido é possível também contar com a IA para ajudar com a segurança.

A mesma tecnologia capaz de gerar vulnerabilidades também pode ajudar a identificá-las.

Hoje já existem soluções capazes de:

• Detectar padrões inseguros
• Revisar Pull Requests
• Gerar testes de segurança
• Explicar vulnerabilidades
• Auxiliar Threat Modeling
• Priorizar correções

Quando usada corretamente, a IA pode se tornar uma aliada poderosa do AppSec. O problema não é utilizar IA ,o problema é utilizá-la sem governança.

O OWASP Top 10 continua relevante?

O Cenário Muda e os problemas voltam, ou seja : Mais do que nunca.

Mesmo com IA produzindo código, as vulnerabilidades mais exploradas continuam sendo essencialmente as mesmas.

O OWASP Top 10 permanece uma das melhores referências para desenvolvimento seguro.

Falhas como:
• Broken Access Control
• Cryptographic Failures
• Injection
• Security Misconfiguration
• Vulnerable Components

continuam aparecendo diariamente em aplicações modernas.
A diferença é que agora elas podem ser introduzidas em escala muito maior.

Estamos entrando em uma nova fase da engenharia de software. Não basta apenas desenvolver software seguro, também precisamos desenvolver software seguro utilizando IA.

Isso envolve:
• Políticas de uso de IA
• Revisão obrigatória de código gerado
• Validação automatizada
• Controle de dependências
• Proteção contra vazamento de dados em prompts
• Governança de modelos
• Treinamento contínuo dos times

A segurança deixa de ser apenas um problema de código.
Passa a ser também um problema de interação entre humanos e sistemas inteligentes.

Talvez a pergunta correta não seja: “A IA escreve código seguro?”

Mas sim:

“Estamos preparados para validar, revisar e proteger o código que a IA escreve?”

Porque no final do dia, independentemente de quem digitou as linhas de código, a responsabilidade pela segurança continua sendo humana.

As imagens desse artigo foram geradas por IA, e eu nem revisei. Isso é pra ver que se talvez as minhas imagens estejam incorretas, imagina o seu código gerado sem revisar... Mas parece certo .. e se não estiver?

Espero ter ajudado!

Aquele abraço!

Top comments (0)