Columnas de opinión

¿Qué estamos haciendo mal? Falla en los mecanismos de protección

marzo 7, 2023
Columna de opinión por Fernando Lagos, CEO NIVEL4.

Para los que estamos familiarizados con el inframundo y la tecnología, sabemos la importancia de tener un mínimo de cuidado al momento de implementar o desarrollar alguna solución tecnológica, independiente de cual sea esta. Ya que hasta las soluciones de seguridad necesitan seguridad.

Tanto en el inframundo del código como en el de la infraestructura, necesitamos implementar distintos tipos de protecciones, ya sea para protegernos a nosotros mismos, la infraestructura o los datos. Para aquello existen los llamados “mecanismos de protección”, los cuales nos permiten implementar medidas de seguridad que nos brindan protección frente a ataques dirigidos a nuestra solución tecnológica.

Estos mecanismos de protección, pueden ser muy variados y muchas veces se implementan para dar un nivel adicional a lo propio de la plataforma que estemos usando. Un claro ejemplo es el Captcha. Podemos tener un login muy seguro, sin embargo, el captcha nos brindará seguridad desde otra perspectiva, y a su vez permitirá validar que la petición sea enviada por un humano y no por un bot, ayudando a prevenir intentos de ataques de fuerza bruta o de enumeración, entre otros. En este caso, el captcha sería nuestro “mecanismo de protección” frente a cierto tipo de amenazas.

A nivel de infraestructura, podríamos usar el ejemplo de un servidor que tiene muchos puertos abiertos dentro de la red, pero no queremos exponer esos puertos hacia internet, entonces implementamos un firewall que no permita las conexiones desde internet, pero si desde la red interna. En este caso, el firewall sería nuestro “mecanismo de protección”. Entonces…

¿Qué pasa si falla el mecanismo de protección o si está mal implementado?

Un mecanismo de protección mal implementado o con fallas, para un atacante es lo mismo que no tener un mecanismo de protección.

Fernando Lagos, CEO NIVEL4

Esto es considerado una “debilidad” de las plataformas tecnológicas y son aprovechadas por atacantes para poder vulnerar la seguridad y materializar un ciberataque.

De acuerdo a lo definido por CWE (Common Weakness Enumeration), esta debilidad está identificada por el ID 693 (CWE-693: Protection Mechanism Failure) y se define de la siguiente forma:

The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.

Además de su definición, se especifica que no depende de una tecnología, producto o lenguaje de programación en específico, sino que es parte de un patrón de malas prácticas.

En términos prácticos, si continuamos con el ejemplo del captcha, podemos decir que un captcha está mal implementado o tiene una debilidad si:

  • Permite realizar ataques de fuerza bruta.
  • Permite realizar ataques de enumeración de usuarios.
  • Permite enviar reiteradas peticiones utilizando el mismo token.
  • Es predecible.
  • El formulario permite ser enviado sin completar el captcha.
  • El backend o el sistema que recibe la petición no valida el captcha.

Al faltar en estos controles, se está permitiendo la automatización de peticiones y no estaría cumpliendo su principal función de detectar si una petición está enviada por un bot o por un humano.

Existen muchos casos de uso para poder explicar el concepto de falla en los mecanismos de protección, por esto es muy importante que se realicen pruebas manuales de seguridad sobre las plataformas y sistemas, que permitan identificar este tipo de debilidades y así evitar el aprovechamientos por distintos actores de amenazas.

En NIVEL4 nos hemos dedicado a diseñar y ejecutar pruebas manuales sobre plataformas tecnológicas, con el fin de abarcar al máximo posible la superficie de ataque que podría tener un atacante y de esta forma ayudar a prevenir el aprovechamiento de estas debilidades, mitigando el riesgo de que accedan indebidamente a las plataformas o datos. Esto nos ha permitido identificar este problema como el #1 en nuestro ranking, ya que es el que más se repite.

La metodología que utilizamos para clasificar los hallazgos consiste en primero identificar la vulnerabilidad y posteriormente la debilidad que la provoca, por ejemplo en el caso del Cross-Site Scripting o SQL Injection, podemos identificar fácilmente la vulnerabilidad, pero si encontramos que existe un WAF o algún filtro, el cual puede ser evadido, el fallo es clasificado de la siguiente manera:

  • CWE-79: Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’).
  • CWE-87: Improper Neutralization of Alternate XSS Syntax.
  • CWE-693: Protection Mechanism Failure.

Aún cuando tengamos un código seguro, es necesario implementar mecanismos adicionales de protección los cuales nos ayudaran a disminuir aún más el riesgo y de esta forma entregar un nivel de seguridad más allá de lo que la plataforma o desarrollo otorga propiamente tal. Además, el atacante tendría que evadir inicialmente los mecanismos de protección y luego el código, lo que dificultará aún más la materialización de un ciberataque.

La ciberseguridad es hoy. Asegura tu compañía, protege a las personas

ciberseguridadcolumna

Comparte este Artículo

Artículos relacionados