Hoy toca un poco de rollo hardcore, que tengo esta sección del blog algo olvidada :)
Según este artículo de eweek, Microsoft Reseach está detrás de un sistema automatizado de clasificación de malware. Presentaron el proyecto en la última conferencia de EICAR (European Institute for Computer Anti-Virus Research), presentando un white paper escrito por Tony Lee, jefe de la sección antivirus de Microsoft, y por Jigar Mody, jefe de producto de la empresa. El documento se llama Behavioral Classification, y cómo no, está disponible en formato Word (para qué iban a pasarlo a PDF)
Un total de 17 páginas que leeré con calma, para ver cuál es el enfoque. Donde les doy la razón es en el origen de este trabajo de investigación: con el malware en ascenso continuo, se hace imperativo desarrollar soluciones de análisis de muestras automatizadas. Pero los métodos de clasificación deben ser fiables, y este es el talón de aquiles de estos proyectos, como vamos a ver más adelante.
El análisis de malware es una tarea de altísima especialización. Requiere aprendizaje continuo y sobre todo, un profundo conocimiento de estas amenazas. Sustituir un auditor de malware por un método automatizado se antoja como una tarea faraónica, que muy probablemente acabe en métodos incompletos que induzcan a análisis insuficientes, al menos con la tecnología y las metodologías disponibles en la actualidad.
Me ha llamado la atención referencias a una variante de métodos algorítmicos tipo K-medoid para clasificación, con objeto de generar clusters de muestras. En matemáticas, este método es uno de los muchos existentes para particionar conjuntos de muestras muy numerosas, con lo que es frecuente encontrar en la literatura a K-medoid como un método de particionado de datos espaciales. La idea de este tipo de métodos es interesante, ya que estos métodos han permitido pasar del modelo tradicional a lo que se conoce como modelo supervisado de minado y particionado. Métodos como SRIDHCR (Single Representative Insertion/Deletion Hill Climbing with Restart) y el SPAM (que no el correo basura), variante de PAM (Partitioning Around Medoids) se basan en este tipo de algoritmia. Podéis hallar más información en este paper de la Universidad de Houston. No he dado con documentos más accesibles, así que me disculpo por la complejidad de los mismos.
K-medoid se emplea en aplicaciones y sistemas orientados al minado de datos muy severo, con cantidades ingentes de muestras que imposibilitan el análisis manual, con lo que emplear clustering de este tipo al análisis de malware es, al menos sobre el papel, una posibilidad factible. Otro tema será transformar la teoría en resultados prácticos, pero es un buena aproximación.
La clasificación se fundamenta en el particionado K-medoid. Es algo complejo de entender pero se puede resumir en dos pasos muy fácilmente comprensibles: una vez generados los subconjuntos indivisibles, las familias (los «medoids«) a raíz del particionado en n subconjuntos, se comparan las nuevas muestras a esos patrones o familias. La clasificación se basa, simplemente, en asociar cada nueva muestra a una familia existente.
Imagino que los de I+D+i de Redmond buscarán la manera de lograr, con eficiencia computacional y con costes soportables, un sistema mediante el cual esos «medoids» o familias sean de k elementos, tendiendo k a 1. En un estado hipotético de perfección algorítmica, si se llegase a tamaño unitario de cluster, la casificación sería perfecta: una muestra tendrá una única definición, y todas las muestras tendrían su definición.
Este sistema sera mejor cuanto más se aproxime k a la unidad. K=1 es sólo un límite teórico, totalmente inalcanzable por razones obvias. Es, para que nos entendamos, pretender construir un cohete o nave que viaje a la velocidad de la luz. Es un límite teórico inalcanzable, pero eso no impide que nuestra visión en la I+D pretenda, paso a paso, aproximarnos en pequeños pasos a ese límite teórico. Curiosamente, se da una extraña paradoja, ya que mientras la investigación está muy lejos de la unidad, los generadores de malware están ya en ella, ya que pese a existir familias de malware, los especímenes tienden a ser únicos y particularizados, en aras a la teoría de la segmentación de ataques que vengo defendiendo tiempo atrás: de los ataques masivos con especímenes similares y agrupables en familias, hemos pasado al modelo de una pieza de malware para un único ataque delimitado. Este método segmentado se emplea por cuestiones de sigilo, ya que cuanto más individual es la muestra de malware, menor es la posibilidad de que los productos antimalware los detecten.
Una vez más, me quito el sombrero ante los chavales de Research. Son gente seria, y la verdad es que salvo raras excepciones, realizan un trabajo digno de los mejores aplausos. Para la matrícula de honor sólo les ha faltado colgar un documento tipo PDF, en vez de un Word.
Un saludo :)