اولین باگ Microsoft Exchange در سال 2022

در اولین روز از سال نو میلادی، مایکروسافت از وجود باگی خبر داد که منجر به توقف ایمیل در صف‌های انتقال در سرورهای 2016 Exchange  و 2019 می‌شود.

 Joseph Roosen محقق امنیتی و مدیر اکسچنج بیان کرد که این مشکل به دلیل استفاده مایکروسافت از متغیر signed int32 برای ذخیره مقدار تاریخ  که حداکثر مقدار آن 2,147,483,647 است به وجود آمده است. با این حال، تاریخ‌های سال 2022 دارای حداقل مقدار 2,201,010,001 یا بزرگ‌تر هستند که از حداکثر مقدار قابل ذخیره‌سازی در متغیر int32 علامتدار بزرگ‌تر است و سبب می‌شود موتور اسکن از کار بیفتد و ایمیل‌ها را برای تحویل ارسال نکند. بنابراین، یک مشکل امنیتی نبوده و ارتباطی نیز با اسکن بدافزاری ندارد.

راهکارها

زمانی که این مشکل رخ می‌دهد، خطاهایی را در لاگ رویداد برنامه مشاهده خواهید کرد، به ویژه خطاهای 5300 و 1106 که به نام FIP-FS شناخته می‌شوند:

Log Name: Application
Source: FIPFS
Logged: 1/1/2022 1:03:42 AM
Event ID: 5300
Level: Error
Computer: server1.contoso.com
Description: The FIP-FS "Microsoft" Scan Engine failed to load. PID: 23092, Error Code: 0x80004005. Error Description: Can't convert "2201010001" to long.

Log Name: Application
Source: FIPFS
Logged: 1/1/2022 11:47:16 AM
Event ID: 1106 Level: Error
Computer: server1.contoso.com
Description: The FIP-FS Scan Process failed initialization. Error: 0x80004005. Error Details: Unspecified error.

مایکروسافت اسکریپتی را ارائه کرده که از طریق آن می توان موتوراسکن بدافزار را ریست یا تنظیم مجدد کرد. لینک دریافت اسکریپت:

https://aka.ms/ResetScanEngineVersion

خواه این کار را به صورت خودکار و یا دستی انجام دهید، باید در هر دو برنامه Exchange Server 2016 و 2019 اجرا شوند. اگر از یک اسکریپت خودکار استفاده ‌کنید، می‌توانید به صورت موازی بر روی سرورهای مختلف آن را اجرا نمایید.

توصیه مایکروسافت این است که با سرورهایی با صف‌های پیام شلوغ کار را شروع کنید. می‌توانید از Get-Queue برای مشاهده اندازه صف و تعیین اینکه کدام صف‌ها بزرگ‌تر هستند، استفاده کنید. اگر قبلا اسکن آنتی ویروس را برای رفع این مشکل غیرفعال کردید، توصیه می‌شود که آن را بار دیگر و پس از انجام مراحل زیر فعال کنید.

استفاده از راهکار‌های خودکار

اسکریپت را روی هر سرور Exchange در سازمان و یا بر روی چندین سرور به صورت موازی اجرا کنید. پس از تکمیل اسکریپت، خروجی زیر را مشاهده خواهید کرد:

[PS] C:\Program Files\Microsoft\Exchange Server\V15\Scripts>.\Reset-ScanEngineVersion.ps1
EXCH1 Stopping services...
EXCH1 Removing Microsoft engine folder...
EXCH1 Emptying metadata folder...
EXCH1 Starting services...
WARNING: Waiting for service 'Microsoft Filtering Management Service (FMS)' to start...
WARNING: Waiting for service 'Microsoft Filtering Management Service (FMS)' to start...
WARNING: Waiting for service 'Microsoft Filtering Management Service (FMS)' to start...
WARNING: Waiting for service 'Microsoft Filtering Management Service (FMS)' to start...
WARNING: Waiting for service 'Microsoft Exchange Transport (MSExchangeTransport)' to start...
EXCH1 Starting engine update...
Running as EXCH1-DOM\Administrator.
--------Connecting to EXCH1.CONTOSO.com. Dispatched remote command. Start-EngineUpdate -UpdatePath http://amupdatedl.microsoft.com/server/amupdate--------

[PS] C:\Program Files\Microsoft\Exchange Server\V15\Scripts>Get-EngineUpdateInformation

Engine                : Microsoft
LastChecked       : 01/01/2022 08:58:22 PM -08:00
LastUpdated        : 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
UpdateStatus          : UpdateAttemptSuccessful

استفاده از راهکار دستی

کاربران برای استفاده از این راهکار می‌بایست به صورت دستی تمام مراحل را طی کرده و خدمات را بازیابی کنند. به همین منظور باید مراحل زیر را در هر سرور Exchange اجرا نمایید:

حذف متادیتا و موتور موجود
  • سرویس مدیریت فیلترینگ مایکروسافت را متوقف کنید و برای متوقف کردن خدمات انتقال Microsoft Exchange Transport نیز کلید بله را فشار دهید.
  • از Task Manager استفاده کنید تا مطمئن شوید که updateservice.exe اجرا نمی‌شود و پوشه‌ زیر را حذف کنید:

%ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\amd64\Microsoft

  • تمام فایل‌های موجود در این پوشه‌ها را نیز حذف کنید

%ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\metadat

موتور را به آخرین نسخه آن به‌روزرسانی کنید
  • خدمات Microsoft Filtering Management و Microsoft Exchange Transport را راه اندازی کنید.
  • Exchange Management Shell را باز کنید و پوشه اسکریپت‌ها را پیدا کنید:

%ProgramFiles%\Microsoft\Exchange Server\V15\Scripts

و سپس <Update-MalwareFilteringServer.ps1 <server FQDN را اجرا نمایید.

اطلاعات مرتبط با به‌روزرسانی موتور پویشگر را تایید کنید
  • در Exchange Management Shell نسبت به اجرای Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell. اقدام کنید.
  • دستور Get-EngineUpdateInformation را اجرا کرده و اطلاعات نسخه به‌روزرسانی شده که 21123300001 می‌باشد را تایید کنید.

در نهایت بعد از اینکه آن را به طور کامل به‌روزرسانی کردید، بررسی کنید که جریان ایمیل کار می‌کند و خطای FIP-FS در لاگ رویداد برنامه موجود نیست.