/
Security Misconfiguration

Security Misconfiguration

Debido a descuidos o por querer desarrollar un producto de manera más rápida, a veces se desatiende la configuración en materia de seguridad en áreas del Producto.

Una deficiente documentación de un Producto puede derivar en una configuración incorrecta del mismo.

Riesgo de la vulnerabilidad

  • Un atacante podría conseguir permisos de administrador. A veces, la configuración por defecto de algunos Productos permite el acceso como administrador.

  • Si la vulnerabilidad se produce en una base de datos, se puede producir robo de información, borrado o modificación de datos.

  • Se pueden estar ejecutando procesos o módulos innecesarios, causando sobrecarga de los servidores y aumento del tráfico de red.

  • Posibilidad de tener puertos abiertos innecesariamente, facilitando el éxito de un ataque.

  • Posibilidad de tener puertos de administración abiertos, lo que expone al propio Producto a un ataque.

  • Fuga de información a través del tráfico de red.

  • Conexiones innecesarias a diversos servicios de internet puede revelar el comportamiento del Producto en entornos críticos.

  • Intentos de conexión con Productos que ya no existen, abriendo la posibilidad de que sean suplantados por un atacante y lograr así acceso.

 

Código vulnerable 1:

[...]        @Override     protected void configure(HttpSecurity http) throws Exception {         http             .authorizeRequests()                 .antMatchers("/resources/**").permitAll()                 .antMatchers("/**").authenticated()                 .anyRequest().permitAll()                 .and()             .formLogin()                 .loginPage("/login")                 .defaultSuccessUrl("/dashboard")                 .successHandler(new SimpleUrlAuthenticationSuccessHandler("/"))                 .failureUrl("/login?authenticationFailure=true")                 .permitAll()                 .and()             .csrf().disable()             .logout()                 .logoutUrl("/j_spring_security_logout")                 .logoutSuccessUrl("/login?logout=true");     }   [...]

 

Solución:

Se debe implementar siempre las medidas de seguridad oportunas, más cuando un frameworks u otra capa puede aportarnos una defensa adicional.

 

[...]        @Override     protected void configure(HttpSecurity http) throws Exception {         http             .authorizeRequests()                 .antMatchers("/resources/**").permitAll()                 .antMatchers("/**").authenticated()                 .anyRequest().permitAll()                 .and()             .formLogin()                 .loginPage("/login")                 .defaultSuccessUrl("/dashboard")                 .successHandler(new SimpleUrlAuthenticationSuccessHandler("/"))                 .failureUrl("/login?authenticationFailure=true")                 .permitAll()                 .and()             .csrf().enable()             .logout()                 .logoutUrl("/j_spring_security_logout")                 .logoutSuccessUrl("/login?logout=true");     }   [...]

 

Referencias:

https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html

(Utilizar la documentación propia del framework o software utilizado)

Related content