A08: Fallas de integridad de datos y software (by OWASP)

Visión general

Una nueva categoría para 2021 se enfoca en hacer suposiciones relacionadas con actualizaciones de software, datos críticos y canalizaciones de CI/CD sin verificar la integridad. Uno de los impactos ponderados más altos de los datos de Common Vulnerability and Exposures/Common Vulnerability Scoring System (CVE/CVSS). Las enumeraciones de debilidades comunes (CWE) notables incluyen CWE-829: inclusión de funcionalidad de esfera de control no confiable , CWE-494: descarga de código sin verificación de integridad y CWE-502: deserialización de datos no confiables .

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. Un ejemplo 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 canalización de CI/CD insegura puede presentar el potencial de acceso no autorizado, código malicioso o compromiso del sistema. Por último, muchas aplicaciones ahora incluyen la función de actualización automática, donde las actualizaciones se descargan sin una verificación de integridad suficiente y se aplican a la aplicación de confianza anterior. Los atacantes podrían cargar sus propias actualizaciones para distribuirlas y ejecutarlas en todas las instalaciones. Otro ejemplo es cuando los objetos o datos se codifican o serializan en una estructura que un atacante puede ver y modificar y es vulnerable a una deserialización insegura.

Como prevenir

  • Utilice firmas digitales o mecanismos similares para verificar que el software o los datos provengan de la fuente esperada y no hayan sido alterados.

  • Asegúrese de que las bibliotecas y las dependencias, como npm o Maven, consuman repositorios de confianza. Si tiene un perfil de mayor riesgo, considere alojar un repositorio interno conocido que esté examinado.

  • Asegúrese de que se utilice una herramienta de seguridad de la cadena de suministro de software, como OWASP Dependency Check u OWASP CycloneDX, para verificar que los componentes no contengan vulnerabilidades conocidas.

  • Asegúrese de que haya un proceso de revisión de los cambios de código y configuración para minimizar la posibilidad de que se introduzcan códigos o configuraciones maliciosos en su proceso de software.

  • Asegúrese de que su canalización de CI/CD tenga la segregación, la configuración y el control de acceso adecuados para garantizar la integridad del código que fluye a través de los procesos de compilación e implementación.

  • Asegúrese de que los datos serializados sin firmar o sin cifrar 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 la manipulación o la reproducción de los datos serializados.

Ejemplos de escenarios de ataque

Escenario #1 Actualizar sin firmar: muchos enrutadores domésticos, decodificadores, firmware de dispositivos y otros no verifican las actualizaciones a través del firmware firmado. El firmware sin firmar es un objetivo cada vez mayor para los atacantes y se espera que empeore. Esta es una preocupación importante ya que muchas veces no existe un mecanismo para remediar más que corregir en una versión futura y esperar a que las versiones anteriores caduquen.

Escenario #2 Actualización maliciosa de SolarWinds : Se sabe que los estados-nación atacan los mecanismos de actualización, con un ataque notable reciente que es el ataque SolarWinds Orion. La empresa que desarrolla el software tenía procesos seguros de compilación y actualización de integridad. Aún así, estos pudieron subvertirse y, durante varios meses, la empresa distribuyó una actualización maliciosa altamente dirigida a más de 18,000 organizaciones, de las cuales alrededor de 100 se vieron afectadas. Esta es una de las infracciones de esta naturaleza más trascendentales y significativas de la historia.

Escenario #3 Deserialización insegura: una aplicación React llama a un conjunto de microservicios Spring Boot. Al ser programadores funcionales, intentaron asegurarse de que su código sea inmutable. La solución que se les ocurrió es serializar el estado del usuario y pasarlo de un lado a otro con cada solicitud. Un atacante nota la firma del objeto Java “rO0” (en base64) y utiliza la herramienta Java Serial Killer para obtener la ejecución remota de código en el servidor de aplicaciones.

Referencias

Lista de CWE mapeados

CWE-345 Verificación insuficiente de la autenticidad de los datos

CWE-353 Soporte faltante para verificación de integridad

CWE-426 Ruta de búsqueda no confiable

CWE-494 Descarga de código sin verificación de integridad

CWE-502 Deserialización de datos no confiables

CWE-565 Dependencia de cookies sin verificación de validación e integridad

CWE-784 Dependencia de cookies sin verificación de validación e integridad en una decisión de seguridad

CWE-829 Inclusión de funcionalidad de esfera de control no confiable

CWE-830 Inclusión de funcionalidad web de una fuente no confiable

CWE-915 Modificación controlada incorrectamente de atributos de objetos determinados dinámicamente

Más información: OWASP ORG

Relacionado

ForEach de Javascript: Array para bucles

Como una de las estructuras de control básicas en la programación, los bucles son casi una adición diaria al código que escribimos. El bucle forEach clásico es uno de los primeros fragmentos de código que aprendemos a escribir como programadores. Si fueras un desarrollador de Javascript, sabrías que Javascript no es ajeno a la iteración a través de los elementos de una matriz o un mapa ¡SEGUIR LEYENDO!

10 Mejores alternativas de Sci-hub para descargar artículos de investigación gratis

Como sabemos, Sci-hub es un sitio web increíble con millones de artículos de investigación para todos los estudiantes universitarios y académicos. El sitio web de Sci-Hub se encarga de obtener los artículos de investigación y artículos de pago utilizando las credenciales que se filtran. La fuente de credenciales utilizada por este sitio web no está clara. Sin embargo, se supone que muchas de ellas son donadas, ¡SEGUIR LEYENDO!

10 Características Sorprendentes de Windows que Deberías Conocer en 2024

Aunque haya sido usuario de Windows durante décadas, el sistema operativo es tan amplio y complejo que siempre existen características útiles, pero menos conocidas, que podrían sorprenderte. En este sentido, he identificado diez funciones poco conocidas de Windows que pueden potenciar su eficiencia, comodidad e incluso su experiencia de uso lúdico en su PC.

¡REBAJADO!
Microsoft Surface Go 2 - Portátil 2 en 1 de 10.5 pulgadas Full HD, Wifi, Intel...
  • Procesador Dual-Core Intel Pentium Gold 4425Y (2...
  • Memoria RAM de 8 GB LPDDR3
  • Disco SSD de 128 GB
Todas estas características deberían ser compatibles tanto con Windows 10 ¡SEGUIR LEYENDO!

10 Criptomonedas con Potencial de Crecimiento de Futuro

El rumor en torno a las criptomonedas no se desvanece por mucho que existan grandes pesimistas alrededor de los malos rumores. Entonces, si consideras invertir en el mundo de las criptomonedas, deberías estar atento a las criptomonedas que se espera que tengan un buen desempeño para el resto de 2021. En los últimos tiempos, los tokens DeFi están recibiendo toda la atención y es más que ¡SEGUIR LEYENDO!

10 Empresas de robótica más importantes del mundo

Los cambios de paradigma revolucionarios debido a los desarrollos de la robótica en todo el mundo están generando nuevos puntos de vista en muchos sectores, entre ellos en los de la industria y la tecnología. Con la ayuda de la Inteligencia Artificial, la tecnología produce resultados innovadores cada segundo y el campo de la robótica define y reconfigura su uso a cada instante. Cada día que ¡SEGUIR LEYENDO!

10 Frameworks que los Desarrolladores de Software deberían Aprender 2024

Bienvenidos desarrolladores web y de software, estamos en los inicios de 2023 y es posible que muchos se esten planteado sus objetivos para lo largo del año. Con anterioridad ya he compartidos las rutas de aprendizaje para un desarrollador front-end, un desarrollador full-stack o un desarrollador back-end entre otros muchos contenidos más. En este artículo, me gustaría compartir algunos de los mejores frameworks y bibliotecas para ¡SEGUIR LEYENDO!

10 Repositorio de GitHub que todo Desarrollador Web debería conocer

GitHub es el lugar que debes buscar cuando intentas mejorar como desarrollador, toda la información que necesitas está disponible en algún repositorio que alguien ya se ha molestado en indexar. Sin embargo, la parte complicado es encontrar el repositorio más adecuado. Es fácil sentirse perdido en todos los repositorios disponibles dentro de GitHub. Para ayudarte, he elaborado una lista de 10 repositorios de GitHub que pueden ¡SEGUIR LEYENDO!

Deja un comentario