계: API Abuse
API는 호출자와 피호출자 간의 계약입니다. 가장 흔한 형태의 API 오용은 호출자가 이 계약에서 자신의 몫을 이행하지 못하기 때문에 발생합니다. 예를 들어, 프로그램이 chroot()를 호출한 후 chdir()을 호출하지 못하면 활성 루트 디렉터리를 안전하게 변경하는 방법을 지정하는 계약을 위반하는 것입니다. 라이브러리 오용의 또 다른 좋은 예는 피호출자가 호출자에게 신뢰할 만한 DNS 정보를 반환할 것으로 예상하는 것입니다. 이 경우, 호출자는 자신의 행동에 대해 특정한 가정을 함으로써(반환 값이 인증 목적으로 사용될 것으로 예상) 피호출자 API를 오용합니다. 다른 쪽에서 호출자-피호출자 계약을 위반할 수도 있습니다. 예를 들어, 코더가 하위 클래스 SecureRandom을 지정하고 임의 값이 아닌 값을 반환하는 경우 계약을 위반하는 것입니다.
User or System Dependent Program Flow
Abstract
사용자 또는 시스템 종속 프로그램 흐름은 나쁜 프로그래밍 습관이며 백도어의 가능성이 있습니다.
Explanation
SAP 시스템은 광범위한 인증 구성 및 액세스 관리를 제공합니다. 또한 시스템 역할에 따라 권한을 제한하기 위한 시스템 수준 구성도 사용할 수 있습니다. 이러한 기능 때문에 사용자 또는 시스템 종속 프로그래밍이 부적절합니다. 즉, 보안 구성된 고객 운영 환경에서 프로그램의 기능이 프로그램을 실행하는 사용자 또는 프로그램이 실행되고 있는 시스템에 종속되는 시나리오는 있을 수 없습니다. 따라서 사용자 또는 시스템 세부 정보를 쿼리하여 프로그램 흐름을 영향을 주는 것은 나쁜 습관이며 백도어가 있음을 나타낼 수 있습니다.
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