La mayoría de los formatos de archivo empiezan con unos pocos bytes fijos, una firma de archivo o número mágico, que identifican el formato con independencia del nombre del archivo. Los sistemas operativos y los programas usan la extensión como pista, pero la firma es lo que el archivo realmente es. Es la base de la detección del tipo de archivo, la validación de subidas, la recuperación de datos y el carving forense. Inspeccione los bytes de cualquier archivo con Análisis Forense Binario y de Archivos Comprimidos.
Firmas habituales
| Formato | Firma (hex) | Como texto | Posición |
|---|---|---|---|
| Imagen PNG | 89 50 4E 47 0D 0A 1A 0A |
.PNG.... |
0 |
| Imagen JPEG | FF D8 FF |
... |
0 |
| Imagen GIF | 47 49 46 38 |
GIF8 |
0 |
| Imagen WebP | 52 49 46 46 .. .. .. .. 57 45 42 50 |
RIFF....WEBP |
0 |
| Imagen BMP | 42 4D |
BM |
0 |
| Imagen TIFF | 49 49 2A 00 (or 4D 4D 00 2A) |
II*. |
0 |
| Documento PDF | 25 50 44 46 2D |
%PDF- |
0 |
| Archivo ZIP (también DOCX, XLSX, JAR, APK) | 50 4B 03 04 |
PK.. |
0 |
| Archivo gzip | 1F 8B |
.. |
0 |
| Archivo TAR | 75 73 74 61 72 |
ustar |
257 |
| Base de datos SQLite | 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 |
SQLite format 3. |
0 |
| Ejecutable ELF (Linux) | 7F 45 4C 46 |
.ELF |
0 |
| Ejecutable de Windows (EXE, DLL) | 4D 5A |
MZ |
0 |
| Archivo 7-Zip | 37 7A BC AF 27 1C |
7z.... |
0 |
| Archivo RAR | 52 61 72 21 1A 07 |
Rar!.. |
0 |
| Archivos antiguos de Office (DOC, XLS) y MSI | D0 CF 11 E0 A1 B1 1A E1 |
........ |
0 |
| Audio MP3 con etiqueta ID3 | 49 44 33 |
ID3 |
0 |
| Vídeo MP4 / MOV | .. .. .. .. 66 74 79 70 |
....ftyp |
0 |
Las doce primeras filas se comprobaron creando archivos reales y leyendo sus primeros bytes, y las habituales las confirmó la herramienta file del sistema. Algunos formatos llevan el marcador más adentro del archivo: el ustar de TAR está en el byte 257 y MP4 tiene ftyp en el byte 4.
Por qué las extensiones no bastan
La extensión es solo parte del nombre, así que cualquiera puede cambiarla. Un programa renombrado vacaciones.jpg sigue siendo un programa, y un PNG renombrado .jpg sigue siendo un PNG: la mayoría de los visores de imágenes lo detectan por la firma y lo abren igualmente.
Dónde importan las firmas
- Comprobación de subidas. Validar la extensión o el
Content-Typeque envió el navegador no basta, porque ambos los controla el atacante. Compare los primeros bytes con la firma esperada y vuelva a codificar las imágenes cuando pueda. Vea Guía rápida de tipos MIME. - Recuperación de datos y carving. Las herramientas buscan en el espacio de disco en bruto firmas conocidas para reconstruir archivos borrados, aunque el sistema de archivos ya no los liste.
- Forense. Una discrepancia entre extensión y firma es una señal de alarma clásica; las herramientas Análisis Forense de Documentos y Análisis Forense de Imágenes miran la estructura real, no solo la etiqueta.
- Antivirus y pasarelas de correo usan firmas para decidir cómo descomprimir y analizar los adjuntos.
Los contenedores esconden lo que hay dentro
Un DOCX, XLSX, PPTX, JAR y APK son todos archivos ZIP con una estructura concreta, así que empiezan por 50 4B 03 04 igual que cualquier archivo comprimido. Del mismo modo, los antiguos DOC y XLS comparten una firma de contenedor OLE. La firma indica el contenedor; hay que mirar dentro para saber el tipo real.
Límites
- Las firmas son cortas, así que un archivo puede empezar con una válida y contener otra cosa. Un archivo políglota es válido a propósito como dos formatos a la vez.
- Algunos formatos no tienen firma (texto plano, CSV, audio en bruto) y hay que reconocerlos por su contenido.
- Los datos finales tras el fin de un archivo válido son habituales en archivos manipulados o concatenados, y una comprobación de firma al principio no los verá.
Relacionado: Bytes mágicos (magic bytes), Hexadecimal y Cómo funcionan las bases numéricas: binario, octal y hex.