界: Security Features
ソフトウェアのセキュリティは、セキュリティ ソフトウェアではありません。ここでは、認証、アクセス制御、機密性、暗号化、権限管理などのトピックについて説明します。
Acegi Misconfiguration: Run-As Authentication Replacement
Abstract
Acegi で Run-As 認証置換機能を使用すると、特権昇格の脆弱性が発生する可能性があります。
Explanation
Acegi Security では、セキュア オブジェクトのコールバック フェーズ中に、SecurityContext の Authentication オブジェクトを一時的に置き換えることができます。これは、元の Authentication オブジェクトが AuthenticationManager および AccessDecisionManager によって正常に処理された場合にのみ発生します。RunAsManager はこの認証オブジェクトを作成します。
通常開発者は、メソッド呼び出しの間、RunAsManager を使用して、認証済みユーザー用に 1 つ以上の追加のロールを設定します。これは、リモート アプリケーションへのアクセスが必要なセキュア Bean に役立ちます。リモート アプリケーションは異なる資格情報を要求する場合があるため、これにより、呼び出し元のロールとリモート アプリケーションに必要なロールを変換して、リモート アクセスを成功させることができます。新しい Authentication オブジェクト (RunAsUserToken と呼ばれる) は、それ以上の認証または承認のチェックを受けずに、有効な Authentication オブジェクトとしてそのまま受け入れられます。
新しい Authentication オブジェクトに新しいロールまたは特権を追加すると、ユーザーの特権が一時的に引き上げられ、ユーザーが不正なアクションを実行できるようになる可能性があります。
次の設定は、RunAsManager を使用してロール "ROLE_PEON" を持つユーザーにロール "UBER_BOSS" を追加することで、このユーザーの権限を一時的にマネージャー特権に引き上げます。これにより、すべての Peon が PrivateCatalog からデータを取得できるようになります。
通常開発者は、メソッド呼び出しの間、RunAsManager を使用して、認証済みユーザー用に 1 つ以上の追加のロールを設定します。これは、リモート アプリケーションへのアクセスが必要なセキュア Bean に役立ちます。リモート アプリケーションは異なる資格情報を要求する場合があるため、これにより、呼び出し元のロールとリモート アプリケーションに必要なロールを変換して、リモート アクセスを成功させることができます。新しい Authentication オブジェクト (RunAsUserToken と呼ばれる) は、それ以上の認証または承認のチェックを受けずに、有効な Authentication オブジェクトとしてそのまま受け入れられます。
新しい Authentication オブジェクトに新しいロールまたは特権を追加すると、ユーザーの特権が一時的に引き上げられ、ユーザーが不正なアクションを実行できるようになる可能性があります。
次の設定は、RunAsManager を使用してロール "ROLE_PEON" を持つユーザーにロール "UBER_BOSS" を追加することで、このユーザーの権限を一時的にマネージャー特権に引き上げます。これにより、すべての Peon が PrivateCatalog からデータを取得できるようになります。
<bean id="bankManagerSecurity" class="org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor">
...
<property name="objectDefinitionSource">
<value>
com.example.service.PrivateCatalog.getData=ROLE_PEON,RUN_AS_UBER_BOSS
...
</value>
</property>
</bean>
References
[1] Ben Alex Acegi Security - Run-As Authentication Replacement
[2] Standards Mapping - Common Weakness Enumeration CWE ID 724
[3] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-001764, CCI-001774, CCI-002038, CCI-002039
[4] Standards Mapping - General Data Protection Regulation (GDPR) Access Violation
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 CM-5 Access Restrictions for Change (P1), CM-7 Least Functionality (P1), IA-11 Re-Authentication (P0), SC-23 Session Authenticity (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 CM-5 Access Restrictions for Change, CM-7 Least Functionality, SC-11 Trusted Path, SC-23 Session Authenticity
[7] Standards Mapping - OWASP Mobile 2014 M5 Poor Authorization and Authentication
[8] Standards Mapping - OWASP Mobile 2024 M8 Security Misconfiguration
[9] Standards Mapping - OWASP Top 10 2004 A3 Broken Authentication and Session Management
[10] Standards Mapping - OWASP Top 10 2007 A7 Broken Authentication and Session Management
[11] Standards Mapping - OWASP Top 10 2010 A3 Broken Authentication and Session Management
[12] Standards Mapping - OWASP Top 10 2013 A2 Broken Authentication and Session Management
[13] Standards Mapping - OWASP Top 10 2017 A2 Broken Authentication
[14] Standards Mapping - OWASP Top 10 2021 A07 Identification and Authentication Failures
[15] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.3
[16] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.5.7
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.8
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.10
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.10
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.10
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.10
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[23] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[24] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[27] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[28] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[29] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[30] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[31] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[32] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[33] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[34] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[35] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[36] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[37] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[38] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-001480 CAT II, APSC-DV-001490 CAT II
[39] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-001410 CAT II, APSC-DV-001480 CAT II, APSC-DV-001490 CAT II, APSC-DV-001520 CAT II, APSC-DV-001530 CAT II
[40] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-001410 CAT II, APSC-DV-001480 CAT II, APSC-DV-001490 CAT II, APSC-DV-001520 CAT II, APSC-DV-001530 CAT II
[41] Standards Mapping - Web Application Security Consortium Version 2.00 Insufficient Authentication (WASC-01)
[42] Standards Mapping - Web Application Security Consortium 24 + 2 Insufficient Authentication
desc.config.java.acegi_misconfiguration_run_as_authentication_replacement