BÚSQUEDA DE VULNERABILIDADES MEDIANTE EL APRENDIZAJE AUTOMÁTICO - Just Learn

DESTACADO

miércoles, 22 de abril de 2020

BÚSQUEDA DE VULNERABILIDADES MEDIANTE EL APRENDIZAJE AUTOMÁTICO


Microsoft está entrenando un sistema de aprendizaje automático para encontrar errores de software:

En Microsoft, 47,000 desarrolladores generan casi 30 mil errores al mes. Estos elementos se almacenan en más de 100 repositorios de AzureDevOps y GitHub. Para etiquetar y priorizar mejor los errores a esa escala, no podríamos simplemente aplicar más personas al problema. Sin embargo, grandes volúmenes de datos semicurados son perfectos para el aprendizaje automático. Desde 2001, Microsoft ha recopilado 13 millones de elementos de trabajo y errores. Utilizamos esos datos para desarrollar un modelo de proceso y aprendizaje automático que distinga correctamente entre errores de seguridad y no de seguridad el 99 por ciento del tiempo e identifica con precisión los errores de seguridad críticos y de alta prioridad, el 97 por ciento del tiempo.



El problema de encontrar vulnerabilidades de software parece adecuado para sistemas ML. Revisar el código línea por línea es el tipo de problema tedioso en el que se destacan las computadoras, si solo podemos enseñarles cómo es una vulnerabilidad. Hay desafíos con eso, por supuesto, pero ya hay una buena cantidad de literatura académica sobre el tema, y ​​la investigación continúa. Hay muchas razones para esperar que los sistemas de ML mejoren con el paso del tiempo, y algunas razones para esperar que eventualmente se vuelvan muy buenos en eso.

Encontrar vulnerabilidades puede beneficiar tanto a los atacantes como a los defensores, pero no es una pelea justa. Cuando el sistema ML de un atacante encuentra una vulnerabilidad en el software, el atacante puede usarlo para comprometer los sistemas. Cuando el sistema ML de un defensor encuentra la misma vulnerabilidad, él o ella puede intentar parchear el sistema o programar las defensas de la red para vigilar y bloquear el código que intenta explotarlo.


Pero cuando el mismo sistema está en manos de un desarrollador de software que lo usa para encontrar la vulnerabilidad antes de que se lance el software, el desarrollador lo arregla para que nunca se pueda usar en primer lugar. El sistema ML probablemente será parte de sus herramientas de diseño de software y automáticamente encontrará y reparará vulnerabilidades mientras el código aún está en desarrollo.

Avance rápido una década más o menos en el futuro. Podríamos decirnos el uno al otro: "¿Recuerdas aquellos años en que las vulnerabilidades de software eran una cosa, antes de que los buscadores de vulnerabilidades de ML se integraran en cada compilador y los arreglaran antes de que el software fuera lanzado? Wow, esos fueron años locos". No solo es posible este futuro, sino que apostaría por él.



Sin embargo, llegar de aquí para allá será un viaje peligroso. Esos buscadores de vulnerabilidades se liberarán primero en el software existente, dando a los atacantes cientos, si no miles, de vulnerabilidades para explotar en ataques del mundo real. Claro, los defensores pueden usar los mismos sistemas, pero muchos de los sistemas actuales de Internet de las cosas (IoT) no tienen equipos de ingeniería para escribir parches y no tienen la capacidad de descargar e instalar parches. El resultado será cientos de vulnerabilidades que los atacantes pueden encontrar y usar.

Post Bottom Ad

Responsive Ads Here

Pages