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.

User or System Dependent Program Flow

Abstract
Um fluxo de programa dependente do usuário ou do sistema é uma prática de programação imprópria e indica possíveis invasões de acesso.
Explanation
O sistema SAP possibilita uma extensa configuração de autorização e um amplo gerenciamento do acesso. A configuração em nível de sistema também está disponível para restringir permissões com base na função do sistema. Juntos, esses recursos tornam a programação dependente do usuário ou do sistema totalmente irrelevante. Ou seja, não pode haver um cenário em um sistema produtivo de cliente configurado com segurança no qual a funcionalidade de um programa seja dependente do usuário que o executa ou do sistema no qual esse programa está sendo executado. Portanto, consultar detalhes do usuário ou do sistema para influenciar o fluxo do programa é uma prática imprópria e pode indicar a presença de uma possível invasão de acesso.
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 264
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002235
[3] Standards Mapping - General Data Protection Regulation (GDPR) Access Violation
[4] Standards Mapping - NIST Special Publication 800-53 Revision 4 AC-6 Least Privilege (P1)
[5] Standards Mapping - NIST Special Publication 800-53 Revision 5 AC-6 Least Privilege
[6] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-000500 CAT II
[7] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-000500 CAT II
[8] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-000500 CAT II
desc.structural.abap.user_system_dependent_flow