در سالهای اخیر ابزار ها و خدمات گسترش وسیعی برای توسعه فضای وب ایجاد شد.سیستمهای مدیریت محتوا (CMS) مانند وردپرس، جوملا و بسیاری دیگر به صاحبان کسب و کار اجازه می دهد که سریع و کارامد برای خود یک حضور آنلاین ایجاد کنند. معماری توسعه پذیر، ماژول ها و پلاگین های ارزشمند و اکوسیستم های توسعه پذیر آنها داشتن یک وب سایت را بدون نیاز به سالها آموزش امکان پذیر می کند.
بدون شک این یک چیز با ارزش است اما از طرف دیگر مشکلی وجود دارد و آن این است که بسیاری از طراحان وب نمی دانند که چگونه از امنیت وب سایت خود مطمئن شوند و یا حتی درکی از اهمیت امنیت وب سایت ندارند. ما در این آموزش 10 مرحله مهم که طراحان وب برای تامین امنیت وب سایت خود باید در نظر بگیرند را ارائه میدهیم.1- بروز رسانی، بروز رسانی، بروز رسانی:وب سایتهای بسیاری هر روزه در معرض خطر ناشی از استفاده از نرم افزارهای منسوخ و ناامنی که بر روی آنها اجرا می شوند، هستند. این خیلی مهم است که وب سایت خود را با پلاگین ها و نسخه CMS جدیدی که در دسترس است بروز رسانی کنید.امروزه بیشترین هک ها کاملا اتوماتیک هستند توسط رباتهایی که بطور مداوم سایتها را اسکن می کند و بدنبال بهره برداری از فرصتها هستند. بروز رسانی یکبار در ماه یا یکبار در هفته خیلی کافی نیست زیرا به احتمال بسیار زیاد رباتها قبل از شما یک آسیب پذیری برای نفوذ پیدا کرده اند. مگر اینکه شما درحال اجرای website firewall like CloudProxy باشید که به محض انتشار آن نیاز به بروز رسانی دارید. اگر در حال اجرای ورد پرس هستید پلاگین ‘WP Updates Notifier توصیه می شود. این ایمیل ها به شما اجازه میدهد از زمانی که یک پلاگین یا هسته ورد پرس برای بروزرسانی موجود باشد ، باخبر شوید. شما می توانید با دنبال کردن @sucuri_security در توتیتر از بروز رسانی و هشدارهای امنیتی اطلاع پیدا کنید.2- Passwords :
برای کار کردن به روی سایت مشتری اغلب نیاز است که با استفاده از جزئیات مدیریت کاربران به سایت/ سرور آنها وارد شویم. در بسیاری از موارد Root Password آنها امن نبوده ولی کمی ترسناک است که این موضوع به آنها گفته شود. اما admin/admin ترکیب امنی برای Username و Password نیست. اگر Password شما در لیست پسوردهای رایج مشاهده شود باعث می شود که سایت شما نقاطی برای هک داشته باشد.حتی اگر Password شما در این لیست وجود نداشته باشد، تصورات اشتباهی در مورد رمز عبور قوی وجود دارد.سهل انگاری در مورد انتخاب اندازه Password مناسب بخشی از مشکل است.هنگامی که می خواهید یک پسورد مناسب انتخاب کنید باید سه مورد زیر را در نظر بگیرید:- پیچیده بودن: Password باید بصورت تصادفی(Random) انتخاب شود. با انتخاب Password تصادفی دیگر کسی با پی بردن به تاریخ تولد یا تیم ورزشی مورد علاقه شما و دیگر موارد نمی تواند حساب شما را هک کند.- طولانی بودن : Password باید از بیشتر از 12 کاراکتر باشد.وقتی که برای محدودیتی برای وارد کردن رمز عبور وجود نداشته باشد یک رمز عبور 12 کاراکتری به راحتی می تواند حدس زده شود. بنابراین بهتر است که رمز عبور طولانی تر انتخاب شود و بیش از 12 کاراکتر باشد.- منحصر بفرد بودن: از Password تکراری استفاده نکنید.3- یک سایت = یک ظرف:
من وسوسه شدن را درک می کنم. شما یک فضای نامحدودی برای میزبانی وب دارید پس چرا سایتهای بسیاری بر روی آن قرار ندهید! متاسفانه این یکی از بدترین شیوه ها از نظر امنیتی است . با قرار دادن سایتهای بسیار بر روی یک فضا سطح حمله بزرگی ایجاد می کنید. بعنوان مثال شما ممکن است یک سایت که شامل وردپرس و با یک موضوع و 10 پلاگین می باشد که بر روی آن نصب شده است بطور بالقوه ممکن است مورد هدف مهاجمان قرار بگیرد. حال اگر بر روی سروری که مورد حمله مهاجمان قرار گرفته شما میزبان 5 سایت باشید که سه تا از آنها با ورد پرس و دوتا با جوملا طراحی شده باشند با 5 موضوع و 50 پلاگین که بر روی آنها نصب شده است، وضعیت بدتر خواهد شد.این کار نه تنها باعث می شود که تمامی سایتهای شما همزمان هک شوند بلکه فرایند پیشگیری و پاکسازی به زمان بیشتری نیاز پیدا می کند.بعد از اینکه پاکسازی با موفقیت انجام شد شما باید بفکر بازنشانی پسورد باشید، به جای اینکه این کار را فقط برای یک سایت انجام دهید اکنون باید برای تمام سایتهای خود پسورد را بازنشانی کنید. هر پسورد مرتبط با هر وب سایت، تمامی سیستم های مدیریت محتوا(CMS)، پایگاه داده ها، FTP تمامی کاربران سایتها باید تغییر کند. در نهایت بعد از انجام تمامی این موارد به خانه اول بازمیگردید و وب سایت شما ممکن است که دوباره آلوده شود.4- دسترسی محسوس کاربر :
این قانون برای وب سایتهایی است که چندین کاربر برای لاگین کردن به سایت دارند.این مهم است که هر کاربر برای انجام کار خود اجازه دسترسی داشته باشد. اگر نیاز دارند بصورت لحظه ای به آنها دسترسی داده شود و بعد از اتمام کارشان این دسترسی محدود شود. این مفهوم بعنوان حداقل امتیاز شناخته می شود.بعنوان مثال اگر دوستی دارید که می خواهد یک پست در سایت شما قرار دهند نیازی نیست که دسترسی کامل داشته باشد. این حساب کاربری فقط باید قادر به ایجاد پست جدید و ویرایش باشد.نیازی نیست دسترسی که قادر به تغییر تنظیمات وب سایت است را داشته باشد.داشتن دسترسی هایی که به دقت تعریف شده می تواند اشتباهات و عواقب خطر را محدود کند و می تواند وب سایت را از آسیب های کاربران سرکش محافظت کند.اغلب مدیریت کاربران بخش پاسخگویی و نظارت را نایده می گیرند. اگر مردم یک حساب کاربری مشترک داشته باشند وناخواسته توسط کاربران تغییر کند، چگونه شخصی را که مسئول است را پیدا می کنید؟وقتی برای هر کاربر حساب جداگانه ای داشته باشید می توانید رفتار هر کاربر را جداگانه بررسی کنید، بنابراین می توانید نقاط ناهنجار را پیدا کنید و شخصی که حسابش در معرض خطر است را تشخیص دهید.5- تغییر تنظیمات پیش فرض CMS ها :
برنامه های CMS امروزی اگرچه برای استفاده بسیار راحت می باشند اما از دیدگاه امنیتی برای کابران نهایی بسیار خطرناک هستند.تا کنون رایج ترین حملات در وب سایتهای بوده که کاملا اتوماتیک هستند و بسیاری از حملات با تکیه بر تنظیمات پیش فرض انجام می شود. شما با تغییر تنظیمات پیش فرض هنگام نصب CMS ها می توانید از بسیاری از حملات دوری کنید.معمولا ساده ترین راه برای تغییر تنظیمات پیش فرض هنگام نصب CMS است اما بعد از نصب هم می توان این نتظیمات را تغییر داد.6- انتخاب توسعه پذیری :
یکی از زیباترین نکات در مورد برنامه های کاربردی CMS های امروزی توسعه پذیر بودن آنهاست. اما این توسعه پذیر بودن بزرگترین نقطه ضعف آنها است. تعداد زیادی از پلاگین، افزودنیها، و ماژول ها وجود دارند که تقریبا هر قابلیتی که شما می توانید تصور کنید را ارائه میدهند.واقعیت این است که این تعداد بیشمار برنامه های افزودنی مانند شمشیر دو لبه هستند، اغلب افزونه های متعددی پیشنهاد می شود که قابلیت های مشابه دارند، شماچگونه متوجه می شوید که کدامیک را نصب کنید؟در اینجا مواردی را بیان می کنیم که معمولا در هنگام تصمیم گیری در مورد انتخاب افزونه ها برای نصب باید در نظر گرفته شوند:- اولین مورد این است که پسوندی که به تازگی بروزرسانی شده انتخاب شود.اگر آخرین بروزرسانی برای یک سال قبل باشد باعث این نگرانی می شود که نویسنده دیگر قصد ندارند بر روی آن کاری انجام دهد. بهتر است از افزونه هایی استفاده شود که بطور مداوم نویسنده در حال توسعه آنها هستند.- همچنین به قدمت و تعداد نصب افزونه های باید توجه شود.افزونه هایی که خیلی زیاد نصب شده اند نسبت به آنهایی که حدود 100 مرتبه نصب شده و توسط یک نویسنده برای اولین بار منتشر شده، بیشتر قابل اعتماد می باشند.نه تنها توسعه دهنده های با تجربه ایده های بهتری دارند بلکه احتمال اینکه بخواهند شهرت و محبوبیت خود را با توسعه کدهای مخرب از بین ببرند بسیار کم است.- اینکه شما برنامه های افزودنی و تم های خود را از منابع قانونی دانلود کنید بسیار مهم است.سایتهای بسیاری هستند که نسخه های رایگانی را به شما برای دانلود پیشنها می دهند.وب ساینها این نسخه های رایگان را فقط با یک هدف ارائه میدهند: آلوده کردن وب سایت شما با نرم افزارهای مخرب.7- بک آپ گرفتن :
مانند هر چیز دیگر در دنیای دیجیتال، ممکن است که یکباره همه چیز از بین برود. بهتر است که گاهی اوقات از وب سایت خود بک آپ بگیرید. بک آپ گرفتن از وب سایت خیلی مهم است اما ذخیره سازی این بک آپ بر روی سرور یک ریسک امنیتی خیلی بزرگ است. این بک آپ که شامل نسخه های اصلاح نشده CMS و افزونه هایی است که در دسترس عموم می باشد، به هکر ها اجازه میدهد که به راحتی به سرور شما دسترسی پیدا کنند.8- فایلهای پیکربندی شده سرور :
شما باید درباره پیکربندی فایلهای وب سرور خود اطلاعات داشته باشید. وب سرورهای آپاچی از فایل .htaccess و سرورهای Nginx از فایل nginx.conf و سرورهای Microsoft IIS از فایل web.config. استفاده می کنند که اغلب در root web directory یافت می شوند و بسیار قدرتمند می باشند. این فایلها به شما اجازه می دهند قوانینی از جمله دستورات بهبود امنیت وب سایت را اجرا کنید.9- نصب SSL :
در مورد مقالات بسیاری که به اشتباه بیان کرده اند که نصب SSL همه مسائل امنیتی شما را حل می کند دو طرز تفکر وجود دارد. SSL سایت شما را در برابر هیچ حمله مخربی محافظت نمی کند و توزیع نرم افزارهای مخرب را متوقف نمی کند. SSL ارتباط بین دو نقطه A و B – بین سرور وب سایت شما و مرورگر را رمزگذاری می کند. این رمز گذاری به این دلیل که مانع از این می شود که هر کسی قادر به مشاهده ترافیک و اطلاعات انتقالی شما نباشد بسیار با اهمیت است. SSL برای امنیت وب سایت تجارت الکترونیک و هر وب سایتی که فرم هایی با اطلاعات حساس و شخصی افراد را می پذیرد بسیار مهم است. گواهینامه های امنیتی SSL انتقال اطلاعات بازدیدکنندگان شما را محافظت می کند.10- مجوزهای دسترسی فایل :
مجوزهای دسترسی تعریف می کند که چه کسی می تواند با فایل چه کاری انجام دهد.هر فایل سه مجوز دسترسی دارد :- خواندن (Read) : به این سطح دسترسی عدد 4 داده می شود.- نوشتن (Write) : به این سطح دسترسی عدد 2 داده می شود.- اجرا کردن (Execute) : به این سطح دسترسی عدد 1 داده می شود.اگر میخواهید چندین اجازه دسترسی را به شخصی بدهید کافی است که اعداد را باهم جمع کنید. بعنوان مثال اگر میخواهید به شخصی اجازه خواندن و نوشتن بدهید باید در مجوز دسترسی کاربر عدد 6 را وارد کنید. اگر علاوه بر خواندن و نوشتن مجوز اجرای فایل ها را هم بدهید باید عدد 7 را وارد کنید.نتیجه :با انجام این ده مرحله نسبتا ساده شما می توانید بطور چشمگیری امنیت سایت خود را افزایش دهید، هرچند که انجام این مراحل به تنهایی تضمین نمی کند که سایت شما هرگز هک نشود اما می تواند اکثریت قریب به اتفاق حملات خودکار را متوقف کند.