Zip Bomb

92

Zip Bomb

یک Zip bomb  که گهگاه با نام‌های zip of death و decompression bomb هم صدا زده می‌شود، یک فایل آرشیوی (Archive file) ناخواسته بوده که با هدف کِرَش یا غیرقابل استفاده کردن برنامه یا سیستمی که آن را اجرا می‌کند، طراحی شده است. در بیشتر مواقع ماموریت این فایل آرشیویِ پرحاشیه! از کار انداختن آنتی‌ویروس است تا بعد از آن تا مسیر برای ورود ویروس‌های مختلف باز شود.

بر خلاف بدافزارها و یا فایل‌های ناخواسته مرسوم که فعالیت برنامه را مختل می‌کنند، یک zip bomb، بصورت تعمدی به برنامه این اجازه را می‌دهد تا آن را اجرا کند اما از آنجایی که فایل آرشیو شده بدقت و با مقدار زیادی فشرده‌سازی شده است، unpack کردن آن (مثلا توسط اسکنر برای تشخیص ویروس)، زمان، فضای دیسک و مقدار مموری بسیار زیادی می‌گیرد. بسیاری از آنتی‌ویروس‌های مدرن، با تشخیص zip bomb از فایل آرشیوی معمولی، از unpack کردن آن اجتناب می‌کنند.

بد نیست این نکته را هم بدانید که zip bomb ها بسته به میزان حجم فشرده شده‌شان، علاوه بر آنتی‌ویروس‌ها برای مختل کردن فایروال‌ها هم بکار می‌روند.

 

 

 

اما در واقعیت چه اتفاقی می‌افتد؟

 

یک zip bomb برای انتقال راحت و همچنین مشکوک نزدن 🙂 معمولا یک فایل کوچک و کم حجم در نظر گرفته می‌شود در حالی که میزان حجم محتوای درون این فایل به نظر بی‌آزار، آنقدر زیاد است که یک سیستم توان پردازش آن را ندارد.

بطور مثال ( در اینجا باید بخودتان قول دهید تا از مثال گفته شده در جهت سوء استفاده نکنید!)… بله.. بطور مثال یکی از zip bomb های معروف فایلی‌ست به نام ۴۲٫zip. این فایل در ظاهر ۴۲ کیلوبایت است ولی میزان دیتای فشرده سازی شده در آن ۵ لایه تودرتو (nested) بصورت کدگذاری شده، طراحی شده است. هرلایه، شامل ۱۶ فایل zip شده است و متعاقبا هریک از فایل‌های zip شده در لایه بعدی خود دارای ۱۶ فایل zip شده دیگر و همینطور بصورت درختی تا ۵ لایه طراحی را فرض کنید.

هرنود (فایل) انتهایی این درخت سایزی برابر ۳٫۴ گیگابایت دارد و در مجموع میزان سایز unpack شده فایل ۴۲ کیلوبایتی ۴۲٫zip، سایزی برابر ۴٫۵ PB خواهد داشت.

 

 

 

همینجا می‌توانید تصور کنید که این فایل به چه میزان فشرده سازی شده و تحت فشار 🙂 است.

 

در بسیاری از آنتی‌ویروس‌ها برای آنکه شرایط buffer-over-flow و همچنین از دسترس خارج نشدن مموری رخ ندهد، فقط بخشی از لایه‌های موجود در فایل zip باز شده و اسکن می‌شوند.

علاوه بر zip bomb هایی که با حجم بسیار بالایی فشرده سازی شده‌اند، فایل های zip ای هم وجود دارند که برخلاف فایل های zip گفته شده، در هنگام unpack شدن خود را کپی می‌کنند. در این صورت با اسکن و یا unpack کردن اینگونه فایل ها در یک لوپ بی نهایت از فایل های کپی شده و یکسان قرار می‌گیریم.

 

 

 

مانا باشید

احسان امجدی/ کارشناس و مدرس دوره‌های تحلیل امنیت

” اگر بر این باورید که با نقض قانون کپی‌رایت، وضعیتی بهتر در انتظار است، بدون ذکر نام نویسنده و منبع مجاز به انتشار متن هستید “

Get real time updates directly on you device, subscribe now.

3 نظرات
  1. میلاد اسحاقی می گوید

    خیلی جالب و ترسناک بود ! من الان واقعا گیج شدم !!! یعنی ما میتونیم با یک فایل که از ۴٫۵ KB بوده به فایلی با حجم ۴٫۵ PB برسیم ؟؟؟
    خب اگر اینطوری هست که من اصلا نمیتونم متوجه بشم چطوری اینطوری هست خب پی چرا فایل ها از تکنیک هایه فشرده سازی به این کاربردی استفاده نمیکنن ؟ الان این اتفاق برای آنتی ویروس ها یک حمله متداول هست یا نه هنوز نو و ناآشنا برخورد میشه !!
    کلا خیلی خیلی بحث جالبی هست اگر توضیحات بیشتری بدی من واقعا ممنونت مشم چون الان مثل یک علامت سوال نشستم جلوی مانیتور 🙂

    1. احسان امجدی می گوید

      این که در حال حاضر چرا از این روش برای فشرده سازی های معمولی استفاده نمیشه؛ رو نمیدونم… اینو باید از مایکروسافت پرسید 🙂
      ولی خوب از یک بُعد علت میتونه این باشه که این مدل فشرده سازی بر پایه همین فشرده سازی های معمولی صورت میگیره ولی با این تفاوت که بصورت لایه های تو در تو این فشرده سازی انجام میشه….

      بُعد دوم اینه که اگه فشرده سازی به این نحو رایج بشه، اونوقت این ترافیک که قراره در طول مسیر از دیوایس های امنیتی مختلفی عبور کنه و بخواد تو هرکدومش بطور کامل وارسی بشه، اونوقت لود و بار خیلی زیادی رو در طول مسیر به ازای هر دیوایس ایجاد میکنه و به احتمال خیلی زیاد باعث اختلال بشه.

      بُعد سوم فکر میکنم این باشه که اگه میزان فشرده سازی بصورت رایج بیشتر از یک حدی باشه، اونوقت سوء استفاده ای که با استفاده از این قابلیت باب میشه، فکر میکنم قبل توجه باشه؛؛؛ مثلا براحتی میشه یک بدافزار مخرب حجیم رو بی هیچ دانشی در یک فایل زیپ کوچک جا کرد و به اینور و اونور ایمیل زد… فکرش رو بکن… سنگ رو سنگ بند نمیشه

      بُعد چهارم اینکه برای اینکه دیوایس های بین راه نتونن کل محتوا رو باز کرده و وارسی کنند (در بهترین حالت باعث کندی و لود میشه)، میان و این محتوای حجیم رو بصورت لایه لایه فشرده سازی کرده و هر لایه رو کد می کنند. مثلا اگه بتونن ۷ لایه کد کنند، آنتی ویروس ها در بهترین حالت شاید فقط بتونن ۴ لایه رو decode کنن. اینطوری براحتی محتوای ناخواسته و مخرب به سیستم ها منتقل میشه.
      منظور اینکه برای این که علاوه بر بحث فشرده سازی، باید coding هم صورت بگیره که دیگه کار هرکسی نیست و با هر دیوایسی هم نمیشه اینکارو انجام داد.

      بحث جدیدی نیست ولی خوب همونطور که میبینی دور از ذهن هم نیست

  2. میلاد اسحاقی می گوید

    عالی بود 🙂 من از مایکروسافت پرسیدم ولی خب یه چیز هایی گفت که نمیتونم اینجا بگم باید حضوری بهت بگم 🙂
    اینکه وارسیشون خیلی سخت مبشه کاملا موافقم ولی خب بالاخره اگر از این تکنیک ها استفاده بشه پی میشه یجورایی اختلال ایجاد کرد یا دور زد همونطور که خودت هم گفتی >!!> با این دید یه مقداری خطرناک دیده میشه یعنی خب بعضی ها میخوان که سنگ روی سنگ بند نشه ! خب پس چرا الان سنگ روی سنگ بند شده ؟ پس حتما یه کاسه ای ، تشتی ، کوزه ای زیر نیم کاسه هست
    ولی خب واقعا خیلی جالب شد ، حداقل من نسبت به این موارد دید کافی ندارم و با خوندن این مطلب خیلی مشتاق شدم که بیشتر ازش مطلب بخونم ، خیلی روش جالبی بود ، مرسی از زمانی که گذاشتی و کلی استفاده کردم

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.