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 کنید.