Reino: API Abuse

Un API es un contrato entre un autor de llamada y un receptor de llamada. Las formas de abuso de API más comunes los produce el autor de llamada cuando no consigue atender su fin de este contrato. Por ejemplo, si un programa no consigue llamar chdir() después de llamar chroot(), se viola el contrato que especifica cómo cambiar el directorio de origen activo de una forma segura. Otro buen ejemplo de un abuso de manual es esperar que el receptor devuelva una información de DNS de confianza al autor de llamada. En este caso, el autor de llamada abusa el API del receptor haciendo determinadas suposiciones sobre su comportamiento (que el valor de retorno se puede usar con fines de autenticación). También se puede violar el contrato entre el autor de llamada y el receptor desde el otro lado. Por ejemplo, si un codificador envía SecureRandom y devuelve un valor no aleatorio, se viola el contrato.

User or System Dependent Program Flow

Abstract
En programación, un flujo de programa dependiente del usuario o del sistema es una mala práctica e indica posibles puertas traseras.
Explanation
El sistema SAP permite una amplia configuración de las autorizaciones y administración del acceso. La configuración a nivel del sistema también está disponible para restringir los permisos en función del rol del sistema. La combinación de estas características hace que la programación dependiente del usuario o del sistema sea irrelevante. Es decir, no puede haber un escenario en un sistema productivo del cliente configurado de forma segura donde la funcionalidad de un programa dependa de que el usuario ejecute el programa o el sistema en el que se ejecuta el programa. Por lo tanto, consultar detalles del usuario o del sistema para influir en el flujo del programa es una mala práctica y puede indicar la presencia de una posible puerta trasera.
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