fork bomb چیست ؟
در دنیای امنیت و مدیریت سیستمعاملها، یکی از مسائل مهم و پیچیده که همواره مورد توجه قرار میگیرد، حملات و آسیبپذیریهای مختلفی است که ممکن است یک سیستم را تهدید کنند. یکی از این تهدیدات که به عنوان یک نوع حمله دنایال سرویس (Denial of Service یا DoS) شناخته میشود، بمب فورک (Fork Bomb) است. Fork Bomb یک نوع حمله است که با استفاده از یک روش بسیار ساده اما مؤثر، منابع سیستم را مصرف کرده و باعث عدم کارایی و در نهایت توقف سیستم میشود.
Fork Bomb به خصوص در محیطهای چندکاربره مانند سرورهای لینوکسی و ویندوزی که منابع سیستم باید بین کاربران متعدد به اشتراک گذاشته شود، میتواند مشکلات جدی ایجاد کند. این حمله با ایجاد بینهایت پردازش جدید (fork)، تمامی منابع CPU و حافظه را مصرف کرده و به این ترتیب سیستم را از کار میاندازد. در این مقاله، به بررسی دقیقتر نحوه کارکرد Fork Bomb، چگونگی پیادهسازی آن در سیستمعاملهای لینوکس و ویندوز، و روشهای مقابله با این حمله خواهیم پرداخت.
Fork Bomb در لینوکس
نحوه کارکرد Fork Bomb در لینوکس
در سیستمعامل لینوکس، Fork Bomb با استفاده از دستور fork() در زبان C یا با استفاده از Bash Shell به راحتی قابل اجرا است. این دستور وظیفه دارد تا یک فرایند جدید (child process) ایجاد کند که دقیقاً یک کپی از فرایند والد (parent process) است. زمانی که این عمل به صورت مکرر و بدون توقف انجام شود، تعداد زیادی فرایند جدید ایجاد شده و در نتیجه منابع سیستم به سرعت مصرف میشوند.
مثال کد Fork Bomb در لینوکس
یکی از معروفترین نمونههای Fork Bomb در لینوکس به صورت یک خط کد در Bash Shell به شرح زیر است:
:(){ :|:& };:توضیح کد
این کد به صورت بازگشتی عمل میکند:
- تعریف تابعی به نام
:که خود را اجرا میکند. - این تابع خروجی خود را به یک نمونه دیگر از خود و همچنین به یک پروسه دیگر (با استفاده از
&) ارسال میکند. - سپس تابع
:دوباره فراخوانی میشود.
این روند بیپایان ادامه پیدا میکند و تعداد زیادی فرایند ایجاد میشود تا جایی که منابع سیستم تمام شود و سیستم متوقف گردد.
مقابله با Fork Bomb در لینوکس
برای مقابله با Fork Bomb در لینوکس، میتوان محدودیتهایی را بر روی تعداد فرایندهایی که یک کاربر میتواند ایجاد کند، اعمال کرد. این کار با استفاده از فایل /etc/security/limits.conf و اضافه کردن خطوط زیر انجام میشود:
* hard nproc 100این تنظیمات محدودیت سختافزاری (hard limit) برای تعداد فرایندهایی که هر کاربر میتواند ایجاد کند را به 100 میرساند. این مقدار بسته به نیازهای سیستم میتواند تغییر کند.
Fork Bomb در ویندوز
نحوه کارکرد Fork Bomb در ویندوز
در سیستمعامل ویندوز، Fork Bomb با استفاده از زبانهایی مانند Batch Script یا PowerShell پیادهسازی میشود. ویندوز نیز از مکانیزم مشابهی برای ایجاد فرایندهای جدید استفاده میکند و با ایجاد بینهایت پروسه، منابع سیستم را مصرف میکند.
مثال کد Fork Bomb در ویندوز
یک نمونه ساده از Fork Bomb در ویندوز با استفاده از Batch Script به شرح زیر است:
:start
start %0
goto startتوضیح کد
این کد نیز به صورت بازگشتی عمل میکند:
- تعریف یک برچسب به نام
start. - اجرای یک نمونه جدید از همان اسکریپت (
%0) با استفاده از دستورstart. - بازگشت به برچسب
startو تکرار فرایند.
مقابله با Fork Bomb در ویندوز
برای مقابله با Fork Bomb در ویندوز، میتوان از تنظیمات گروهی (Group Policy) برای محدود کردن تعداد فرایندهای همزمانی که هر کاربر میتواند ایجاد کند، استفاده کرد. این کار با انجام مراحل زیر امکانپذیر است:
- اجرای
gpedit.mscبرای باز کردن ویرایشگر سیاستهای گروهی. - رفتن به مسیر
Computer Configuration -> Administrative Templates -> System -> Logon. - تنظیم محدودیت بر روی “Maximum number of processes a user can have” به مقدار مورد نظر.
استفاده از نرمافزارهای نظارتی
علاوه بر این، استفاده از نرمافزارهای نظارتی و مدیریت منابع مانند Windows Task Manager یا ابزارهای پیشرفتهتر نظیر Process Explorer نیز میتواند به شناسایی و متوقف کردن فرایندهای مشکوک کمک کند.
Fork Bomb یک تهدید جدی برای پایداری سیستمعاملهای چندکاربره مانند لینوکس و ویندوز است. با فهم دقیق نحوه کارکرد این حمله و اتخاذ تدابیر مناسب مانند محدود کردن تعداد فرایندهای همزمان، میتوان از اثرات مخرب آن جلوگیری کرد. همچنین، استفاده از ابزارهای نظارتی و مدیریتی میتواند به شناسایی سریع و متوقف کردن چنین حملاتی کمک کند. در نهایت، آگاهی و آموزش کاربران نیز نقش مهمی در جلوگیری از اجرای ناخواسته این نوع اسکریپتها دارد.
آیا این مطلب برای شما مفید بود ؟




