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)