Una herramienta para encontrar vulnerabilidades de terceros

¿ Alguien sabe de un .dllescáner que busca vulnerabilidades conocidas?

En el trabajo, tenemos un proyecto que usa paquetes Nuget y otras .dlldependencias. Sé que hay bases de datos de vulnerabilidades conocidas ( 1 , 2 ), pero ¿alguien sabe de una herramienta que escaneará una carpeta de salida de compilación en busca de .dllnombres/versiones/etc. para detectar .dlls con vulnerabilidades conocidas?

El objetivo será que esta herramienta se ejecute periódicamente y me avise si se encuentra una vulnerabilidad en una de nuestras dependencias para que podamos actualizarla. Estar siempre actualizado es una carga de prueba (¡todavía estamos trabajando en pruebas automatizadas integrales!), por lo que no actualizar nuestras dependencias más de lo necesario todavía es muy necesario para nosotros.

Otra información sobre el medio ambiente:

  • Proyecto/solución C# con VS 2015 Update 1
  • No tiene que ser de código abierto, y si es caro, la empresa probablemente pueda permitírselo.
¿Qué tipo de vulnerabilidades le interesan?
@mguassa De preferencia me gustaría que se identificara alguna vulnerabilidad (que se conozca). No estoy buscando un analizador estático, sino más bien una verificación cruzada entre .dlls en mi salida de compilación y una base de datos de vulnerabilidad. Por ejemplo, si un .dllresultado de mi compilación tiene una vulnerabilidad conocida en una fuente de vulnerabilidad , me gustaría saberlo :)

Respuestas (4)

Habiendo desarrollado software a nivel empresarial, siempre estoy buscando herramientas que ayuden a mi equipo a crear un mejor código que sea lo más seguro posible. Hay varias herramientas diferentes que querrás ver para profundizar en tus necesidades y presupuesto.

  1. Una herramienta que he usado para hacer pruebas de penetración (que buscará cosas como ataques de inyección de DLL) es Metasploit Toolkit . Es una plataforma de pruebas de penetración que hace un buen trabajo al informarle si tiene un problema. Viene en varios sabores diferentes, incluidas las versiones comunitarias. Pero si no está al tanto de este tipo de cosas, probablemente valga la pena pagar por la versión "comercial" del producto. Como parte de las soluciones comerciales de Rapid7, es posible que también desee ver AppSpider si necesita cumplir con la verificación de cumplimiento.ingrese la descripción de la imagen aquí
    ingrese la descripción de la imagen aquí

  2. También puede consultar las herramientas de análisis de vulnerabilidades y aplicaciones de Veracode . El conjunto de herramientas de Veracode se puede implementar en varios niveles diferentes a través de un ciclo de desarrollo de software según sus necesidades.ingrese la descripción de la imagen aquí

  3. Otra solución de desarrollo de código que consideraría son las herramientas de análisis estático y de código fuente de Checkmarx . Ofrecen el conjunto más grande de escáneres de idiomas que conozco. Esto es para el desarrollo de código activo y cuando tiene acceso a algún nivel de código fuente en su cadena de desarrollo.ingrese la descripción de la imagen aquí

[EDITAR]
Esta es una adición a la lista de herramientas.

Si desea ver solo los archivos .dll o buscar las dependencias de .dll durante el desarrollo para ayudar a comprender cómo están vinculados, consulte PE Explorer o SpyDllRemover .

  1. PE Explorer le permitirá ver las dependencias .dll sin ejecutar el código fuente. De esa manera, tendrá una imagen clara de lo que se vincula a su código, especialmente si está utilizando bibliotecas precompiladas de terceros.ingrese la descripción de la imagen aquí

  2. SpyDllRemover es realmente una herramienta de escaneo de spyware y rootkit que se enfoca en cosas como enlaces de inyección .dll. Es una herramienta muy útil para encontrar qué archivos .dll son problemas conocidos. Combínelo con StreamArmor y verá QUÉ está haciendo una llamada saliente desde su código y hacia dónde.ingrese la descripción de la imagen aquí
Explique cómo usar cada uno de estos productos para DLL. En particular, Checkmarx suena fuera de tema de su descripción.
Dado que John Carpenter estaba preguntando sobre el desarrollo de aplicaciones con nuget.org/packages , supongo que tiene algún nivel de código fuente con el que está trabajando. Las herramientas como Checkmarx funcionan en ambas fuentes, así como también monitorean los datos que fluyen desde un archivo vinculado como una DLL. Si desea obtener información sobre cada aplicación, los sitios web de las empresas harán un mejor trabajo que yo al hablar sobre las formas en que buscan vulnerabilidades. Si @nicolas-raoul solo desea un escáner DLL puro, mire Heaventools.com/PE_Explorer_Dependency_Scanner.htm o securityxploded.com/spydllremover.php
Para cada herramienta, publique una captura de pantalla de cómo selecciona la carpeta desde la que escanear las DLL y una captura de pantalla del resultado que muestra las DLL infectadas. Si logra hacer eso, su respuesta será mucho más digna de una recompensa :-) No dude en hacer una respuesta por software. ¡Salud!
Muchas gracias por tu respuesta. Sin embargo, parece que ninguno de estos es lo que estaba buscando. Metasploit y "AppSpider" parecen software de prueba de seguridad de red automatizado, Checkmarx ofrece evaluación de código estático y no de bibliotecas de terceros, PE Explorer es interesante (pero ya conozco las dependencias de mi compilación) y las herramientas de spyware tampoco son lo que necesito ( No estoy usando software espía como una dependencia de mi proyecto;)). Lo único aquí que está cerca es la herramienta de análisis binario de Veracode, pero según mi experiencia con el análisis de código estático, puede haber "falsos positivos".
Preferiría evitar los falsos positivos y simplemente hacer que un escáner mire una carpeta de .dlls y me diga si alguno de ellos tiene un registro en una base de datos de vulnerabilidades conocidas. ¡Gracias nuevamente por tu publicación!

Mire BlackDuck Software, proporcionan escaneo de código abierto con integración con Visual Studio para el cumplimiento de licencias y vulnerabilidades de seguridad. https://www.blackducksoftware.com/products/black-duck-hub

Black Duck también administra https://www.openhub.net/ que indexa código fuente abierto para identificar código por fragmentos y código reutilizado por otros proyectos. Así que incluso en el proyecto no tiene vulnerabilidades conocidas, el código utilizado por el código podría.

Ver también: https://www.blackducksoftware.com/products/knowledgebase y https://en.wikipedia.org/wiki/Black_Duck_Software

He usado sus servicios, pero no he usado sus herramientas.

Buen lugar, no había visto esto todavía! Le daré una oportunidad a esto, y espero que alguien más lo encuentre útil en el futuro.

Después de buscar durante más de una semana, me parece que la mejor opción es en realidad una opción de código abierto en github . Parece que las bases de datos que mencioné no almacenan los nombres de .dlls, por lo que todo lo que puede hacer una herramienta es recopilar la mayor cantidad posible de metadatos sobre .dll y hacer una verificación cruzada con una base de datos de vulnerabilidades conocidas.

La herramienta DependencyCheck parece la mejor que he encontrado.

CUIDADO : para nuestro gran proyecto, se encontraron muchos falsos positivos para las vulnerabilidades (pero esos son mejores que los falsos negativos). Sin embargo, hay una manera de marcar un falso positivo con la herramienta para que una vez que los identifique una vez, la herramienta los omita en el futuro.

CUIDADO #2 : para nuestro gran proyecto, esto también es bastante lento . Eventualmente, haré que esto se ejecute diariamente o semanalmente en un servidor de compilación, pero para las pruebas, lo ejecuté localmente y fue muy lento. Eventualmente hice una VM localmente solo para limitar los ciclos de CPU/RAM que podía consumir en mi PC.

En el lado positivo: una cosa muy buena sobre el proyecto es que tiene soporte de línea de comando y soporte para compilaciones Ant y Maven.

Gracias a kenjikato por su respuesta también. Quizás una de esas herramientas ayude a alguien más.

EDITAR: Estaba siendo injusto por encima de su velocidad. Mi computadora que descubrí ayer tenía algún tipo de virus. ¡Después de solucionar el problema del virus, el software funcionó perfectamente bien!

No sé si esto sigue siendo relevante para su búsqueda de un escáner de vulnerabilidades, pero si todavía está buscando, le sugiero que eche un vistazo a la lista de herramientas de seguridad de aplicaciones en IT Central Station. Todas las reseñas en el sitio han sido escritas por personas que han usado las herramientas, lo que realmente puede ayudarlo a tener una buena idea de cómo es trabajar con las soluciones y cuál tiene las funciones que necesita. Por ejemplo, en una revisión de HPE Fortify on Demand, un usuario comentó "el servicio en sí funciona para mantenerse al tanto y conocer las amenazas emergentes. En lugar de tener un equipo de seguridad dedicado a ese esfuerzo, no tenemos que lidiar con eso en un requiere mucho tiempo, de manera directa. No necesitamos tener estas habilidades internas".