Búsqueda de vulnerabilidades mediante el aprendizaje automático


Búsqueda de vulnerabilidades mediante el aprendizaje automático

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

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.

Noticias artículo.

Escribí sobre esto en 2018:

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 hay ya una saludable cantidad de académico literatura en el tema — y investigación es continuo. 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 application, 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 pink para observar y bloquear el código que intenta explotarlo.

Pero cuando el mismo sistema está en manos de un desarrollador de computer software que lo united states para encontrar la vulnerabilidad antes de que se lance el software package, 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 program 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 unos a otros: «¿Recuerdan 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 program 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 computer software existente, dando a los atacantes cientos, si no miles, de vulnerabilidades para explotar en ataques del mundo genuine. Claro, los defensores pueden usar los mismos sistemas, pero muchos de los actuales Sistemas de Online 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.

Publicado el 20 de abril de 2020 a las 6:22 a.m.

comentarios



Enlace a la noticia first