Una de las ramas mas interesantes de la informática es la forense.
Dentro del variado e inmenso mundo del software libre existen diferentes herramientas para llevar a cabo la recolección de información y análisis del mismo.
En este articulo nos vamos a centrar en el análisis forense de archivos fotográficos.
No esperen que analice alguna foto de Mirta Legrand o Susana Gimenez, este tipo de maldades se las voy a dejar a uds. para que practiquen.
Una imagen vale mas que mil palabras:
La mayoría de los documentos producidos por cualquier software dejan algún tipo de huella, en este caso los metadatos, en este mismo blog se hablo de ellos en otra oportunidad. Y los archivos producidos tanto por las cámaras modernas como celulares y smartphones no están exentos de ellos.
Algunos tipos de datos que se pueden encontrar en una imagen son los siguientes:
-Marca y modelo de la cámara digital.
-Número de serie de la cámara digital.
-Fecha y hora de la fotografía.
-Apertura y velocidad del obturador.
-Medidor de exposición.
-Sistema operativo donde la foto fue editada o almacenada.
-Versión del software utilizado para la edición.
-Datos de geolocalizacion, es decir latitud y longitud donde fue tomada la -fotografía.
-Miniatura de la fotografía original (sin edición).
-Otros.
Esta información es de vital importancia en el caso de resolución de crímenes como la pedofilia ya que representa una evidencia fundamental.
Algo muy importante a tener en cuenta antes de comenzar a analizar la imagen fotográfica es que el archivo debe ser original y no adulterada por software ya que ciertos datos no serian del todo fieles.
Principales herramientas:
Exif tools: es un modulo de perl que no solo sirve para leer y editar información de archivos de imágenes sino también audio y video.
Actualmente reconoce información de metadatos EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP y ID3.
Asi como también la información de las siguientes cámaras de fotos:Canon, Casio, FujiFilm, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Ricoh, Sanyo y Sigma/Foveon.
Este modulo resulta nuestro caballito de batalla en la parte inicial de obtencion de informacion.
GIMP: antes de que salte como siempre algún photoshop fanboy, GIMP es excelente en muchos aspectos y nos va a resultar muy útil para hacer un análisis mas en detalle de ciertas partes de una fotografía, ampliando áreas por ejemplo. O utilizando filtros para detectar adulteraciones como veremos mas adelante.
JpegQuality: una de las herramientas que presento Neal Krawetz en la Black Hat 2007 para visualizar las “quantization tables” y estimar la calidad de una imagen en formato JPEG.
Cada vez que editamos una foto y la volvemos a grabar dicha calidad se va degradando. Muy util para averiguar si una imagen es la original o no como les comentaba al principio.
El código fuente para compilar se puede bajar del siguiente link:
http://www.hackerfactor.com/src/jpegquality.c
ELA (Error Level Analysis): El análisis de nivel de errores puede ayudarnos a averiguar si una foto ha sido alterada digitalmente. Las fotos en formato jpeg pierden calidad cada vez que se vuelven a guardar. Podemos tomar ventaja de esto para tratar de resolver si una imagen ha sido manipulada digitalmente.
Por ejemplo, si tenemos una foto JPEG con 90% de calidad, y volvemos a guardar una vez más al 90% de calidad, el resultado final será una imagen en un 90% del 90% (81% de calidad). Si ahora copiamos y pegamos un elemento de una foto diferente en la foto actual, puede suceder que el resultado final termine con secciones de la imagen en diferentes niveles de calidad. Esto ocurre porque algunas partes se han vuelto a guardar en tres ocasiones, mientras que algunas partes solamente se han salvado una vez.
Si la imagen no ha tenido modificaciones, todas las partes de la foto estarán en la misma calidad.
¿Como funciona?
Nos permite ver la diferencia en nivel de calidad representada por el brillo. Los elementos mas brillantes son los que han sido editados recientemente, mientras que las partes más opacas fueron guardadas varias veces. Esto nos permite ver no sólo qué partes de la imagen han cambiado, sino también en qué orden los cambios han ocurrido.
En este link se encuentra una versión reciente para compilar
https://infohost.nmt.edu/~schlake/ela/
Herramientas online:
Puede que no nos encontremos en nuestra maquina de trabajo y necesitemos hacer un rápido análisis de cierta evidencia que nos enviaron por mail por ejemplo.
Desde cualquier equipo con un navegador y acceso a internet podemos utilizar estas herramientas:
Para datos EXIF
http://regex.info/exif.cgi
Online ELA (Error Level Analysis)
http://errorlevelanalysis.com/
Tambien existen plug-ins para navegadores como por ejemplo el siguiente para firefox:
https://addons.mozilla.org/en-US/firefox/addon/3905
Manos a la obra:
Una vez que vimos las herramientas principales, veamos algunos ejemplos de utilizacion para que no quede como información tirada al aire.
Arranquemos analizando un poster creado por un fan de Linux.

Para ello vamos a utilizar al fiel GIMP, cargamos la foto original y vamos a analizar el nivel de color. Vamos a el menú colores, niveles. Movemos el nivel de ingreso hacia la izquierda y verán como las palabras Linux y Windows se van a ir destacando del resto del texto, lo que significa que la frase original en realidad decía otra cosa y fueron insertadas esas dos palabras con posterioridad.

Veamos un ejemplo de información presentada por Exif tools para que tengan una idea de lo potente que es esta herramienta, para ello bajemos una foto de twitpics

Desde una consola corremos:
Exiftool copa.jpg
Y obtenemos la siguiente salida:
ExifTool Version Number : 7.89
File Name : copa.jpg
Directory : .
File Size : 58 kB
File Modification Date/Time : 2010:09:07 21:37:36-03:00
File Type : JPEG
MIME Type : image/jpeg
JFIF Version : 1.01
Exif Byte Order : Little-endian (Intel, II)
Make : Research In Motion
Camera Model Name : BlackBerry 8900
Orientation : Horizontal (normal)
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Modify Date : 2010:09:05 23:02:05
Y Cb Cr Positioning : Co-sited
Software : Rim Exif Version1.00a
Exif Version : 0220
Date/Time Original : 2010:09:05 23:02:05
Color Space : sRGB
Components Configuration : Y, Cb, Cr, -
Exif Image Width : 2048
Exif Image Height : 1536
Exposure Time : 0
Subject Distance : 0 m
Light Source : Unknown
Flash : No flash function
Device Setting Description : (Binary data 0 bytes, use -b option to extract)
GPS Version ID : 2200
GPS Latitude Ref : North
GPS Longitude Ref : West
GPS Altitude Ref : Above Sea Level
GPS Speed Ref : km/h
GPS Speed : 0
GPS Track Ref : True North
GPS Track : 3.44
Image Width : 600
Image Height : 450
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:2 (2 1)
GPS Altitude : 198 m Above Sea Level
GPS Latitude : 42 deg 17′ 18.30″ N
GPS Longitude : 89 deg 4′ 45.78″ W
GPS Position : 42 deg 17′ 18.30″ N, 89 deg 4′ 45.78″ W
Image Size : 600×450
Shutter Speed : 0
Como podrán ver la información obtenida es variada y muy interesante. Noten como inclusive obtenemos información de geolocalizacion de la misma. En este caso podemos saber el lugar exacto en donde fue tomada.
Un caso famosisimo que fue publicado en varios sitios es el de una famosa periodista Cat Schwartz que se le ocurrió subir a su blog una foto suya modificada con photoshop donde solamente se veian sus ojos, claro que no penso que siempre hay gente malvada al asecho analizando las fotos que cuelgan en la red. Y el descubrimiento fue que el photoshop no altera las miniaturas contenidas en la foto original. Asi que si nos bajamos su foto del siguiente sitio:
http://hektik.org/Various/TheBad/cat/img/Cateyes.jpg
Y extraemos la miniatura de la foto
exiftool -b -ThumbnailImage Cateyes.jpg > miniatura.jpg
Nos vamos a encontrar a Cat como Dios la trajo al mundo :)
Nota: no mostramos el resultado del comando porque seguramente hay menores mirando este artículo.
La información presentada es interesante ¿Donde puedo obtener fotografías para jugar?
Sitios como Twitpics, Flickr, Myspace o fotolog no realizan ningún tipo de tratamiento sobre los archivos que suben sus usuarios, por lo que son una fuente interesante para practicar.
Facebook en cambio, por el tipo de licenciamiento, borra los metadatos de las fotografías en el momento de ser publicadas.
¿Que bibliografía es recomendable leer para ampliar lo presentado en esta entrada?
Creo que lo mejor es leer el documento utilizado por Neal Krawetz para su presentación en Blackhat 2007
http://www.hackerfactor.com/papers/bh-usa-07-krawetz-wp.pdf
Existe otro documento de Eric Kee and Hany Farid del Departamento de computación científica de la universidad de Dartmouth. Este documento requiere tener cierto nivel académico para poder seguirlo:
http://www.cs.dartmouth.edu/~erickee/papers/tr09.pdf
Si esta información les resulta insuficiente, ¡usen google que no muerde!
ESTE TEXTO SE PUBLICA BAJO LICENCIA CREATIVE COMMONS BY-NC-SA 2.5 AR.

Por lo tanto, usted es libre de: 1) Copiarlo, distribuirlo y exhibirlo. 2) Hacer obras derivadas. Bajo las siguientes condiciones: 1) Debe dar atribución mencionando el nombre del autor y del LUG Zona Norte. En caso de las notas que no llevan firma, mencionar sólo el nombre del LUG.
2) Usted no puede usar esta obra con fines comerciales. 3) Si usted altera, transforma, o crea sobre este texto, sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta.
Más detalles y texto legal de la licencia en:http://creativecommons.org/licenses/by-nc-sa/2.5/ar