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:

Logging - OWASP Cheat Sheet Series

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