Weaknesses of type CWE-318

1 result

Armazenamento em texto plano de informações sensíveis em executáveis

Informações sensíveis (senhas, chaves, tokens, credenciais) são gravadas sem criptografia dentro do código compilado ou executável da aplicação. Qualquer pessoa com acesso ao binário pode extrair essas credenciais usando ferramentas simples de análise estática, comprometendo toda a segurança da aplicação.

Example

Um desenvolvedor coloca a senha do banco de dados como string literal no código-fonte: `const dbPassword = "Admin123!"`. Quando o código é compilado, essa senha fica legível dentro do executável .exe ou .jar, e um atacante que conseguir acesso ao binário (por download, vazamento ou engenharia reversa) extrai a credencial imediatamente.

How to mitigate

Nunca codifique secrets no código; use variáveis de ambiente, arquivos de configuração protegidos fora do repositório, ou gerenciadores de secrets (como HashiCorp Vault, AWS Secrets Manager). Se precisar armazenar dados sensíveis no executável, criptografe com uma chave derivada de forma segura e nunca exponha a chave no mesmo binário.