Encontrar virus en una aplicación puede parecer una tarea fácil, para eso existen cientos de antivirus en el mercado, pero las amenazas son cada vez más numerosas, difíciles de encuadrarse en una sola categoría como «virus», y es necesario modernizar la forma de detectarlas.
Para ayudar en esta tarea, Microsoft ha presentado una herramienta de código abierto que puede crecer bastante y transformarse en toda una referencia: Application Inspector, ya en github.
Comenta en su blog que las prácticas modernas de desarrollo de software a menudo implican la creación de aplicaciones a partir de cientos de componentes existentes, ya sea que estén escritos por otro equipo de su organización, un proveedor externo o alguien de la comunidad de código abierto. La reutilización tiene grandes beneficios, que incluyen tiempo de comercialización, calidad e interoperabilidad, pero a veces conlleva el costo de la complejidad y el riesgo ocultos.
El código que cada empresa escribe es a menudo solo una pequeña fracción de toda la aplicación, y hay que entender el todo para saber si estamos creando una amenaza.
Para eso han creado un analizador de código fuente llamado Microsoft Application Inspector, para identificar características y metadatos, que no se limita a detectar prácticas de programación deficientes, ya que también ve características interesantes en el código que de otro modo llevarían mucho tiempo o serían difíciles de identificar mediante la introspección manual.
Por ejemplo, si tenemos un programa que descarga contenido de una URL, lo escribe en el sistema de archivos y luego ejecuta un comando de shell para enumerar los detalles de ese archivo, Application Inspector nos avisaría.
Puede analizar millones de líneas de código fuente a partir de componentes creados utilizando muchos lenguajes de programación diferentes.
Usamos el Inspector de aplicaciones para identificar cambios clave en el conjunto de características de un componente a lo largo del tiempo (versión a versión), lo que puede indicar cualquier cosa, desde una mayor superficie de ataque hasta una puerta trasera maliciosa. También utilizamos la herramienta para identificar componentes de alto riesgo y aquellos con características inesperadas que requieren un escrutinio adicional, bajo la teoría de que una vulnerabilidad en un componente que está involucrado en criptografía, autenticación o deserialización probablemente tendría un mayor impacto que otros.
En su web podéis ver el cómo se usa Application Inspector.