界: Security Features

ソフトウェアのセキュリティは、セキュリティ ソフトウェアではありません。ここでは、認証、アクセス制御、機密性、暗号化、権限管理などのトピックについて説明します。

Spring Security Misconfiguration: Overly Permissive Firewall Policy

Abstract
Spring Security の HTTP ファイアウォールには lax ポリシーが設定されています。
Explanation
Spring Security に含まれている HTTP ファイアウォールは、悪意のあることが疑われる文字を含む要求を無害化することによってアプリケーションの保護を支援します。Spring では、HttpFirewallFilterChainProxy に追加して、要求がフィルタ チェーン経由で送信される前に処理することで、この機能を実現します。Sprint Security はデフォルトで StrictHttpFirewall 実装を使用します。


例 1: 次のコードでは %2F; 文字を許容するようファイアウォール ポリシーを緩和します。

<beans:bean id="httpFirewall" class="org.springframework.security.web.firewall.StrictHttpFirewall" p:allowSemicolon="true" p:allowUrlEncodedSlash="true"/>


悪意のあることが疑われる文字を許容すると、その文字の処理のされ方が正しくないか一貫していない場合に脆弱性を引き起こすことがあります。たとえば、セミコロンを許容するとパス パラメーター (RFC 2396 で定義) が有効化され、nginx などのフロントエンド Web サーバーや Apache Tomcat などのアプリケーション サーバーによる処理に一貫性がなくなります。このように一貫性がないことが、パス トラバーサル攻撃やアクセス制御バイパスに利用される可能性があります。
References
[1] Class DefaultHttpFirewall Spring
[2] Standards Mapping - FIPS200 CM
[3] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[4] Standards Mapping - NIST Special Publication 800-53 Revision 4 CM-6 Configuration Settings (P1)
[5] Standards Mapping - NIST Special Publication 800-53 Revision 5 CM-6 Configuration Settings
[6] Standards Mapping - OWASP API 2023 API8 Security Misconfiguration
[7] Standards Mapping - OWASP Mobile 2014 M1 Weak Server Side Controls
[8] Standards Mapping - OWASP Top 10 2004 A10 Insecure Configuration Management
[9] Standards Mapping - OWASP Top 10 2010 A6 Security Misconfiguration
[10] Standards Mapping - OWASP Top 10 2013 A5 Security Misconfiguration
[11] Standards Mapping - OWASP Top 10 2017 A6 Security Misconfiguration
[12] Standards Mapping - OWASP Top 10 2021 A05 Security Misconfiguration
[13] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.10
[14] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.4.1
[15] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0.1 Requirement 6.4.1
[16] Standards Mapping - Web Application Security Consortium Version 2.00 Server Misconfiguration (WASC-14)
desc.config.java.spring_security_misconfiguration_overly_permissive_firewall_policy