Cuando su aplicación Windows de desarrollo propio es tratada como virus — cómo abordar los falsos positivos de Microsoft Defender y su impacto en el rendimiento

· Actualizado el: · · Microsoft Defender, Antivirus, Falso positivo, Firma de código, SmartScreen, Distribución de aplicaciones, Seguridad, C#, .NET, Desarrollo Windows, Consultoría técnica

«En el equipo de nuestro cliente, la aplicación fue tratada como virus y eliminada» — si distribuye aplicaciones Windows de desarrollo propio o por encargo, tarde o temprano recibirá este aviso. Una aplicación de negocio que hasta ayer funcionaba con normalidad queda repentinamente en cuarentena tras una actualización de definiciones de Defender. En el equipo de desarrollo no ocurre nada, pero en el entorno del cliente sí se detecta. Y esto sucede sin que usted recuerde haber escrito malware alguno.

No se trata de un incidente extraño. El software antivirus moderno no solo comprueba si un archivo coincide con malware conocido: también estima el «grado de sospecha» mediante aprendizaje automático, análisis de comportamiento y reputación en la nube. Por este diseño, es inevitable que un binario legítimo sin historial termine siendo sospechoso. Y en la respuesta a los falsos positivos hay una línea clara entre lo que se debe hacer (reportar el falso positivo a Microsoft, aplicar exclusiones limitadas) y lo que nunca se debe hacer (desactivar el antivirus, aplicar exclusiones amplias).

En este artículo repasamos, desde la perspectiva del desarrollador, el mecanismo que provoca los falsos positivos, la prevención posible antes de distribuir la aplicación, la ruta oficial para responder cuando se produce una detección, la configuración de exclusiones como medida de emergencia en el entorno del cliente y sus riesgos, y cómo abordar otra consulta habitual: que «Defender (MsMpEng.exe) va lento».

Como es un artículo extenso, primero indicamos por dónde empezar según su situación. Si está en medio de una atención al cliente y necesita actuar ya, empiece por el capítulo 4 (la ruta oficial de respuesta) y el capítulo 5 (cómo configurar exclusiones y sus riesgos). Si es desarrollador y quiere prevenir falsos positivos en una aplicación que va a distribuir, empiece por el capítulo 3. Si está atendiendo una consulta sobre «Defender va lento», empiece por el capítulo 6. La tabla de referencia rápida por síntoma está en el capítulo 7.

1. Conclusión inicial

  • Incluso una aplicación legítima puede sufrir un falso positivo. Desde 2015, Defender ha pasado de un motor centrado en firmas estáticas a un modelo predictivo que usa aprendizaje automático y protección en la nube, de modo que un archivo desconocido puede recibir un veredicto por «sospecha» aunque no coincida con ningún elemento malicioso conocido.12
  • La vía oficial para una solución permanente es enviar el archivo a Microsoft (reporte de falso positivo). Se envía como desarrollador desde el portal de envío de muestras de Microsoft Security Intelligence y se hace seguimiento del veredicto. Si no está de acuerdo con el resultado, puede solicitar una nueva revisión mediante el formulario de contacto para desarrolladores.34
  • Los archivos en cuarentena se pueden restaurar. Desde el «Historial de protección» de Seguridad de Windows, o desde la línea de comandos con MpCmdRun.exe -Restore.5
  • La configuración de exclusiones es una «medida temporal hasta obtener el resultado del reporte». Una exclusión es un hueco en la protección (protection gap), y Microsoft indica explícitamente que debe usarse «con moderación, solo para problemas concretos y revisándola periódicamente». Si se aplica, debe limitarse al mínimo indispensable con rutas completas, dejando constancia por escrito.6
  • El pilar de la prevención es una firma de código consistente. Microsoft no ofrece ningún programa de registro previo para evitar falsos positivos; el método que la documentación oficial recomienda es firmar de forma constante con un certificado de una entidad de certificación raíz de confianza, lo cual acelera la identificación del origen y la inclusión en la lista de elementos conocidos.4
  • Un análisis propio antes del lanzamiento y un envío anticipado reducen el problema del «historial cero». Puede inspeccionar los archivos de distribución con un análisis personalizado de MpCmdRun.exe, y la propia Microsoft indica que enviar como muestra un archivo desconocido es una forma de empezar a establecer su reputación.78
  • Ante «Defender va lento», lo primero es medir. Use Performance analyzer (New-MpPerformanceRecording / Get-MpPerformanceReport) para identificar qué archivos o procesos concentran la carga de análisis, y solo entonces plantee medidas. Aquí también la exclusión es el último recurso.910

2. Por qué una aplicación legítima puede ser tratada como virus

Si se sigue pensando que «un antivirus es algo que compara con patrones (firmas) de virus conocidos», los falsos positivos parecen incomprensibles. Pero el Defender actual funciona de otra manera. Microsoft afirma explícitamente que en 2015 pasó de un motor basado en firmas estáticas a un modelo que emplea tecnologías predictivas como el aprendizaje automático, la ciencia aplicada y la inteligencia artificial.1

La detección se realiza en varias capas. En el propio equipo funcionan modelos de aprendizaje automático ligeros, análisis de comportamiento y heurísticas; cuando el equipo por sí solo no puede determinar si un archivo es bueno o malo, se envían sus metadatos al servicio de protección en la nube, que en la mayoría de los casos devuelve un veredicto en milisegundos. Si aun así no se puede determinar, se solicita el envío de una muestra del archivo, que en la nube se somete a análisis, detonación (ejecución en un entorno aislado) y análisis de macrodatos. En entornos con «block at first sight» (bloqueo a la primera detección) activado, la apertura del archivo puede incluso quedar temporalmente en espera hasta que llega el veredicto de la nube.211

La implicación de este mecanismo es clara: el criterio de evaluación no es solo «coincide con algo malicioso», sino también «tiene un historial de ser inofensivo». Los criterios de clasificación de Microsoft incluyen explícitamente una categoría «Unknown» (software no reconocido), y la advertencia sobre programas desconocidos o con pocas descargas se define como «un sistema de alerta temprana para malware aún no detectado». La postura oficial es que no todo programa poco común es malicioso, pero el riesgo de la categoría desconocida es alto para el usuario general.8

Es decir, para el mecanismo de seguridad de Windows, una aplicación propia recién publicada es «un binario con historial cero que nadie en el mundo ha ejecutado todavía». Si a esto se suman las siguientes características, la sospecha se refuerza.

  • Una estructura que oculta el contenido real del código. En la clasificación de malware de Microsoft existe el tipo «Obfuscator» (ofuscación), que oculta el código y su propósito para dificultar la detección, y el software que intenta evadir activamente la detección de productos de seguridad también se clasifica como aplicación potencialmente no deseada (PUA). Las herramientas de ofuscación, los formatos autoextraíbles y el empaquetado que integra el runtime en un único ejecutable son difíciles de distinguir, en apariencia, de las estructuras que suele usar el malware, por lo que se trata de un terreno fácil de generar recelo incluso en aplicaciones legítimas.8
  • La ausencia de firma, sin ninguna pista para rastrear el origen. Como se explica en el próximo capítulo, una firma consistente es la principal pista que permite al equipo de investigación identificar el origen.4
  • El instalador incluye software adicional. Todo lo que ofrece instalar software de un proveedor distinto o software innecesario para el funcionamiento se clasifica como «Bundling software» dentro de las PUA.8

Cabe señalar que el aviso azul «Windows protegió su PC» que aparece justo después de descargar un archivo procede de un mecanismo distinto al de la detección del antivirus Defender: Microsoft Defender SmartScreen. Las preguntas frecuentes para desarrolladores de Microsoft también aclaran que SmartScreen no está relacionado con el antivirus Defender.4 El tema de SmartScreen y la reputación se explica en detalle en «Por qué aparece «Windows protegió su PC» en Windows», así que antes que nada distinga qué tipo de aviso está viendo.

3. Prevención posible antes de distribuir

3.1. Firma de código consistente — no existe un programa de registro previo

La idea de «poder registrarse de antemano en una lista blanca de Microsoft para evitar falsos positivos» es natural, pero la respuesta es no. Microsoft no acepta solicitudes de desarrolladores para inscribirse en una lista de elementos conocidos ni para un programa de prevención de falsos positivos. En su lugar, las preguntas frecuentes oficiales recomiendan seguir firmando de manera consistente el conjunto de archivos del programa con un certificado emitido por una entidad de certificación raíz de confianza. Con una firma consistente, el equipo de investigación puede identificar rápidamente el origen del programa y aplicar el conocimiento acumulado, lo que a veces acelera su inclusión en la lista de elementos conocidos; y aunque con menor frecuencia, incluso el propio certificado puede llegar a figurar en la lista de emisores de confianza.4

Dicho de otro modo, el efecto de la firma consiste en agrupar «el historial por archivo» en «el historial por emisor». Un ejecutable cuyo hash cambia en cada compilación es, visto archivo por archivo, «un archivo nunca antes visto» cada vez, pero si se firma con el mismo certificado, el origen permanece continuo. Para los aspectos prácticos de la firma (tipos de certificado, Azure Artifact Signing, sellado de tiempo), consulte el artículo de SmartScreen mencionado arriba y «Lista mínima de seguridad para el desarrollo de aplicaciones Windows».

3.2. Analizar usted mismo antes del lanzamiento

Es mucho más barato analizar los artefactos de su propia compilación como parte del criterio de aprobación del lanzamiento que descubrir la detección en el entorno del cliente después de distribuir. Defender incluye la herramienta de línea de comandos MpCmdRun.exe, que puede automatizarse desde scripts o tareas programadas. Como no está en el PATH por defecto, hay que desplazarse a %ProgramData%\Microsoft\Windows Defender\Platform\<versión> (o, si no existe, a %ProgramFiles%\Windows Defender) antes de ejecutarla.7

rem Ejecutar en un símbolo del sistema con privilegios de administrador
cd /d "C:\ProgramData\Microsoft\Windows Defender\Platform\<carpeta de la versión más reciente>"

rem Analizar la carpeta de lanzamiento con un análisis personalizado (-ScanType 3)
rem -DisableRemediation: aunque se detecte algo, no aplica acciones como la cuarentena; solo muestra el resultado en la salida del comando
MpCmdRun.exe -Scan -ScanType 3 -File "C:\Release\MyApp" -DisableRemediation

Los valores de retorno definidos son 0 y 2, pero al usarlos como criterio de aprobación es fácil pasar por alto que el 0 incluye tanto «sin detección» como «se detectó algo, pero se remedió con éxito». Si se usa -Scan sin más, puede darse la peor combinación posible: que Defender detecte el artefacto de lanzamiento, lo ponga en cuarentena, y aun así el valor de retorno sea 0, de modo que la canalización lo deje pasar como «limpio». En el análisis personalizado, añada -DisableRemediation para que no se apliquen acciones al detectar algo (el resultado de la detección se muestra en la salida del comando), y además del criterio «si devuelve 2, detener el envío e investigar», incluya en la puerta de control la comprobación de si hubo detección en la salida del comando y de que no falte ningún archivo del artefacto.7

3.3. Enviar por adelantado los archivos desconocidos

Microsoft afirma explícitamente que enviar como muestra software desconocido o sospechoso «ayuda a que el sistema lo analice y a empezar a establecer su reputación».8 Es decir, el portal de envío de muestras no es solo el recurso al que acudir después de una detección, sino también una medida preventiva para crear el primer historial de un binario nuevo con historial cero. En lanzamientos importantes (versiones mayores, cambios en el método de empaquetado, introducción de herramientas de ofuscación y otros momentos en los que la apariencia externa cambia mucho), merece la pena enviarlos antes de comenzar la distribución.

4. La ruta oficial de respuesta cuando se produce un falso positivo

4.1. Primero, confirmar los hechos — Historial de protección y registro de eventos

Antes que nada, confirme si un reporte de «desapareció» o «ya no arranca» se debe realmente a una detección de Defender. En la interfaz gráfica, el historial de detecciones y cuarentenas queda registrado en Seguridad de Windows, en «Protección contra virus y amenazas» → «Historial de protección», donde también se pueden filtrar los elementos en cuarentena.5

Si necesita conservar un registro o consultarlo de forma remota, use el registro de eventos. Los eventos de Defender se registran en «Registros de aplicaciones y servicios → Microsoft → Windows → Windows Defender → Operational», y también se pueden obtener con Get-WinEvent de PowerShell.12 La detección en sí se registra como el evento con ID 1116 (se detectó malware o software no deseado), y la acción correspondiente, como la cuarentena, como ID 1117.13

# Consultar los eventos de detección (1116) y acción (1117) de Defender, del más reciente al más antiguo
# El filtrado se hace en el propio registro de eventos (-FilterHashtable), más rápido que un Where-Object tras la tubería
Get-WinEvent -FilterHashtable @{
    LogName = 'Microsoft-Windows-Windows Defender/Operational'
    ID      = 1116, 1117
} -MaxEvents 10 |
    Select-Object TimeCreated, Id, Message

Anote aquí el nombre de la amenaza (por ejemplo, un nombre de detección como Trojan:Win32/Wacatac.B!ml) y la ruta y versión del archivo detectado. Tanto para el envío a Microsoft como para la explicación al cliente, estos dos datos son el punto de partida. La estructura del nombre de detección (tipo/plataforma/nombre de familia) sigue las reglas de nomenclatura de malware de CARO (Computer Antivirus Research Organization) —una organización de investigadores de antivirus cuyas convenciones de nomenclatura se usan ampliamente en el sector—, y a veces un sufijo como !ml al final permite deducir el origen de la detección.14

4.2. Reportar el falso positivo a Microsoft

Esta es la solución permanente. Envíe el archivo detectado erróneamente desde el portal de envío de muestras de Microsoft Security Intelligence (microsoft.com/wdsi/filesubmission). El envío requiere iniciar sesión, y una vez iniciada la sesión puede hacer seguimiento del estado del veredicto. No se aceptan muestras por correo electrónico.3

Como la primera vez suele generar dudas, a continuación se resume el esqueleto del procedimiento, dentro de lo que documenta oficialmente Microsoft.3415

  1. Inicie sesión. El portal de envío de muestras no acepta envíos sin iniciar sesión. Desde el 20 de mayo de 2024, el inicio de sesión de este portal migró a Microsoft Entra ID. Si el inquilino de su organización está configurado para requerir consentimiento del administrador, deberá solicitar al administrador de TI el permiso de acceso a la aplicación correspondiente.
  2. Suba el archivo detectado erróneamente. Junto con él, describa con detalle el producto que estaba utilizando (por ejemplo, el antivirus Microsoft Defender) y las circunstancias en las que se topó con ese archivo. Esta información se convierte directamente en el material de análisis, así que adjunte el nombre de detección, la ruta y la versión del archivo que confirmó en el apartado 4.1.
  3. Indique como categoría del remitente «software developer» (desarrollador de software). Al enviarlo con esta categoría, el resultado del envío incluirá un formulario de contacto para desarrolladores por si no está de acuerdo con el veredicto.
  4. Si dispone de un Software Assurance ID (SAID), introdúzcalo. El portal acepta el SAID, y los clientes con un SAID válido pueden enviar el archivo con mayor prioridad. Si la empresa cliente dispone de uno, a veces es más rápido que sea el propio cliente quien realice el envío.
  5. Después de enviarlo, haga seguimiento del estado en la página de historial de envíos (microsoft.com/wdsi/submissionhistory). Los estados posibles son tres: Submitted (recibido), In progress (un analista ha comenzado la revisión) y Closed (se emitió el veredicto final). Si quiere comprobar si el veredicto se ha actualizado, seleccione «rescan» (volver a analizar) en la página de detalle del envío.
  6. Espere el veredicto final y, si no está de acuerdo, solicite una nueva investigación. Espere a que el veredicto quede confirmado y, si no está satisfecho con el resultado, contacte con Microsoft a través del formulario de contacto para desarrolladores incluido en el resultado del envío.

Los nombres de los campos y su disposición en pantalla pueden cambiar con el tiempo, así que si tiene dudas consulte la guía de la documentación oficial. Además, el archivo enviado se analiza primero de forma instantánea con un sistema automático, y si ya es un archivo procesado anteriormente, el veredicto llega antes. Los envíos pendientes se analizan dando prioridad a los archivos con mayor alcance de impacto y a los envíos de clientes empresariales con un Software Assurance ID.15

Si Microsoft actualiza sus definiciones tras confirmar el falso positivo, ese archivo dejará de detectarse en adelante. Dicho de otro modo, mientras no lo reporte, aunque lo resuelva con una exclusión, seguirá detectándose en otros entornos de cliente. Incluso en el caso de una detección por comportamiento que no deja un archivo como tal, existe una vía para solicitar el análisis enviando el archivo de diagnóstico (MpSupportFiles.cab) que se genera con MpCmdRun.exe -GetFiles.157

Si el cliente es una organización que tiene implementado Microsoft Defender for Endpoint (EDR), existe también la ruta del administrador: que el administrador de seguridad del cliente realice el envío desde la página de envíos (Submissions) del portal de Microsoft Defender y, al mismo tiempo, suprima el falso positivo dentro de la organización mediante un indicador de «permitir».15 En este caso, no lo gestione únicamente desde su propia empresa; coordínese con el departamento de TI del cliente.

4.3. Restaurar un archivo en cuarentena

Si tiene la certeza de que se trata de un falso positivo, puede restaurar el archivo desde la cuarentena. En la interfaz gráfica, seleccione el elemento desde el historial de protección y elija «Restaurar». En la línea de comandos, use MpCmdRun.exe.5

rem Lista de los elementos en cuarentena
MpCmdRun.exe -Restore -ListAll

rem Restaurar a su ubicación original indicando la ruta del archivo en el momento de la cuarentena
MpCmdRun.exe -Restore -FilePath "C:\Program Files\Contoso\ContosoApp\ContosoApp.exe"

También puede indicar otra carpeta de destino con la opción -Path (en ese caso, el elemento también permanece en la cuarentena).7 Ahora bien, si restaura el archivo antes de que se actualicen las definiciones, es lógico que vuelva a detectarse, así que en la práctica lo más seguro es seguir el orden «reportar el falso positivo → exclusión temporal si es necesario → restauración».

4.4. Cuando la detección proviene de otro antivirus

Si la detección proviene de un EDR o de un producto antivirus de otro fabricante, y no de Defender, reportarlo a Microsoft no resuelve nada. Es necesario enviarlo por separado al canal de reporte de falsos positivos (false positive submission) de cada proveedor cuyo producto haya realizado la detección. Muchos proveedores disponen de un formulario específico, así que busque el canal con «nombre del proveedor + false positive submission» y envíe el reporte adjuntando el nombre de detección, el archivo y la información de firma, igual que en el caso de Defender. Si varios productos detectan el archivo simultáneamente, esto también es un indicio para sospechar de factores del propio proceso de compilación (ofuscación, empaquetadores, componentes incluidos).

5. Respuesta de emergencia en el entorno del cliente — la configuración de exclusiones y sus riesgos

5.1. El lugar de la exclusión — no es una solución permanente

En una situación donde la actividad del cliente queda paralizada hasta que se emite el veredicto del reporte de falso positivo, la exclusión (exclusion) de Defender puede servir como medida de emergencia. Pero no hay que confundir su verdadero lugar. Como la propia Microsoft advierte repetidamente, técnicamente una exclusión es un hueco en la protección (protection gap), y los principios oficiales son: (1) usarla con moderación, (2) usarla solo para problemas concretos, como de rendimiento o de compatibilidad de aplicaciones, y (3) revisarla periódicamente dejando constancia de por qué fue necesaria.6 Cabe aclarar que la exclusión de la que se habla aquí es la exclusión aplicada al análisis del antivirus Defender (programado, bajo demanda o de protección en tiempo real). En entornos con Microsoft Defender for Endpoint implementado, aunque un archivo esté excluido, las alertas del EDR u otras detecciones pueden seguir produciéndose.16 Que «aparezca una alerta a pesar de haber configurado la exclusión» responde a esta característica y no es un fallo.

Y aunque se aplique una exclusión, proponer desactivar la protección en tiempo real en sí, o Defender por completo, queda completamente fuera de lugar. La defensa de ese equipo se reduciría en bloque frente a cualquier amenaza, no solo frente a la aplicación en cuestión. El antecedente de haber pedido al cliente que desactive funciones de seguridad con el pretexto de responder a un falso positivo será, sin falta, un problema en una auditoría de seguridad posterior.

5.2. Cómo configurarla correctamente — ruta completa y alcance mínimo

La exclusión también se puede añadir desde la interfaz gráfica de Seguridad de Windows (Configuración de protección contra virus y amenazas → Exclusiones), pero si va a documentarlo en un procedimiento, PowerShell es más fiable. Para gestionar la lista de exclusiones se usan Add-MpPreference (añadir), Remove-MpPreference (eliminar) y Set-MpPreference (reemplazar toda la lista). Set-MpPreference sobrescribe la lista de exclusiones existente, así que, para no borrar por accidente las exclusiones ya presentes en el entorno del cliente, use siempre Add-MpPreference al añadir una nueva.16

# Ejecutar en PowerShell con privilegios de administrador

# Exclusión a nivel de archivo (alcance mínimo: el ejecutable con ruta completa, no una carpeta)
Add-MpPreference -ExclusionPath "C:\Program Files\Contoso\ContosoApp\ContosoApp.exe"

# Comprobar la configuración de exclusiones actual
Get-MpPreference | Select-Object ExclusionPath, ExclusionProcess, ExclusionExtension

# Retirarla cuando el falso positivo quede resuelto
Remove-MpPreference -ExclusionPath "C:\Program Files\Contoso\ContosoApp\ContosoApp.exe"

-ExclusionPath se puede indicar tanto a nivel de archivo como de carpeta, pero si se indica una carpeta, se excluyen también todas sus subcarpetas, así que primero conviene plantearse el nivel de archivo.16 La otra opción, -ExclusionProcess, se presta a confusión por su nombre: no excluye al propio proceso indicado, sino que excluye del análisis los archivos que ese proceso abre. Si lo que se quiere excluir es el propio ejecutable del proceso, la documentación oficial indica que debe usarse -ExclusionPath.17 En los casos en que la detección o los problemas de rendimiento se deben a que la aplicación abre una gran cantidad de archivos de datos, use -ExclusionProcess; en los casos en que el propio ejecutable es el que recibe el falso positivo, use -ExclusionPath.

Puede verificar si la exclusión se aplicó según lo previsto con MpCmdRun.exe -CheckExclusion -Path <ruta>.7 Además, en entornos gestionados se da por hecho que la exclusión se administra de forma centralizada mediante Intune o Directiva de grupo (Configuración del equipo → Plantillas administrativas → Componentes de Windows → Antivirus de Microsoft Defender → Exclusiones), en lugar de configurarla manualmente en cada endpoint. Microsoft recomienda usar Intune para definir y editar exclusiones.1615

5.3. Exclusiones que nunca deben aplicarse

Una carpeta excluida es, para un atacante, «un lugar que Defender no vigila», y también puede aprovecharla. Microsoft enumera de forma concreta los elementos que «no deben excluirse, aunque se confíe en que no son maliciosos».18

  • Exclusión de carpetas genéricas, como C:\, C:\Temp, C:\Users\ o %Windir%\Temp. Excluir por completo una carpeta temporal por causa de su aplicación equivale a ofrecer una zona segura a cualquier malware.
  • Exclusión por extensión, como .exe, .dll, .tmp o .zip.
  • Exclusión de procesos genéricos, como cmd.exe, powershell.exe, msbuild.exe o java.exe.
  • Exclusión solo por el nombre del archivo, sin ruta (por ejemplo, ContosoApp.exe). Cualquier malware con el mismo nombre quedaría excluido sin importar dónde se coloque, así que siempre debe indicarse la ruta completa.

En resumen, una exclusión debe hacerse «con ruta completa, con alcance mínimo, dejando constancia por escrito y con un plazo definido». Comparta con el administrador de TI del cliente el hecho de haber aplicado la exclusión y el motivo, y retírela en cuanto se confirme que, tras el veredicto del reporte de falso positivo, el archivo ya no se detecta.

6. Cómo abordar el impacto en el rendimiento — cuando «MsMpEng.exe va lento»

Otra consulta habitual, junto con la de los falsos positivos, es el rendimiento. Los síntomas son que MsMpEng.exe (Antimalware Service Executable) consume CPU en el Administrador de tareas, o que la salida de archivos o la compilación de la aplicación se vuelven lentas. MsMpEng.exe es el propio servicio del antivirus Defender, y el comportamiento predeterminado de la protección en tiempo real es «analizar de forma síncrona en el momento en que se abre el archivo (open now, scan now)».19 Esto significa que cuanto más una carga de trabajo abra y cierre gran cantidad de archivos pequeños —compilaciones, escrituras frecuentes de registros, uso intensivo de archivos temporales—, más aumentará el número de análisis, y más susceptible será su estructura a este impacto.

6.1. Primero, medir — Performance analyzer

Antes de saltar directamente de «va lento» a «excluir», mida qué concentra la carga de análisis. Defender dispone de un Performance analyzer dedicado: con New-MpPerformanceRecording de PowerShell se captura un registro de rendimiento del análisis (ETL), y con Get-MpPerformanceReport se puede agregar la información.9

# Ejecutar en PowerShell con privilegios de administrador

# Iniciar el registro, reproducir la operación pesada (compilación, procesamiento por lotes, etc.) y detener con Entrar
New-MpPerformanceRecording -RecordTo .\Defender-scans.etl

# Mostrar los archivos con más tiempo de análisis y el desglose de análisis de cada uno
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 3 -TopScansPerFile 10

Además de -TopFiles / -TopScansPerFile, también se pueden obtener agregaciones por proceso y por extensión, de modo que se puede identificar concretamente qué acceso a archivos de su propia aplicación está provocando el análisis.

El contenido de la salida varía mucho según el entorno, así que aquí se resume qué campos aparecen y dónde fijarse. Según la documentación oficial, el informe muestra la siguiente información.9

Información mostrada Significado Cómo interpretarla al buscar candidatos a exclusión
Número de análisis Cuántas veces se analizó ese objeto Si el número destaca, el problema no es que «un análisis sea pesado», sino que «hay demasiados análisis»; se puede reducir cambiando el patrón de escritura de la aplicación
Duración (total/mínima/media/máxima/mediana) Agregación del tiempo empleado en el análisis Si el total es grande pero la media y la mediana son pequeñas, la causa está en el número de análisis
Ruta Archivo o directorio analizado Comprobar si el destino de salida o el almacén de archivos temporales de su propia aplicación aparece entre los primeros puestos
Proceso Proceso que provocó el análisis Distinguir si es la propia aplicación, una herramienta de compilación u otro software residente
Motivo del análisis Qué desencadenó ese análisis Distinguir si el desencadenante fue la protección en tiempo real o un análisis bajo demanda
SkipReason Motivo por el que se omitió. Not Skipped / Optimization (por motivos de rendimiento) / User skipped (por una exclusión configurada por el usuario) Si aparece User skipped con frecuencia, ese entorno ya tiene exclusiones configuradas

Todos los informes se ordenan de mayor a menor duración. El orden de lectura recomendado es: primero observar los primeros puestos con -TopFiles o -TopProcesses, y en cuanto se identifica un candidato, abrir los análisis individuales de ese archivo con -TopScansPerFile. Cuando hay demasiados elementos y resulta difícil de leer, se puede reducir el ruido indicando un límite inferior, como -MinDuration 100ms.10 Si quiere procesar el registro con otra herramienta, puede exportarlo a CSV de la siguiente manera.9

# Exportar a CSV los datos en bruto por análisis individual, hasta los primeros 1000 registros
(Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 1000).TopScans |
    Export-Csv -Path .\Defender-scans.csv -Encoding UTF8 -NoTypeInformation

Tras revisar todo esto, la decisión clave es «si lo que aparece en los primeros puestos es un producto generado por su propia aplicación». Si los archivos temporales o los registros de su aplicación ocupan los primeros puestos, como se indica en el apartado 6.2 a continuación, plantéese primero si se puede reducir desde el lado de la aplicación. Si lo que domina son los resultados de compilación o la caché de paquetes de un equipo de desarrollo, la solución del apartado 6.3, Dev Drive, resulta eficaz. Solo debe plantearse la exclusión cuando ninguna de las dos opciones anteriores resuelve el problema. Como advertencia, la propia documentación oficial deja claro que esta herramienta sirve para obtener información sobre los archivos problemáticos y no está pensada para proponer exclusiones.10

6.2. Qué se puede hacer desde la aplicación antes de excluir

Si la medición revela que «la gran cantidad de archivos temporales que escribe su propia aplicación es el centro del análisis», antes de excluir hay margen para revisar el patrón de escritura de la aplicación. Dado que la protección en tiempo real se activa cada vez que se abre un archivo19, los siguientes cambios de diseño reducen directamente el número de análisis.

  • Consolidar el proceso que abre y cierra miles de archivos intermedios pequeños en anexados a un número reducido de archivos o en procesamiento en memoria
  • Reducir el patrón de «escribir un archivo temporal, renombrarlo y eliminarlo» de forma repetida
  • Dejar de abrir y cerrar el archivo de registro línea por línea, y escribir manteniendo el flujo (stream) abierto

Para medir en la práctica qué proceso toca qué archivos y con qué frecuencia, Process Monitor sirve directamente. Consulte el procedimiento en «Guía práctica de Process Monitor (ProcMon)».

6.3. En equipos de desarrollo: el modo de rendimiento de Dev Drive

En el contexto de una compilación lenta en un equipo de desarrollo, la primera opción es Dev Drive + modo de rendimiento de Windows 11. En un Dev Drive (un volumen de desarrollo basado en ReFS), la protección en tiempo real de Defender funciona en un «modo de rendimiento» asíncrono. En lugar de analizar de forma síncrona al abrir el archivo, usa el método «open now, scan later» (analizar más tarde, con retraso tras completarse la apertura), y la documentación oficial lo describe como una forma de mejorar el rendimiento manteniendo un nivel de protección considerablemente más alto que técnicas como la exclusión de carpetas, que detienen el análisis por completo.19 La práctica habitual es trasladar el árbol de código fuente, la caché de paquetes y la salida de compilación a un Dev Drive.20

Conviene también tener claro cómo crearlo. Los requisitos previos y el procedimiento, según la documentación oficial, son los siguientes.20

  • Requisitos previos: Windows 11 (compilación 10.0.22621.2338 o posterior), al menos 50 GB de espacio libre (el tamaño mínimo de un Dev Drive es de 50 GB), memoria de 8 GB o más (se recomiendan 16 GB), y privilegios de administrador local. En entornos empresariales puede ser necesaria una configuración de Directiva de grupo por parte del administrador de seguridad.
  • Crearlo desde la interfaz gráfica: en Configuración > Sistema > Almacenamiento > Configuración avanzada de almacenamiento > Discos y volúmenes, seleccione «Crear Dev Drive». Puede elegir entre tres opciones: crear un nuevo VHD, reducir un volumen existente o usar espacio no asignado.
  • Crearlo desde la línea de comandos: con privilegios de administrador, Format D: /DevDrv /Q (símbolo del sistema/PowerShell) o Format-Volume -DriveLetter D -DevDrive (PowerShell). Esta opción es más cómoda cuando se despliega en varios equipos.
  • Advertencia: no es posible convertir un volumen existente en Dev Drive. La designación de Dev Drive solo puede hacerse en el momento del formateo, y si se vuelve a formatear un volumen existente, su contenido se perderá. Además, la unidad C: no puede convertirse en Dev Drive. El planteamiento oficial es mantener las herramientas de desarrollo y los propios SDK en C:, y colocar en el Dev Drive el código fuente, la caché de paquetes y la salida de compilación.
  • Marcarlo como de confianza: el modo de rendimiento solo se aplica a un Dev Drive «de confianza» (trusted). Normalmente pasa a ser de confianza automáticamente al crearlo, pero puede comprobarlo o volver a configurarlo con fsutil devdrv query D: y fsutil devdrv trust D: (por ejemplo, si traslada el VHD a otro equipo, deberá volver a establecer la confianza).

No obstante, el modo de rendimiento solo funciona en un Dev Drive y presupone que la protección en tiempo real está activada. Además, el síntoma de «alto uso de CPU/memoria de MsMpEng.exe» no entra dentro del ámbito del modo de rendimiento; en ese caso, la recomendación oficial es acotar los procesos y rutas más activos con el Performance analyzer mencionado antes.19

Además, si un análisis bajo demanda (como un análisis completo periódico) resulta pesado durante el horario laboral, conviene recordar que MpCmdRun.exe -Scan dispone del modificador -CpuThrottling. Al añadirlo, se aplica un límite (50 % de forma predeterminada) al uso de CPU del análisis.7 Sin embargo, no es un formato en el que se pase un valor numérico al modificador para indicar un porcentaje arbitrario. El propio valor límite se configura mediante un ajuste de directiva (ScanAvgCPULoadFactor), y este valor no es un límite estricto, sino una referencia para el motor de análisis del tipo «procurar no superar este porcentaje en promedio».21

7. Tabla de decisión — acciones según el síntoma

Situación Qué hacer primero Solución permanente
Se detectó justo después de compilar, en el equipo de desarrollo o en CI Confirmar el nombre de detección y la ruta en el historial de protección y el registro de eventos (1116/1117)13. Revisar los cambios en la compilación (ofuscación, empaquetador, componentes incluidos) Enviarlo como desarrollador al portal de envío de muestras3. Revisar el esquema de firma. Integrar el análisis previo al lanzamiento en la CI
Se detectó/puso en cuarentena en el entorno del cliente Confirmar el nombre de detección, el archivo y si es Defender u otro producto. Enviar el reporte de falso positivo y, si la interrupción del negocio es grave, aplicar la exclusión con ruta completa y restaurar, con el acuerdo del departamento de TI del cliente5 Retirar la exclusión al confirmar el veredicto y la actualización de definiciones. En clientes con EDR, combinar también la ruta del administrador (envío por portal, indicador de permitir)15
Se detectó con un antivirus de otro fabricante Obtener del cliente el nombre y la versión del producto que hizo la detección, y el nombre de detección Enviar el reporte al canal de falsos positivos de ese proveedor. Si varios productos lo detectan, sospechar de factores del lado de la compilación
Aparece «Windows protegió su PC» (SmartScreen) Confirmar que no es una detección de virus (es un mecanismo distinto al de Defender)4 Consolidar la firma de código y el canal de distribución (consulte el artículo de SmartScreen)
Defender (MsMpEng.exe) va lento / la E/S es lenta Medir con Performance analyzer e identificar los archivos y procesos más activos9 Mejorar el patrón de escritura de la aplicación. En equipos de desarrollo, Dev Drive + modo de rendimiento19. La exclusión, como último recurso y con el mínimo alcance6

Lo común a todos los casos son estos tres puntos: «confirmar primero los hechos (nombre de detección, objeto, producto que detectó)», «poner en marcha siempre la solución permanente que supone el reporte» y «tratar la exclusión y la restauración como medidas temporales con el mínimo alcance».

8. Resumen

  • El Defender actual no juzga por comparación de firmas, sino mediante aprendizaje automático, protección en la nube y reputación (historial). Que un binario nuevo con historial cero resulte sospechoso es una consecuencia inevitable de este diseño, y estructuras que «ocultan el contenido real», como la ofuscación o los formatos autoextraíbles, aumentan aún más esa sospecha.
  • El pilar de la prevención es una firma de código consistente con un certificado de una entidad de certificación de confianza. No existe ningún programa de prevención de falsos positivos mediante registro previo. También son eficaces el análisis propio con MpCmdRun.exe antes del lanzamiento y el envío anticipado de muestras en lanzamientos con un cambio importante en la apariencia externa.
  • Ante una detección, confirme el nombre de detección y el objeto en el historial de protección y en el registro de eventos (ID 1116/1117), y envíelo como desarrollador al portal de envío de muestras de Microsoft Security Intelligence. Los archivos en cuarentena se pueden restaurar desde el historial de protección o con MpCmdRun.exe -Restore.
  • La configuración de exclusiones es una medida temporal hasta que llega el veredicto del reporte. Aplíquela con ruta completa y alcance mínimo, deje constancia por escrito y retírela cuando se resuelva. Excluir carpetas temporales, extensiones o procesos genéricos está terminantemente prohibido, porque crea escondites para el malware.
  • Ante un problema de rendimiento, mida primero con Performance analyzer, plantéese mejorar el patrón de escritura de la aplicación y el modo de rendimiento de Dev Drive, y solo considere una exclusión limitada si, aun así, resulta necesaria. Pedir al cliente que desactive la protección en tiempo real queda completamente fuera de lugar.

Artículos relacionados

Áreas de consultoría relacionadas

KomuraSoft LLC ofrece asesoría sobre cómo definir la estrategia de respuesta ante falsos positivos y avisos de SmartScreen en aplicaciones distribuidas, el diseño del sistema de distribución y actualización incluyendo la firma de código, y la medición y el diagnóstico de problemas de rendimiento causados por software antivirus.

Referencias

  1. Microsoft Learn, Microsoft Defender Antivirus in Windows Overview. Sobre la migración en 2015 de un motor basado en firmas estáticas a un modelo predictivo que usa aprendizaje automático, ciencia aplicada e IA, y sobre la detección de anomalías y la protección basada en comportamiento.  2

  2. Microsoft Learn, Cloud protection and sample submission at Microsoft Defender Antivirus. Sobre los modelos de aprendizaje automático, el análisis de comportamiento y las heurísticas en el propio equipo, el envío de metadatos a la protección en la nube (con veredicto en milisegundos en la mayoría de los casos), y la estructura multicapa de envío de muestras, detonación y análisis de macrodatos.  2

  3. Microsoft Learn, Submit files for analysis. Sobre el envío de archivos con falsos positivos desde el portal de envío de muestras (microsoft.com/wdsi/filesubmission), la necesidad de iniciar sesión y la posibilidad de hacer seguimiento del envío, la migración del inicio de sesión a Microsoft Entra ID desde el 20 de mayo de 2024 (con posible necesidad de consentimiento del administrador en algunas organizaciones), la descripción detallada del producto usado y de las circunstancias del hallazgo, el envío como software developer y la posibilidad de solicitar una nueva investigación mediante el formulario de contacto para desarrolladores si no se está de acuerdo con el veredicto, la aceptación de un SAID y la mayor prioridad para quienes disponen de uno válido, el seguimiento del estado (Submitted/In progress/Closed) en la página de historial de envíos (microsoft.com/wdsi/submissionhistory) y la comprobación de actualizaciones del veredicto mediante «rescan» en la página de detalle, y la inexistencia de un canal de envío de muestras por correo electrónico.  2 3 4

  4. Microsoft Learn, Software developer FAQ. Sobre la inexistencia de un registro en lista de elementos conocidos o de un programa de prevención de falsos positivos, sobre cómo una firma consistente con un certificado de una entidad de certificación raíz de confianza acelera la identificación del origen y la inclusión en la lista de elementos conocidos, sobre el envío como desarrollador y la posibilidad de impugnar el veredicto (formulario de contacto para desarrolladores), y sobre que SmartScreen es un mecanismo distinto al del antivirus Defender.  2 3 4 5 6 7

  5. Microsoft Learn, Restore quarantined files in Microsoft Defender Antivirus. Sobre la comprobación y restauración de elementos en cuarentena desde el «Historial de protección» de Seguridad de Windows, y sobre el procedimiento de listado y restauración de la cuarentena mediante MpCmdRun.  2 3 4

  6. Microsoft Learn, Configure custom exclusions for Microsoft Defender Antivirus. Sobre cómo las exclusiones son un hueco en la protección (protection gap) que debe usarse con moderación, sobre su uso limitado a problemas concretos sin aplicarlas con fines preventivos futuros, y sobre la necesidad de revisarlas periódicamente dejando constancia de su motivo.  2 3

  7. Microsoft Learn, Configure and manage Microsoft Defender Antivirus with the MpCmdRun command-line tool. Sobre la ubicación de MpCmdRun.exe y el requisito de privilegios de administrador; sobre -Scan (el análisis personalizado con -ScanType 3, la opción -File, el valor de retorno 0 que incluye tanto «sin detección» como «se detectó pero se remedió con éxito», y el valor 2 que indica «detectado, sin remediar/requiere acción del usuario/error de análisis», la opción -DisableRemediation para no aplicar acciones al detectar algo y mostrar el resultado en la salida del comando, y el valor predeterminado 50 de -CpuThrottling); y sobre las opciones -Restore (-ListAll/-Name/-FilePath/-Path), -CheckExclusion y -GetFiles.  2 3 4 5 6 7

  8. Microsoft Learn, How Microsoft identifies malware and potentially unwanted applications. Sobre la advertencia relativa a «Unknown» (software no reconocido) como sistema de alerta temprana para malware aún no detectado, sobre cómo el envío de muestras ayuda a comenzar a establecer la reputación, y sobre las clasificaciones Obfuscator, Evasion software y Bundling software.  2 3 4 5

  9. Microsoft Learn, Performance analyzer for Microsoft Defender Antivirus. Sobre la captura de registros con New-MpPerformanceRecording, la reproducción de la operación, el procedimiento de análisis con -TopFiles/-TopScansPerFile de Get-MpPerformanceReport, la aparición en el informe del número de análisis, la duración (total/mínima/media/máxima/mediana), la ruta, el proceso y el motivo del análisis, los valores de la columna SkipReason (Not Skipped / Optimization / User skipped), y la exportación de TopScans a CSV con Export-Csv.  2 3 4 5

  10. Microsoft Learn, Microsoft Defender Antivirus Performance Analyzer reference. Sobre cómo Performance analyzer es una herramienta para obtener información sobre archivos problemáticos y no está pensada para proponer exclusiones, sobre la necesidad de definir las exclusiones con cautela porque reducen la protección, sobre el requisito de privilegios de administrador, sobre el orden descendente por duración de cada informe Top, sobre la posibilidad de indicar un límite inferior con -MinDuration en un formato como 100ms, y sobre la obtención de una salida legible por máquina con -Raw.  2 3

  11. Microsoft Learn, Turn on block at first sight. Sobre el mecanismo por el que el backend en la nube evalúa archivos desconocidos y sospechosos mediante heurísticas, aprendizaje automático y análisis automatizado, bloqueándolos en cuestión de segundos, y sobre la posibilidad de que la apertura del archivo quede en espera hasta obtener el veredicto. 

  12. Microsoft Learn, Troubleshoot Microsoft Defender Antivirus scan issues. Sobre la ubicación del registro de eventos de Defender (Registros de aplicaciones y servicios → Microsoft → Windows → Windows Defender → Operational) y su obtención mediante Get-WinEvent. 

  13. Microsoft Learn, Review event logs and error codes to troubleshoot issues with Microsoft Defender Antivirus. Sobre la lista de identificadores de eventos de Defender, incluyendo el ID 1116 (detección) y el ID 1117 (acciones como la cuarentena o la eliminación).  2

  14. Microsoft Learn, Malware names. Sobre cómo los nombres de detección siguen las reglas de nomenclatura de CARO (tipo/plataforma/nombre de familia, etc.). 

  15. Microsoft Learn, Address false positives/negatives in Microsoft Defender for Endpoint. Sobre el análisis instantáneo inicial mediante un sistema automático de los archivos enviados, la prioridad para los archivos de mayor alcance de impacto y para los envíos de titulares de un Software Assurance ID, el envío del archivo MpSupportFiles.cab para detecciones por comportamiento, el envío por parte de administradores y el indicador de «permitir», y la recomendación de usar Intune para definir exclusiones.  2 3 4 5 6

  16. Microsoft Learn, Configure and validate exclusions based on file extension and folder location. Sobre la diferencia entre Set-MpPreference (sobrescribe la lista), Add-MpPreference (añade) y Remove-MpPreference (elimina); sobre que ExclusionPath puede indicarse a nivel de archivo o de carpeta (incluyendo subcarpetas); sobre la configuración mediante Directiva de grupo e Intune, entre otros; sobre la validación de exclusiones con MpCmdRun; y sobre que, aunque se configure una exclusión de antivirus para un archivo, las alertas del EDR y otras detecciones pueden seguir produciéndose.  2 3 4

  17. Microsoft Learn, Configure exclusions for files opened by processes. Sobre cómo ExclusionProcess excluye «los archivos que abre el proceso indicado», y sobre el uso de la exclusión de archivo (ExclusionPath) para excluir el propio proceso. 

  18. Microsoft Learn, Common mistakes to avoid when defining exclusions. Sobre por qué no deben excluirse C:\, las carpetas de tipo Temp, extensiones como .exe/.dll/.tmp, procesos genéricos como cmd.exe/powershell.exe/msbuild.exe, ni nombres de archivo sin ruta, y sobre cómo los elementos excluidos pueden convertirse en escondites de amenazas. 

  19. Microsoft Learn, Protect Dev Drive using performance mode. Sobre cómo el comportamiento predeterminado de la protección en tiempo real es el análisis síncrono «open now, scan now», sobre cómo el modo de rendimiento realiza un análisis asíncrono «open now, scan later» que ofrece una protección considerablemente mayor que la exclusión de carpetas, sobre su funcionamiento exclusivo en un Dev Drive y solo con la protección en tiempo real activada, y sobre el uso del Performance Analyzer para solucionar problemas de alto uso de CPU o memoria de MsMpEng.exe (WinDefend, Antimalware Service Executable).  2 3 4 5

  20. Microsoft Learn, Set up a Dev Drive on Windows 11. Sobre cómo Dev Drive es un volumen de desarrollo basado en ReFS, sobre la recomendación de trasladar a él el código del proyecto, la caché de paquetes y la salida de compilación, sobre que el modo de rendimiento es el predeterminado en un Dev Drive de confianza, sobre los requisitos previos (Windows 11 compilación 10.0.22621.2338 o posterior, al menos 50 GB de espacio libre, memoria de 8 GB o más y 16 GB recomendados, privilegios de administrador local, y configuración de Directiva de grupo en entornos empresariales), sobre el procedimiento de creación desde la aplicación Configuración en «Sistema > Almacenamiento > Configuración avanzada de almacenamiento > Discos y volúmenes», sobre la creación por línea de comandos con Format D: /DevDrv /Q y Format-Volume -DriveLetter D -DevDrive, sobre la imposibilidad de convertir un volumen existente y la restricción de que solo puede indicarse en el momento del formateo, sobre la imposibilidad de convertir la unidad C: en Dev Drive, y sobre la comprobación y el establecimiento de la confianza mediante fsutil devdrv query / fsutil devdrv trust 2

  21. Microsoft Learn, Microsoft Defender Antivirus full scan considerations and best practices. Sobre cómo el límite de CPU del análisis (ScanAvgCPULoadFactor) no es un límite estricto, sino una referencia para el motor de análisis destinada a no superar ese valor en promedio, y sobre su aplicación predeterminada al análisis programado (y opcionalmente también al análisis personalizado). 

Artículos recientes con las mismas etiquetas para profundizar en temas cercanos.

Estas páginas sitúan el tema en un contexto más amplio de servicios y decisiones.

El artículo está directamente relacionado con los siguientes servicios.

Preguntas frecuentes

Preguntas habituales en las consultas sobre el tema del artículo.

Mi aplicación de desarrollo propio ha sido detectada como virus por Microsoft Defender. ¿Qué debo hacer?
Antes que nada, no recurra apresuradamente a configurar exclusiones ni a desactivar Defender. La vía oficial para una solución permanente es enviar el archivo como desarrollador (software developer) desde el portal de envío de muestras de Microsoft Security Intelligence (envío de muestras). Si inicia sesión, puede hacer seguimiento del estado del veredicto, y si se confirma que es un falso positivo, la actualización de definiciones hará que deje de detectarse en adelante. Un archivo puesto en cuarentena puede restaurarse desde el «Historial de protección» de Seguridad de Windows o con -Restore de MpCmdRun.exe.
¿Cómo se reporta un falso positivo a Microsoft?
El archivo se envía desde el portal de envío de muestras de Microsoft Security Intelligence (microsoft.com/wdsi/filesubmission). El envío requiere iniciar sesión, y una vez enviado se puede hacer seguimiento del estado del veredicto en el propio portal. El archivo enviado se analiza primero de forma instantánea con un sistema automático, y si es necesario, lo analiza después un analista. Si lo envía como desarrollador y no está de acuerdo con el veredicto, puede solicitar una nueva investigación mediante el formulario de contacto para desarrolladores incluido en el resultado del envío.
¿Es adecuado pedir al cliente que configure exclusiones en su entorno?
Puede ser una opción como medida temporal hasta que se refleje el resultado del reporte de falso positivo, pero nunca debe convertirse en la solución permanente. Una exclusión abre un hueco en la protección de Defender, y la propia Microsoft indica explícitamente que debe «usarse con moderación», «usarse solo para problemas concretos» y «revisarse periódicamente». Si se aplica, debe limitarse al mínimo indispensable, como la ruta completa del ejecutable, dejando constancia de quién, por qué y hasta cuándo, y retirándola en cuanto se resuelva el falso positivo. Excluir una carpeta completa, C:\Temp o una extensión como .exe equivale a crear un escondite para el malware.
¿La firma de código elimina los falsos positivos?
No hay garantía absoluta, pero su efecto es considerable. Microsoft no ofrece un programa de prevención de falsos positivos basado en un registro previo en una lista de elementos conocidos; en su lugar, recomienda «seguir firmando de forma consistente con un certificado de una entidad de certificación raíz de confianza». Con una firma consistente, el equipo de investigación puede identificar rápidamente el origen del programa, lo que a veces acelera su inclusión en la lista de elementos conocidos. Por el contrario, un binario sin firmar y sin ninguna pista de origen constante entre compilaciones se sospecha cada vez desde cero, como un archivo desconocido sin historial.

Perfil del autor

Página de presentación del autor del artículo.

Go Komura

Representante de KomuraSoft LLC

Especializado en desarrollo de software para Windows, consultoría técnica e investigación de fallos, sobre todo en proyectos con sistemas existentes y errores difíciles de reproducir.

Volver al blog