¿qué es OWASP?
El Proyecto de seguridad de aplicaciones Web abiertas (OWASP) es una organización sin fines de lucro fundada en 2001, con el objetivo de ayudar a los propietarios de sitios web y expertos en seguridad a proteger las aplicaciones web de los ataques cibernéticos. OWASP tiene 32,000 voluntarios en todo el mundo que realizan evaluaciones de seguridad e investigación.,
entre las publicaciones clave de OWASP están el Top 10 de OWASP, discutido en más detalle a continuación; el modelo de madurez de Garantía de Software de OWASP (SAMM), la Guía de desarrollo de OWASP, la Guía de pruebas de OWASP y la Guía de revisión de código de OWASP.
El Top 10 de OWASP
OWASP Top 10 es un documento ampliamente aceptado que prioriza los riesgos de seguridad más importantes que afectan a las aplicaciones web., Aunque hay muchos más de diez riesgos de seguridad, la idea detrás del Top 10 de OWASP es hacer que los profesionales de seguridad sean muy conscientes de al menos los riesgos de seguridad más críticos y aprendan a defenderse contra ellos.
OWASP evalúa periódicamente tipos importantes de ciberataques según cuatro criterios: facilidad de explotación, prevalencia, detectabilidad e impacto empresarial, y Selecciona los 10 ataques principales. El Top 10 de OWASP se publicó por primera vez en 2003 y desde entonces se ha actualizado en 2004, 2007, 2010, 2013 y 2017.,
comprender y prevenir los ataques comunes de OWASP
a continuación se muestra información proporcionada por la Fundación OWASP sobre cinco ataques importantes de aplicaciones web que generalmente se clasifican en la mitad superior del Top 10 de OWASP, cómo se manifiestan y cómo puede proteger a su organización contra ellos. Los ejemplos de código se toman de las directrices de OWASP Top 10.
inyección
Una vulnerabilidad de inyección en una aplicación web permite a los atacantes enviar datos hostiles a un intérprete, lo que hace que los datos se compilen y ejecuten en el servidor. Una forma común de inyección es la inyección SQL.,3844d3c3″>
ejemplos de ataques de inyección
una aplicación utiliza datos no confiables al construir una llamada SQL vulnerable:
String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'";
Una aplicación confía en un framework sin desinfectar sus entradas, en este caso Hibernate query language (HQL):
Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");
El atacante Modifica el parámetro ‘id’ en su navegador para enviar código., Por ejemplo:
http://example.com/app/accountView?id=' or '1'='1
Esto hace que las consultas devuelvan todos los registros de la tabla de cuentas y se pueden usar para realizar otras acciones maliciosas en el servidor.
prevención de ataques de inyección
- Use una API segura que evite el uso del intérprete por completo
- Use validación de entrada positiva o «lista blanca» del lado del servidor
- Escape de caracteres especiales
- Use límite y otros controles SQL dentro de las consultas para evitar la divulgación masiva de registros en caso de inyección SQL.,Tentation
una aplicación web con autenticación rota o débil puede ser detectada fácilmente por los atacantes y es vulnerable a ataques de fuerza bruta/diccionario y ataques de administración de sesiones
explotabilidad: alta prevalencia: Media detectabilidad: medium impact: high examples of broken authentication attacks
- credential stuffing attackers los atacantes usan listas de contraseñas conocidas y las prueban secuencialmente para obtener acceso., Sin amenazas automatizadas o protección de relleno de credenciales, la aplicación es utilizada por los atacantes como un mecanismo de validación para cualquier contraseña que intenten.
- ataques basados en Contraseñas applications las aplicaciones web que dependen solo de contraseñas tienen mecanismos de autenticación inherentemente débiles, incluso si las contraseñas tienen requisitos de complejidad y se rotan. Las organizaciones deben cambiar a la autenticación multifactor.,
mitigar la autenticación Rota
- implementar la autenticación multifactor
- No implementar sistemas con credenciales predeterminadas
- Buscar una lista de las 10.000 peores contraseñas
- Utilizar las directrices de NIST 800-63 B Sección 5.1.,1 para los secretos memorizados
- endurezca todos los procesos relacionados con la autenticación, como el registro y la recuperación de credenciales
- limite o retrase los intentos fallidos de inicio de sesión
- Use un administrador de sesiones seguro, integrado en el lado del servidor
la exposición de datos confidenciales
Los datos confidenciales suelen ser el activo más valioso atacado por los ciberataques. Los atacantes pueden obtener acceso a ella robando claves criptográficas, llevando a cabo ataques» man in the middle » (MITM) o robando datos de texto claro que ocasionalmente pueden almacenarse en servidores o navegadores de usuarios.,
explotabilidad: Media prevalencia: alta detectabilidad: Media impacto: alta ejemplos de exposición de datos confidenciales
- No TLS no si un sitio web no utiliza SSL/TLS para todas las páginas, un atacante puede monitorear el tráfico, degradar las conexiones de HTTPS a HTTP y robar la cookie de sesión.
- hashes sin sal━la base de datos de contraseñas de una aplicación web puede usar hashes sin sal o simples para almacenar contraseñas., Si un atacante obtiene acceso a la base de datos, puede descifrar fácilmente los hashes, por ejemplo, utilizando GPU, y obtener acceso.
mitigar la exposición a datos confidenciales
- Identificar datos confidenciales y aplicar los controles de seguridad adecuados.
- No almacene datos confidenciales a menos que sea absolutamente necesario discard deseche datos confidenciales, use tokenización o truncamiento.
- cifrar todos los datos confidenciales en reposo utilizando algoritmos de cifrado fuertes, protocolos y claves.
- cifrar datos en tránsito utilizando protocolos seguros como TLS y HTTP HSTS.
- desactivar el almacenamiento en caché de datos confidenciales.,
- almacena contraseñas usando funciones de hash fuertes y saladas como Argon2, scrypt y bcrypt.
XML External Entities (XXE)
Si una aplicación web utiliza un componente vulnerable procesando XML, los atacantes pueden cargar XML o incluir contenido hostil, comandos o código dentro de un documento XML.,2ba97df6″>
Un atacante puede obtener información sobre una red privada cambiando la línea de entidad a:
mitigar los ataques XXE
- Use formatos de datos más simples como JSON y evite la serialización
- parche o actualice todos los procesadores y bibliotecas XML
- deshabilitar XML externo entidad y procesamiento DTD
- implementar listas blancas y desinfección de entradas XML del lado del servidor
- validar XML usando xsd o validación similar
- Utilizar herramientas SAST para detectar XXe en el código fuente, con revisión manual si es posible
A5., Control de acceso roto
El control de acceso roto significa que los atacantes pueden obtener acceso a las cuentas de usuario y actuar como usuarios o administradores, y que los usuarios regulares pueden obtener funciones privilegiadas no deseadas. Unos mecanismos de acceso sólidos garantizan que cada función tenga privilegios claros y aislados.,ld strong access control mechanisms and reuse them across the application
- Enforce record ownership Enforce don’t allow users to create, read or delete any record
- Enforce usage and rate limits
- Disable server directory listing and do not store metadata or backup files in the folder root
- Log failed access attempts and alert admins
- rate limit API and controller access
- Validate JWT tokens after logout
Other OWASP Top 10 attacks
- security misconfigurations controls los controles de seguridad mal configurados son un punto de entrada común para los atacantes., Por ejemplo, una base de datos implementada con una contraseña de administrador predeterminada.
- Cross-Site Scripting(XSS) attackers los atacantes usan XSS para explotar las debilidades en la administración de sesiones y ejecutar código malicioso en los navegadores de los usuarios.
- deserialización insegura deser la deserialización es una técnica compleja, pero si se ejecuta correctamente, permite a los atacantes ejecutar código malicioso en un servidor.
- Uso de componentes con vulnerabilidades conocidas: la mayoría de las aplicaciones web dependen en gran medida de componentes de código abierto, y estos pueden incluir vulnerabilidades conocidas que los atacantes pueden explotar para obtener acceso o causar daños.,
- Registro y monitoreo insuficientes: los atacantes confían en la falta de monitoreo y respuesta oportuna para tener éxito con cualquier otro vector de ataque.
vea cómo Imperva Web Application Firewall puede ayudarlo con los ataques Top 10 de OWASP.
Imperva Application Security
el Firewall de aplicaciones Web (WAF) líder en la industria de Imperva proporciona una sólida protección contra los ataques OWASP Top 10 y otras amenazas de aplicaciones web. Imperva ofrece dos opciones de implementación de WAF:
- Cloud WAF: permite el tráfico legítimo y evita el tráfico incorrecto., Proteja sus aplicaciones en el perímetro con un WAF en la nube de clase empresarial.
- Gateway WAF-mantenga las aplicaciones y API dentro de su red seguras con Imperva Gateway WAF.
Además de WAF, Imperva proporciona protección de múltiples capas para garantizar que los sitios web y las aplicaciones estén disponibles, sean de fácil acceso y sean seguros. La solución de seguridad de aplicaciones Imperva incluye:
- Protección DDoS: mantenga el tiempo de actividad en todas las situaciones. Evite que cualquier tipo de ataque DDoS, de cualquier tamaño, impida el acceso a su sitio web e infraestructura de red.,
- CDN: mejore el rendimiento del sitio web y reduzca los costos de ancho de banda con una CDN diseñada para desarrolladores. Almacene en caché recursos estáticos en el perímetro mientras acelera las API y los sitios web dinámicos.
- Bot management: analiza el tráfico de bots para identificar anomalías, identifica el comportamiento incorrecto de los bots y lo valida a través de mecanismos de desafío que no afectan el tráfico de usuarios.
- API security: protege las API garantizando que solo el tráfico deseado pueda acceder a su punto final de API, además de detectar y bloquear exploits de vulnerabilidades.,
- Protección contra la adquisición de Cuentas: utiliza un proceso de detección basado en la intención para identificar y defenderse contra los intentos de hacerse cargo de las cuentas de los usuarios con fines maliciosos.
- RASP-Mantenga sus aplicaciones seguras desde dentro contra ataques conocidos y de día cero. Protección rápida y precisa sin firma ni modo de aprendizaje.
- Análisis de ataques: mitigue y responda a amenazas de seguridad reales de manera eficiente y precisa con inteligencia procesable en todas sus capas de defensa.