SuHosin چیست و چه زمانی به کمک ما می رسد؟
اگر شما مدیر یک سرور اشتراکی هستید که بر روی آن سایت های زیادی وجود دارد. هر یک از این سایت ها ممکن است دارای آسیب پذیری هایی باشند که امنیت کل سرور شما را تهدید می کنند یا فرض کنید شما یک برنامه نویس PHP هستید که در یک تیم برنامه نویسی کار می کنید. برنامه ای که ایجاد می کنید دارای بخش های مختلفی است که توسط برنامه نویسان دیگر ایجاد شده و امکان چک کردن همه کدهای آنها از نظر امنیتی تقریبا وجود ندارد.اینجاست که SuHosin به کمک شما می آید.
suHosin یک پلاگین امنیتی برای زبان PHP است. نام این پلاگین توسط ایجاد کننده ی آلمانی آن به زبان کره ای و به معنای فرشته ی محافظ انتخاب شده است. ‘su-ho-shin’ و یا در فارسی ‘سوحشین ‘ برای امن سازی سرور از مشکلات امنیتی شناخته شده و شناخته نشده در ابزار ایجاد شده به زبان PHP و یا خود هسته ی PHP ایجاد شده است و از دو بخش کلی تشکیل شده است. بخش اول آن یک Patch امنیتی برای هسته PHP است که محافظت Low Level را برعهده دارد. این بخش می تواند جلوی آسیب های Buffer Overflows یا آسیب پذیری های Format String را بگیرد. بخش دوم آسیب پذیری های شناخته شده و یا شناخته نشده دیگر را محافظت می کند.
چرا از suHosin استفاده کنیم؟ فرض کنید شما تنها برنامه نویس یک سایت به زبان PHP هستید و تنها سایت روی سرور نیز دست شما است و شما به کد خود اعتماد دارید. بازهم استفاده از suHosin می تواند برای شما مفید باشد، چراکه ممکن است آسیب پذیری جدید کشف شود که شما آن را در کد خود در نظر نگرفته اید.
حتی گاهی اطلاعات شما درباره امن سازی کد کافی نمی باشد. برای مثال می توان به آسیب پذیری Remote Code Inclusion اشاره نمود که اکثر افراد فکر می کنند با غیر فعال کردن allow_url_fopen در php.ini می توان جلوی آن را گرفت. اما حتی در این صورت نیز می توان از php://input و یا data:// URLs استفاده کرد. در اینجا suHosin به خوبی از شما محافظت می کند.
از امکانات این پلاگین می توان به موارد زیر اشاره نمود:
- محافظت از صفحه phpinfo
- جلوگیری از آسیب پذیری های Format String
- جلوگیری از حملات مربوط به Session
- جلوگیری از Buffer Overflow
- جلوگیری از آسیب پذیری های Format String
- اضافه شدن رمزنگاری SHA256 به هسته PHP
- اضافه شدن پشتیبانی از CRYPT_BLOWFISH به تابع crypt
- محافظت از صفحه phpinfo
- محافظت از پایگاه داده(در حال حاضر آزمایشی)
- رمزنگاری کوکی ها
- جلوگیری از اجرای Remote Code Inclusion
- جلوگیری از اجرای کدهایی که در فایل های آپلود شده وجود دارند
- جلوگیری از Directory Traversal
- از کار انداختن تابع eval
- جلوگیری از حلقه های بی نهایت در کد
- جلوگیری از آسیب پذیری HTTP Response Splitting
- فیلتر کردن ورودی هایی که دارای عبارت های مشکوک هستند
- فیلتر ورودی های ASCII
- محدود کردن طول درخواست ها
- قابلیت لاگ گیری
- و ….
برای نصب suhosin در دایرکت ادمین کافیست مقدار suhosin را در فایل option.conf برابر yes قرار دهید و php و suhosin را build کنید.