Tome un camino más rápido e inteligente hacia la automatización de pruebas C/C++ impulsada por IA. Descubra cómo >>
Cómo aprender OWASP e impulsar la seguridad de sus aplicaciones
Lograr la seguridad de las aplicaciones en su organización no se puede lograr solo con herramientas de seguridad. Aquí hay una cobertura detallada de por qué tener el conocimiento de Open Web Application Security Project (OWASP) puede ayudarlo a mitigar las vulnerabilidades de la aplicación.
Saltar a la sección
Lograr la seguridad de las aplicaciones en su organización no se puede lograr solo con herramientas de seguridad. Aquí hay una cobertura detallada de por qué tener el conocimiento de Open Web Application Security Project (OWASP) puede ayudarlo a mitigar las vulnerabilidades de la aplicación.
Seguimos viendo grandes filtraciones de datos que afectan a organizaciones de todos los tamaños. A medida que los problemas de ciberseguridad persisten e incluso aumentan en frecuencia y gravedad, nos preguntamos: "¿Seremos los siguientes?" y "¿Qué puedo hacer al respecto?". Ahí es donde OWASP entra en juego.
Más conocido por el OWASP Top 10, OWASP es el Open Web Application Security Project, una comunidad abierta con información gratuita y capacitación sobre seguridad de aplicaciones. El OWASP Top 10 es una lista de riesgos de seguridad peligrosos comunes para las aplicaciones web, que se actualiza periódicamente para mantenerse al día. Si no ha estado haciendo mucho en cuanto a seguridad de aplicaciones, o si lo que ha estado haciendo es ad-hoc, OWASP Top 10 es un excelente lugar para comenzar.
OWASP, la organización, proporciona recursos, pautas y herramientas para ayudar a los desarrolladores de aplicaciones web a identificar, mitigar y prevenir vulnerabilidades de seguridad. El OWASP Top Ten es un recurso clave que la organización ha estado publicando desde 2003. La intención es lograr que la comunidad de desarrolladores se centre en los problemas de seguridad clave y comprenda su impacto.
Comprender e implementar OWASP Top Ten y otras recomendaciones de OWASP mejora la seguridad de las aplicaciones web, ya que ayuda a eliminar los riesgos de seguridad más comunes y críticos. Conocer las causas fundamentales de estas diez vulnerabilidades principales ayuda a los desarrolladores a priorizar sus esfuerzos y centrarse en los mayores riesgos. A medida que una organización madura y adopta estas prácticas, sus aplicaciones web son más resistentes a los ataques y reducen el riesgo de filtraciones de datos, pérdidas financieras y daños a la reputación.
El OWASP Top 10 comprende las siguientes vulnerabilidades A1-A10:
OWASP proporciona documentación para el Top 10 con una página web dedicada a cada vulnerabilidad. La página describe qué es cada vulnerabilidad y proporciona una puntuación de riesgo, que se utiliza para ayudar a priorizar y clasificar posibles vulnerabilidades. A continuación se muestra un ejemplo de la página web de inyección A03:2021:

La "Tabla de contenidos" en la parte superior derecha proporciona orientación y le ayuda a comprender la importancia y el peligro de cada una de las vulnerabilidades.
Según el Top Ten de OWASP, las vulnerabilidades más comunes son el control de acceso roto, fallas criptográficas y fallas de inyección.
El control de acceso mantiene a los usuarios dentro de los permisos previstos en una aplicación. Sin embargo, estos controles suelen estar mal implementados y son fácilmente eludidos. Con privilegios superiores a los previstos, los atacantes pueden acceder a datos privados o interrumpir las operaciones. Un control de acceso adecuado significa implantar controles efectivos con una filosofía de denegación por defecto. Las pruebas de seguridad deben abordar exhaustivamente posibles problemas con el control de acceso.
Otra vulnerabilidad común es la falta de criptografía adecuada. La falta de seguridad, ya sea débil o total, de datos en movimiento o en reposo suele provocar su exposición. Cuando se utiliza criptografía, a veces se utiliza un cifrado débil que ya ha sido descifrado por atacantes. La clave para la prevención reside en mantener la seguridad de los datos durante su transmisión con protocolos seguros y un cifrado robusto durante su almacenamiento. Esto también implica una gestión adecuada de claves y la actualización de las herramientas y métodos de cifrado según sea necesario.
Los ataques de inyección manipulan entradas para ejecutar comandos no autorizados. Estos comandos se pueden utilizar para exponer información confidencial. Por ejemplo, un ataque de inyección SQL puede exponer los datos de los clientes. Un inicio de sesión deficiente y una gestión de sesiones deficientes pueden dar lugar a un acceso no autorizado, lo que a menudo conduce a una exposición de datos que habla de un problema general de mala protección de la información confidencial.
Abordar el diseño inseguro es una nueva categoría en el Top Ten de OWASP para 2021. Se diferencia en que se centra en las cuestiones organizativas relacionadas con la seguridad de las aplicaciones web. Es imposible corregir un diseño inseguro durante la implementación, por lo que el mejor enfoque es introducir la seguridad en las primeras etapas del proceso de desarrollo y durante todo el ciclo de vida.
Seguro por diseño es un enfoque que incluye análisis de amenazas, gestión de riesgos, diseño seguro y prácticas de codificación, y validación y verificación continua de la seguridad. OWASP publica el Modelo de madurez de garantía de software (SAMM) para ayudar a las organizaciones a alinear y madurar su ciclo de vida de desarrollo de software seguro.
OWASP incluye muchas recomendaciones para pasar a un proceso de desarrollo más seguro. Los aspectos clave incluyen el modelado de amenazas, la integración de controles de seguridad y lenguaje en las historias de los usuarios y, por supuesto, el establecimiento de un ciclo de vida de desarrollo seguro con profesionales externos de AppSec si es necesario.
Para cada uno de los diez principales, hay una página dedicada a cada categoría de problemas de seguridad de aplicaciones web.
La sección de factores muestra los datos asociados a la categoría, como el número de CWE mapeados, tasas de incidencia, porcentaje de cobertura, número de incidentes.
La descripción general y la descripción, como se esperaba, proporcionan detalles sobre la categoría de vulnerabilidad. Esto se amplía con respecto a versiones anteriores de la lista.
La sección de Cómo Prevenir es la más interesante en mi humilde opinión. Las pruebas de seguridad son importantes, pero crear código seguro es la única base sólida para una seguridad sólida de las aplicaciones. Esta sección describe varias estrategias que le ayudarán a mejorar su seguridad no sólo probando antes, sino también creando un código mejor que sea fundamentalmente menos vulnerable a los ataques. Esta es la base para un enfoque de seguridad por diseño, requerido por GDPR, por ejemplo.
La sección de escenarios de ataque de ejemplo muestra cómo un atacante podría aprovechar cada vulnerabilidad. Esta información se puede utilizar para ayudar a crear pruebas y para educar al equipo sobre cómo las vulnerabilidades del software afectan la seguridad de las aplicaciones.
Finalmente, cada elemento del Top 10 tiene una sección con más información sobre cada problema, enfoques para evitarlo y enfoques para probarlo. También contiene enlaces que le llevarán a problemas relacionados. Esto le resultará muy útil mientras trabaja para mejorar continuamente la seguridad de su software.
La sección final enumera todos los CWE asignado a la categoría actual con enlaces a las descripciones CWE de MITRE.
Al leer la documentación de OWASP Top 10, es posible que algunos de los elementos sean obvios solo por su nombre, mientras que otros requieren una profundización para comprenderlos. Por ejemplo, A01 Broken Access Control es en realidad un conjunto más amplio de cosas como hacer cumplir controles de acceso, pruebas de autorización, revocar acceso y más. Detrás de esta debilidad de seguridad está el hecho de que las fallas de acceso pueden llevar a la divulgación no autorizada de información, modificación o destrucción de todos los datos o a la realización de una función fuera de los límites del usuario.
Hay información, capacitación y consejos en OWASP Top 10. Puede aprender sobre problemas de seguridad comunes, así como estrategias para detectar e incluso evitar algunos problemas por completo. Toda esta información está disponible sin costo y se actualiza y mejora constantemente.
El cumplimiento también significa que necesitamos saber exactamente qué elemento específico de nuestro conjunto de herramientas respalda qué parte específica del estándar. En el caso del análisis estático, esto significa saber qué verificadores respaldan qué elementos del estándar y si hay elementos en el estándar que requieren más que un análisis estático, como la revisión de código por pares o el análisis de composición de software.
Adoptar la seguridad desde el diseño debería ser una prioridad absoluta para el desarrollo de aplicaciones web. La prevención mediante un diseño y codificación seguros y la implementación de un estándar de codificación seguro son parte de la solución. De hecho, la última lista Top Ten de OWASP ha agregado la categoría de diseño inseguro para abordar estos mismos problemas. La seguridad no se puede reforzar. Debe estar en la aplicación desde el principio.
Las herramientas SAST desempeñan un papel importante a la hora de desplazar la seguridad hacia la izquierda, lo que significa aplicar controles de seguridad en una fase más temprana del ciclo de vida del desarrollo. Las herramientas SAST ayudan a prevenir vulnerabilidades de seguridad cuando se utilizan para hacer cumplir prácticas y estándares de codificación segura. Además, estas herramientas pueden detectar vulnerabilidades existentes, ya sea en código existente o recientemente desarrollado.
La recompensa por un diseño seguro es considerable, ya que los incidentes de seguridad, especialmente las violaciones de datos, son muy costosos. Los problemas de seguridad encontrados en producción o en productos implementados cuestan varios órdenes de magnitud más para solucionarlos que los encontrados durante el desarrollo. Las violaciones de datos públicos que se convierten en noticia pueden costar a las empresas millones de dólares.
El diseño seguro también ofrece beneficios en términos de reputación y experiencia del cliente. Incorporar la seguridad desde el principio es una buena práctica.
El OWASP Top Ten, ante todo, brinda conocimiento y un lenguaje común para las vulnerabilidades de aplicaciones web más comunes y riesgosas. Como lista, también proporciona priorización y evaluación de riesgos para que los desarrolladores la consideren. Por ejemplo, las fallas de inyección siguen siendo una vulnerabilidad crítica y deberían ser un foco principal en el diseño de seguridad, la codificación y el uso de herramientas de escaneo y pruebas de penetración.
El Top Ten también es un buen recurso para capacitar y ayudar a las organizaciones a madurar su postura de seguridad. Secure by Design y DevSecOps se basan en la información y la orientación proporcionadas por OWASP y recursos como el Top Ten.
Es fácil (y peligrosamente común) para las organizaciones de desarrollo de software comenzar con la seguridad empezando por el final mediante pruebas externas de ciclo tardío de todo el sistema, como las pruebas de penetración. Podría llamar a esto algo así como DevTestOpsSec.
Esta prueba es excelente para demostrar que la aplicación/sistema no contiene ninguna de las vulnerabilidades enumeradas en OWASP, por supuesto. Pero esta prueba de caja negra no es la forma más eficiente de producir código que sea más seguro. No queremos depender de las pruebas de caja negra como una forma de proteger nuestro software o encontrar errores, por mucho que queramos usarlo para demostrar que el software es seguro.
Por lo tanto, si las pruebas de penetración detectan una vulnerabilidad, debemos preguntarnos por qué y abordar la causa raíz del problema. Es entonces cuando pasamos de una mentalidad de "seguridad de pruebas internas" a una de "seguridad por diseño". Para ello, encontrará herramientas de pruebas de seguridad de aplicaciones estáticas (SAST), como el análisis de código estático, compatibles con OWASP.
Una pequeña cosa a tener en cuenta es que el elemento A06 en el OWASP Top 10 es completamente diferente al resto y no se presta a SAST o DAST porque se trata de buscar vulnerabilidades conocidas en el código abierto, no de encontrar nuevas vulnerabilidades.
Afortunadamente, OWASP tiene una herramienta gratuita para esto llamada Verificación de dependencia de OWASP. Esta herramienta identifica las dependencias del proyecto y verifica si existen vulnerabilidades conocidas y divulgadas públicamente, y puede usarse para escanear aplicaciones y sus bibliotecas dependientes para identificar componentes vulnerables conocidos.
Si está utilizando Parasoft, de hecho integramos OWASP Dependency Check en nuestro sistema de informes y lo hicimos parte del Panel de control OWASP Top 10. Esto facilita el manejo de problemas en sus componentes de código abierto al escanear como parte regular de su CI, junto con SAST, y colocar los resultados en un panel unificado con el resto de su información OWASP. Con este enfoque, en lugar de ser un proceso ortogonal separado, A9 se integra con el Top 10 como debería ser.
Las herramientas de prueba de seguridad de aplicaciones respaldan las actividades necesarias para prevenir las vulnerabilidades enumeradas en el Top Ten de OWASP. Como tal, utilizar una combinación de estas herramientas es una de las mejores prácticas para los desarrolladores de software.
Las herramientas SAST analizan el código en reposo y pueden aplicarse en las primeras etapas del ciclo de vida del desarrollo de software. Su punto fuerte es detectar debilidades del software y programación insegura durante la escritura del código. También son excelentes para aplicar estándares de codificación segura como SEI CERT. Los proveedores de herramientas SAST suelen tener configuraciones para el Top Ten de OWASP y documentan cómo su herramienta puede utilizarse para abordar estas vulnerabilidades principales.
Las herramientas DAST, por otro lado, se utilizan cuando se ejecuta una aplicación. Detectan vulnerabilidades a medida que ocurren y con muy alta precisión. Las herramientas DAST se utilizan durante las pruebas para detectar errores y vulnerabilidades que podrían pasar desapercibidas únicamente en los resultados de las pruebas.
El OWASP Top Ten ayuda a guiar las pruebas de seguridad de las aplicaciones y el análisis de código al proporcionar una lista priorizada de los riesgos de seguridad de las aplicaciones web más críticos. Los desarrolladores y los equipos de seguridad pueden revisar su código teniendo estos riesgos en mente, asegurándose de abordar y mitigar las vulnerabilidades relacionadas con estos diez problemas principales.
La belleza del análisis estático es que no es necesario tener terminada toda la aplicación o el sistema. Puede comenzar a buscar problemas de seguridad mucho antes en el ciclo para desplazar a la izquierda pruebas de seguridad. Si está realizando la seguridad tarde o cerca del final de su desarrollo (DevOpsSec), puede usar el análisis estático para impulsar la seguridad antes, incluso antes de que comiencen las pruebas, mientras el código se está escribiendo (DevSecOps).
El lado desagradable del análisis estático es que tiene fama de ser muy ruidoso, produciendo, por ejemplo, cientos o incluso miles de violaciones justo cuando pensaba que estaba listo para publicar. Afortunadamente, existen algunas buenas estrategias para afrontar esto. Aquí hay algunas cosas a tener en cuenta:
Me gustaría enfatizar algo que es importante si realmente desea fortalecer su aplicación. Es fácil probar la seguridad, pero es más difícil crearla. Afortunadamente, los verificadores de análisis estático vienen en diferentes versiones. Algunos verificadores buscan problemas típicos, como datos contaminados, e intentan descubrir si hay un flujo en la aplicación donde esto podría ocurrir. Estos son los verificadores más comunes en muchas herramientas SAST.
Pero el mayor valor en el análisis de código estático radica en las verificaciones que hacen cumplir dos cosas especiales:
Irónicamente, este es el enfoque que las industrias críticas para la seguridad han utilizado durante décadas con hardware y software, pero de alguna manera en ciberseguridad creemos que podemos probar la seguridad en una aplicación y no necesitamos enfocarnos en crear código seguro. Aproveche todas las capacidades del análisis estático proactivo, además de los verificadores de detección temprana, para obtener el máximo valor.
Las mejores prácticas que podemos aprender del Top Ten de OWASP están escritas en la propia lista. Por ejemplo, la clave para prevenir fallas de inyección es validar adecuadamente todas las entradas en la aplicación. Además, se necesitan las siguientes mejores prácticas.
El OWASP Top Ten proporciona una lista ordenada de las vulnerabilidades de seguridad de aplicaciones web de mayor riesgo. Teniendo esto en cuenta, los desarrolladores de aplicaciones web cuentan con la información que necesitan para evaluar los riesgos de seguridad a medida que surgen. La prioridad de los incidentes de seguridad o la detección de vulnerabilidades durante el desarrollo se puede priorizar en función de su lugar en la lista. Todos los diez principales son críticos, pero los desarrolladores deben centrarse primero en los más comunes y de mayor riesgo.
Comenzar con OWASP Top 10 no será fácil si nunca te has centrado en la seguridad, pero es posible. DAST es una forma sencilla de comenzar con el Top 10 y luego usar SAST lo ayudará cambie su prueba de seguridad a la izquierda. Si se implementa correctamente, SAST puede incluso prevenir problemas, no solo detectarlos, así que busque herramientas que cubran todos los elementos de la lista, con verificadores tanto de detección como preventivos.
Los desarrolladores de aplicaciones web pueden incorporar seguridad a sus aplicaciones desde el principio en el contexto del Top Ten de OWASP al:
El tema clave es integrar medidas de seguridad en el proceso de desarrollo desde el principio, ser proactivo y priorizar la mitigación con la evaluación de riesgos descrita en el Top Ten de OWASP.
Con estos consejos, debería estar listo para comenzar a eliminar los riesgos de seguridad de aplicaciones web más comunes y peligrosos en la actualidad.
«MISRA», «MISRA C» y el logotipo triangular son marcas registradas de The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Todos los derechos reservados.