Documentos de Académico
Documentos de Profesional
Documentos de Cultura
www.qualityfactory.cl
Traducción OWASP TopTen:2021 (BORRADOR-2 )
Contenido
Traducción en chileno (spanish).......................................................................................................... 3
Introducción ........................................................................................................................................ 4
Los cambios en OWASP TOPTEN:2021................................................................................................ 4
Metodología ........................................................................................................................................ 8
Cómo están estructuradas las categorías ........................................................................................... 8
Cómo se utilizan los datos para seleccionar categorías ...................................................................... 9
¿Por qué no solo datos estadísticos puros? ...................................................................................... 10
¿Por qué tasa de incidencia en lugar de frecuencia? ........................................................................ 11
¿Cuál es su proceso de recopilación y análisis de datos? ................................................................. 12
Factores de datos .............................................................................................................................. 13
Cómo utilizar OWASP Top 10 como estándar ................................................................................... 15
Cómo iniciar un programa AppSec con OWASP Top 10 .................................................................... 17
Sobre OWASP .................................................................................................................................... 21
Lista de TOPTEN:2021 ....................................................................................................................... 22
A01: 2021 - Control de acceso roto................................................................................................... 22
A02: 2021 - Fallos criptográficos ....................................................................................................... 27
A03:2021 - Inyección ......................................................................................................................... 32
A04:2021 - Diseño inseguro .............................................................................................................. 37
A05:2021 - Configuración incorrecta de seguridad .......................................................................... 41
A06:2021 - Componentes vulnerables y obsoletos........................................................................... 46
A07:2021 - Fallos de identificación y autenticación.......................................................................... 50
A08:2021 - Fallos de integridad de datos y software ........................................................................ 54
A09:2021 - Fallos de seguimiento y registro de seguridad ............................................................... 57
A10:2021 - Falsificación de solicitud del lado del servidor (SSRF) .................................................... 61
A11: 2021 - Próximos pasos .............................................................................................................. 65
A11.1 Problemas de calidad del código ............................................................................................ 65
A11.2 Denegación de servicio ........................................................................................................... 67
A11.3 Errores de administración de memoria .................................................................................. 68
Introducción
Bienvenido al OWASP TOPTEN- 2021
Un enorme agradecimiento a todos los que contribuyeron con su tiempo y datos para esta
iteración. Sin Uds., esta entrega no sucedería. ¡GRACIAS!
A01:2021- Control de acceso roto; sube desde posición #5 a #1; El 94% de las
aplicaciones fueron probadas para detectar algún tipo de control de acceso roto. Los 34
CVE asignados a “Broken Access Control” tuvieron más ocurrencias en las aplicaciones
que en cualquier otra categoría.
A03:2021- Inyección; baja de #1 a #3. El 94% de las aplicaciones se probaron para alguna
forma de inyección, y los 33 CVE mapeados en esta categoría tienen la segunda mayor
cantidad de ocurrencias en las aplicaciones. Cross-site Scripting (XSS) ahora forma parte
de esta categoría.
A04:2021- Diseño inseguro; es una nueva categoría para 2021, con un enfoque en los
riesgos relacionados con los defectos de diseño. Si realmente queremos "movernos a la
izquierda" como industria, se requiere un mayor uso del modelado de amenazas, patrones
y principios de diseño seguros y arquitecturas de referencia.
A08:2021- Fallas de integridad del software y datos es una nueva categoría para 2021,
se trata de gestionar riesgos y verificar la integridad pre y post tareas relacionadas con
actualizaciones de software, datos críticos y pipelines CI/CD, sin una verificación de
integridad. En esta categoría se agregó el riesgo por “Deserialización Insegura”, y que
estadísticamente (en esta categoría) tiene los impactos ponderados más altos de los datos
CVE/CVSS mapeado a los 10 CVE.
A10:2021- Falsificación de solicitud del lado del servidor (SSRF). se agrega a partir de
la encuesta de la industria (#1). Los datos muestran una tasa de incidencia relativamente
baja con una cobertura de pruebas superior a la media, junto con calificaciones superiores
a la media para el potencial de explotación e impacto. Esta categoría representa el
escenario en el que los profesionales de la industria nos dicen que esto es importante,
aunque no esté ilustrado en los datos en este momento.
Metodología
Esta entrega del TOPTEN está basada más que nunca en los datos, pero no ciegamente
impulsada por datos. Seleccionamos 8 de las 10 categorías a partir de datos aportados y
dos categorías de una encuesta de la industria a un alto nivel. Hacemos esto por una razón
fundamental, mirar los datos aportados es mirar hacia el pasado. Los investigadores de
AppSec se toman el tiempo para encontrar nuevas vulnerabilidades y nuevas formas de
probarlas. Se necesita tiempo para integrar estas pruebas en herramientas y procesos.
Para cuando podamos probar de manera confiable una debilidad a escala real, es probable
que hayan pasado años. Para equilibrar ese punto de vista, utilizamos una encuesta de la
industria para preguntar a las personas en primera línea qué ven como debilidades
esenciales, que los datos aún no muestran.
Hay algunos cambios críticos que adoptamos para continuar madurando en el TOPTEN.
Pasamos varios meses agrupando y categorizando los CWE y podríamos haber continuado
durante meses adicionales. Tuvimos que parar en algún momento. Existen tanto la causa
raíz como los tipos de síntomas de los CWE, donde los tipos de causa raíz pueden ser
como "Fallo criptográfico" y " Configuración incorrecta", en contraste con los tipos de
síntomas como "Exposición de datos sensibles" y "Denegación de servicio". Decidimos
centrarnos en la causa raíz siempre que fuera posible, ya que es más lógico proporcionar
una guía de identificación y corrección. Centrarse en la causa raíz sobre el síntoma no es
un concepto nuevo; el Top Ten ha sido una mezcla de síntoma y causa raíz. Los CWE
también son una combinación de síntomas y causas raíz; simplemente estamos siendo más
deliberados al respecto y lo enunciamos. Hay un promedio de 19.6 CWE por categoría en
esta entrega, con los límites inferiores en 1 CWE para A10: 2021-Falsificación de solicitudes
del lado del servidor (SSRF) a 40 CWE en A04: 2021-Diseño inseguro. Esta estructura de
categorías actualizada ofrece beneficios de capacitación adicionales, ya que las empresas
pueden enfocarse en CWE que tengan sentido para un determinado lenguaje/framework.
Descargamos OWASP Dependency Check y extrajimos los puntajes CVSS para Exploit e
Impact, agrupados por CWE relacionados. Tomó un poco de investigación y esfuerzo ya
que todos los CVE tienen puntajes CVSSv2, pero hay fallas en CVSSv2 que CVSSv3
debería solucionar. Después de cierto momento, a todos los CVE se les asigna también
una puntuación CVSSv3. Además, los rangos de puntuación y las fórmulas se actualizarón
entre CVSSv2 y CVSSv3.
En CVSSv2, tanto Exploit como (Technical) Impact podrían ser de hasta 10.0, pero en
CVSSv3 la fórmula los redujo al 60% para Exploit y al 40% para Impact. En CVSSv3, el
máximo teórico se limitó a 6.0 para Exploit y 4.0 para Impact. Teniendo en cuenta la
ponderación, la puntuación de impacto subió más, casi un punto y medio en promedio en
CVSSv3, y la explotabilidad se movió casi medio punto más bajo en promedio.
Hay 125,000 registros de un CVE mapeados a un CWE en los datos de la base de datos
nacional de vulnerabilidades (NVD) extraídos desde OWASP Dependency Check, y hay
241 CWE únicos mapeados a un CVE. Los mapas de 62,000 CWE tienen una puntuación
CVSSv3, que es aproximadamente la mitad de la población en el conjunto de datos.
Para el Top Ten 2021, calculamos los puntajes promedio de explotación e impacto de la
siguiente manera. Agrupamos todos los CVE con puntuaciones CVSS por CWE y
ponderamos tanto el aprovechamiento como el impacto puntuados por el porcentaje de la
población que tenía CVSSv3 + la población restante de puntuaciones CVSSv2, para
obtener un promedio general. Trazamos los promedios presentados a los CWES en el
conjunto de datos para su uso como puntuación para la otra mitad de la ecuación de riesgo,
en el caso de Exploit y (Technical) Impact.
Por lo tanto, solo seleccionamos ocho de diez categorías de los datos porque están
incompletos. Las otras dos categorías son de la encuesta de la comunidad TOPTEN.
Permite a los profesionales que están en primera línea votar por lo que consideran los
riesgos más altos que podrían no estar en los datos (y es posible que nunca se expresen
en los datos).
Tooling y HaT son los que generan la mayor frecuencia de hallazgos. Las herramientas
buscarán vulnerabilidades específicas e intentarán incansablemente encontrar cada
instancia de esa vulnerabilidad y generarán un alto número de hallazgos para algunos tipos
de vulnerabilidad. Por ejemplo Cross-Site Scripting, que es un error aislado más pequeño
o un problema sistémico. Cuando se trata de un problema sistémico, los recuentos de
hallazgos pueden ser de miles para una sola aplicación. Esta alta frecuencia ahoga la
mayoría de las otras vulnerabilidades encontradas en informes o datos.
TaH, por otro lado, encontrará una gama más amplia de tipos de vulnerabilidad, pero con
una frecuencia mucho menor debido a las limitaciones de tiempo. Cuando los humanos
prueban una aplicación y ven algo como Cross-Site Scripting, normalmente encontrarán
tres o cuatro instancias y se detendrán. Pueden determinar un hallazgo sistémico y
escribirlo con una recomendación para fijarlo en una escala de toda la aplicación. No hay
necesidad (ni tiempo) para encontrar cada instancia.
Supongamos que tomamos estos dos conjuntos de datos distintos e intentamos fusionarlos
basados en la frecuencia. En ese caso, los datos de Tooling y HaT ahogarán los datos de
TaH más precisos (pero amplios) y es en buena parte de por qué algo como Cross-Site
Scripting se ha clasificado tan alto en muchas listas cuando el impacto es generalmente
bajo a moderado. Es por el gran volumen de hallazgos. (Cross-Site Scripting también es
razonablemente fácil de probar, por lo que también hay muchas más pruebas).
En 2017, introdujimos el uso de la tasa de incidencia para echar un vistazo a los datos y
fusionar limpiamente los datos de herramientas y HaT con los datos de TaH. La tasa de
incidencia pregunta qué porcentaje de la población de aplicaciones tenía al menos una
Publicamos una convocatoria de datos a través de los canales de redes sociales disponibles
para nosotros, tanto del proyecto como de OWASP. En la página del Proyecto OWASP,
enumeramos los elementos de datos y la estructura que estamos buscando y cómo
enviarlos. En el proyecto de GitHub, tenemos archivos de ejemplo que sirven como
plantillas. Trabajamos con organizaciones según sea necesario para ayudar a determinar
la estructura y el mapeo de los CWE.
Examinamos las 8 categorías con las tasas de incidencia más altas para su inclusión en el
TOPTEN. También los resultados de la encuesta de la comunidad TOPTEN para ver cuáles
pueden estar ya presentes en los datos. Los dos de mayor votación que aún no están
presentes en los datos, fueron seleccionados para completar los otros 2 lugares en el
TOPTEN. Una vez que se seleccionaron los diez, aplicamos factores generalizados de
explotabilidad e impacto; para ayudar a clasificar el TOPTEN 2021 en un orden basado en
el riesgo.
Factores de datos
Para cada una de las 10 categorías principales, se enumeran factores de datos, y esto es
lo que significan:
CWEs Mapeados: Número de CWEs mapeados a una categoría por equipo Top10.
Tasa de incidencia: Es el porcentaje de aplicaciones vulnerables a ese CWE de la
población probada por esa organización para ese año.
Exploit ponderado: La sub-escala del Exploit, según las puntuaciones CVSSv2 y
CVSSv3 asignadas a CVEs mapeadas a CWEs, normalizadas y colocadas en una
escala de 10pt.
Impacto ponderado: La sub-escala de impacto de los puntajes CVSSv2 y CVSSv3
asignados a los CVE asignados a los CWE, normalizados y colocados en una escala
de 10pt.
(Pruebas) Cobertura: El porcentaje de aplicaciones probadas por todas las
organizaciones para un CWE determinado.
Ocurrencias totales: Número total de aplicaciones que tienen los CWE asignados
a una categoría.
Total de CVE: número total de CVE en la base de datos NVD que se asignaron a
los CWEs mapeados a una categoría.
AppSec Labs
Cobalt.io
Seguridad de contraste
GitLab
HackerOne
Tecnologías HCL
Enfoque micro
PenTest-Tools
Probely
Sqreen
Veracode
WhiteHat (NTT)
El equipo de OWASP TOPTEN 2021 agradece el apoyo financiero de Secure Code Warrior.
Una de las dificultades de utilizar OWASP Top 10 como estándar es que documentamos
los riesgos de AppSec y no necesariamente los problemas fácilmente comprobables. Por
ejemplo, A04: 2021-Diseño inseguro está más allá del alcance de la mayoría de las formas
de prueba. Otro ejemplo son las pruebas en el lugar, en uso, y el registro y el monitoreo
efectivos solo se pueden realizar con entrevistas y solicitando una muestra de respuestas
efectivas a incidentes. Una herramienta de análisis de código estático puede buscar la
ausencia de registro, pero puede ser imposible determinar si la lógica empresarial o el
control de acceso están registrando brechas de seguridad críticas. Los pentesters solo
pueden determinar que han invocado la respuesta a incidentes en un entorno de prueba,
que no se monitorea de la misma manera que los entornos de producción.
Aquí están las recomendaciones sobre cuándo es apropiado usar OWASP Top10:
Awareness SI
El camino pavimentado puede parecer mucho para asimilar, pero debe construirse
gradualmente con el tiempo. Existen otras formas de programas AppSec, en particular, el
ciclo de vida de desarrollo seguro ágil de Microsoft. No todas las metodologías de
programas de AppSec se adaptan a todas las empresas.
Sobre OWASP
Open Web Application Security Project (OWASP) es una comunidad abierta dedicada a
permitir que las organizaciones desarrollen, compren y mantengan aplicaciones y API en
las que se pueda confiar.
En OWASP, encontrará gratis y disponible:
Estándares y herramientas de seguridad de aplicaciones
Investigación de vanguardia
Bibliotecas y controles de seguridad estándar
Libros completos sobre pruebas de seguridad de aplicaciones, desarrollo de código
seguro y revisión de código seguro
Presentaciones y videos
Hojas de trucos sobre muchos temas comunes
Reuniones de capítulos
Eventos, capacitaciones y conferencias .
grupos de Google
La Fundación OWASP es la entidad sin fines de lucro que garantiza el éxito a largo plazo
del proyecto. Casi todos los asociados con OWASP son voluntarios, incluida la junta de
OWASP, líderes de capítulo, de proyecto y los miembros del proyecto. Apoyamos la
investigación de seguridad innovadora con subvenciones e infraestructura.
Copyright y licencia
Lista de TOPTEN:2021
Visión general
Sube desde posición #5 a #1, el 94% de las aplicaciones se probaron para detectar algún
tipo de control de acceso defectuoso. Los CWE relevantes que incluye son CWE-200:
Exposición de información sensible a un actor no autorizado, CWE-201: Exposición de
información sensible a través de datos enviados y CWE-352: Falsificación de solicitudes
entre sitios.
Descripción
El control de acceso hace cumplir la política de modo que los usuarios no pueden actuar
fuera de sus permisos previstos. Las fallas generalmente conducen a la divulgación de
información no autorizada, la modificación o la destrucción de todos los datos o la
realización de una función comercial fuera de los límites del usuario. Las vulnerabilidades
comunes de control de acceso incluyen:
Cómo Prevenir
El control de acceso solo es efectivo usando código confiable del lado del servidor o usar
server-less API, donde el atacante no puede modificar la verificación de control de acceso
o los metadatos.
● Denegar por defecto todos los accesos. A excepción de los recursos públicos.
● Implemente mecanismos de control de acceso una vez y reutilícelos en toda la
aplicación, incluida la minimización del uso de CORS.
● Los controles de acceso del modelo deben imponer la propiedad de los registros en
lugar de aceptar que el usuario pueda crear, leer, actualizar o eliminar cualquier
registro.
● Los modelos de dominio deben reforzar el cumplimiento de los requisitos límite del
negocio, en las aplicaciones únicas.
● Desactive la lista de directorios del servidor web y asegúrese de que los metadatos
del archivo (por ejemplo,.git) y los archivos de respaldo no estén presentes en las
raíces web.
● Registre las fallas de control de acceso, avise a los administradores cuando sea
apropiado (por ejemplo, fallas repetidas).
● Limite el acceso a la API y al controlador para minimizar el daño de las herramientas
de ataque automatizadas.
● Los tokens JWT deben invalidarse en el servidor después de cerrar la sesión.
● Los desarrolladores y el personal de control de calidad deben incluir una unidad de
control de acceso funcional y pruebas de integración.
Un atacante simplemente modifica el parámetro 'acct' del navegador para enviar el número
de cuenta que desee. Si no se verifica correctamente, el atacante puede acceder a la cuenta
de cualquier usuario.
https://example.com/app/accountInfo?acct=notmyacct
Escenario nro. 2: Un atacante simplemente obliga a los navegadores a apuntar a las URL.
Se requieren derechos de administrador para acceder a la página de administración.
https://example.com/app/getappInfo
https://example.com/app/admin_getappInfo
Referencias
● OWASP Proactive Controls: Enforce Access Controls
● OWASP Application Security Verification Standard: V4 Access Control
● OWASP Testing Guide: Authorization Testing
● OWASP Cheat Sheet: Access Control
● PortSwigger: Exploiting CORS misconfiguration
Factores
Visión general
Sube desde #3 a #2, antes era conocido como Exposición de datos confidenciales, que es
más un síntoma amplio que una causa raíz. Ahora la atención se centra en las fallas
relacionadas con la criptografía (o la falta de ella). Lo que a menudo conduce a la exposición
de datos confidenciales. Los CWE relevantes que incluye son CWE-259: Uso de
contraseña codificada, CWE-327: Algoritmo criptográfico roto o riesgoso, y CWE-331
Entropía insuficiente.
Descripción
Lo primero es determinar las necesidades de protección de los datos en tránsito y en
reposo. Por ejemplo, las contraseñas, los números de tarjetas de crédito, los registros
médicos, la información personal y los secretos comerciales requieren protección adicional,
principalmente si estos datos se rigen por las leyes de privacidad, por ejemplo, el
Reglamento general de protección de datos (GDPR) de la UE, o las regulaciones, por
ejemplo, la protección de datos financieros, como PCI Data Security Standard (PCI DSS).
● ¿Se transmiten datos en texto claro? Esto se refiere a protocolos como HTTP, SMTP y
FTP. El tráfico externo de Internet es peligroso. Verifique todo el tráfico interno, por
ejemplo, entre balanceadores de carga, servidores web o sistemas de back-end.
● Consulte ASVS Crypto (V7), Protección de datos (V9) y SSL / TLS (V10)
Cómo Prevenir
Haga lo siguiente, como mínimo, y consulte las referencias:
● Cifre todos los datos en tránsito con protocolos seguros como TLS con cifrado de
secreto directo perfecto (PFS), priorización de cifrado por parte del servidor y
parámetros seguros. Aplique el cifrado mediante directivas como HTTP Strict Transport
Security (HSTS).
Escenario nro. 2: un sitio no usa ni aplica TLS para todas las páginas o admite un cifrado
débil. Un atacante monitorea el tráfico de la red (por ejemplo, en una red inalámbrica
insegura), degrada las conexiones de HTTPS a HTTP, intercepta solicitudes y roba la
cookie de sesión del usuario. El atacante luego reproduce esta cookie y secuestra la sesión
(autenticada) del usuario, accediendo o modificando los datos privados del usuario. En lugar
de lo anterior, podrían alterar todos los datos transportados, por ejemplo, el destinatario de
una transferencia de dinero.
Escenario nro. 3: la base de datos de contraseñas utiliza hashes simples o sin “salto” para
almacenar las contraseñas de todos. Una falla en la carga de archivos permite a un atacante
recuperar la base de datos de contraseñas. Todos los hashes sin “salto” se pueden exponer
con una tabla rainbow de hashes pre-calculados. Los hash generados por funciones hash
simples o rápidas pueden ser descifrados por las GPU, incluso si fueron creados con “salto”.
Referencias
● OWASP Proactive Controls: Protect Data Everywhere
● OWASP Application Security Verification Standard (V7, 9, 10)
● OWASP Cheat Sheet: Transport Layer Protection
● OWASP Cheat Sheet: User Privacy Protection
● OWASP Cheat Sheet: Password and Cryptographic Storage
● OWASP Cheat Sheet: HSTS
● OWASP Testing Guide: Testing for weak cryptography
A03:2021 - Inyección
Factores
Visión general
La inyección baja de la posición #1 a #3. El 94% de las aplicaciones fueron probadas para
alguna forma de inyección.
Los CWE destacables que incluye son CWE-79: Cross-site Scripting, CWE-89: SQL
Injection y CWE-73: Control externo de nombre de archivo o ruta.
Descripción
Una aplicación es vulnerable a ataques de inyección, cuando:
● La aplicación no valida, ni filtra ni sanitiza los datos proporcionados por el usuario.
● Algunas de las inyecciones más comunes son SQL, NoSQL, comando del sistema
operativo (OS), mapeo relacional de objetos (ORM), LDAP y lenguaje de expresión (EL)
o la inyección de biblioteca de navegación de gráficos de objetos (OGNL). El concepto
es idéntico entre todos los intérpretes. La revisión del código fuente es el mejor método
para detectar si las aplicaciones son vulnerables a las inyecciones. Se recomienda
encarecidamente realizar pruebas automatizadas de todos los parámetros,
encabezados, URL, cookies, JSON, SOAP y entradas de datos XML. Las
organizaciones pueden incluir herramientas de prueba estática (SAST) y las
herramientas de prueba de aplicación dinámica (DAST) en las pipelines de CI/CD para
identificar las fallas de inyección introducidas antes de la implementación de la
producción.
Cómo Prevenir
La prevención de la inyección requiere mantener una separación entre los datos y los
comandos o consultas.
● La opción preferida es utilizar una API segura, que evita el uso del intérprete por
completo, proporciona una interfaz parametrizada o migrar a Object Relational
Mapping Tools (ORM).
● Utilice la validación de entrada del lado del servidor positiva o de "lista blanca". Esta
no es una defensa completa, ya que muchas aplicaciones requieren caracteres
especiales, como áreas de texto o API para aplicaciones móviles.
Nota: las estructuras SQL como nombres de tablas, nombres de columnas, etc. no
se pueden escapar y, por lo tanto, los nombres de estructuras proporcionados por
el usuario son peligrosos. Este es un problema común en el software de redacción
de informes.
● Utilice LIMIT y otros controles SQL dentro de las consultas para evitar la divulgación
masiva de registros en caso de inyección SQL.
En ambos casos, el atacante modifica el valor del parámetro 'id' en su navegador para
enviar: 'o' 1 '=' 1. Por ejemplo:
Esto cambia el significado de ambas consultas para devolver todos los registros de la tabla
de cuentas. Los ataques más peligrosos podrían modificar o eliminar datos o incluso invocar
procedimientos almacenados.
Referencias
● OWASP Proactive Controls: Secure Database Access
● OWASP ASVS: V5 Input Validation and Encoding
● OWASP Testing Guide: SQL Injection, Command Injection, and ORM Injection
● OWASP Cheat Sheet: Injection Prevention
● OWASP Cheat Sheet: SQL Injection Prevention
● OWASP Cheat Sheet: Injection Prevention in Java
● OWASP Cheat Sheet: Query Parameterization
● OWASP Automated Threats to Web Applications – OAT-014
● PortSwigger: Server-side template injection
Factores
Visión general
Esta nueva categoría para 2021 se centra en los riesgos relacionados con el diseño y las
fallas de arquitectura, con énfasis en un mayor uso del modelado de amenazas, patrones
de diseño seguros y arquitecturas de referencia. Los CWE más relevantes que incluye, son:
CWE-209: Generación de mensaje de error que contiene información confidencial, CWE-
256: Almacenamiento desprotegido de credenciales, CWE-501: Infracción de límites de
confianza y CWE-522: Credenciales insuficientemente protegidas.
Descripción
El diseño inseguro es una categoría amplia que representa muchas debilidades diferentes,
expresadas como "diseño de control faltante o ineficaz". Un diseño inseguro debido a que
falta un control. Por ejemplo, imagine un código que debería cifrar datos confidenciales,
pero no existe un método de encriptación.
Un diseño inseguro debido a que un control es ineficaz, es donde frente a una amenaza,
se activa una validación de la lógica de dominio (empresarial) pero es insuficiente para
impedir la acción. Por ejemplo, imagine una lógica de dominio que se supone procesa una
reducción de impuestos, en función de los tramos de ingresos, pero que no valida que todas
las entradas estén correctamente firmadas y proporcione un beneficio de reducción de
impuestos mucho más significativo de lo que debería concederse.
El diseño seguro es una cultura y metodología que evalúa constantemente las amenazas y
garantiza que el código esté diseñado y probado de manera sólida para prevenir métodos
de ataque conocidos. El diseño seguro requiere un ciclo de vida de desarrollo seguro,
alguna forma de patrón de diseño seguro o biblioteca o herramientas de componentes de
carreteras pavimentadas y modelado de amenazas.
Cómo Prevenir
● Establecer y usar un ciclo de vida de desarrollo seguro con profesionales de AppSec
para ayudar a evaluar y diseñar controles relacionados con la seguridad y la
privacidad.
● Escribir pruebas unitarias y de integración para validar que todos los flujos críticos
son resistentes al modelo de amenazas.
Referencias
● [OWASP Cheat Sheet: Secure Design Principles] (TBD)
● NIST – Guidelines on Minimum Standards for Developer Verification of > Software
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
20 19,84% 4,51% 89,58% 44,84% 8.12 6.56 208,387 789
Visión general
Sube del puesto #6 al #5, el 90% de las aplicaciones se probaron para detectar algún tipo
de configuración incorrecta. Con más cambios en software altamente configurable, no es
sorprendente ver que esta categoría asciende. Los CWE relevantes que incluye son
Configuración CWE-16 y CWE-611 Restricción incorrecta de la referencia de entidad
externa XML.
Descripción
La aplicación puede ser vulnerable si la aplicación es:
● El manejo de errores revela a los usuarios rastros de pila u otros mensajes de error
demasiado informativos.
Cómo Prevenir
Se deben implementar procesos de instalación seguros, que incluyen:
● Una tarea para revisar y actualizar las configuraciones apropiadas para todas las
notas de seguridad, actualizaciones y parches como parte del proceso de
administración de parches (consulte A06: 2021-Componentes vulnerables y
obsoletos). Revise los permisos de almacenamiento en la nube (p. Ej., Permisos de
depósito de S3).
Referencias
● OWASP Testing Guide: Configuration Management
● OWASP Testing Guide: Testing for Error Codes
● Application Security Verification Standard V19 Configuration
● NIST Guide to General Server Hardening
● CIS Security Configuration Guides/Benchmarks
● Amazon S3 Bucket Discovery and Enumeration
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencia CVE
mapeados incidencia incidenci máxima promedio ponderado ponderado s totales totales
máxima a media promedio medio
3 27,96% 8,77% 51,78% 22,47% 5,00 5,00 30,457 0
Visión general
Fue el número 2 de la encuesta de la industria, pero también tenía suficientes datos para
llegar al TOPTEN a través de la estadística. Los componentes vulnerables son un problema
conocido que nos cuesta comprobar y evaluar el riesgo y es la única categoría que no tiene
ningún CVE asignado a los CWE incluidos, por lo que se utiliza un peso de impacto / exploits
predeterminado de 5.0. Los CWE relevantes que incluye son CWE-1104: Uso de
componentes de terceros no mantenidos y los dos CWE del TOPTEN 2013 y 2017.
Descripción
Probablemente seas vulnerable:
● Si no conoce las versiones de todos los componentes que utiliza (tanto del lado del
cliente como del lado del servidor). Esto incluye los componentes que usa
directamente, así como las dependencias anidadas.
Cómo Prevenir
Debe existir un proceso de administración de parches para:
● Elimine las dependencias no utilizadas, las funciones, los componentes, los archivos
y la documentación innecesarios.
● Realice un inventario continuo de las versiones de los componentes del lado del
cliente y del lado del servidor (por ejemplo, marcos, bibliotecas) y sus dependencias
utilizando herramientas como versiones, OWASP Dependency Check, retire.js, etc.
componentes. Utilice herramientas de análisis de composición de software para
automatizar el proceso. Suscríbase para recibir alertas por correo electrónico sobre
vulnerabilidades de seguridad relacionadas con los componentes que utiliza.
Referencias
● Estándar de verificación de seguridad de aplicaciones OWASP: arquitectura V1,
diseño y modelado de amenazas
● Comprobación de dependencia de OWASP (para bibliotecas Java y.NET)
● Guía de pruebas de OWASP: arquitectura de la aplicación de mapas (OTG-INFO-
010)
● Mejores prácticas de parcheo virtual de OWASP
● La desafortunada realidad de las bibliotecas inseguras
● Búsqueda de MITRE Common Vulnerabilities and Exposures (CVE)
● Base de datos nacional de vulnerabilidades (NVD)
● Retire.js para detectar bibliotecas de JavaScript vulnerables conocidas
● Avisos de seguridad de bibliotecas de nodos
● Herramientas y base de datos de asesoramiento de seguridad de las bibliotecas
Ruby
● https://safecode.org/publication/SAFECode_Software_Integrity_Controls0610.pdf
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
22 14,84% 2,55% 79,51% 45,72% 7,40 6,50 132,195 3.897
Visión general
Anteriormente conocida como “Autenticación Rota”, bajo desde la posición #2 a #7, y ahora
incluye CWE relacionados con fallas de identificación. Los CWE relevantes que incluye son
CWE-297: Validación incorrecta del certificado con discrepancia de host, CWE-287:
Autenticación incorrecta y CWE-384: Corrección de sesión.
Descripción
La confirmación de la identidad, la autenticación y la administración de sesiones del usuario
es fundamental para proteger contra los ataques relacionados con la autenticación. Puede
haber debilidades de autenticación si la aplicación:
● Utiliza contraseñas de texto sin formato, cifradas o con un hash débil (consulte A3:
Exposición de datos confidenciales de 2017).
Cómo Prevenir
● Siempre que sea posible, implementar la autenticación multifactor para evitar el
relleno automatizado de credenciales, la fuerza bruta y los ataques de reutilización
de credenciales robadas.
● Limite o retrase cada vez más los intentos fallidos de inicio de sesión. Registre todas
las fallas y avise a los administradores cuando se detecten ataques de relleno de
credenciales, ataques de fuerza bruta u otros ataques.
● Utilice un administrador de sesiones integrado, seguro y del lado del servidor que
genere una nueva ID de sesión aleatoria con alta entropía después de iniciar sesión.
Los ID de sesión no deben estar en la URL, almacenarse de forma segura e invalidar
después del cierre de sesión, inactivo y tiempos de espera absolutos.
Referencias
● OWASP Proactive Controls: Implement Digital Identity
● OWASP Application Security Verification Standard: V2 authentication
● OWASP Application Security Verification Standard: V3 Session Management
● OWASP Testing Guide: Identity, Authentication
● OWASP Cheat Sheet: Authentication
● OWASP Cheat Sheet: Credential Stuffing
● OWASP Cheat Sheet: Forgot Password
● OWASP Cheat Sheet: Session Management
● OWASP Automated Threats Handbook
● NIST 800-63b: 5.1.1 Memorized Secrets
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
10 16,67% 2,05% 75,04% 45,35% 6,94 7,94 47,972 1,152
Visión general
Esta nueva categoría para 2021 se enfoca en hacer suposiciones relacionadas con
actualizaciones de software, datos críticos y pipelines CI/CD sin verificar la integridad. Uno
de los impactos más ponderados de los datos CVE / CVSS. Los CWE notables incluyen
CWE-502: deserialización de datos que no son de confianza, CWE-829: inclusión de
funcionalidad de una esfera de control que no es de confianza y CWE-494: descarga de
código sin verificación de integridad.
Descripción
Las fallas en la integridad del software y los datos se relacionan con el código y la
infraestructura que no protegen contra las violaciones de la integridad. Por ejemplo, cuando
los objetos o los datos se codifican o serializan en una estructura que un atacante puede
ver y modificar, es vulnerable a una deserialización insegura. Otra forma de esto es cuando
una aplicación se basa en complementos, bibliotecas o módulos de fuentes, repositorios y
redes de entrega de contenido (CDN) que no son de confianza. Una pipeline de CI/CD
insegura puede presentar la posibilidad de acceso no autorizado, código malicioso o
compromiso del sistema. Por último, muchas aplicaciones ahora incluyen la funcionalidad
de actualización automática, donde las actualizaciones se descargan sin una verificación
de integridad suficiente y se agregan a la aplicación de confianza anterior. Los atacantes
podrían cargar sus propias actualizaciones para distribuirlas y ejecutarlas en todas las
instalaciones.
Cómo prevenir
● Asegúrese de que los datos serializados no firmados o no cifrados no se envíen a
clientes que no sean de confianza, sin algún tipo de verificación de integridad o firma
digital para detectar alteraciones o reproducción de los datos serializados.
Referencias
[OWASP Cheat Sheet:
Deserialization]( https://www.owasp.org/index.php/Deserialization_Cheat_Sheet)
[OWASP Cheat Sheet: Software Supply Chain Security]()
[OWASP Cheat Sheet: Secure build and deployment]()
[SAFECode Software Integrity Controls](
https://safecode.org/publication/SAFECode_Software_Integrity_Controls0610.pdf)
[A 'Worst Nightmare' Cyberattack: The Untold Story Of The SolarWinds
Hack](https://www.npr.org/2021/04/16/985439655/a-worst-nightmare-cyberattack-the-
untold-story-of-the-solarwinds-hack)
https://www.manning.com/books/securing-devops
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
Visión general
El registro y el monitoreo de seguridad provienen de la encuesta de la industria (3er lugar),
respecto de TopTen:2017 subió de #10 a #9. El registro y el monitoreo pueden ser difíciles
de probar, a menudo implican entrevistas o preguntar si se detectaron ataques durante una
prueba de penetración. No hay muchos datos CVE / CVSS para esta categoría, pero
detectar y responder a las infracciones es fundamental. Aún así, puede ser muy impactante
para la visibilidad, las alertas de incidentes y el análisis forense. Esta categoría se expande
más allá de CWE-778 Registro insuficiente, para incluir CWE-117 Neutralización de salida
incorrecta para Logs, CWE-223 Omisión de información relevante para la seguridad y CWE-
532 Inserción de información confidencial en el archivo de Log.
Descripción
Esta categoría es para ayudar a detectar, escalar y responder a las infracciones activas.
Sin registros de Log ni monitoreo, no se pueden detectar las infracciones, y se produce esta
falta o insuficiencia de registros de Log, detección, supervisión y respuesta activa, en
cualquier situación relevante, como por ejemplo:
Cómo prevenir
Los desarrolladores deben implementar algunos o todos los siguientes controles,
dependiendo del riesgo de la aplicación:
Asegúrese de que todas las fallas de validación de entrada, en el lado del servidor,
y de control de acceso, sean registradas con suficiente contexto de usuario para
identificar cuentas sospechosas o maliciosas y retenerlas durante el tiempo
suficiente para permitir un análisis forense tardío y/o retrasado.
Asegúrese de que los registros se generen en un formato adecuado, para que las
herramientas de gestión de LOGs puedan consumirla fácilmente.
Asegúrese de que las transacciones de alto valor tengan una pista de auditoría con
controles de integridad para evitar alteraciones o eliminaciones, como por ejemplo,
tablas de bases de datos que sólo permitan agregación de información (append-
only).
Escenario nro.2: una importante aerolínea india sufrió una violación de datos que involucró
más de diez años de datos personales de millones de pasajeros, incluidos los datos de
pasaportes y tarjetas de crédito. La violación de datos se produjo en un proveedor de
alojamiento en la nube de terceros, que notificó a la aerolínea de la violación después de
un tiempo.
Escenario nro. 3: una importante aerolínea europea sufrió una infracción denunciable del
tipo GDPR. Según los informes, la infracción fue causada por vulnerabilidades de seguridad
de las aplicaciones de pago explotadas por los atacantes, que recopilaron más de 400.000
registros de pagos de clientes. Como resultado, la aerolínea fue multada con 20 millones
de libras por el regulador de privacidad.
Referencias
OWASP Proactive Controls: Implement Logging and Monitoring
OWASP Application Security Verification Standard: V8 Logging and Monitoring
OWASP Testing Guide: Testing for Detailed Error Code
OWASP Cheat Sheet: Logging
Data Integrity: Recovering from Ransomware and Other Destructive Events
Data Integrity: Identifying and Protecting Assets Against Ransomware and Other
Destructive Events
Data Integrity: Detecting and Responding to Ransomware and Other Destructive
Events
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
Visión general
Esta categoría surge desde la encuesta de la industria (# 1). Los datos muestran una baja
tasa de incidencia, pero con una cobertura de pruebas superior a la media y su potencial
de explotación y ratios de impacto son superiores a la media. Como todo riesgo nuevo, lo
habitual es que sólo hay un grupo único o pequeño de CWE para focalizar la atención y la
concientización, la expectativa es que puedan integrarse en una categoría más grande en
una edición futura de TopTen.
Descripción
Las fallas de SSRF ocurren cuando una aplicación web está obteniendo un recurso remoto,
sin validar la URL proporcionada por el usuario. Permite que un atacante coaccione a la
aplicación para que envíe una solicitud manipulada, a un destino inesperado, incluso
cuando está protegido por un firewall, VPN u otro tipo de ACL de red.
La incidencia de SSRF está aumentando, porque las aplicaciones web modernas brindan
al usuario final funciones convenientes, la búsqueda de una URL se convierte en un
escenario común y provoca este resultado. Además, la gravedad de SSRF es cada vez
mayor debido a los servicios en la nube y la complejidad de las arquitecturas.
Como prevenir
Los desarrolladores pueden prevenir SSRF implementando algunos o todos los siguientes
controles de defensa en profundidad:
Sugerencias:
~ Establezca un responsable (ownership) y un ciclo de vida para las reglas de
firewall basadas en aplicaciones.
~ Registre todos los flujos de red aceptados y bloqueados en firewalls
(consulte A09: 2021-Fallos de monitoreo y registro de seguridad ).
No mitigue SSRF mediante el uso de una lista de denegación o una expresión regular. Los
atacantes tienen listas de ataques (payload), herramientas y habilidades para eludir las
listas de denegación.
Para interfaces con grupos de usuarios dedicados y manejables, use el cifrado de red
(por ejemplo, VPN) en sistemas independientes para considerar necesidades de
protección muy altas
Escenario nro. 2: exposición de datos sensibles. Los atacantes pueden acceder a archivos
locales y/o servicios internos para obtener información sensible, tales como:
file:///etc/passwd</span> and http://localhost:28017/.
Escenario nro. 4: comprometer los servicios internos: el atacante puede abusar de los
servicios internos para realizar otros ataques, más potentes, como la ejecución remota de
código (RCE) o la denegación de servicio (DoS).
Referencias
OWASP - Server-Side Request Forgery Prevention Cheat Sheet
PortSwigger - Server-side request forgery (SSRF)
Acunetix - What is Server-Side Request Forgery (SSRF)?
SSRF bible
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages!
Por diseño, el OWASP TOPTEN se limita a los diez riesgos más importantes. Cada
selección TOPTEN mantiene varios riesgos “en la cúspide” que son evaluados en
profundidad para su inclusión, pero al final, quedaron afuera. No importa cómo intentemos
interpretar o amoldar los datos, los otros riesgos fueron más frecuentes e impactantes.
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
Referencias
OWASP Code Review Guide
Google Code Review Guide
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
Cómo prevenir. Hacer pruebas de rendimiento para el uso de CPU, I/O y memoria,
rediseñar, optimizar o almacenar en caché operaciones costosas. Considere los
controles de acceso para objetos más grandes para asegurarse de que solo las
personas autorizadas puedan acceder a archivos u objetos grandes o servirlos a
través de una red de almacenamiento en caché perimetral.
Referencias
OWASP Cheet Sheet: Denial of Service
OWASP Attacks: Denial of Service
Factores
CWEs Tasa de Tasa de Cobertura Cobertura Exploit Impacto Incidencias CVE
mapeados incidencia incidencia máxima promedio ponderado ponderado totales totales
máxima media promedio medio
Cómo prevenir. Muchas API modernas ahora están escritas en lenguajes seguros para
la memoria como Rust o Go. En el caso de Rust, la seguridad de la memoria es una
característica crucial del lenguaje. Para el código ya existente, se recomienda usar flags
de compilación estrictas, tipado fuerte, análisis de código estático y fuzz testing, para
identificar memory leaks, y desbordamientos de arreglos/matrices y de memoria
Referencias
OWASP Vulnerabilities: Buffer Overflow
OWASP Attacks: Buffer Overflow
Science Direct: Integer Overflow
https://www.youtube.com/watch?v=LU5SFrpsp50