계: Security Features
소프트웨어 보안은 보안 소프트웨어가 아닙니다. 여기서는 인증, 액세스 제어, 기밀성, 암호화, 권한 관리 등의 항목에 대해 설명합니다.
Access Control: Privilege Escalation
Abstract
프로그램은 더 권한이 높은 사용자를 위해 예약된 명령을 무단 사용자가 수행하도록 허용할 수 있습니다.
Explanation
보통 SAP 응용 프로그램에서의 권한 부여 검사는 응용 프로그램을 실행하는 사용자, 즉 로그온한 사용자에 대해서 수행됩니다. 하지만 다음과 같은 프로그래밍 방식으로 다른 사용자(로그온한 사용자 이외의 사용자)에 대한 권한 부여를 검사하는 것도 가능합니다.
1.
2. 지정된 사용자로
3. 지정된 사용자로
이러한 검사가 경우에 따라 필요할 수도 있지만 이러한 검사로 인해 권한 상승이라는 보안 위험에 노출될 수도 있습니다. 권한 부여 검사에 사용되는 '사용자 ID' 입력을 제어할 수 있는 악의적인 사용자가 알려진 슈퍼 사용자(예: SAP*, DDIC 등)를 지정하여 다른 방법으로는 금지된 접근 권한을 사용자에게 제공하도록 시스템을 속일 수 있습니다.
권한 부여 검사에 사용되는 '사용자 ID'를 사용자가 직접 제어할 수 없는 경우에도 다른 사용자의 권한 부여 탐색은 잘못된 관행으로 피해야 할 작업입니다. 권한 부여 검사 수행 시 로그온한 사용자(sy-uname)를 명시적으로 지정하지 않아야 합니다. 이것이 기본 동작입니다. 명시적으로 지정하는 행위는 sy-uname에 대한 검사가 실제로 실행되기 전에 조작될 가능성만 높일 뿐입니다. 따라서 일반적으로 다른 사용자에 대한 권한 부여 검사는 건너뛰는 것이 좋습니다. 특히 명시적으로 로그온한 사용자를 지정하지 않는 것이 좋습니다.
예제 1: 다음 코드는 ABAP 프로그램을 실행할 수 있는 트랜잭션 호출 이전에 사용자 권한 부여를 검사합니다.
이 경우, 원래는 권한이 없는 사용자가 알려진 슈퍼 유저(예: SAP* 또는 DDIC 등)를 v_user 변수에 제공함으로써 어떠한 ABAP 프로그램이라도 시작할 수 있게 됩니다.
1.
AUTHORITY-CHECK
문을 추가 FOR USER
와 함께 사용2. 지정된 사용자로
AUTHORITY_CHECK
함수 모듈 호출3. 지정된 사용자로
SU_RAUTH_CHECK_FOR_USER
함수 모듈 호출이러한 검사가 경우에 따라 필요할 수도 있지만 이러한 검사로 인해 권한 상승이라는 보안 위험에 노출될 수도 있습니다. 권한 부여 검사에 사용되는 '사용자 ID' 입력을 제어할 수 있는 악의적인 사용자가 알려진 슈퍼 사용자(예: SAP*, DDIC 등)를 지정하여 다른 방법으로는 금지된 접근 권한을 사용자에게 제공하도록 시스템을 속일 수 있습니다.
권한 부여 검사에 사용되는 '사용자 ID'를 사용자가 직접 제어할 수 없는 경우에도 다른 사용자의 권한 부여 탐색은 잘못된 관행으로 피해야 할 작업입니다. 권한 부여 검사 수행 시 로그온한 사용자(sy-uname)를 명시적으로 지정하지 않아야 합니다. 이것이 기본 동작입니다. 명시적으로 지정하는 행위는 sy-uname에 대한 검사가 실제로 실행되기 전에 조작될 가능성만 높일 뿐입니다. 따라서 일반적으로 다른 사용자에 대한 권한 부여 검사는 건너뛰는 것이 좋습니다. 특히 명시적으로 로그온한 사용자를 지정하지 않는 것이 좋습니다.
예제 1: 다음 코드는 ABAP 프로그램을 실행할 수 있는 트랜잭션 호출 이전에 사용자 권한 부여를 검사합니다.
...
AUTHORITY-CHECK OBJECT 'S_TCODE' FOR USER v_user
ID 'TCD' FIELD 'SA38'.
IF sy-subrc = 0.
CALL TRANSACTION 'SA38'.
ELSE.
...
이 경우, 원래는 권한이 없는 사용자가 알려진 슈퍼 유저(예: SAP* 또는 DDIC 등)를 v_user 변수에 제공함으로써 어떠한 ABAP 프로그램이라도 시작할 수 있게 됩니다.
References
[1] SAP OSS Notes 20534, 179145, 136647 and related ones.
[2] Standards Mapping - Common Weakness Enumeration CWE ID 863
[3] Standards Mapping - Common Weakness Enumeration Top 25 2023 [24] CWE ID 863
[4] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-000213, CCI-001084, CCI-002165, CCI-002754
[5] Standards Mapping - FIPS200 AC
[6] Standards Mapping - General Data Protection Regulation (GDPR) Access Violation
[7] Standards Mapping - NIST Special Publication 800-53 Revision 4 AC-3 Access Enforcement (P1), CM-5 Access Restrictions for Change (P1), IA-2 Identification and Authentication (Organizational Users) (P1), IA-11 Re-Authentication (P0), SC-3 Security Function Isolation (P1), SI-10 Information Input Validation (P1)
[8] Standards Mapping - NIST Special Publication 800-53 Revision 5 AC-3 Access Enforcement, CM-5 Access Restrictions for Change, IA-2 Identification and Authentication (Organizational Users), SC-3 Security Function Isolation, SC-11 Trusted Path, SI-10 Information Input Validation
[9] Standards Mapping - OWASP API 2023 API3 Broken Object Property Level Authorization
[10] Standards Mapping - OWASP Application Security Verification Standard 4.0 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.1.4 Generic Web Service Security Verification Requirements (L2 L3)
[11] Standards Mapping - OWASP Mobile 2014 M5 Poor Authorization and Authentication
[12] Standards Mapping - OWASP Mobile 2024 M3 Insecure Authentication/Authorization
[13] Standards Mapping - OWASP Top 10 2004 A2 Broken Access Control
[14] Standards Mapping - OWASP Top 10 2007 A10 Failure to Restrict URL Access
[15] Standards Mapping - OWASP Top 10 2010 A8 Failure to Restrict URL Access
[16] Standards Mapping - OWASP Top 10 2013 A7 Missing Function Level Access Control
[17] Standards Mapping - OWASP Top 10 2017 A5 Broken Access Control
[18] Standards Mapping - OWASP Top 10 2021 A01 Broken Access Control
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.2
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.5.4
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.8
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.8
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.8
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.8
[25] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.8
[26] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 5.4 - Authentication and Access Control
[28] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 5.4 - Authentication and Access Control
[29] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls
[30] Standards Mapping - SANS Top 25 2009 Porous Defenses - CWE ID 285
[31] Standards Mapping - SANS Top 25 2010 Porous Defenses - CWE ID 285
[32] Standards Mapping - SANS Top 25 2011 Porous Defenses - CWE ID 862
[33] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3480.1 CAT II, APP3480.2 CAT II
[34] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3480.1 CAT I, APP3480.2 CAT II
[35] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3480.1 CAT I, APP3480.2 CAT II
[36] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3480.1 CAT I, APP3480.2 CAT II
[37] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3480.1 CAT I, APP3480.2 CAT II
[38] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3480.1 CAT I, APP3480.2 CAT II
[39] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3480.1 CAT I, APP3480.2 CAT II
[40] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[51] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[52] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[53] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-001410 CAT II, APSC-DV-001520 CAT II, APSC-DV-001530 CAT II, APSC-DV-001540 CAT I, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[54] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-001410 CAT II, APSC-DV-001520 CAT II, APSC-DV-001530 CAT II, APSC-DV-001540 CAT I, APSC-DV-002360 CAT II, APSC-DV-002560 CAT I
[55] Standards Mapping - Web Application Security Consortium Version 2.00 Insufficient Authorization (WASC-02)
[56] Standards Mapping - Web Application Security Consortium 24 + 2 Insufficient Authorization
desc.structural.abap.access_control_privilege_escalation