domingo, 26 de marzo de 2017

Herramientas para análisis forense de archivos Microsoft Office.

Oletools es un conjunto de herramientas escritas en Python para analizar archivos Microsoft OLE2. ( también llamados de almacenamiento estructurado o archivo compuesto de formato binario) y documentos de Microsoft Office. Permitiendo realizar: análisis de malware, análisis forense y depuración.
Oletools esta compuesto por:

  • Olebrowse: Una interfaz gráfica de usuario sencilla para examinar archivos OLE (por ejemplo, MS Word, Excel, documentos de Powerpoint), para ver y extraer flujos de datos individuales.
  • Oleid: Es un script para analizar archivos OLE tales como documentos de MS Office (por ejemplo, Word, Excel), para detectar características específicas normalmente encontradas en archivos maliciosos (por ejemplo, malware). Puede detectar macros VBA y objetos Flash incorporados.
  • Olemeta: Es un script para analizar archivos OLE, para extraer todas las propiedades estándar presentes en el archivo OLE (metadatos).
  • Oletimes: Es un script para analizar archivos OLE, para extraer los tiempos de creación y modificación de todos los flujos y almacenes en el archivo OLE.
  • Oledir: Es un script para mostrar todas las entradas de directorio de un archivo OLE, incluyendo entradas libres y huérfanas. Puede utilizarse como una herramienta de línea de comandos o como un módulo Python con sus propias aplicaciones.
  • Olemap: Es un script para mostrar un mapa de todos los sectores en un archivo OLE. Puede utilizarse como una herramienta de línea de comandos o como un módulo Python con sus propias aplicaciones.
  • Olevba: Es un script para analizar archivos OLE y OpenXML tales como documentos de MS Office (por ejemplo, Word, Excel), para detectar macros VBA, extraer su código fuente en texto claro y detectar patrones relacionados con la seguridad como: macros auto-ejecutables, VBA sospechosos, palabras clave utilizadas por el malware, técnicas anti-sandboxing y anti-virtualización y posibles IOCs (direcciones IP, URL, nombres de archivos ejecutables, etc.).También detecta y decodifica varios métodos de ofuscación comunes incluyendo codificación Hex, StrReverse, Base64, Dridex, expresiones VBA y extrae IOCs de cadenas decodificadas . Puede utilizarse como una herramienta de línea de comandos o como un módulo Python con sus propias aplicaciones.
  • Mraptor(MacroRaptor): Es una herramienta diseñada para detectar la mayoría de las macros VBA maliciosas usando una técnica heurística genérica. A diferencia de los motores antivirus, no depende de las firmas. En pocas palabras, mraptor detecta las palabras clave correspondientes a los tres siguientes tipos de comportamiento que están presentes en texto claro en casi cualquier programa malicioso de macros: desencadenador de ejecución automática, escribir en el sistema de archivos o en la memoria y ejecutar un archivo o cualquier carga fuera del contexto de VBA.
  • Pyxswf: Es un script para detectar, extraer y analizar objetos Flash (archivos SWF) que pueden estar incrustados en archivos como documentos de MS Office (por ejemplo, Word, Excel), lo que es especialmente útil para el análisis de malware.  Puede extraer flujos de documentos de MS Office analizando su estructura OLE correctamente, lo que es necesario cuando los flujos están fragmentados. La fragmentación en Flash es una técnica de ofuscación conocida. También puede extraer objetos Flash de documentos RTF, analizando objetos incrustados codificados en formato hexadecimal (opción -f).
  • Oleobj: Es un script para extraer objetos incrustados de archivos OLE. Puede utilizarse como una herramienta de línea de comandos o como un módulo Python con sus propias aplicaciones.
  • Rtfobj: Es un módulo de Python para detectar y extraer objetos incrustados almacenados en archivos RTF, como objetos OLE. También puede detectar objetos de paquete OLE y extraer los archivos incrustados. Contiene un analizador de RTF personalizado que ha sido diseñado para comprender el comportamiento de MS Word, con el fin de manejar los archivos RTF ofuscados.

Las Oletools son utilizadas por una serie de proyectos y servicios de análisis de malware en línea, incluyendo: Viper, REMnux, Hybrid-analysis.com, Joe Sandbox, Deepviz, Laika BOSS, Cuckoo Sandbox, Anlyz.io, ViperMonkey, pcodedmp, dridex.malwareconfig.com y VirusTotal.

Fuente:http://www.gurudelainformatica.es/

miércoles, 22 de marzo de 2017

Tu cuenta anónima en Twitter no lo es tanto: cómo el FBI identifica a los usuarios investigándolas

 

¿Has pensado alguna ocasión en tener una cuenta anónima de Twitter o tienes ya una? Algunas se han convertido en auténticas estrellas de la red social. Ya sea por publicaciones humorísticas, comentarios mordaces o GIFs graciosos, estas cuentas han conseguido mucha notoriedad.
Algunas, sin embargo, no se usan para motivos tan poco turbios. A través de una cuenta anónima, se utilizó un tuit para provocar un ataque epiléptico a un usuario. El tuit fue denunciado y la policía de Dallas investigaría el caso con asistencia del FBI, logrando obtener la identidad del agresor sin que Twitter se la facilitase, tal y como el investigador de seguridad @X0rz ha publicado en su cuenta.
La declaración jurada que recoge todo el caso se puede consultar en Document Cloud. Se trata de un informe de 14 páginas escrito por el Agente Especial del FBI Nathan P. Hopp. Al parecer, todo habría empezado cuando el denunciante y otros usuarios habrían recibido un tuit para provocarles un episodio epiléptico.
En dicho tuit se podía ver un GIF con luces estroboscópicas con la leyenda "espero que te de un ataque por tu post". El responsable de este tuit era un tal Ari Goldstein, que tenía el nombre de usuario @jew_goldstein. Aparentemente, tras esta cuenta anónima se escondía John Rayne Rivello. ¿Cómo consiguieron descubrirlo?

Los hechos que desencadenaron la investigación



Todos sabemos que Twitter pide cierta información básica al usuario cuando se crea una cuenta: el nombre completo del usuario, una dirección de correo electrónico, una dirección física, fecha de nacimiento, lugar de residencia... muchos de estos datos son opcionales, y pueden dejarse en blanco si así se desea.
Por otra parte, Twitter guarda registros de las direcciones IP de cada usuario. En estos registros se puede encontrar información sobre cuándo se accedió a la plataforma, la dirección IP asociada al usuario y la fecha y la hora en la que usó su cuenta por última vez.
Teniendo todo esto en cuenta, en el documento podemos leer que Rivello creó a @jew_goldstein el 11 de diciembre de 2016. Cuatro días más tarde, el denunciante entraba a su cuenta de Twitter desde su oficina en Dallas, viendo el tuit de la cuenta anónima y sufriendo un ataque casi instantáneo. La mujer de esta persona lo asistió durante el ataque, y sacó una foto al GIF que se veía en la pantalla.
Esa foto se remitió en primer lugar al Departamento de Policía de Dallas, que a su vez envió una orden de registro a Twitter, que devolvió los siguientes resultados:
C7bo7jnx4aegqsg
Al mismo tiempo, el registro reveló que @jew_goldstein había estado hablando por mensaje directo con otros usuarios de la plataforma. En dichos mensajes había dicho que la víctima merecía "que unos emús le picotearan el hígado", que sabía que era epiléptica y que esperaba provocarle un ataque. En una de las comunicaciones privadas, colocó el GIF estroboscópico con la leyenda "le he mandado esto, a ver si se muere".

Así se desenmascaró a John Rayne Rivello

En los datos que Twitter había devuelto como consecuencia de la orden de búsqueda, se encontraba un número de teléfono de la operadora AT&T. Cuando se pidió a la operadora información sobre el número, resultó que se trataba de un número de prepago que no estaba registrado a nombre de nadie.
Sin embargo, a través de los registros de la empresa se pudo saber que el teléfono asociado a ese número era un iPhone 6, que necesitan de una Apple ID para poder ser utilizados. Estas identificaciones se pueden crear a través de las páginas de iTunes y de iCloud.
Con estos datos en la mano, la policía de Dallas pudo emitir una orden de registro a Apple para obtener más información sobre la cuenta de iCloud asociada al número de teléfono de Rivello. Esto fue lo que consiguieron:
C7bplcgxqaasrsn
Por ahora ya habían conseguido relacionar al servicio, el terminal y la persona, pero no sería hasta que se comenzase a revisar la cuenta que no se encontrarían, entre otras cosas, imágenes personales de Rivello y pruebas que lo conectaban a la cuenta anónima agresora. Entre ellas, el GIF que había provocado el ataque epiléptico al denunciante.
Además de todo esto, se encontró una captura de pantalla dela página de WikiPedia de la víctima, editada para establecer su muerte un día después del episodio. También muchos de los tuits del agredido habían sido capturados y guardados en la cuenta de iCloud de Rivello.
Por lo que se recoge en el informe, el agresor podrá ser juzgado dado que las autoridades han determinado que hubo intención por su parte de hacer daño y causar lesiones severas a la víctima.

Conclusiones sobre este caso

Para este investigador de ciberseguridad, la primera conclusión es muy evidente: si te ocultas para hacer algo malo, no uses algo que sea fácilmente reconocible para ello. Como por ejemplo, un iPhone 6. Según se recoge en la política de privacidad de Apple, la empresa puede suministrar la siguiente información a las fuerzas de seguridad si se lo solicitan:
  • Información del usuario.
  • Registros de correo electrónico.
  • Contenido del correo electrónico.
  • Otros contenidos de iCloud (Photo Stream, contactos, calendario...).
En resumidas cuentas, dado que pueden obtener prácticamente todo, no es la mejor manera de intentar seguir siendo anónimo a la hora de meterse en según qué asuntos. Al parecer, John Rayne Rivello era un ciudadano cualquiera intentando obtener alguna clase de venganza personal, pero el tiro le salió por la culata.
La identidad de la víctima no se menciona en ningún momento, pero llama bastante la atención que tenga una entrada propia en Wikipedia. De esto deducimos que se trata de una personalidad importante, si bien no tenemos forma de saber a qué ámbito pertenece.
Teniendo en cuenta cómo está el clima político en Estados Unidos actualmente, es fácil especular con que esta agresión esté motivada por asuntos ideológicos. Por lo demás, no se puede aventurar nada.

martes, 7 de marzo de 2017

Funciones de HASH con fines forenses

Recientemente hemos recibido la noticia de que el protocolo SHA-1 fue quebrado. En este artículo intentaré desentrañar cual es el impacto que este hecho tiene en las investigaciones digitales.

¿Qué es un HASH?

Es un algoritmo matemático que, aplicado sobre un objeto digital ya sea este el contenido de un disco rígido, un conjunto de archivos o simplemente un registro individual produce una salida hexadecimal de tamaño fijo.

No importa cuán grande sea el objeto original, el HASH del mismo siempre tendrá el mismo tamaño, el cual depende del protocolo elegido.

Los protocolos de HASH usualmente utilizados en Informática Forense son el MD5 que produce una salida de 128 bits de longitud y el SHA-1 de 160 bits.

Por lo expuesto anteriormente, el HASH permitiría identificar cualquier contenido digital ya que al más mínimo cambio del origen, se produce una variación en el valor de HASH.

Resulta claro que si el resultado de aplicar una función de HASH produce un número fijo de bits, solo hay un conjunto finito de valores que puede tomar ese HASH.

En este punto es de hacer notar que las funciones de HASH también son utilizadas con fines criptográficos.

¿Qué es una colisión?

Una colisión se produce cuando al aplicar la función de HASH a dos objetos diferentes, ambos producen el mismo resultado.

Es esto posible? Absolutamente ya que como he explicado el número de resultados posibles al aplicar el algoritmo, cualquiera sea este, es finito, mientras que los objetos a los que se les puede aplicar esa función son claramente infinitos.

De esta forma todos los protocolos de HASH tienen colisiones, solo que aquellos cuya longitud de salida es mayor, aún no han sido quebrados pues no se dispone de la potencia computacional para realizar los cálculos en un tiempo razonable, pero es cuestión de tiempo para hallar las colisiones de todos y cada uno de los protocolos de HASH existentes.

Cuando se demuestra que dos objetos diferentes producen el mismo valor de HASH , entonces ese protocolo debe discontinuarse para fines criptográficos pues el cifrado estaría comprometido.

¿Cuál es la utilidad de una función de HASH en una investigación digital?

Las funciones de hash se utilizan básicamente para dos cuestiones:
  1. Asegurar la integridad de la evidencia digital: Esto se logra mediante el cálculo de la función de HASH al momento de su recolección, el cual debe verificarse en todas las etapas posteriores de peritaje de la misma.
  2. Identificación de contenido binario: Es el procedimiento mediante el cual se le aplica la función de HASH a un archivo o conjunto de archivos con el objeto de identificarlos en algún otro dispositivo de almacenamiento digital.
Frecuentemente explicamos a letrados y operadores judiciales el concepto de HASH mencionando que el mismo es como "la huella digital" del objeto. Este mecanismo de criminalística permite la identificación de personas y su asociación con el hecho investigado, de la misma forma que una función de HASH lo hace con un contenido almacenado informáticamente.

El concepto de colisión de un HASH sería como encontrar dos personas que tuvieran las mismas huella digital…es esto posible? O por el contrario, se puede asegurar que no existen dos personas con las mismas huellas digitales? Ampliando este concepto a una investigación criminal y aun sin poder responder los interrogantes anteriores, la probabilidad de que una hipotética segunda persona tenga las mismas huellas digitales que otra y simultáneamente se encuentre vinculada al hecho investigado, es extremadamente baja e improbable.

Usar el argumento de la "duda razonable" es perfectamente posible aunque usualmente no da resultado positivo, en especial si se cuenta con alguna otra fuente de prueba.

¿Qué hacemos entonces con la evidencia digital ante este escenario?

El problema no es nuevo, ya ocurrió cuando se encontraron las colisiones de MD5 y a pesar de que la probabilidad de tener dos objetos distintos, asociados a la misma investigación, con igual valor de HASH MD5 es muy baja, la comunidad forense reaccionó sugiriendo la utilización de dos funciones de HASH por cada objeto.

Este doble factor podría encontrar una metáfora en el mundo real en la utilización simultánea de las huellas digitales y el ADN, por ejemplo, para identificar a una persona.

De esta forma, la probabilidad de que dos objetos diferentes tengan ambos valores de HASH coincidentes, sería soberanamente improbable.

Hasta el momento es una práctica común que los peritos utilicemos para este doble factor los protocolos de HASH MD5 y SHA-1, seguramente en un futuro próximo el SHA-1 será reemplazado por SHA-2, teniendo presente que del mismo hay en realidad cuatro implementaciones de longitudes diferentes SHA-224, SHA-256, SHA-384 y SHA-512 (el sufijo indica la longitud de bits) .
La utilización de SHA-2 definitivamente impactará en los tiempos de adquisición de evidencia, por la sobrecarga que implica el cálculo de funciones de mayor longitud.

En cualquier caso es solo cuestión de tiempo para que se encuentren colisiones en estos protocolos y la historia se vuelva a repetir.

Ing. Gustavo Presman - @gpresman