Reino: API Abuse

Uma API é um contrato entre quem chama e o que se chama. As formas mais comuns de abuso de API ocorrem quando o responsável pela chamada não respeita sua parte do contrato. Por exemplo, se um programa não chama chdir() após chamar chroot(), ele viola o contrato que especifica como alterar o diretório raiz ativo de forma segura. Outro bom exemplo de abuso de biblioteca é esperar que o elemento chamado retorne informações confiáveis de DNS ao responsável pela chamada. Nesse caso, o responsável pela chamada abusa a API do elemento chamado ao fazer certas suposições sobre seu comportamento (isto é, que o valor de retorno pode ser usado para fins de autenticação). A outra parte também pode violar o contrato entre quem chama e o que se chama. Por exemplo, se um programador definir SecureRandom como subclasse e retornar um valor não aleatório, o contrato será violado.

J2EE Bad Practices: Sockets

Abstract
A comunicação baseada em soquete em aplicativos Web é propensa a erros.
Explanation
O padrão J2EE permite o uso de soquetes apenas para fins de comunicação com sistemas legados, quando nenhum protocolo de nível superior está disponível. A criação do seu próprio protocolo de comunicação requer o combate a difíceis problemas de segurança, incluindo:

- Sinalização em banda versus fora de banda

- Compatibilidade entre versões de protocolo

- Segurança de canais

- Tratamento de erros

- Restrições de rede (firewalls)

- Gerenciamento de sessões

Sem o olhar examinador de um especialista em segurança, são boas as chances de que um protocolo de comunicação personalizado seja afetado por problemas de segurança.

Muitos dos mesmos problemas se aplicam a uma implementação personalizada de um protocolo padrão. Embora existam geralmente mais recursos disponíveis que abordam questões de segurança relacionadas à implementação de um protocolo padrão, esses recursos também estão disponíveis para os invasores.
References
[1] Java 2 Platform Enterprise Edition Specification, v1.4 Sun Microsystems
[2] Standards Mapping - Common Weakness Enumeration CWE ID 246
[3] Standards Mapping - OWASP API 2023 API8 Security Misconfiguration
desc.semantic.java.j2ee_badpractices_sockets