Forense en dispositius mòbils
Introducció
El telèfon intel·ligent modern és, possiblement, el dispositiu digital més ric en informació personal de tota la historia de la computació. Un smartphone típic d'avui emmagatzema milers de fotografies, centenars d'hores de vídeo, tots els missatges intercanviats en els darrers anys, l'historial de navegació, les dades de localització precisa de cada moviment durant mesos, les contrasenyes guardades, la informació bancària, els calendaris, els contactes i molt més. Per a un investigador forense, un telèfon mòbil és potencialment una finestra completa a la vida del seu propietari.
La magnitud d'aquesta riquesa informativa es va posar de manifest en el cas Apple vs. FBI (2016). Després del tiroteig de San Bernardino, l'FBI va recaptar l'iPhone del tiroteig mort i va sol·licitar a Apple que creés una versió modificada d'iOS que li permetés superar el bloqueig de PIN. Apple va refusar al·legant que crear un "backdoor" posaria en risc la privacitat de tots els seus usuaris. El cas es va resoldre quan l'FBI va contractar una empresa privada (Cellebrite, presumiblement) que va poder accedir al dispositiu. El cas va il·lustrar perfectament el doble repte del forense mòbil: les dades hi són, però accedir-hi sense les credencials correctes pot ser extraordinàriament difícil.
A Espanya, el forense en dispositius mòbils ha estat clau en nombroses investigacions d'alt perfil, des de casos de terrorisme fins a investigacions de corrupció política. Els telèfons interceptats als membres d'organitzacions criminals han proporcionat proves clau en molts judicis, demostrant que, malgrat el xifrat i les mesures de seguretat cada vegada més sofisticades, els dispositius mòbils continuen sent una font d'evidències primordial.
Mètodes d'extracció de dades mòbils
Existeixen quatre mètodes principals d'extracció de dades d'un dispositiu mòbil, ordenats de menys a més invasius i de menor a major capacitat de recuperació de dades:
flowchart TD
A["MÈTODES D'EXTRACCIÓ MÒBIL\n(de menys a més invasiu)"] --> B["Extracció lògica\n─────────\nAccés via API del SO\nBackup d'aplicacions\nDades accessibles\nal SO"]
A --> C["Extracció del sistema de fitxers\n─────────\nAccés via ADB (Android)\nLlista completa de fitxers\nSense dades esborrades"]
A --> D["Extracció física\n─────────\nImatge bit a bit del\ndispositiu d'emmagatzematge\nRecupera dades esborrades"]
A --> E["Chip-off / JTAG\n─────────\nExtracció directa\ndel xip de memòria\nMàxima recuperació"]
style B fill:#90EE90
style C fill:#FFD700
style D fill:#FFA500
style E fill:#FF6B6B
Extracció lògica
L'extracció lògica accedeix a les dades del dispositiu a través de les interfícies programàtiques que ofereix el sistema operatiu: les APIs de backup, les connexions de sincronització (iTunes, MTP) o les aplicacions de gestió del dispositiu. Obté únicament les dades als que el sistema operatiu permet accedir: fitxers de l'usuari, backups d'aplicacions, contactes, calendaris.
Avantatges: No invasiu, ràpid, no requereix desbloquejar el dispositiu (per a algunes operacions), resultat en format estàndard.
Limitacions: No obté dades eliminades, no accedeix a zones protegides del sistema, la informació obtinguda és la que el SO "vol" mostrar.
Extracció del sistema de fitxers
Obté una vista completa de l'arbre de directoris del dispositiu, incloent-hi directoris del sistema operatiu als que l'usuari normal no té accés. En Android, s'aconsegueix típicament a través de ADB amb privilegis de root (si el dispositiu té root actiu o s'ha pogut obtenir root prèviament). En iOS, es pot obtenir amb un jailbreak o a través de determinades vulnerabilitats.
Avantatges: Accés complet al sistema de fitxers, inclosos arxius del sistema operatiu i d'aplicacions.
Limitacions: No recupera dades eliminades (els fitxers esborrats han estat eliminats del sistema de fitxers però el contingut pot romandre en l'espai no allotjat).
Extracció física
L'extracció física crea una imatge bit a bit de la memòria flash del dispositiu (eMMC o UFS en dispositius moderns). És l'equivalent mòbil d'una imatge dd d'un disc dur. Obté tot el contingut de la memòria, incloent-hi l'espai no allotjat on poden residir dades eliminades que no han estat sobreescrites.
En dispositius Android no rootejats, l'extracció física requereix sovint l'ús d'eines especialitzades com Cellebrite UFED o Magnet AXIOM, que exploten vulnerabilitats específiques de cada fabricant o model per obtenir accés directe a la memòria.
Avantatges: Màxima quantitat de dades, possibilitat de recuperar dades eliminades.
Limitacions: Requereix eines especialitzades (generalment comercials), el xifrat del dispositiu pot dificultar la interpretació de les dades obtingudes, més lent.
Chip-off
El mètode més invasiu i tècnicament exigent. Implica la desoldat físic del xip de memòria flash de la placa base del dispositiu i la lectura directa del xip amb un lector especialitzat. S'utilitza quan el dispositiu té danys físics greus (pantalla trencada, port USB danyat, bateria cremada) que impedeixen altres mètodes.
Avantatges: Funciona fins i tot amb dispositius físicament danyats, no depèn del sistema operatiu del dispositiu.
Limitacions: Requereix coneixements d'electrònica i equipament especialitzat, pot danyar el xip, les dades obtingudes requereixen processament addicional per ser interpretables, destrueix possibilitats de reutilitzar el dispositiu.
JTAG (Joint Test Action Group)
JTAG és un estàndard d'interfície de diagnòstic present en molts processadors. Originalment dissenyat per a proves de fabricació, l'interfície JTAG permet accedir a la memòria del dispositiu a baix nivell. Requereix soldadura dels connectors JTAG del dispositiu (generalment punts de test a la placa base) i un adaptador JTAG compatible.
Menys invasiu que el chip-off (no cal extreure el xip), però requereix coneixements d'electrònica i l'accés físic a la placa base del dispositiu.
Eines de forense mòbil
Eines comercials
Cellebrite UFED (Universal Forensic Extraction Device): La suite comercial de referència en el forense mòbil. Admès per tribunals d'arreu del món. Suporta milers de models de dispositiu i ofereix extracció física i lògica, anàlisi de contingut i generació d'informes. El seu preu és elevat (desenes de milers d'euros), però és l'eina que utilitzen la majoria de forces de seguretat i laboratoris forenses professionals a escala global. Cellebrite va ser l'empresa que, presumiblement, va ajudar l'FBI a accedir a l'iPhone del cas de San Bernardino.
Magnet AXIOM: Suite completa que suporta dispositius mòbils, ordinadors i Cloud. Una de les seves característiques distintives és que facilita la correlació de dades de múltiples fonts (el telèfon de l'investigat, el del còmplice i el compte de Google Drive) en una mateixa interfície d'investigació.
Oxygen Forensic Detective: Solució russa (important tenir en compte implicacions de seguretat) amb suport per a nombrosos dispositius. Destaca en l'extracció de dades de xarxes socials i aplicacions de missatgeria.
Eines de codi obert
ADB (Android Debug Bridge): Eina oficial d'Android, gratuïta i inclosa en l'Android SDK. Permet comunicar-se amb un dispositiu Android connectat per USB, enviar fitxers, executar comandes i (si el dispositiu té root) obtenir una còpia del sistema de fitxers.
Andriller: Suite gratuïta Python per a forense Android. Pot extreure backups ADB, analitzar bases de dades d'aplicacions i generar informes HTML bàsics.
ALEAPP (Android Logs Events And Protobuf Parser) i iLEAPP (iOS Logs Events And Protobuf Parser): Eines gratuïtes especialitzades en l'anàlisi d'artefactes específics de cada plataforma. Analitzen automàticament centenars de tipus d'artefactes i generen informes detallats.
Autopsy (amb mòdul de forense mòbil): La versió 4.x d'Autopsy inclou mòduls per a l'anàlisi de backups d'Android i iOS, oferint una alternativa gratuïta per a investigacions amb recursos limitats.
Android Forensics
L'ecosistema Android des de la perspectiva forense
Android és el sistema operatiu mòbil dominant a nivell mundial, amb més del 70% de quota de mercat. La seva natura de codi obert i la seva fragmentació (milers de models de dispositiu de centenars de fabricants, amb versions d'Android personalitzades) creen un panorama forense complex però ric en possibilitats.
La memòria interna dels dispositius Android moderns utilitza eMMC o UFS (Universal Flash Storage). El sistema de fitxers utilitzat és típicament F2FS (Flash-Friendly File System) per a la partició de dades, o Ext4 en dispositius antics. El particionament segueix un esquema complex:
/boot # Kernel i ramdisk d'arrencada
/system # Sistema operatiu Android (de només lectura)
/vendor # Drivers i firmware del fabricant
/data # Dades de l'usuari i aplicacions (PARTICIÓ D'INTERÈS PRINCIPAL)
/sdcard # Emmagatzematge extern (pot ser real o virtual)
/cache # Cache del sistema
/recovery # Entorn de recuperació
ADB per a forense
ADB (Android Debug Bridge) és l'eina principal per a l'accés forense a dispositius Android. Per poder-la utilitzar, el dispositiu ha de tenir el depurador USB activat (opció dins de les opcions de desenvolupador) o, en alguns casos, es pot forçar l'activació.
# Verificar que el dispositiu és detectat
adb devices
# Sortida esperada:
# List of devices attached
# R58M43BXXXX device
# Obtenir informació del dispositiu
adb shell getprop | grep -E "ro.product|ro.build.version"
# Llistar fitxers de l'usuari
adb shell ls -la /sdcard/
# Copiar un fitxer del dispositiu a l'ordinador
adb pull /sdcard/DCIM/Camera/ ./fotos_evidencia/
# Crear un backup ADB (sense contrasenya, en dispositius antics)
adb backup -all -noapk -f backup_evidencia.ab
# Convertir el backup ADB a tar per a anàlisi
dd if=backup_evidencia.ab bs=24 skip=1 | python3 -c \
"import zlib,sys; sys.stdout.buffer.write(zlib.decompress(sys.stdin.buffer.read()))" \
> backup_evidencia.tar
tar xf backup_evidencia.tar -C ./backup_descomprimit/
Cadena de custòdia
Quan es connecta un dispositiu Android per ADB, el sistema pot demanar autorització a la pantalla del dispositiu ("Permetre depuració USB?"). Fotografieu qualsevol missatge que aparegui a la pantalla i documenteu les accions realitzades. Si el dispositiu és bloquejat amb PIN, el depurador USB no pot activar-se sense desbloquejar primer el dispositiu.
Estructura de dades d'aplicacions Android
La partició /data/data/ és el directori on cada aplicació emmagatzema les seves dades privades. Cada aplicació té el seu propi subdirectori, identificat pel seu nom de paquet Java:
/data/data/
├── com.whatsapp/ # WhatsApp
│ ├── databases/
│ │ ├── msgstore.db # Base de dades de missatges
│ │ ├── wa.db # Contactes de WhatsApp
│ │ └── axolotl.db # Claus de xifrat Signal Protocol
│ └── files/
│ └── key # Clau de xifrat de backups locals
├── com.android.contacts/ # Contactes
│ └── databases/contacts2.db
├── org.telegram.messenger/ # Telegram
│ └── files/cache4.db
├── com.google.android.gm/ # Gmail
│ └── databases/mailstore.*.db
└── com.android.providers.telephony/ # SMS i MMS
└── databases/mmssms.db
Miniactivitat
Objectiu: Analitzar una base de dades SQLite d'una aplicació Android.
- Descarregueu una base de dades de mostra de
msgstore.dbde WhatsApp (disponible en repositoris de CTF forense). - Obriu-la amb
sqlite3o DB Browser for SQLite. - Exploreu les taules:
SELECT name FROM sqlite_master WHERE type='table'; - Llisteu els 10 missatges més recents:
SELECT key_remote_jid, data, timestamp FROM messages ORDER BY timestamp DESC LIMIT 10; - Exporteu els resultats en format CSV.
- Documenteu la metodologia i els resultats.
Bases de dades SQLite: l'or del forense mòbil
SQLite és el motor de base de dades que utilitzen la immensa majoria d'aplicacions mòbils per emmagatzemar dades estructurades. Cada aplicació té típicament una o diverses bases de dades SQLite. Per a un investigador forense, aquestes bases de dades contenen exactament el que es necessita: missatges ordenats per temps amb remitent i destinatari, registres de trucades amb durada i timestamp, historial de geolocalització, historial de recerques, etc.
# Anàlisi de base de dades SQLite amb sqlite3
# Obrir una base de dades
sqlite3 /evidencia/data/com.whatsapp/databases/msgstore.db
# Dins de sqlite3:
.tables # Llistar totes les taules
.schema messages # Estructura de la taula messages
SELECT COUNT(*) FROM messages; # Nombre total de missatges
SELECT key_remote_jid, data, timestamp # Missatges d'un contacte
FROM messages
WHERE key_remote_jid = '34612345678@s.whatsapp.net'
ORDER BY timestamp;
# Exportar en CSV
.mode csv
.output missatges_exportats.csv
SELECT * FROM messages;
.quit
Un aspecte crític del forense SQLite és que les bases de dades poden contenir pàgines no allotjades (freelist pages) que contenen fragments de registres eliminats. Quan s'elimina un missatge de WhatsApp, per exemple, el registre es marca com a eliminat a la base de dades, però el contingut pot romandre en les pàgines lliures fins que sigui reescrit. Eines com Oxygen Forensic o Cellebrite analitzen automàticament les freelist pages per recuperar registres eliminats.
iOS Forensics
Les particularitats d'iOS
iOS és, des del punt de vista de la seguretat, un dels sistemes operatius mòbils més robustos. Apple ha implementat múltiples capes de seguretat que compliquen enormement el treball dels investigadors forenses:
- Secure Enclave: Un coprocesador independent del processador principal que gestiona tot el xifrat. Les claus de xifrat mai surten del Secure Enclave.
- Data Protection: Un sistema de xifrat en quatre classes que associa les claus de xifrat al PIN de l'usuari. Quan el dispositiu és bloquejat, la majoria de dades queden inaccessibles.
- Sandboxing: Cada aplicació s'executa en el seu propi sandbox, sense accés a les dades d'altres aplicacions.
- Code signing: Només pot executar-se codi autoritzat per Apple.
- Secure Boot: Cadena de confiança verificada en cada pas de l'arrencada.
Malgrat tot, els backups d'iTunes continuen sent una font d'evidències valuosa, especialment si no estan protegits per contrasenya.
Backups d'iTunes/Finder
Quan es fa un backup d'un iPhone o iPad amb iTunes (o Finder en macOS Catalina i posteriors), Apple crea una còpia de les dades de l'usuari en el directori d'iTunes del PC. Aquests backups, si no estan protegits per contrasenya, contenen una quantitat enorme d'informació forense.
# Ruta dels backups a Windows
C:\Users\<NomUsuari>\AppData\Roaming\Apple Computer\MobileSync\Backup\
# Ruta dels backups a macOS
~/Library/Application Support/MobileSync/Backup/
# Estructura del backup (format Manifest.db + fitxers hash)
<UDID_dispositiu>/
├── Info.plist # Informació del dispositiu (model, IMEI, número de telèfon)
├── Manifest.plist # Informació del backup
├── Manifest.db # Base de dades SQLite amb la llista de tots els fitxers
├── Status.plist
└── XX/ # Directoris de dos caràcters hexadecimals
└── XXXXXXXXXX... # Fitxers amb nom hash SHA-1
La clau per analitzar un backup és el fitxer Manifest.db: conté la correspondència entre cada hash SHA-1 i el fitxer original del dispositiu. Eines com iExplorer, iMazing, iPhone Backup Extractor o iLEAPP faciliten enormement l'anàlisi d'aquests backups.
# Accés al Manifest.db amb sqlite3
sqlite3 Manifest.db
.tables
# Files Properties
.schema Files
# CREATE TABLE Files (fileID TEXT PRIMARY KEY, domain TEXT, relativePath TEXT,
# flags INTEGER, file BLOB)
# Cercar la base de dades de SMS
SELECT fileID, domain, relativePath FROM Files
WHERE relativePath LIKE '%sms%';
# Buscar fitxers de WhatsApp
SELECT fileID, domain, relativePath FROM Files
WHERE domain LIKE '%whatsapp%'
ORDER BY relativePath;
Keychain d'iOS
El Keychain és el sistema de gestió de credencials d'iOS. Emmagatzema contrasenyes de WiFi, contrasenyes de llocs web (gestionades per Safari), tokens d'autenticació d'aplicacions, claus de xifrat i certificats. L'accés al Keychain és possible a través del backup si la contrasenya del backup és coneguda, o en dispositius amb jailbreak.
Risc legal: accés no autoritzat
L'extracció del Keychain d'un dispositiu iOS sense autorització legal prèvia (ordre judicial o consentiment del propietari) pot constituir un delicte contra la intimitat i el secret de les comunicacions previst a l'article 197 bis del Codi Penal espanyol. Sempre actueu dins del marc legal i amb les autoritzacions pertinents.
Xifrat de dispositius mòbils
Android: Full Disk Encryption vs File-Based Encryption
Android ha evolucionat en les seves estratègies de xifrat:
FDE (Full Disk Encryption): Introduïda en Android 5.0, xifra tota la partició de dades amb una clau derivada del PIN/patró de l'usuari. Quan el dispositiu s'apaga, totes les dades queden inaccessibles sense el PIN correcte. En dispositius antics o de gama baixa, l'FDE era opcional. La majoria de dispositius moderns utilitzen ara FBE.
FBE (File-Based Encryption): Introduïda en Android 7.0 i obligatòria des d'Android 10. Xifra fitxers individuals amb claus diferents: alguns fitxers s'xifren amb una clau lligada al PIN (CE: Credential Encrypted), mentre que d'altres es xifren amb una clau del dispositiu disponible abans de desbloquejar (DE: Device Encrypted). Aquesta distinció permet que certes funcions (alarmes, trucades entrants) funcionin fins i tot quan el dispositiu no s'ha desbloqejat encara.
Des del punt de vista forense, el xifrat FBE significa que una extracció física d'un dispositiu Android bloquejat pot obtenir les dades xifrades però no les podrà llegir sense la clau de descifrat (que és el PIN de l'usuari). Algunes eines comercials (Cellebrite, Magnet) incorporen tècniques per forçar el PIN per força bruta en determinats models de dispositiu.
iOS: Data Protection Classes
iOS implementa el xifrat a través del sistema Data Protection, que classifica les dades en quatre classes:
| Classe | Nom | Accessible quan |
|---|---|---|
| A | Complete Protection | Només quan el dispositiu és desbloquejat |
| B | Protected Unless Open | Quan s'ha desbloquejat almenys una vegada des de l'arrencada |
| C | Protected Until First User Authentication | Quan s'ha desbloquejat almenys una vegada des de l'arrencada |
| D | No Protection | Sempre (xifrat, però la clau no depèn del PIN) |
La majoria de dades sensibles (missatges, correus, fotos) es guarden en classe A o C. Això significa que en un dispositiu apagat o recentment reiniciat, la majoria de dades estan completament inaccessibles sense el PIN.
Artefactes d'interès forense en dispositius mòbils
Registres de trucades
Els registres de trucades (call logs) d'un telèfon mòbil constitueixen una de les evidències més útils per establir relacions entre persones i confirmar la cronologia dels fets. A Android, s'emmagatzemen a la base de dades de l'aplicació Telephone, generalment a /data/data/com.android.providers.contacts/databases/contacts2.db. A iOS, es troben al fitxer Library/CallHistoryDB/CallHistory.storedata del backup.
Missatgeria i SMS
Cada plataforma de missatgeria emmagatzema les converses en el seu propi format:
- SMS/MMS natius: A Android, a
mmssms.db; a iOS, aLibrary/SMS/sms.db. - WhatsApp:
msgstore.db(Android) iChatStorage.sqlite(iOS, al backup). - Telegram:
cache4.db(Android), base de dades SQLite d'iOS. - Signal: Base de dades xifrada (molt difícil d'accedir sense la contrasenya).
Dades de geolocalització
La localització és sovint una de les evidències més crítiques en una investigació. Les fonts de geolocalització en un dispositiu mòbil inclouen:
- EXIF de fotografies: Moltes fotos inclouen coordenades GPS en les metadades EXIF.
- Historial de localització de Google Maps: Si l'aplicació té permisos i l'historial activat, guarda la ruta completa de l'usuari.
- Logs de WiFi: Registre de les xarxes WiFi connectades anteriorment, amb timestamps.
- Cache de mapes: Les tiles de mapes descarregades revelen quines àrees ha consultat l'usuari.
- Apps de fitness: Rutes de running o ciclisme amb GPS precís.
# Extreure metadades EXIF d'una imatge (incloent GPS)
exiftool fotografia.jpg | grep -i "GPS\|Date\|Time"
# Sortida d'exemple:
# GPS Latitude : 41 deg 23' 12.50" N
# GPS Longitude : 2 deg 10' 45.30" E
# Date/Time Original: 2024:03:15 14:23:47
# Convertir a decimal
# 41 + 23/60 + 12.50/3600 = 41.3868056 N
# 2 + 10/60 + 45.30/3600 = 2.179250 E
Miniactivitat
Objectiu: Analitzar metadades EXIF d'una col·lecció de fotografies.
- Descarregueu un conjunt de fotografies de mostra (o useu fotografies pròpies de pràctica).
- Instal·leu ExifTool:
sudo apt install exiftoolopip install pillow - Extraieu totes les dades EXIF:
exiftool -csv *.jpg > metadades.csv - Obriu el CSV amb un full de càlcul i identificeu quines imatges contenen coordenades GPS.
- Geolocalitzeu les coordenades a Google Maps.
- Reflexioneu sobre les implicacions per a la privacitat i per a les investigacions forenses.
Informe de forense mòbil
Un informe de forense mòbil ha de recollir, com a mínim:
- Identificació del dispositiu: Marca, model, IMEI (es pot obtenir amb
*#06#), número de telèfon (si aplicable), número de sèrie, versió del sistema operatiu. - Mètode d'extracció emprat: Tipus d'extracció, eines i versions, hash de les dades adquirides.
- Estat del dispositiu: Bloquejat/desbloquejat, percentatge de bateria, xarxes detectades, mode avió actiu.
- Cadena de custòdia: Documentació completa.
- Resultats de l'anàlisi: Per a cada tipus d'artefact rellevant: dades trobades, timestamps, context i interpretació.
- Conclusions: Síntesi de les troballes i la seva rellevància per a la investigació.
Exercici pràctic del tema
AC5044: Anàlisi d'un backup Android
Descripció: Analitzeu les dades d'un backup Android de mostra i construiu una línia temporal d'activitat.
Material: Descarregueu el backup de mostra proporcionat pel professor (fitxer .ab o directori descomprimit).
Pas 1: Descomprimiu el backup.
# Descomprimir un backup ADB (.ab)
dd if=backup_mostra.ab bs=24 skip=1 | python3 -c \
"import zlib, sys; sys.stdout.buffer.write(zlib.decompress(sys.stdin.buffer.read()))" \
> backup.tar
tar xf backup.tar -C ./backup_descomprimit/
Pas 2: Identifiqueu les aplicacions presents.
Pas 3: Analitzeu els SMS.
sqlite3 backup_descomprimit/apps/com.android.providers.telephony/db/mmssms.db \
"SELECT address, date/1000 as timestamp_unix, body FROM sms ORDER BY date;" | head -20
Pas 4: Si hi ha dades de WhatsApp, analitzeu-les.
sqlite3 backup_descomprimit/apps/com.whatsapp/db/msgstore.db \
".tables"
sqlite3 backup_descomprimit/apps/com.whatsapp/db/msgstore.db \
"SELECT key_remote_jid, data, timestamp FROM messages LIMIT 20;"
Pas 5: Construïu una línia temporal.
Lliurament: Informe breu en format Markdown amb els principals artefactes trobats, organitzats per tipus i cronologia.