Las debilidades de software más peligrosas de 2021 - Calendae | Informática, Electrónica, CMS, Ciberseguridad

Las debilidades de software más peligrosas de 2021

Hola, un placer verte por aquí. Soy Eduardo Arroyo y en esta ocasión vamos a hablar sobre Las debilidades de software más peligrosas de 2021


InfoSec Insider

Las debilidades de software más peligrosas de 2021

Saryu Nayyar, director ejecutivo de Gurucul, echa un vistazo a la lista de tipos peligrosos de errores de software de Mitre y destaca que los antiguos siguen siendo buenos para los atacantes.

Mitre Corp. actualizó recientemente su lista de los 25 errores de software más peligrosos, y no es sorprendente que algunos de ellos hayan estado en esa lista durante años. La lista Common Weakness Enumeration (CWE) representa vulnerabilidades que han sido ampliamente conocidas durante años, pero que todavía están codificadas en software y eludidas mediante pruebas. Es de suponer que tanto los desarrolladores como los probadores ya lo saben mejor, pero siguen cometiendo los mismos errores al crear aplicaciones.

Examinaremos las vulnerabilidades que parecen haber estado constantemente en la lista de las 25 principales a lo largo de los años. Pero primero, ¿cómo ocurren estos errores? Hay un número de razones.

En muchos casos, los desarrolladores simplemente no tienen la seguridad primero mientras codifican la aplicación. Su principal objetivo es conseguir la lógica empresarial correcta.

En los casos en los que un algoritmo en particular no parece funcionar correctamente, se sabe que los desarrolladores deshabilitan las restricciones de seguridad hasta que se comportan como se esperaba. Los desarrolladores pierden la cara cuando su aplicación tiene un error lógico, pero no cuando existe una posible vulnerabilidad de seguridad, ya que están en gran parte ocultos hasta que se explotan.

Los evaluadores tienen una responsabilidad más directa de garantizar la seguridad de las aplicaciones, pero normalmente tienen herramientas y habilidades limitadas para hacerlo. Casi siempre están probando código de forma aislada, a menudo sin una base de datos, API o red. Sin una forma de examinar la memoria o crear comandos ilegales e interpretar los resultados en términos del ataque, su capacidad para identificar vulnerabilidades de seguridad es limitada.

También existe la percepción predominante dentro de los grupos técnicos de que la seguridad es responsabilidad del grupo de producción de TI, no necesariamente de los desarrolladores. Después de todo, TI tiene herramientas importantes para definir y administrar una aplicación y un perímetro de red, como firewalls y anti-malware, diseñados para proteger toda la infraestructura. El enfoque en la seguridad en la producción a menudo significa que hay menos enfoque en el desarrollo y las pruebas.

Todo es parte de una cultura en la que las vulnerabilidades de seguridad están en gran parte ocultas a la vista porque normalmente no afectan la función de la aplicación, hasta que falla un ataque y se pierden sistemas o datos. Si bien sería más eficaz centrarse en la seguridad durante todo el ciclo de vida de la aplicación, sigue siendo vital estar alerta en la producción.

Las vulnerabilidades comunes todavía están en la lista

Los siguientes han sido agujeros de seguridad comunes durante décadas y parece que no saldrán pronto de la lista de Mitre. Permiten ataques antiguos pero confiables para una amplia gama de atacantes en todo el mundo, que a menudo encuentran su camino hacia los sistemas y organizaciones que los utilizan.

La manipulación de la memoria sigue siendo una de las formas más populares de atacar un sistema. Si un atacante tiene una dirección de memoria específica dentro de una aplicación ejecutable, puede usarla para ingresar valores o comandos que excedan el tamaño de ese espacio de memoria. Una vez sin espacio en la memoria, los atacantes pueden inyectar software ejecutable, lo que hace posible tomar el control de una computadora o aumentar los niveles de permisos.

Hay muchas formas de aprovechar los desbordamientos de búfer y memoria para los ataques. Si los desarrolladores no tienen longitudes variables limitadas, una sobrecarga puede permitir que un atacante escriba código malicioso directamente en la memoria de la aplicación. Como mínimo, puede utilizar esta técnica para interferir con la ejecución de la aplicación, provocando que se bloquee o devuelva resultados incorrectos.

Los atacantes pueden utilizar funciones web para plantar scripts maliciosos. En este caso, los atacantes pueden cargar scripts en páginas web del lado del cliente no seguras, para que se ejecuten cuando otros abran esa página. Proteger de esto implica la prohibición de descargar archivos a aplicaciones web, y muchos desarrolladores se olvidan de agregar esta restricción.

Muchos equipos de desarrollo continúan permitiendo a los atacantes descargar scripts en sitios web de terceros, y los evaluadores tienen dificultades para identificar este tipo de ataque porque no está claro de dónde provienen los scripts maliciosos. El resultado es que los usuarios que visitan esas páginas web de forma inocente pueden descargar malware en sus sistemas de forma inadvertida y sin saberlo.

Muchos desarrolladores se centran principalmente en asegurarse de que una aplicación devuelva el resultado deseado. En algunas aplicaciones, una forma común de hacer esto es otorgar a todas las consultas de los usuarios acceso administrativo a la base de datos. Si bien a menudo funciona, tiene consecuencias.

Primero, abre el acceso administrativo a la base de datos a cualquier usuario de la aplicación. Esto significa que cualquiera que use la aplicación puede usar comandos SQL para modificar la base de datos. Usando caracteres de escape SQL, los atacantes pueden ingresar comandos SQL en la interfaz web y hacer que los ejecute la base de datos.

En segundo lugar, mantiene abierta la conexión a la base de datos para todos. Nunca se desconecta después de cada uso. Esto significa que no es necesario ser un usuario autorizado para encontrar una base de datos abierta. Esto hace que la integridad de sus datos sea cuestionable de forma continua.

Este es otro truco de manipulación de la memoria. Cuando una aplicación necesita memoria para una variable, asigna mediante programación esa memoria o la plataforma subyacente (JVM o .NET Runtime). Cuando la aplicación haya terminado con esa memoria, ella o la plataforma la devolverán a la lista de memoria libre.

Si un atacante pudo obtener la dirección de memoria, puede acceder a la lista de memoria libre e insertar software malintencionado en la memoria libre. La próxima vez que se asigne memoria, se le asignará una carga útil que puede causar daños. Además, la memoria no se borra cuando se devuelve a la lista de memoria libre, lo que permite a los atacantes leer el contenido de esa memoria.

Hay algunos depuradores comerciales que pueden examinar un proceso en ejecución y permitir que los programadores o atacantes obtengan información utilizando ubicaciones de memoria. Si bien estos tipos de depuradores son necesarios, cualquier herramienta que permita a los atacantes examinar direcciones de memoria específicas para determinar su contenido tiene el potencial de ser utilizada como herramienta de piratería.

Otros ciberataques llenan el plato

La lista Mitre contiene otros ataques comunes, incluida la autenticación inexistente o incorrecta, permisos incorrectos y credenciales no seguras.

Sin embargo, los ataques más populares siguen siendo los que han existido casi desde los albores de la Internet pública. Hasta que los equipos de desarrollo y prueba sean capaces de internalizar algunas de las vulnerabilidades más importantes de las últimas dos décadas y desarrollar estrategias para contrarrestarlas de manera confiable, confíe en los firewalls y en los enfoques de análisis de seguridad para ser el enfoque más eficaz para la protección de vulnerabilidades de software.

.

Recuerda compartir en una historia de tu Instagram para que tus amigos lo flipen

??? ? ? ???

Comparte

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *