Reino: Security Features
La seguridad de un software no es un software de seguridad. Nos preocupamos de cuestiones como la autenticación, el control de acceso, la confidencialidad, la criptografía y la gestión de privilegios.
Spring Security Misconfiguration: Overly Permissive Firewall Policy
Abstract
El firewall de HTTP de Spring Security se configura con una directiva flexible.
Explanation
Spring Security incluye un firewall de HTTP con el que es posible corregir las solicitudes con caracteres potencialmente malintencionados para proteger la aplicación. Para lograr esto, Spring incluye
Ejemplo 1: El siguiente código flexibiliza la directiva de firewall para permitir los caracteres
Cuando se permiten caracteres malintencionados, se pueden presentar vulnerabilidades si estos caracteres se procesan de forma incorrecta o incoherente. Por ejemplo, cuando se permite el punto y coma, se habilitan parámetros de ruta (según se define en RFC 2396) que los servidores web front-end, como NGINX, y los servidores de aplicaciones, como Apache Tomcat, no procesan de forma coherente. Estas incoherencias se pueden utilizar para provocar ataques de escalado de directorios u omisiones de control de acceso.
HttpFirewall
en su FilterChainProxy
, de modo que las solicitudes se procesan antes de pasar por la cadena de filtros. Spring Security utiliza la implementación de StrictHttpFirewall
de forma predeterminada.Ejemplo 1: El siguiente código flexibiliza la directiva de firewall para permitir los caracteres
%2F
y ;
:
<beans:bean id="httpFirewall" class="org.springframework.security.web.firewall.StrictHttpFirewall" p:allowSemicolon="true" p:allowUrlEncodedSlash="true"/>
Cuando se permiten caracteres malintencionados, se pueden presentar vulnerabilidades si estos caracteres se procesan de forma incorrecta o incoherente. Por ejemplo, cuando se permite el punto y coma, se habilitan parámetros de ruta (según se define en RFC 2396) que los servidores web front-end, como NGINX, y los servidores de aplicaciones, como Apache Tomcat, no procesan de forma coherente. Estas incoherencias se pueden utilizar para provocar ataques de escalado de directorios u omisiones de control de acceso.
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