فایل Polyglot چیست؟ بررسی فایلهای چندفرمتی و روش مقابله با آنها
فایل Polyglot چیست و مهاجمان چگونه از فایلهای چندفرمتی برای عبور از فیلترهای امنیتی استفاده میکنند؟ با روش شناسایی و مقابله با این تهدید آشنا شوید.
فایل Polyglot چیست؟
فایل Polyglot یا فایل چندفرمتی، فایلی است که میتواند توسط یک سیستم یا نرمافزار بهعنوان دو یا چند نوع فایل متفاوت شناسایی و پردازش شود.
برای مثال، ممکن است یک فایل از نظر یک برنامه یک تصویر PNG باشد، اما همان فایل برای برنامهای دیگر یک آرشیو ZIP محسوب شود. مهاجمان سایبری میتوانند از این ویژگی برای پنهان کردن بدافزار، دور زدن فیلترهای ایمیل و پیچیدهتر کردن فرایند شناسایی حمله استفاده کنند.
به بیان ساده، فایل Polyglot نوعی فایل دوچهره است: ظاهر و نحوه پردازش آن میتواند بسته به نرمافزاری که فایل را باز میکند، متفاوت باشد.
این تکنیک در سالهای اخیر در کمپینهای مختلف بدافزاری و فیشینگ مشاهده شده و به یکی از روشهای جالب مهاجمان برای دور زدن برخی کنترلهای امنیتی تبدیل شده است.
چرا ساخت فایلهای Polyglot امکانپذیر است؟
ساخت فایل چندفرمتی لزوماً به استفاده از فرمتهای ناشناخته یا فناوری بسیار پیچیده نیاز ندارد. این تکنیک معمولاً از تفاوتهای موجود در ساختار فرمتهای رایج سوءاستفاده میکند.
۱. برخی فرمتها اطلاعات مهم را در انتهای فایل قرار میدهند
بسیاری از فرمتهای فایل برای شناسایی و پردازش، از ابتدای فایل شروع میشوند. اما همه فرمتها چنین رفتاری ندارند.
ZIP نمونه خوبی است. بخشهای مهمی از ساختار یک آرشیو ZIP در انتهای فایل قرار دارند. بنابراین ممکن است بتوان اطلاعات یک فرمت دیگر را در ابتدای فایل قرار داد و یک ZIP معتبر را نیز در انتهای همان فایل اضافه کرد.
در چنین شرایطی، یک نرمافزار ممکن است ابتدای فایل را بهعنوان یک تصویر PNG شناسایی کند، در حالی که نرمافزار دیگری بخش ZIP موجود در انتهای فایل را پردازش میکند.
۲. بعضی فرمتها در واقع نوعی آرشیو هستند
برخی فرمتهای مدرن در داخل خود ساختاری شبیه ZIP دارند.
برای نمونه:
- DOCX
- XLSX
- PPTX
- APK
- JAR
همگی ساختارهایی مبتنی بر آرشیو ZIP دارند.
این ویژگی میتواند امکان ترکیب برخی فرمتها را فراهم کند؛ زیرا یک فایل میتواند از دید یک نرمافزار یک نوع سند باشد و نرمافزار دیگری بخش داخلی آن را به شکل یک آرشیو یا ساختار متفاوت پردازش کند.
۳. برخی فرمتها ساختار انعطافپذیری دارند
همه فرمتهای فایل قوانین سختگیرانهای برای محل قرارگیری اطلاعات ندارند.
در برخی موارد، نرمافزاری که فایل را باز میکند میتواند بخش موردنیاز خود را در قسمت دیگری از فایل پیدا کند؛ حتی اگر آن داده در ابتدای فایل قرار نگرفته باشد.
مهاجم میتواند از همین انعطاف برای قرار دادن چند نوع محتوای قابل پردازش در یک فایل استفاده کند.
فایل Polyglot چگونه در حملات سایبری استفاده میشود؟
هدف اصلی مهاجم معمولاً این است که ابزار امنیتی و کاربر نهایی برداشت یکسانی از فایل نداشته باشند.
برای مثال، ممکن است اسکنر امنیتی فایل را یک PDF بیخطر تشخیص دهد، اما برنامه دیگری که همان فایل را باز میکند، بخش دیگری از آن را بهعنوان یک فایل اجرایی یا سند دارای محتوای فعال پردازش کند.
این تفاوت میتواند در چند مرحله از حمله مورد سوءاستفاده قرار بگیرد:
- ارسال فایل از طریق ایمیل یا فیشینگ
- عبور فایل از برخی فیلترهای امنیتی
- فریب کاربر برای باز کردن یا تغییر پسوند فایل
- پردازش فایل توسط نرمافزار دیگری
- اجرای Payload مخرب
بنابراین Polyglot بهتنهایی یک «بدافزار» نیست؛ بلکه تکنیکی برای ساخت فایلهایی است که میتوانند رفتارهای متفاوتی داشته باشند.
نمونههای واقعی استفاده از فایلهای Polyglot
تحلیل کمپینهای بدافزاری مختلف نشان داده است که مهاجمان از ترکیبهای متنوعی از فرمتها استفاده کردهاند.
حمله PhantomPyramid
گروه Head Mare بدافزار PhantomPyramid را در قالب یک فایل ZIP توزیع کرد.
فایل اصلی ترکیبی از کد اجرایی ویندوز (EXE) و یک آرشیو ZIP بود که به انتهای آن اضافه شده بود.
هنگام باز کردن آرشیو، قربانی با فایلی دارای پسوند PDF.LNK مواجه میشد. این فایل در ادامه همان فایل Polyglot را بهعنوان یک فایل اجرایی اجرا میکرد.
فایل PDF با پسوند DOC
در حملهای که JPCERT آن را مستند کرده، مهاجمان فایلی ایجاد کردند که از نظر ساختاری یک PDF بود، اما پسوند DOC داشت.
بسیاری از اسکنرها آن را PDF تشخیص میدادند، در حالی که برنامههای Microsoft Office میتوانستند بخش دیگری از آن را بهعنوان یک فایل DOC حاوی ماکروهای مخرب باز کنند.
این نمونه بهخوبی نشان میدهد که اعتماد به تشخیص اولیه نوع فایل میتواند خطرناک باشد.
ترکیب MSI و JAR
در حملاتی که تروجانهای StrRAT و Ratty را منتشر میکردند، مهاجمان از ترکیب یک بسته نصب ویندوز (MSI) با کد جاوای مخرب (JAR) استفاده کردند.
کد JAR به انتهای فایل اضافه شده بود و ساختار چندفرمتی فایل امکان استفاده از آن در سناریوی حمله را فراهم میکرد.
حملات StrelaStealer
در حملات مرتبط با StrelaStealer، مهاجمان از فایلی با پسوند HTML استفاده کردند که در واقع ترکیبی از یک DLL ویندوز و یک سند HTML فریبدهنده بود.
فایل طوری طراحی شده بود که بتواند از مسیرهای مختلف اجرا شود؛ یک مسیر سند HTML را در مرورگر نمایش میداد و مسیر دیگر DLL مخرب را اجرا میکرد.
حمله چندلایه به IcedID؛ یک ماتروشکای واقعی
یکی از نمونههای پیچیدهتر، کمپینی بود که بدافزار سرقت اطلاعات IcedID را توزیع میکرد.
در این حمله، مهاجمان چند لایه فایل را روی یکدیگر قرار داده بودند:
ZIP → ISO → CHM → HTA → اجرای کد
ابتدا یک فایل ZIP از طریق ایمیل فیشینگ ارسال میشد. پس از استخراج ZIP، قربانی به یک فایل ISO میرسید.
در مرحله بعد، ISO شامل یک فایل CHM بود که با تکنیک Polyglot ساخته شده بود.
هنگامی که کاربر فایل CHM را با ابزار Windows Help باز میکرد، محتوای تعبیهشده در آن میتوانست یک اسکریپت JavaScript را اجرا کند. این اسکریپت نیز برنامه mshta را فراخوانی میکرد تا محتوای مخرب HTA را پردازش کند.
این حمله نمونهای از این است که مهاجمان چگونه میتوانند چند قابلیت متفاوت فایلها و برنامههای سیستمعامل را در یک زنجیره حمله به کار بگیرند.
آیا آنتیویروس و EDR میتوانند فایل Polyglot را تشخیص دهند؟
پاسخ ساده این است: بستگی به محصول و نحوه تحلیل فایل دارد.
همه راهکارهای امنیتی فایلهای Polyglot را به یک شکل پردازش نمیکنند. بنابراین برای ارزیابی دقیق یک محصول، باید مستندات فنی آن بررسی شود یا آزمایش کنترلشدهای در محیط آزمایشگاهی انجام شود.
با این حال، چند نکته مهم وجود دارد.
پسوند فایل همیشه قابل اعتماد نیست
راهکارهای امنیتی حرفهای معمولاً صرفاً بر اساس پسوند فایل تصمیم نمیگیرند.
برای مثال، یک فایل با پسوند .jpg الزاماً یک تصویر واقعی نیست.
به همین دلیل بسیاری از محصولات امنیتی علاوه بر پسوند، محتوای فایل و ساختار داخلی آن را نیز بررسی میکنند.
تشخیص اولیه فایل میتواند روی عمق تحلیل تأثیر بگذارد
اگر یک فایل در مرحله ابتدایی بهعنوان یک تصویر بیخطر شناسایی شود، ممکن است همه تحلیلهای پیشرفته روی آن اجرا نشوند.
مهاجم میتواند از همین موضوع سوءاستفاده کند و در ادامه از قربانی بخواهد پسوند فایل را تغییر دهد یا آن را با برنامه خاصی باز کند.
بنابراین آموزش کاربران در کنار ابزارهای امنیتی اهمیت زیادی دارد.
چگونه فایل Polyglot را شناسایی کنیم؟
برای کاربران عادی، تشخیص چنین فایلهایی همیشه ساده نیست؛ زیرا ممکن است فایل از نظر ظاهری کاملاً طبیعی باشد.
با این حال، چند نشانه میتواند هشداردهنده باشد:
- فایل پسوند غیرمعمولی دارد.
- فرستنده از کاربر میخواهد پسوند فایل را تغییر دهد.
- کاربر باید فایل را با نرمافزاری غیرمعمول باز کند.
- فایل از منبع ناشناس یا ایمیل مشکوک دریافت شده است.
- یک فایل ظاهراً ساده، حجم یا ساختار غیرعادی دارد.
- فایل همزمان با چند نوع نرمافزار قابل پردازش است.
- برای باز کردن فایل، کاربر باید یک برنامه یا ابزار اضافی اجرا کند.
هیچکدام از این موارد بهتنهایی اثبات نمیکند که فایل Polyglot یا مخرب است؛ اما میتوانند نشانهای برای بررسی بیشتر باشند.
چگونه از سازمان در برابر حملات Polyglot محافظت کنیم؟
مقابله با این تهدید الزاماً به یک ابزار اختصاصی نیاز ندارد. مجموعهای از اقدامات امنیتی میتواند احتمال موفقیت این حملات را کاهش دهد.
۱. استفاده از Allowlist برنامهها
سازمانها میتوانند فهرستی محدود از برنامههایی که اجازه اجرا روی سیستمهای کارکنان را دارند ایجاد کنند.
برنامههای قدیمی، ابزارهای مدیریتی بلااستفاده، نرمافزارهای دسترسی از راه دور و سایر برنامههای غیرضروری بهتر است حذف یا مسدود شوند.
۲. استفاده از امنیت پیشرفته ایمیل
راهکارهای امنیت ایمیل که از فناوریهایی مانند CDR و Sandbox/Detonation استفاده میکنند، میتوانند برای بررسی پیوستهای مشکوک مفید باشند.
CDR یا Content Disarm and Reconstruction با حذف بخشهای بالقوه خطرناک و بازسازی فایل، نسخهای امنتر ایجاد میکند.
در فناوری Detonation نیز فایل مشکوک در یک محیط ایزوله اجرا و رفتار آن بررسی میشود.
سازمانها بهتر است تحلیل عمیق را برای مواردی مانند فایلهای آرشیوی، اسناد Office، پسوندهای غیرمعمول و فایلهای دارای نشانههای چندفرمتی فعال کنند.
۳. پیکربندی مناسب EDR
سیستمهای EDR باید علاوه بر خود فایل، نحوه استفاده فرایندها از فایلها را نیز بررسی کنند.
رفتارهایی مانند اجرای یک فایل CHM از طریق mshta یا اجرای فایلهای غیرمعمول توسط rundll32 میتواند نشانهای از یک زنجیره حمله باشد.
۴. ایجاد قوانین تشخیص رفتار غیرعادی
یکی از روشهای مؤثر، نظارت بر ارتباط میان فرایندها و فایلهایی است که آنها اجرا یا پردازش میکنند.
برای مثال:
- CHM →
mshta - HTML →
rundll32 - فایل Office → اجرای فرایند غیرمعمول
- آرشیو → اجرای مستقیم اسکریپت یا فایل اجرایی
چنین الگوهایی میتوانند بهعنوان شاخصهای رفتاری برای ایجاد هشدار امنیتی استفاده شوند.
۵. آموزش کارکنان
حتی بهترین ابزارهای امنیتی نیز نمیتوانند تمام سناریوهای حمله را متوقف کنند.
کاربران باید بدانند که درخواستهایی مانند:
«پسوند فایل را تغییر بده.»
یا:
«این فایل را با برنامه دیگری باز کن.»
میتوانند بخشی از یک حمله باشند.
آموزش کارکنان درباره فایلهای Polyglot، فیشینگ و رفتارهای غیرعادی فایلها میتواند یکی از لایههای مهم دفاعی سازمان باشد.
آیا تغییر پسوند فایل میتواند آن را خطرناک کند؟
تغییر پسوند بهتنهایی معمولاً محتوای فایل را تغییر نمیدهد.
اما در مورد فایلهای Polyglot، تغییر پسوند ممکن است باعث شود برنامه دیگری فایل را باز و بخش متفاوتی از ساختار آن را پردازش کند.
به همین دلیل، تغییر پسوند فایل به درخواست یک فرستنده ناشناس یا یک ایمیل مشکوک، میتواند یک علامت هشدار باشد.
تفاوت فایل Polyglot با فایل معمولی چیست؟
یک فایل معمولی معمولاً برای یک فرمت مشخص طراحی شده و نرمافزار مربوطه آن را مطابق همان ساختار پردازش میکند.
اما فایل Polyglot بهگونهای ساخته میشود که بیش از یک تفسیر معتبر از ساختار آن امکانپذیر باشد.
برای مثال، یک فایل میتواند از دید یک نرمافزار PNG و از دید نرمافزار دیگری ZIP باشد.
همین قابلیت، زمینه سوءاستفاده مهاجمان را فراهم میکند.
جمعبندی
فایلهای Polyglot یکی از تکنیکهای جالب و در عین حال خطرناک در حملات سایبری هستند. مهاجم با ترکیب هوشمندانه ساختار چند فرمت فایل میتواند فایلی ایجاد کند که بسته به نرمافزار مورد استفاده، به شکل متفاوتی تفسیر شود.
این تکنیک میتواند برای عبور از برخی فیلترهای امنیتی، فریب کاربران، مخفی کردن Payload و پیچیدهتر کردن بررسیهای امنیتی مورد استفاده قرار گیرد.
با این حال، مقابله با آن الزاماً به راهکار پیچیدهای نیاز ندارد. استفاده از امنیت چندلایه، تحلیل عمیق فایلها، EDR، امنیت پیشرفته ایمیل، محدود کردن برنامههای قابل اجرا و مهمتر از همه آموزش کاربران میتواند سطح ریسک را به میزان قابل توجهی کاهش دهد.
نکته کلیدی این است که در امنیت سایبری نباید تنها به پسوند فایل یا اولین تشخیص نوع فایل اعتماد کرد؛ بلکه ساختار، محتوای واقعی و نحوه استفاده از فایل نیز باید مورد بررسی قرار گیرد.
سوالات متداول درباره فایل Polyglot
فایل Polyglot چیست؟
فایل Polyglot فایلی است که میتواند توسط نرمافزارهای مختلف بهعنوان دو یا چند فرمت متفاوت تفسیر و پردازش شود.
آیا فایل Polyglot همیشه مخرب است؟
خیر. تکنیک Polyglot بهخودیخود بدافزار نیست و میتواند کاربردهای فنی و پژوهشی داشته باشد؛ اما مهاجمان سایبری میتوانند از آن برای پنهان کردن محتوای مخرب و دور زدن برخی کنترلهای امنیتی استفاده کنند.
آیا آنتیویروس میتواند فایل Polyglot را تشخیص دهد؟
بستگی به محصول و روش تحلیل آن دارد. راهکارهای پیشرفته معمولاً علاوه بر پسوند، ساختار و محتوای فایل و در برخی موارد رفتار آن را نیز بررسی میکنند.
آیا تغییر پسوند فایل خطرناک است؟
تغییر پسوند بهتنهایی معمولاً فایل را مخرب نمیکند، اما در حملات Polyglot ممکن است باعث شود فایل توسط نرمافزار دیگری پردازش شود و بخش متفاوتی از آن مورد استفاده قرار گیرد.
چگونه از فایلهای Polyglot در برابر حملات سایبری محافظت کنیم؟
استفاده از امنیت پیشرفته ایمیل، EDR، تحلیل عمیق فایلها، Sandbox، محدودسازی برنامههای قابل اجرا، قوانین تشخیص رفتار غیرعادی و آموزش کارکنان از مهمترین اقدامات دفاعی هستند.
آیا فایلهای DOCX و XLSX هم میتوانند Polyglot باشند؟
این فرمتها ساختار مبتنی بر ZIP دارند و به همین دلیل در برخی سناریوهای فنی میتوانند در ترکیبهای چندفرمتی مورد استفاده قرار گیرند. با این حال، هر فایل DOCX یا XLSX لزوماً Polyglot یا مخرب نیست.