El mundo de cibercrimen crece a un ritmo exponencial. Lejos han quedado aquellas bromas, que se mandaban entre amigos, el famoso virus andaluz, a su posterior evolución hacia otras variantes mas nocivas que buscaban dejar inutilizado el sistema operativo eliminando archivos, replicándose sin cesar inundando la memoria ram.
La actualidad es muy diferente, no pasa día que no escuchemos, vulnerabilidades 0day (éstas son aquellas que no se conocían hasta la fecha de publicación), que independientemente de su criticidad, siempre son un gran problema. Fugas de datos bancarios masivos (tarjetas de crédito), botnets (conjunto de equipos infectados que pueden realizar acciones bajo un C&C) que se utilizan para hacer todo tipo de negocio, desde el spam, captura de datos de acceso bancarios, servicios de ataques de DDOS, entre otros.
Fue entonces, cuando surgió el concepto de ciberguerra. Ya fuera entre estados u organizaciones criminales. Se suele tomar como referencia la aparición del famoso gusano Stuxnet. La pieza de software mas sofisticada diseñada hasta el momento. Es por ello, tan importe, estar contínuamente informado de todos los acontecimientos mas importantes. Para ello, es recomendable seguir las indicaciones de entes tales como OWASP (Open Web Application Security Project). Disponen de mucha información que nos permite conocer los problemas mas típicos a nivel de aplicación.
Es imprescindible conocer mínimamente el concepto, para evitar caer en este tipo de errores. Tener el cheat sheet delante, nos puede ayudar a escribir un mejor código y más seguro. Vamos a ordenar de forma descendente de menor a mayor riesgo.
A10 Unvalidated Redirects and Forwards
Una vulnerabilidad de estas características deja al descubierto diversas técnicas de explotación que pueden resultar para el usuario final. Este tipo de riesgo, tiene que ver con la ingeniería social, pero es muy efectivo, ya que el usuario confía en el dominio del que proviene. Respecto del impacto, podemos estar hablando de phishing y distribución de cualquier tipo de malware. El usuario, siempre va a confiar en el dominio, y más si estamos bajo una comunicación SSL, en este caso HTTPS. En el siguiente enlace, se expone la criticidad de esta vulnerabilidad en la red social Linkedin: http://gfragkos.blogspot.com.es/2015/06/linkedin-security-issue-unvalidated.html
Una de las posibles formas de explotación, podría ser la siguiente:
http://www.example.com/section?url_redirect=www.malware.com
Para evitar este tipo de criticidades en nuestra aplicación, un buen comienzo es revisar las recomendaciones de OWASP, entre las cuales se encuentran: evitar redirecciones a través de parámetros, validar la redirección, etc. Este tipo de vulnerabilidad, también puede estar relacionada con un Cross Site Scripting(que veremos más adelante).
A9 Using Components with Known Vulnerabilities
Este tipo de vulnerabilidad no lo es como tal, sino que es una negligencia. La implementación de una solución y su posterior despliegue en un servidor en producción, basadas en herramientas o servicios de terceros debe ser siempre estudiada para prevenir cualquier impacto en problemas de terceros. Es obligación del administrador de sistemas estar informado en todo momento de los posibles servicios que la máquina está ejecutando y sus posibles vulnerabilidades. Así como de administrar los parches necesarios para solventarlos en la mayor brevedad posible y con el mínimo impacto. Para ello, existen sitios, tales como CVE o NVD donde publican y catalogan el impacto, criticidad y nivel de acceso, entre otros.