Seguridad Aplicaciones Web, Proyecto OWASP Top 10, 2017!!!

Los cambios más importantes de la versión OWASP Top 10 2017 vs OWASP Top 10 -2013:

Image for post
Image for post

El objetivo principal de OWASP TOP 10 es educar a los desarrolladores de software, arquitectos de software, gerentes sobre las consecuencias de las debilidades en las aplicaciones web más comunes e importantes. El OWASP Top 10 proporciona técnicas que ayudan a protegerse contra áreas de alto riesgo y recomendaciones de cómo solucionarlo o protegerse con buenas prácticas.

Image for post
Image for post

Después de 02 versiones release se ha oficializado la versión OWASP Top 10 2017, el anuncio se realizo el día de ayer:

Image for post
Image for post

Entre las mejoras y diferencias:

A8: 2017 — Insecure Deserilization ( New, Community)

Image for post
Image for post

Serialization consiste en un proceso de codificación de un objeto en un medio de almacenamiento (como puede ser un archivo, o un buffer de memoria) con el fin de transmitirlo a través de una conexión en red como una serie de bytes o en un formato humanamente más legible como XML o JSON, entre otros. La serialización es un mecanismo ampliamente usado para transportar objetos a través de una red, para hacer persistente un objeto en un archivo o base de datos, o para distribuir objetos idénticos a varias aplicaciones o localizaciones.

La serialización se puede usar en aplicaciones para:
• Comunicación remota e interproceso (RPC / IPC)
• Protocolos cableados, servicios web, mensajes intermedios.
• Almacenamiento en caché / Persistencia.
• Bases de datos, servidores de caché, sistemas de archivos.
• Cookies HTTP, parámetros de formularios HTML, autenticación API
tokens.

Algunas recomendaciones generales en base al documento original:

  • La arquitectura de seguridad no debería aceptar patrones de fuentes no confiables.

A10: 2017 — Insufficient Logging & Monitoring ( New, Community)

Image for post
Image for post

Los atacantes confían en la falta de monitoreo y respuesta oportuna a lograr sus objetivos, lo ideal del hacker es no dejar rastro alguno y no ser detectados. Lo recomendable es que hagas una prueba penetration testing (hacking Ético) a tus sistemas críticos y evalues si tienes habilitado suficientes logs, eventos, monitoring en los sistemas evaluados para detectar una intrusión. Como Prevenir:

  • Habilitar pistas de auditoria, como: Logear/Guardar actividad de sesión exitosa, como fallida (intentos de logging, quizas lo más importante), donde se guarde:

Ejemplo logging de establecimiento de una sesión SSH:

Nov 22 21:57:41 RemoteUbuntu-Host01 sshd[7809]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=8.208.198.140 user=cfarrof

  • La hora de la conexón, quizas esto sea un error recurrente en las Empresas, la mayoria no tiene un NTP Server interno (En algunos casos debería ser el AD Active Directory) para que todos los sistemas Servicios:

Todos los equipos anteriores deberían tener la misma fecha y hora. Así cuando se Monitorice o se correlacione eventos será sencillo y útil.

Por ejemplo si la Empresa sufre de una intrusión a un servidor Interno (Ejemplo: Base de datos de clientes) se podria hacer un Análisis Forense correctamente tratando de identificar los sistemas que han sido vulnerados por el atacante, los saltos hasta llegar a su objetivo, las fechas desde la primera intrusión, el tiempo de duración que estuvieron en cada sistema vulnerado, etc.

Por otro lado OWASP Top 10 -2017, también recomienda establecer o adoptar un plan de respuesta ante un incidente basandose en: NIST (National Institute of Standards and Technology) US Deparment of Commerce, NIST 800–61 rev 2.

Fuentes:

Image for post
Image for post
Image for post
Image for post

https://support.microsoft.com/es-es/help/816042/how-to-configure-an-authoritative-time-server-in-windows-server

Image for post
Image for post
Image for post
Image for post

Written by

Blog de Ciberseguridad, Hacking, Recomendaciones de Protección y Buenas Practicas para las Empresas.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store