Han pasado más de 20 años del ‘Efecto 2000’ pero todavía recordamos el revuelo que causó. Ahora que comienza el 2022 hemos tenido otro problema informático con el cambio de fecha, en este caso el afectado ha sido Microsoft Exchange. Si vuestro correo funciona con Microsoft Exchange (sobre todo muchas cuentas empresariales) y han dejado de recibir correos durante estas fechas, debéis saber que hay una explicación detrás.

Según numerosos informes de administradores de Microsoft Exchange de todo el mundo, un error en el motor FIP-FS está bloqueando la entrega de correo electrónico con servidores locales a partir de la medianoche del 1 de enero de 2022.

Esto se debe al uso de una variable int32 firmada por Microsoft para almacenar el valor de una fecha, que tiene un valor máximo de 2,147,483,647.

Sin embargo, las fechas en 2022 tienen un valor mínimo de 2.201.010.001 o superior, que es mayor que el valor máximo que se puede almacenar en la variable int32 firmada, lo que provoca que el motor de escaneo falle y que el correo no se libere para la entrega.

Cuando se activa este error, se mostrará un error 1106 en el registro de eventos de Exchange Server que indica «No se pudo inicializar el proceso de escaneo FIP-FS. Error: 0x8004005. Detalles del error: Error no especificado» o «Código de error: 0x80004005. Error de descripción: no se puede convertir «220010001» a largo «.

Microsoft necesitará lanzar una actualización de Exchange Server que use una variable más grande para mantener la fecha para corregir oficialmente este error.

Sin embargo, para los servidores de Exchange locales actualmente afectados, los administradores han descubierto que es posible deshabilitar el motor de exploración FIP-FS para permitir la entrega de correo electrónico.

Para deshabilitar el motor de exploración FIP-FS, puede ejecutar los siguientes comandos de PowerShell en Exchange Server:

Set-MalwareFilteringServer -Identity  -BypassFiltering $true
Restart-Service MSExchangeTransport

Después de reiniciar el servicio MSExchangeTransport, el correo se entregará nuevamente.

Desafortunadamente, con esta solución no oficial, el motor de análisis de Microsoft ya no analizará el correo entregado, lo que generará más correos electrónicos maliciosos y spam que lleguen a los usuarios.

Según los informes, Microsoft está al tanto del problema y está trabajando en una solución, pero no hay una fecha límite para la fecha de entrega.

En resumen

Un particular bug debido al cambio de año ha provocado que el motor antispam y antimalware de Microsoft Exchange (FIP-FS) esté teniendo problemas para procesar la fecha, lo que ha provocado que millones de correos se queden paralizados en los servidores, sin remitir a sus destinatarios, según ha reconocido la propia Microsoft.

Otras soluciones

Microsoft informó que a creado una solución para abordar el problema de los mensajes atascados en las colas de transporte en Exchange Server 2016 y Exchange Server 2019 debido a un problema de fecha latente en un archivo de firma utilizado por el motor de escaneo de malware dentro de Exchange Server. Se requiere la acción del cliente para implementar esta solución. Cuando se produce el problema, verá errores en el registro de eventos de la aplicación en Exchange Server, específicamente el evento 5300 y 1106 (FIPFS), como se ilustra a continuación:

Nombre de registro: 
Origen de la aplicación : FIPFS Registrado
: 1/1/2022 1:03:42 AM
Identificador de sucesos: 5300
Nivel: Error
Equipo: server1.contoso.com
Descripción: No se pudo cargar el motor de exploración FIP-FS "Microsoft". PID: 23092, Código de error: 0x80004005. Descripción del error: no se puede convertir "2201010001" a largo.
Nombre de registro: 
Origen de la aplicación : FIPFS Registrado
: 1/1/2022 11:47:16 AM
Id. De suceso: 1106
Nivel: Error
Equipo: server1.contoso.com
Descripción: El proceso de exploración FIP-FS falló en la inicialización. Error: 0x80004005. Detalles del error: error no especificado.

Usando la solución automatizada

  • Descargue el script aquí:  https://aka.ms/ResetScanEngineVersion 
  • Antes de ejecutar el script, cambie la política de ejecución de los scripts de PowerShell ejecutando Set-ExecutionPolicy -ExecutionPolicy RemoteSigned .
  • Ejecute el script en cada servidor de buzones de Exchange que descargue actualizaciones antimalware en su organización (use el Shell de administración de Exchange elevado).

Los servidores de transporte perimetral no se ven afectados por este problema. Puede ejecutar este script en varios servidores en paralelo. Una vez finalizado el script, verá el siguiente resultado:

[PS] C: \ Archivos de programa \ Microsoft \ Exchange Server \ V15 \ Scripts>. \ Reset-ScanEngineVersion.ps1 
EXCH1 Deteniendo servicios ...
EXCH1 Eliminando la carpeta del motor de Microsoft ...
EXCH1 Vaciando la carpeta de metadatos ...
EXCH1 Iniciando servicios. ..
ADVERTENCIA: Esperando que se inicie el
servicio 'Microsoft Filtering Management Service (FMS)' ...
ADVERTENCIA: Esperando que se inicie el servicio 'Microsoft Filtering Management Service (FMS)' ... ADVERTENCIA: Esperando el servicio 'Microsoft Filtering Management Service (FMS) 'para comenzar ...
ADVERTENCIA: Esperando el servicio' Microsoft Filtering Management Service (FMS) 'para comenzar ...
ADVERTENCIA: Esperando el servicio' Microsoft Exchange Transport (MSExchangeTransport) 'para comenzar ...
EXCH1 Iniciando actualización del motor ...
Ejecutando como EXCH1-DOM \ Administrator.
--------
Conectando a EXCH1.CONTOSO.com.
Comando remoto enviado. Start-EngineUpdate -UpdatePath http://amupdatedl.microsoft.com/server/amupdate
--------
[PS] Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell.
--------
[PS] C: \ Archivos de programa \ Microsoft \ Exchange Server \ V15 \ Scripts> Get-EngineUpdateInformation Engine: Microsoft Última comprobación : 01/01/2022 08:58:22 PM -08: 00 Última actualización : 01/01/2022 08:58:31 PM -08: 00 EngineVersion: 1.1.18800.4 SignatureVersion: 1.355.1227.0 SignatureDateTime: 01/01/2022 03:29:06 AM -08: 00

      
      



UpdateVersion: 2112330001 (nota: un número de versión superior que comienza con 211233 ... también está bien)
UpdateStatus          : UpdateAttemptSuccessful

Uso de la solución manual

En lugar de utilizar el script, los clientes también pueden realizar manualmente los pasos para resolver el problema y restaurar el servicio. Para resolver este problema manualmente, debe realizar los siguientes pasos en cada servidor de buzón de correo de Exchange de su organización que descarga actualizaciones antimalware. Los servidores de transporte perimetral no se ven afectados por este problema.

Verifique que la versión afectada esté instalada.
Ejecute Get-EngineUpdateInformation y verifique la información de UpdateVersion. Si comienza con «22 …», continúe. Si la versión instalada comienza con «21 …», no es necesario que realice ninguna acción.

Quitar el motor y los metadatos existentes
1. Detenga el servicio de administración de filtrado de Microsoft. Cuando se le solicite que detenga también el servicio de transporte de Microsoft Exchange, haga clic en Sí.
2. Utilice el Administrador de tareas para asegurarse de que updateservice.exe no se esté ejecutando.
3. Elimine la siguiente carpeta:% ProgramFiles% \ Microsoft \ Exchange Server \ V15 \ FIP-FS \ Data \ Engines \ amd64 \ Microsoft.
4. Elimine todos los archivos de la siguiente carpeta:% ProgramFiles% \ Microsoft \ Exchange Server \ V15 \ FIP-FS \ Data \ Engines \ metadata.

Actualización al motor más reciente
1. Inicie el servicio de administración de filtrado de Microsoft y el servicio de transporte de Microsoft Exchange.
2. Abra el Shell de administración de Exchange, navegue hasta la carpeta Scripts (% ProgramFiles% \ Microsoft \ Exchange Server \ V15 \ Scripts) y ejecute Update-MalwareFilteringServer.ps1 <servidor FQDN> .

Verificar la información de actualización del motor
1. En el Shell de administración de Exchange, ejecute Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell .
2. Ejecute Get-EngineUpdateInformation y verifique que la información de UpdateVersion sea 2112330001 (o superior)

Después de actualizar el motor, también recomendamos que verifique que el flujo de correo esté funcionando y que los eventos de error FIPFS no estén presentes en el registro de eventos de la aplicación.

Preguntas más frecuentes

No estoy seguro de si este problema afecta a mi organización. ¿Cómo me entero?
Ejecute la última versión del script HealthChecker ( https://aka.ms/ExchangeHealthChecker ) en cada servidor Exchange de su organización y verifique la advertencia FIP-FS que se mostrará si su servidor se ve afectado y se requieren más acciones.

¿Está automatizada la solución a este problema?
La implementación de la solución requiere acciones del cliente y llevará algún tiempo realizar los cambios necesarios, descargar los archivos actualizados y borrar las colas de transporte. Las acciones se pueden automatizar con el script de restablecimiento del motor de análisis de  https://aka.ms/ResetScanEngineVersion  o se pueden realizar manualmente. Ya sea que realice los pasos de forma automática o manual, deben realizarse en todos los servidores locales de Exchange 2016 y Exchange 2019 de su organización. Si usa el script automatizado, puede ejecutarlo en varios servidores en paralelo.

¿Cuánto tiempo llevará la ejecución de un script automatizado?
Dependiendo del tamaño de su organización, la secuencia de comandos puede tardar un tiempo en ejecutarse; por favor sea paciente.

¿Cuánto tiempo llevará borrar las colas después de que se haya ejecutado el script?
Según la cantidad de mensajes que se pusieron en cola y la cantidad de mensajes nuevos que el transporte debe procesar, el tiempo puede variar. Tenga paciencia y controle que las colas se están agotando (la cantidad de mensajes está disminuyendo) mediante el comando Get-queue.

Estamos en entorno Exchange Hybrid. ¿Que necesitamos hacer?
Si está utilizando su servidor Exchange local para enviar correo electrónico (por ejemplo, utilizando el flujo de correo centralizado o enviando mensajes desde dispositivos locales), siga esta publicación de blog y use el script para cambiar la configuración en sus servidores locales utilizados para el correo electrónico. transporte. Si usa Exchange local solo para la administración de destinatarios de Exchange, no es necesario que realice ninguna acción.

¿Cuáles son los servicios que detiene el script?
Se reiniciarán los siguientes servicios: Microsoft Filtering Management y Microsoft Exchange Transport.

Hemos desactivado temporalmente el antimalware. ¿Debería habilitarse después de seguir esta publicación de blog?
Si ha deshabilitado temporalmente el servicio antimalware, debe habilitarlo después de haber seguido esta publicación de blog (use el script Enable-AntimalwareScanning.ps1). La solución descrita en esta publicación es una solución completa para este problema y dará como resultado que las colas de transporte se borren y el motor antimalware funcione como se esperaba.

La versión del motor de análisis actualizado comienza con 2112330001 (o superior); ¿es esto correcto? ¿Debería preocuparnos que parezca hacer referencia a una fecha que no existe?
El motor de análisis recientemente actualizado es totalmente compatible con Microsoft. Si bien necesitamos trabajar en esta secuencia a más largo plazo, la versión del motor de análisis no se revertió, sino que se incorporó a esta nueva secuencia. El motor de análisis seguirá recibiendo actualizaciones en esta nueva secuencia.

¿Qué pasa si mis servidores de Exchange no tienen acceso a Internet?
Si los servidores de buzones de Exchange no descargan actualizaciones antimalware de Internet, no es necesario que realice ninguna acción manual. En ese caso, los servidores no han estado descargando actualizaciones antimalware para empezar, y el problema descrito aquí no existirá.

Tenemos un servidor Exchange 2013 y, aunque no hay bloqueos, veo que el servidor tiene la versión del motor con problemas que comienza con «22 …». ¿Qué debemos hacer?
Exchange Server 2013 no se ve afectado por los bloqueos de transporte, por lo que no habrá acumulación de correo electrónico en las colas de transporte. Si su servidor Exchange 2013 tomó la actualización antimalware y ahora tiene una versión que comienza con «22 …», debe usar los pasos automáticos o manuales en esta publicación de blog para que su servidor tenga una versión del motor «21 …» para continúe recibiendo las actualizaciones antimalware. Si no toma medidas, su servidor no recibirá ninguna actualización antimalware en el futuro.

El script genera el error “ADVERTENCIA: No se puede procesar la solicitud de actualización porque los metadatos del motor no están disponibles. Intentando sincronizar ”metadatos. Intente ejecutar el cmdlet de nuevo más tarde.
Para los servidores de Exchange que acceden a Internet a través de un proxy:

  • Lanzar Shell de administración de Exchange
  • Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell
  • Set-ProxySettings -Enabled $ true -Server <ProxyServer> -Port <proxy.port>
  • Vuelva a ejecutar el script

Si aún no se resuelve:

  • Copie msvcr110.dll de c: \ windows \ system32 a% ProgramFiles% \ Microsoft \ Exchange Server \ V15 \ FIP-FS \ Bin y% ProgramFiles% \ Microsoft \ Exchange Server \ V15 \ Bin
  • Reinicie el servidor Exchange.
  • Vuelva a ejecutar el script

Tengo muchos servidores Exchange en mi entorno; ¿Hay alguna forma de distribuir localmente los archivos de definición?

  • Siga los pasos de este artículo y descargue los archivos de actualización a un servidor. Ejemplo: Update-Engines.ps1 -EngineDirPath C: \ ScanEngineUpdates \
  • Comparta la carpeta en la que se copiaron los archivos de actualización, por ejemplo \\ server1 \ amware
  • Ejecute el siguiente comando en todos los servidores restantes que necesitan copiar los archivos de actualización: Set-MalwareFilteringServer -PrimaryUpdatePath \\ server1 \ amware -Identity mail1.contoso.com
  • Vuelva a ejecutar el script de reinicio del motor de análisis en todos los servidores.