2. QUE ES OWASP ?
OWASP o como también se le conoce “Open Web Application
Security Project” es una organización sin ánimo de lucro enfocada
a mejorar la seguridad en el lo que se refiere al desarrollo web.
Funciona como un marco de referencia a lo relacionado con todo el
tema de la seguridad web, ideal para directores de tecnología,
coordinadores de desarrollo y para toda persona que trabaje en el
área de desarrollo de aplicativos web.
4. A10: Deficiencias en el Monitoreo y Registro
de eventos
La no atención al monitoreo y registro de los eventos que suceden
en los sitemas, nos deja ciegos ante un problemas que en su
mayoría van dejando avisos de problemas que pueden llegar a
presentarse.
Existen herramientas para hacer más fácil la labor de lectura de
logs y monitoreo, se recomienda nunca dejar de observar estos.
Esta vulnerabilidad se ubica en el puesto número 10 del top, no
obstante tiene una importancia igual a las demás.
5. A9: Uso de componentes con
vulnerabilidades conocidas
Actualmente existe la tendencia de crear equipos internos en las
empresas en departamentos de desarrollo, también están las
fábricas de software. Este ataque se presenta por el
desconocimiento de las herramientas o componentes utilizados,
muchos pueden tener vulnerabilidades y al no corregirlas con las
respectivas actualizaciones se convierten en puertas inseguras.
Este ítem del top 10 es algo muy común y ha estado presente en
varias ediciones mostrándose como crítico al no ser de
importancia.
6. A8: Deserialización insegura
En algunos lenguajes existen herramientas para realizar estos
procesos, el cual consiste en convertir un objeto en una
representación de datos que permite se almacenada, puede ser en
una cookie, una sesión o en una db.
El problema se encuentra al deserializar la la información se
puede envenenar y dar acceso o escalamiento a la acción que el
atacante desea realizar.
Existen varias recomendaciones para prevenir estos vectores de
ataque, entre los cuales se encuentran los checks de seguridad
que pueden realizar con un checksum.
7. A7: Cross-Site Scripting (XSS)
La vieja conocida, una de las técnicas de ataque más utilizadas y
que prevalece por mucho en los top10 de owasp, aun cuando
tanto se ha hablado de ella todavía sigue siendo un problema
persistente en los equipos de desarrollo, la mayoría de veces por
malas prácticas o desconocimiento.
Esta técnica permite incrustar código de fuente para ser
ejecutado después, en el mundo se han presentado ataque de
gran impacto mediante XSS, Twitter tenia esta vulnerabilidad en
el cuadro del tweet permitiendo insertar código javascript para
ejecutarlo, lo que le dio vida a un gusano que creció gracias a
esto.
8. A6: Fallas de configuración de seguridad.
Este ítem no debería estar en esta lista, pero lastimosamente
esta. Lo más básico siempre se olvida y eso si es un error, fallas
en las configuraciones, permiten al atacante tomar control de
forma fácil, en pocas palabras te vas a dormir con las puertas
abiertas.
Se recomienda tener los controles de seguridad necesarios en los
servidores donde se alojan las aplicaciones, si se dispone de un
firewall tener este con todo lo necesario para monitoreo y registro
de accesos, de esta forma minimizamos el riesgo de dejar nuestra
casa con las puertas abiertas por error, también es recomendable
utilizar un scanner de puertos, cierra los que no utilices.
9. A5: Fallas en el control de acceso.
Suele suceder con frecuencia cuando se está desarrollando un
producto, el cual requiere de privilegios para acceder a la
información, debido que al estar en modo desarrollo se necesita
un poco más de libertad, se frenan las políticas de acceso y se
libera el acceso público, el problema se presenta cuando el
producto sale a fase productiva y puff al desarrollador se le olvidó
volver a activar la política de acceso, lo que le da una puerta al
atacante.
10. A4: XML External Entities (XXE).
Este vector de ataque por así decirlo, es relativamente nuevo en el
TOP10 de OWASP, este consiste en el envío de información o
archivos a procesadores de XML, como ejemplo a estos
procesadores se encuentra los tan comunes
WebServices(SOAP,WSDL, etc), dando control a lo que se
realizar.
Entre las recomendaciones se encuentra deshabilitar el external
entity y el DTD en la aplicación en este caso el webservice.
En muchos casos son temas de seguridad que se tienen que tener
en cuenta a la hora de crear la estructura del servicio.
11. A3: Exposición de datos sensibles.
En el puesto número 3 encontramos más que una vulnerabilidad
es una necesidad, la exposición de datos sensibles es hoy un
problema que se presenta en todo y debe ser de vital importancia
darle una solución al tema, el enviar texto limpio por las redes de
comunicación es tan riesgoso como entrar a un barrio peligroso
con 20 kilos en oro, por esta razón se incentiva a la utilización de
TLS para cifrar las comunicaciones, la utilización de algoritmos de
cifrado para las contraseñas y la tokenización para cuando se
requiera almacenar información como tarjetas de crédito,
documentos de identidad, etc.
12. A2: Broken Authentication.
Los atacantes pueden tener a disposición millones de datos de
usuarios, con los cuales poder automatizar ataques, por lo que
de mil intentos al menos uno puede ser realizado con éxito,
técnicas comunes de la old school como lo es la fuerza bruta,
para esto es recomendable utilizar o implementar sistemas de
2FA(Two Factor Authentication), controles para inicios de sesión
fallidos, captchas, sistemas antibot, etc.
13. A1: Injection.
Injection… el riesgo inminente más popular de los últimos tiempos, es
una falla humana que deja la puerta abierta al atacante, este podrá
utilizar técnicas para realizar un bypass, hacer un borrado de
información, acceder a usuarios de un servidor de LDAP entre
otros.Estos ataques se presentan continuamente en sistemas basados
en SQL, NoSQL, LDAP, entre otros sistemas que requieran procesar
información.Se recomienda que cuando se realice la construcción o el
desarrollo se utilicen técnicas para sanitizar el input borrando todo
aquello que pueda afectar a el servicio, ejemplo la función
mysqli_real_escape_string() la cual permite eliminar todo aquello
que no sea SQL y que sea tratado como texto plano, en el motor.
16. Twitter
Recibió un XSS en su caja
de texto principal, que
permitió que un gusano
creado en js se propagara
de forma masiva(2010)
Pizza.com
Actualmente el sitio tiene
un XSS activo que no
genera riesgo para los
usuarios
Spring
Framework
Descubiertas 3 nuevas
vulnerabilidades, ya
revisaste si hay parches ?
problemas por doquier
(2018)
Digital
Shadows
La firma ha descubierto más
de 1500 documentos que
está a la luz del mundo, por
falta de configuraciones de
acceso (2018)
MyFitnessPal
Recibe un ataque le roban datos
de 150 millones de usuarios,
por utilizar SHA-1 un algoritmo
débil de seguridad, poco
utilizado(2018).
17. Herramientas y Recursos
● Nmap - Escaner de puertos.
● https://github.com/retirejs/retire.js/ - Escaner de librerias javascript que poseen
vulnerabilidades.
● http://w3af.org/ - escaner de vulnerabilidades, es opensource ideal para probar
proyectos antes de lanzar a producción.
● WAF, recomendamos uno de estos para tu aplicación, servicios como cloudflare,
amazon waf, si lo que quieres es un appliance recomendamos que utilices marcas
conocidas (fortinet, fireye, entre otros).
● Capacita a tu equipo de trabajo en temas de seguridad, el punto más débil de tu
proyecto son las fallas humanas, entre más capacitados estén menos riesgos
tendrás.