계: Security Features
소프트웨어 보안은 보안 소프트웨어가 아닙니다. 여기서는 인증, 액세스 제어, 기밀성, 암호화, 권한 관리 등의 항목에 대해 설명합니다.
Spring Security Misconfiguration: Overly Permissive Firewall Policy
Abstract
Spring Security HTTP 방화벽은 lax 정책으로 구성됩니다.
Explanation
Spring Security에는 잠재적으로 악의적인 문자가 포함된 요청을 정화하여 응용 프로그램을 보호하는 데 도움이 되는 HTTP 방화벽이 포함되어 있습니다. Spring은
예제 1: 다음 코드는 방화벽 정책을 완화하여
잠재적으로 악의적인 문자를 허용하면 이러한 문자가 일관되게 처리되지 않을 경우 취약점이 발생할 수 있습니다. 예를 들어, 세미콜론을 허용하면 nginx와 같은 프런트 엔드 웹 서버와 Apache Tomcat과 같은 응용 프로그램 서버에서 일관되게 처리되지 않는 경로 매개 변수(RFC 2396에 정의)를 사용할 수 있습니다. 이러한 불일치는 Path Traversal 공격이나 access control이 무시될 수 있습니다.
HttpFirewall
을 FilterChainProxy
에 포함하여 해당 요청을 정화할 수 있으며, 필터 체인을 통해 요청을 보내기 전에 처리합니다. Spring Security는 기본적으로 StrictHttpFirewall
구현을 사용합니다.예제 1: 다음 코드는 방화벽 정책을 완화하여
%2F
및 ;
문자를 허용합니다.
<beans:bean id="httpFirewall" class="org.springframework.security.web.firewall.StrictHttpFirewall" p:allowSemicolon="true" p:allowUrlEncodedSlash="true"/>
잠재적으로 악의적인 문자를 허용하면 이러한 문자가 일관되게 처리되지 않을 경우 취약점이 발생할 수 있습니다. 예를 들어, 세미콜론을 허용하면 nginx와 같은 프런트 엔드 웹 서버와 Apache Tomcat과 같은 응용 프로그램 서버에서 일관되게 처리되지 않는 경로 매개 변수(RFC 2396에 정의)를 사용할 수 있습니다. 이러한 불일치는 Path Traversal 공격이나 access control이 무시될 수 있습니다.
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