Escáner de Documentos Maliciosos Online
DocScanner es un escáner de documentos maliciosos que funciona completamente en tu navegador. Analiza archivos PDF, DOCX, XLSX, PPTX, RTF, DOC, XLS y ODT en busca de malware, macros maliciosas, JavaScript embebido, shellcode y amenazas ocultas. A diferencia de otros escáneres de virus online, tu archivo nunca se sube a un servidor: todo el análisis ocurre localmente en tu dispositivo, garantizando privacidad total.
Cómo detectar un PDF malicioso
Los archivos PDF son uno de los vectores de ataque más comunes en ciberseguridad. Un PDF malicioso puede contener JavaScript embebido que se ejecuta automáticamente al abrir el documento, acciones de apertura (OpenAction) que lanzan código sin interacción del usuario, o streams comprimidos con FlateDecode que ocultan payloads exploits. DocScanner analiza cada uno de estos vectores: detecta objetos JavaScript, acciones automáticas, launches de aplicaciones externas, archivos embebidos, y descomprime streams FlateDecode para inspeccionar su contenido real.
Los PDFs maliciosos más peligrosos utilizan técnicas de evasión como compresión JBIG2 (asociada al exploit FORCEDENTRY usado por Pegasus), objetos ofuscados con nombres hexadecimales, y polyglot files que combinan formatos PDF y ZIP. Nuestro motor detecta todas estas técnicas mediante firmas YARA-style y análisis heurístico de entropía por stream.
Detección de Macros VBA en documentos Office
Las macros VBA (Visual Basic for Applications) son el vector de malware documental más utilizado en documentos Word, Excel y PowerPoint. DocScanner extrae y analiza proyectos VBA completos, detectando macros auto-ejecutables como AutoOpen, Document_Open, Workbook_Open y Presentation_Open. También identifica funciones peligrosas dentro del código de macros: Shell(), WScript.Shell, CreateObject, XMLHTTP, ADODB.Stream, y patrones de persistencia como RegWrite y ScheduleService.
Además de las macros VBA tradicionales, DocScanner detecta macros Excel 4.0 (XLM), una técnica de malware que no requiere VBA y que evita muchos sistemas de detección. Las hojas de macros Excel 4.0 pueden ejecutar comandos del sistema operativo directamente, siendo utilizadas en campañas de malware financiero y ransomware.
Análisis de documentos RTF maliciosos
Los archivos RTF (Rich Text Format) han sido utilizados en numerosas campañas de malware, especialmente con el exploit CVE-2017-11882 del Editor de Ecuaciones de Microsoft Office. DocScanner detecta objetos OLE embebidos en RTF, controles ActiveX, objetos HTML embebidos, y ataques DDE (Dynamic Data Exchange) que permiten ejecutar comandos del sistema sin necesidad de macros.
El motor también identifica destinos ocultos en RTF (\*\), que son ignorados por los renderizadores pero pueden contener datos maliciosos, y strings hexadecimales largos que suelen indicar objetos OLE embebidos ofuscados.
Detección de DDE (Dynamic Data Exchange)
El DDE es un protocolo de Windows que permite a documentos Office ejecutar comandos del sistema sin utilizar macros. Los atacantes utilizan DDE para lanzar cmd.exe, PowerShell u otras herramientas maliciosas simplemente abriendo un documento. DocScanner detecta ataques DDE en documentos RTF, archivos OOXML (DOCX, XLSX, PPTX) y relaciones externas dentro del contenedor ZIP del documento.
Análisis de entropía para detección de malware
La entropía de Shannon es una medida matemática que cuantifica la aleatoriedad de los datos. El malware utiliza cifrado y ofuscación que aumenta la entropía de los archivos. DocScanner calcula la entropía global del archivo y también realiza análisis de entropía por bloques de 256 bytes, generando un gráfico visual que permite identificar regiones con datos cifrados u ofuscados.
Los streams comprimidos con FlateDecode tienen naturalmente una entropía alta (7.5-7.9), por lo que nuestro motor distingue entre compresión normal y posible cifrado malicioso. Solo marca streams con entropía superior a 7.99 que no utilizan compresión estándar, reduciendo falsos positivos.
Detección de shellcode en documentos
El shellcode es código máquina inyectado en documentos para explotar vulnerabilidades de buffer overflow. DocScanner busca patrones de shellcode x86 conocidos: NOP sleds de 8+ bytes, acceso al PEB (Process Environment Block) mediante fs:[30h], egghunters, y prólogos de shellcode (cld+call). El motor distingue entre patrones de shellcode reales (fuera de streams comprimidos) y falsos positivos (bytes que coinciden dentro de datos comprimidos), clasificándolos correctamente.
Detección de ejecutables embebidos (PE, ELF, SWF)
Los documentos maliciosos pueden contener ejecutables embebidos: archivos PE (Windows), ELF (Linux) o SWF (Flash). DocScanner busca firmas MZ seguidas de PE\x00\x00 para detectar ejecutables Windows, magic bytes ELF (\x7fELF), y cabeceras SWF (FWS, CWS, ZWS). La detección se realiza tanto en el contenido raw del archivo como dentro de streams decomprimidos, encontrando ejecutables ocultos en streams FlateDecode.
El motor también detecta polyglot files: archivos que son válidos como PDF y como ZIP simultáneamente, una técnica de evasión utilizada para bypassear filtros de email y gateways de seguridad.
Hash MD5 y SHA-256 para identificación de malware
DocScanner calcula los hashes MD5 y SHA-256 del archivo analizado. Estos hashes permiten identificar el archivo de forma única y consultar bases de datos de malware conocidas. El motor incluye integración con VirusTotal y MalwareBazaar: si configuras una API key gratuita de VirusTotal, el escáner consulta automáticamente la reputación del hash y muestra cuántos motores antivirus detectan el archivo, las etiquetas de amenaza y la fecha de primera aparición.
La búsqueda por hash complementa el análisis heurístico: un archivo puede no tener patrones maliciosos detectables pero estar en bases de datos de malware conocido. La combinación de análisis heurístico + búsqueda por hash proporciona detección tanto de amenazas conocidas como desconocidas (zero-day).
Formatos soportados
PDF: Detección de JavaScript embebido, OpenAction, Launch, EmbeddedFile, JBIG2, JPXDecode, XFA, RichMedia, AcroForm, objetos ofuscados, streams FlateDecode decomprimidos, polyglot PDF/ZIP.
DOCX/DOC: Macros VBA, auto-ejecución (AutoOpen, Document_Open), DDE, objetos OLE embebidos, ActiveX, relaciones externas, Equation Editor (CVE-2017-11882).
XLSX/XLS: Macros VBA, Excel 4.0 (XLM), DDE en hojas, referencias externas en fórmulas, XMLHTTP, ADODB.Stream.
PPTX: Macros VBA, Presentation_Open, objetos OLE embebidos.
RTF: Objetos OLE, DDE, Equation.3 (CVE-2017-11882), objdata, objhtml, destinos ocultos, hex strings largos.
ODT: Análisis de contenedor ZIP, contenido XML, relaciones externas.
Privacidad y seguridad: análisis 100% local
DocScanner está diseñado con privacidad por defecto. Tu archivo se procesa enteramente en tu navegador utilizando JavaScript y APIs web como DecompressionStream para descomprimir streams, crypto.subtle para cálculos de hash, y FileReader para lectura de archivos. Ningún byte de tu documento se envía a ningún servidor. La única excepción es la búsqueda de reputación de hash, que envía únicamente el hash MD5/SHA-256 (no el archivo) a VirusTotal y MalwareBazaar, y solo si has configurado una API key.
Esto significa que puedes analizar documentos confidenciales, sensibles o clasificados sin riesgo de filtración. No hay logs, no hay tracking, no hay cookies de terceros. El código fuente es完全 abierto y auditable.
Casos de uso del escáner de documentos
Analistas SOC y blue team: Triaje rápido de documentos sospechosos sin enviarlos a sandboxes externos. Identificación de vectores de ataque en segundos.
Pentesters y red team: Verificación de payloads documentales antes de campañas de phishing simulado. Detección de falsos positivos en archivos benignos.
Usuarios finales: Verificación de adjuntos de email sospechosos antes de abrirlos. Detección de macros maliciosas en documentos descargados.
Investigadores de amenazas: Análisis preliminar de muestras documentales, extracción de indicadores (IOCs) como hashes, URLs embebidas y patrones de shellcode.
Equipos de compliance: Verificación de que documentos cumplen con políticas de seguridad (sin macros, sin JavaScript embebido, sin objetos externos).
Técnicas de detección avanzadas
DocScanner utiliza múltiples capas de detección que trabajan en conjunto:
- Análisis estructural: Validación de cabeceras de formato, conteo de objetos, detección de estructuras inválidas o anómalas.
- Firmas de patrones: Más de 80 patrones de malware conocidos incluyendo CVEs específicos (CVE-2017-11882, CVE-2021-30860, CVE-2009-0658, CVE-2008-2992).
- Descompresión de streams: Descompresión FlateDecode en tiempo real para analizar contenido oculto en streams comprimidos.
- Análisis de entropía: Detección de datos cifrados/ofuscados mediante entropía de Shannon global y por bloques.
- Detección de shellcode: Patrones x86/x64 conocidos, NOP sleds, PEB access, egghunters.
- Detección de polyglots: Archivos que combinan múltiples formatos (PDF+ZIP) para evasión.
- Análisis de metadatos: Extracción de autor, creador, productor, fechas de creación. Detección de metadata faltante o anómala.
- Extracción de URLs: Identificación de URLs externas en contenido y streams decomprimidos, filtrando URLs benignas conocidas.
- Búsqueda de reputación: Consulta de hashes MD5/SHA-256 en VirusTotal y MalwareBazaar (opcional, requiere API key).
Scoring y sistema de veredicto
DocScanner v3.0 asigna una puntuación de riesgo de 0 a 100 basada en los hallazgos. El sistema utiliza scoring ponderado: amenazas críticas (JBIG2, shellcode, PE embebido, Follina) = 35 puntos, amenazas altas (JavaScript, macros, DDE) = 25 puntos, advertencias medias = 12 puntos. Los hallazgos positivos (ok) reducen el score (-3 c/u), compensando ruido de hallazgos informativos.
El sistema incluye niveles de confianza: ALTA (score >= 80 o 3+ amenazas críticas), MEDIA (score >= 50 o 1+ amenaza crítica), BAJA (score < 50). El veredicto final es: LIMPIO (score < 30, sin warnings), SOSPECHOSO (score 30-59 o warnings presentes), o MALICIOSO (score ≥ 60 o amenazas críticas detectadas). El sistema está calibrado para minimizar falsos positivos en documentos benignos legítimos.
Adicionalmente, DocScanner v3.0 extrae y muestra Indicadores de Compromiso (IOCs) del documento: URLs embebidas, direcciones IP (clasificadas como públicas o privadas), comandos sospechosos (powershell -enc, cmd /c, mshta, rundll32, certutil, bitsadmin), claves de registro de Windows, rutas de archivo, emails y direcciones de wallets de criptomonedas (Bitcoin, Ethereum). Estos IOCs permiten a analistas identificar rápidamente infraestructura de C2, payloads de descarga y comportamientos de malware financiero.
Preguntas frecuentes
¿El escáner sube mi archivo a un servidor?
No. DocScanner procesa tu archivo completamente en tu navegador. Ningún byte se envía a internet. La única comunicación externa es la consulta de reputación de hash (MD5/SHA-256), que envía solo el hash, no el archivo, y solo si configuras una API key.
¿Qué formatos de archivo soporta?
PDF, DOCX, XLSX, PPTX, RTF, DOC, XLS y ODT. El tamaño máximo es 50 MB.
¿Puede detectar malware zero-day?
El análisis heurístico detecta patrones de comportamiento malicioso incluso en amenazas desconocidas: JavaScript embebido, macros auto-ejecutables, entropía anormal, shellcode, objetos OLE y polyglots. Sin embargo, ningún escáner puede garantizar detección del 100% de amenazas zero-day. La búsqueda por hash en VirusTotal complementa el análisis con detección de malware conocido.
¿Es gratis?
Sí, DocScanner es completamente gratis y sin límites de uso. No requiere registro. La API de VirusTotal tiene un límite gratuito de 4 requests por minuto y 500 por día.
¿Puedo usarlo offline?
El análisis local funciona offline una vez cargada la página. La búsqueda de reputación de hash requiere conexión a internet.
¿Cómo funciona la detección de macros?
Para archivos OLE2 (DOC, XLS), el motor parsea el formato binario OLE2 Compound File, extrae los streams individuales (VBA, WordDocument, Workbook) y descomprime el código fuente de las macros VBA usando un decompressor RLE nativo. El código fuente descomprimido se escanea en busca de funciones peligrosas: Shell(), WScript.Shell, CreateObject, XMLHTTP, ADODB.Stream, RegWrite, Environ(), Kill() y auto-macros (AutoOpen, Document_Open, Workbook_Open). Para OOXML (DOCX, XLSX, PPTX), extrae el contenedor ZIP y analiza vbaProject.bin. Para Excel 4.0, busca hojas _xlnm.Excel4MacroSheet en el contenido XML.
¿Qué es FORCEDENTRY y cómo lo detecta?
FORCEDENTRY es el exploit utilizado por Pegasus (NSO Group) que aprovecha streams JBIG2 en PDFs para ejecutar código arbitrario en iOS. DocScanner marca cualquier stream JBIG2Decode como amenaza crítica, ya que JBIG2 es extremadamente raro en PDFs legítimos y fue el vector del CVE-2021-30860.
¿Puede analizar documentos cifrados o con contraseña?
Los PDFs cifrados (/Encrypt) se detectan y marcan como sospechosos, ya que el cifrado puede ocultar contenido malicioso de los analizadores. El motor no descifra documentos protegidos con contraseña.
Comparación con otros escáneres de documentos
A diferencia de VirusTotal (que sube tu archivo a servidores externos), DocScanner analiza localmente. A diferencia de sandboxes como Hybrid Analysis o Cuckoo (que ejecutan el archivo en un entorno controlado), DocScanner no ejecuta el documento sino que analiza su estructura estática. Esto significa que es más rápido (resultados instantáneos vs. minutos), más privado (sin uploads) y más seguro para documentos confidenciales, aunque puede no detectar amenazas que solo se manifiestan durante la ejecución dinámica.
La combinación ideal es: usar DocScanner para triaje rápido y privado, y usar sandboxes para análisis profundo de archivos marcados como sospechosos o maliciosos.
Limitaciones del análisis estático
El análisis estático, como el que realiza DocScanner, examina la estructura del archivo sin ejecutarlo. Esto permite detectar patrones maliciosos conocidos, anomalías estructurales y contenido sospechoso. Sin embargo, no puede detectar malware que requiere ejecución para manifestarse, como exploits que dependen del contexto del sistema operativo del objetivo, o payloads que se descargan dinámicamente tras la apertura. Para estos casos, un sandbox de análisis dinámico complementa el análisis estático.
DocScanner tampoco analiza el contenido visual del documento (imágenes, texto renderizado) en busca de phishing o ingeniería social. Se enfoca exclusivamente en amenazas técnicas: código malicioso, exploits y estructuras sospechosas.
Tecnologías utilizadas
DocScanner está construido con JavaScript puro sin frameworks ni librerías externas. Utiliza APIs web nativas del navegador: DecompressionStream para descomprimir streams FlateDecode, crypto.subtle para SHA-256, FileReader para lectura de archivos, y DOM API para la interfaz. El backend es Cloudflare Pages, que sirve archivos estáticos y una Pages Function para el proxy de reputación de hash.
El motor incluye implementaciones nativas de MD5 y cálculo de entropía de Shannon, sin depender de ninguna librería externa. El parser ZIP es propio, implementado desde cero para extraer contenido de archivos OOXML.
Cloudflare Pages: hosting rápido y seguro
DocScanner está alojado en Cloudflare Pages, una plataforma de hosting de sitios estáticos con red CDN global. Esto garantiza tiempos de carga rápidos desde cualquier ubicación geográfica y certificados TLS automáticos. Las Pages Functions de Cloudflare permiten ejecutar el proxy de reputación de hash server-side sin necesidad de un servidor dedicado.
Amenazas documentales más comunes en 2025-2026
El malware documental sigue siendo uno de los vectores de infección más utilizados a nivel mundial. Según reportes de amenazas de Microsoft, Kaspersky y Mandiant, más del 60% de los ataques dirigidos comienzan con un documento malicioso enviado por email. Los tipos de malware documental más frecuentes incluyen:
- Droppers de ransomware: Documentos Office con macros que descargan y ejecutan payloads de ransomware como LockBit, BlackCat y Akira.
- Loaders de info-stealers: PDFs con JavaScript que descargan stealers como Lumma, Raccoon y RedLine, que roban credenciales y wallets de criptomonedas.
- Exploits zero-day: PDFs que aprovechan vulnerabilidades no parcheadas en lectores de PDF (Adobe Reader, Foxit) para ejecutar código arbitrario.
- Phishing dirigido (spear phishing): Documentos con DDE o macros que lanzan PowerShell para descargar segunda etapa de malware.
- Mineros de criptomonedas: Documentos con macros que ejecutan miners como XMRig, utilizando los recursos del equipo víctima.
Cómo protegerse de documentos maliciosos
Más allá de usar DocScanner, existen varias medidas de seguridad que los usuarios y organizaciones pueden adoptar para reducir el riesgo de infección por documentos maliciosos:
- Deshabilitar macros: Configurar Office para bloquear macros por defecto. En Office 365, las macros de internet están bloqueadas por defecto desde 2022.
- Mantener software actualizado: Instalar parches de seguridad de Adobe Reader, Microsoft Office y el sistema operativo. Muchos exploits documentales aprovechan vulnerabilidades conocidas y ya parcheadas.
- Usar visores en sandbox: Abrir documentos sospechosos en entornos aislados como Windows Sandbox o máquinas virtuales.
- Filtrar adjuntos de email: Configurar gateways de email para bloquear o poner en cuarentena documentos con macros, especialmente .docm, .xlsm y .rtf.
- Educación de usuarios: Capacitar a los empleados para no abrir documentos sospechosos, especialmente de remitentes desconocidos o con urgencia artificial.
- Análisis antes de abrir: Usar DocScanner para analizar documentos antes de abrirlos en lector de PDF u Office.
Análisis de streams FlateDecode en PDFs
FlateDecode es el método de compresión más común en PDFs, equivalente a zlib/deflate. Los atacantes comprimen contenido malicioso (JavaScript, shellcode, exploits) dentro de streams FlateDecode para ocultarlo de analizadores simples que solo examinan el texto raw del PDF. DocScanner utiliza la API DecompressionStream del navegador para descomprimir cada stream FlateDecode en tiempo real y analizar su contenido: busca JavaScript sospechoso, URLs externas, ejecutables embebidos y patrones de shellcode dentro del contenido decomprimido.
Esto permite detectar malware que otros escáneres simples no pueden encontrar, ya que muchos no descomprimen los streams y solo analizan el texto visible del PDF. La descompresión se realiza completamente en el navegador, sin enviar datos a ningún servidor.
Detección de JavaScript malicioso en PDFs
El JavaScript embebido en PDFs es uno de los vectores de exploit más antiguos y efectivos. DocScanner detecta múltiples APIs de JavaScript sospechosas específicas de Adobe Reader: app.launchURL para abrir URLs externas, Collab.getIcon para explotar CVE-2009-2980, spell.customDictionaryOpen para CVE-2013-2728, util.printf para CVE-2008-2992, y exportDataObject para extraer archivos al disco. También detecta técnicas de ofuscación comunes como eval(), unescape(), String.fromCharCode y escapes hexadecimales.
El motor busca estos patrones tanto en el texto raw del PDF como dentro de streams FlateDecode decomprimidos, detectando JavaScript que ha sido deliberadamente ocultado mediante compresión.
Integración con bases de datos de malware
DocScanner se integra con dos de las bases de datos de malware más importantes del mundo:
- VirusTotal: La base de datos de malware más grande del mundo, con 70+ motores antivirus. La API v3 permite consultar la reputación de un archivo por su hash SHA-256 o MD5. El tier gratuito permite 4 requests por minuto y 500 por día, suficiente para uso personal.
- MalwareBazaar (abuse.ch): Base de datos colaborativa de muestras de malware, con firmas, tags y fechas de primera aparición. Útil para identificar familias de malware específicas.
La integración funciona mediante una Cloudflare Pages Function que actúa como proxy server-side, evitando problemas de CORS y manteniendo las API keys seguras en variables de entorno del servidor, nunca expuestas en el cliente.
Tipos de CVE detectados
DocScanner incluye patrones para detectar archivos que explotan o se aprovechan de vulnerabilidades conocidas (CVEs):
- CVE-2021-30860 (FORCEDENTRY): Exploit de Pegasus que usa streams JBIG2 para ejecutar código en iOS. Detección: cualquier stream JBIG2Decode.
- CVE-2017-11882: Exploit del Editor de Ecuaciones de Office. Detección: Equation.3 en objetos OLE/RTF.
- CVE-2009-0658: Heap overflow en parser JBIG2 de Adobe Reader. Detección: JBIG2Decode.
- CVE-2008-2992: Format string vulnerability en util.printf. Detección: util.printf en JS de streams.
- CVE-2009-2980: Heap overflow en getIcon. Detección: getIcon en JS de streams.
- CVE-2013-2728: Heap overflow en spell checker. Detección: spell.customDictionaryOpen.
- CVE-2009-1493: Vulnerabilidad en Collab. Detección: objeto Collab en JS.
- CVE-2010-1241: Buffer overflow en CCITTFaxDecode. Detección: CCITTFaxDecode en streams.
- CVE-2016-4295: Heap overflow en perfiles ICC. Detección: ICCBased.
Análisis de objetos OLE embebidos
Los objetos OLE (Object Linking and Embedding) permiten incrustar contenido de una aplicación dentro de otra. En el contexto de malware, los objetos OLE se utilizan para embeber exploits, ejecutables y scripts maliciosos dentro de documentos Office y RTF. DocScanner detecta objetos OLE embebidos en archivos RTF mediante patrones como \objdata, \objclass y \objupdate, y en archivos OOXML mediante la presencia de carpetas embeddings/ y oleobjects/ dentro del contenedor ZIP.
El motor identifica específicamente objetos del Editor de Ecuaciones (Equation.3), que han sido utilizados en el exploit CVE-2017-11882 y CVE-2018-0802, responsables de miles de infecciones en campañas de APT y crimeware. También detecta objetos ActiveX (\objocx) y objetos HTML embebidos (\objhtml) que pueden contener scripts maliciosos.
Por qué el análisis local es más seguro
Los escáneres de virus online tradicionales como VirusTotal, Jotti o MetaDefender requieren que subas tu archivo a sus servidores. Esto significa que tu documento (que puede contener información confidencial, financiera o personal) se envía a través de internet a un servidor de terceros, donde se almacena y analiza. Aunque estos servicios tienen políticas de privacidad, el hecho de que tu archivo esté en sus servidores representa un riesgo de exposición.
DocScanner elimina este riesgo por diseño: el análisis ocurre completamente en tu navegador, sin que un solo byte de tu documento salga de tu dispositivo. Esto es especialmente importante para:
- Documentos confidenciales de empresas (contratos, reportes financieros, datos de clientes).
- Documentos con información personal sensible (identidades, direcciones, números de cuenta).
- Documentos clasificados o restringidos de gobierno o defensa.
- Documentos legales con privilegio abogado-cliente.
- Documentos médicos protegidos por HIPAA o equivalentes.
En todos estos casos, subir el archivo a un servicio externo puede violar políticas de seguridad corporativas, regulaciones de protección de datos (GDPR, CCPA) o acuerdos de confidencialidad. DocScanner resuelve este problema al mantener el análisis completamente local.