계: API Abuse

API는 호출자와 피호출자 간의 계약입니다. 가장 흔한 형태의 API 오용은 호출자가 이 계약에서 자신의 몫을 이행하지 못하기 때문에 발생합니다. 예를 들어, 프로그램이 chroot()를 호출한 후 chdir()을 호출하지 못하면 활성 루트 디렉터리를 안전하게 변경하는 방법을 지정하는 계약을 위반하는 것입니다. 라이브러리 오용의 또 다른 좋은 예는 피호출자가 호출자에게 신뢰할 만한 DNS 정보를 반환할 것으로 예상하는 것입니다. 이 경우, 호출자는 자신의 행동에 대해 특정한 가정을 함으로써(반환 값이 인증 목적으로 사용될 것으로 예상) 피호출자 API를 오용합니다. 다른 쪽에서 호출자-피호출자 계약을 위반할 수도 있습니다. 예를 들어, 코더가 하위 클래스 SecureRandom을 지정하고 임의 값이 아닌 값을 반환하는 경우 계약을 위반하는 것입니다.

System Field Overwrite

Abstract
시스템 필드를 덮어쓰면 시스템을 정상적으로 실행할 수 있는 안정성이 저하될 수 있습니다.
Explanation
ABAP 시스템 필드는 ABAP 프로그램에서 항상 사용할 수 있습니다. 런타임 시스템은 프로그램 시작 이후, 화면 전송 이후, 내부 모드 변경 이후에 컨텍스트에 따라 ABAP 시스템 필드를 채웁니다. 이들은 프로그램 내에서 시스템 상태를 쿼리하는 데 사용될 수 있습니다. 시스템 필드는 가변적이지만, 항상 상수이며 읽기 전용인 것처럼 취급되어야 합니다. 이들의 값을 변경하면 프로그램 흐름에 대한 중요 필수 정보가 손실될 수 있습니다. 이들 중 극히 일부만 고객 ABAP 프로그램 내에서 변경됩니다.


ABAP 프로그램에 런타임 관련 정보를 전달하는 시스템 필드 값을 변경하면 ABAP 프로그램이 중단되거나 예기치 않은 방식으로 동작할 수 있습니다.
References
[1] ABAP System Fields SAP
[2] Standards Mapping - Common Weakness Enumeration CWE ID 642
[3] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-001094
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SC-5 Denial of Service Protection (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SC-5 Denial of Service Protection
[7] Standards Mapping - OWASP Top 10 2021 A04 Insecure Design
[8] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002400 CAT II
[9] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002400 CAT II
[10] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002400 CAT II
desc.structural.abap.system_field_overwrite