۱۰ قدم برای افزایش امنیت سایت شما

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

معماری توسعه پذیر، پلاگین های غنی، ماژول ها و محیط توسعه این سیستم ها این امکان را فراهم کرده است که بدون نیاز به مطالعه و یادگیری نیازمندی های وب، بتوان یک وبسایت داشت و آن را مدیریت کرد.

بدون شک این مساله مهمی است. گرچه بخش ناخوشایندی هم وجود دارد و آن این است که بسیاری از وب مسترها نمی دانند چگونه سایت خود را ایمن نگاه دارند و حتی اهمیت امنیت را نیز درک نمی کنند. در این مقاله ۱۰ گام برای وب مسترها و صاحبان وبسایت توصیه می گردد که بتوانند به وسیله آن ها وبسایت خود را ایمن نگاه دارند.

۱٫ به روزرسانی ، به روزرسانی ، به روزرسانی ‍!!!

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

با دنبال کردن @Tasnim_co در ت/و/ی/ی/ت/ر می توانید از به روزرسانی ها و اخطارهای امنیتی مهم مطلع شوید.

     ۲٫ رمز عبور

به علت سروکار داشتن با سایت های مشتریان، اکثر اوقات با در اختیار داشتن جزییات حساب کاربری آنها وارد سایت می شوم و رمزهای عبور ناامن آنها به شدت آشفته ام می کند. شاید کمی تاسف آور به نظر برسد اما مجبورم بگویم که admin/admin به هیچ وجه ترکیب مناسبی برای نام کاربری و رمزعبور نمی باشد. با این شیوه انتخاب رمزعبور مطمینا سایت شما در معرض هک شدن قرار دارد. در زیر لیست رایج ترین رمزهای عبوری که به آسانی هک می شوند آورده شده است:

۱٫ ۱۲۳۴۵۶

۲٫ password

۳٫ ۱۲۳۴۵

۴٫ ۱۲۳۴۵۶۷۸

۵٫ qwerty

۶٫ ۱۲۳۴۵۶۷۸۹

۷٫ ۱۲۳۴

۸٫ baseball

۹٫ dragon

۱۰٫ football

۱۱٫ ۱۲۳۴۵۶۷

۱۲٫ monkey

۱۳٫ letmein

۱۴٫ abc123

۱۵٫ ۱۱۱۱۱۱

۱۶٫mustang

۱۷٫ access

۱۸٫ shadow

۱۹٫ master

۲۰٫ michael

۲۱٫ superman

۲۲٫ ۶۹۶۹۶۹

۲۳٫ ۱۲۳۱۲۳

۲۴٫ batman

۲۵٫ trustno1

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

در هنگام انتخاب رمز عبور سه مشخصه باید در نظر گرفته شود:

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

–         طولانی بودن: رمزعبور باید بیشتر از ۱۲ کاراکتر داشته باشد. ممکن است عده ای از افراد شاغل در کمیته های امنیتی رمزعبور ۱۲ حرفی و اصرار به استفاده از رمزهای عبور طولانی را مسخره بدانند. اما وقتی صحبت از ورود به سیستم به صورت آنلاین باشد، تمامی سیستم ها دفعات تلاش برای ورود به سیستم را کاهش می دهند. با وجود این شرایط حدس زدن رمزعبور ۱۲ کاراکتری بسیار سخت می شود و هیچ کس قادر به نفوذ نخواهد بود. بهتر است مجددا تکرار کنم که هر چه رمزعبور طولانی تر، بهتر!

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

۳٫ هر سایت یک ظرف!

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

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

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

پس از اتمام موفقیت آمیز پاکسازی سایت ها، وظیفه بزرگتری در بازنشانی رمزهای عبور دارید. به جای تنظیم رمزعبور برای یک سایت، با چندین مورد از آن روبرو می شوید. رمز عبور تمامی قسمت های هر سایت،پس از رفع آلودگی باید بازنشانی شود. تمامی CMSها، پایگاه های داده، کاربران FTP و … برای تمامی وبسایت ها! اگر این مرحله را انجام ندهید، مجددا تمامی وبسایت های شما آلوده می شود و سر جای اول خود بازخواهید گشت!!!

۴٫ دسترسی معقول برای کاربران

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

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

تعریف دقیق دسترسی ها می تواند امکان بروز خطا را به شدت کاهش دهد و وبسایت را از زیان های ناشی از شیطنت برخی کاربران حفظ می کند. دو مقوله «مسیولیت پاسخگویی» و «نظارت» در بسیاری از مواقع در مدیریت سایت ها در نظر گرفته نمی شود. اگر یک اکانت را به طور مشترک استفاده کنید و به وسیله آن اکانت یک تغییر ناخواسته به وجود بیاید، کدامیک از اعضای تیم شما پاسخگو خواهد بود؟

اگر اکانت های کاربران را از یکدیگر جدا کنید، می توانید با مشاهده گزارش عملکرد کاربران، آنها را کنترل کنید و ناهنجاری ها را به موقع کشف کنید.

۵٫ تغییر تنظیمات پیشفرض CMS

نرم افزارهای CMS امروزی، با وجود سهولت در استفاده، از منظر امنیتی برای کاربران نهایی (End Users) فاجعه آمیز هستند! تا کنون بسیاری از حملات به وبسایت ها به صورت خودکار و توسط روبات ها انجام گرفته و بسیاری از آنها با تکیه بر استفاده از تنظیمات پیشفرض CMS صورت گرفته گرفته است. این بدین معناست که در صورت تغییر تنظیمات پیشفرض CMS انتخابی، می توانید از بسیاری از حملات پیشگیری کنید.

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

آسانترین راه این است که به هنگام نصب CMS این تنظیمات را تغییر دهید، اما ممکن است بعدا تغییر کنند.

۶٫ انتخاب افزونه ها

یکی از زیباترین ویژگی های CMSهای امروزی قابلیت توسعه پذیری آنهاست. چیزی که بسیاری افراد تشخیص نمی دهند این است که این توسعه پذیری بزرگترین ضعف آن نیز به شمار می رود. تعداد بیشماری از افزونهها، Add-onها و پلاگین ها وجود دارند که قابلیت های مجازی فراوانی را به کاربر می دهند. اما باید توجه داشت که این میزان توسعه پذیری مانند شمشیر دولبه است. اغلب افزونههایی وجود دارند که کارایی یکسانی دارند، چگونه می توانیم یکی را برای نصب انتخاب کنیم؟ در این مواقع من موارد زیر را بررسی می کنم:

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

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

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

۷٫ Backups

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

تهیه نسخه پشتیبان از وبسایت بسیار مهم است، اما این که بخواهید این نسخه پشتیبان را بر روی وب سرور خود نگه دارید ریسک بزرگی است. فایل های پشتیبان معمولا شامل نسخه های patch نشده از CMS شما و افزونههای آن هستند که زمینه نفوذ هکرها را به راحتی فراهم می سازند.

۸٫ فایل های پیکربندی سرور

آشنا شدن با فایل های پیکربندی سرور امری لازم است. در سرورو آپاچی از فایلی به نام .htaccess ، در سرور Nginx از فایلی به نام nginx.conf و در سرور Microsoft IIS از فایلی به نام Web.conf استفاده می شود. اغلب این فایل ها در دایرکتوری روت یافت می شوند و بسیار قدرتمند هستند! این فایل ها به شما اجازه می دهند قوانین سرور که شامل دستوراتی برای بهبود امنیت وبسایت هستند را اجرا نمایید.

اگر نمی دانید که از کدام وب سرور استفاده کنید، وبسایت خود را بر روی sitecheck اجرا کنید و تب Website Details را انتخاب کنید.

در زیر قوانینی آورده شده است که پیشنهاد می کنم درباره آنها تحقیق کرده و در تنظیمات وب سرور خود اعمال کنید:

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

–         جلوگیری از هات لینک کردن تصاویر: شاید نتوان این مورد را جزء موارد امنیتی به حساب آورد، اما موجب جلوگیری از نمایش تصاویر موجود در وب سرور شما توسط وبسایت های دیگر می شود. در صورتی که تصاویر موجود در وب سرور شما توسط سایت های دیگر هات لینک شود، پهنای باند شما برای نمایش تصاویر یک وبسایت دیگر، به سرعت به پایان می رسد.

–         محافظت از فایل های حساس: می توانید برای محافظت از فایل ها و فولدرهای خاص، قوانینی را اعمال نمایید. فایل های پیکربندی CMS جزء حساس ترین فایل های موجود در وب سرور شما هستند، زیرا جزییات ورود به پایگاه داده را به صورت یک متن واضح و ساده ذخیره کرده اند. نواحی مربوط به Admin از دیگر بخش هایی هستند که نیاز به قفل گذاری دارند. هم چنین باید اجرای PHP را در نواحی شامل تصاویر و مجاز برای آپلود، محدود کنید.

قوانین و تنظیمات بسیار دیگری نیز برای اعمال در فایل پیکربندی وب سرور شما موجود است. می توانید در گوگل نام CMS خود به علاوه نام وب سرور به همراه کلمه «Security» را جستجو کنید. البته قبل از پیاده سازی قوانین آن، از قانونی بودن منابع آن اطمینان خاطر یابید.

۹٫ نصب SSL

برای ارایه این نکته کاملا دودل هستم. زیرا مقاله های بسیاری در اینترنت موجود است که به اشتباه بیان می کنند با نصب SSL می توانید تمام مشکلات امنیتی را حل کنید. SSL هیچ کاری برای محافظت از سایت شما در برابر هکرها و یا توقف توزیع بدافزار توسط آن، انجام نمی دهد. تنها کاری که انجام می دهد رمزنگاری ارتباطات بین سرور وبسایت و مرورگر است. این رمزنگاری برای یک دلیل مشخص بسیار اهمیت دارد: هیچ کس نمی تواند ترافیک این ارتباط را قطع کند. (معروف به Man in the middle attack)

SSL به طور خاص برای امنیت وبسایت های تجارت الکترونیک و هر وبسایتی که واگذاری فرم های کاربر شامل اطلاعات حساس، یا اطلاعات هویت شخصی را می پذیرد، بسیار ضروری است. گواهینامه SSL اطلاعات عبوری کاربران شما را حفاظت می کند.

۱۰٫ سطح دسترسی فایل ها

سطح دسترسی فایل ها مشخص می کند چه کسانی چه کاری را بر روی فایل ها انجام دهند.

هر فایل سه سطح دسترسی دارد و هر سطح دسترسی با یک عدد نمایش داده می شود.

–         خواندن (۴): مشاهده محتوا

–         نوشتن (۲): تغییر محتوای فایل

–         اجرا (۱): اجرای فایل برنامه و اسکریپت

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

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

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

–         گروه: هر فایل به یک گروه تخصیص داده می شود و در صورتی که کاربر عضو آن گروه باشد این دسترسی را دارد.

–         عموم افراد: همه افراد

پس اگر بخواهید که مالک دسترسی خواندن و نوشتن به طور همزمان داشته باشد، گروه تنها بتواند فایل را مشاهده کند و عموم افراد دسترسی به آن نداشته باشند، تنظیمات سطح دسترسی فایل به شکل زیر است:

[av_table purpose=’tabular’ pricing_table_design=’avia_pricing_default’ pricing_hidden_cells=” caption=” responsive_styling=’avia_scrollable_table’] [av_row row_style=’avia-heading-row’][av_cell col_style=’avia-desc-col’][/av_cell][av_cell col_style=’avia-center-col’]خواندن[/av_cell][av_cell col_style=’avia-center-col’]نوشتن[/av_cell][av_cell col_style=’avia-center-col’]اجرا[/av_cell][/av_row] [av_row row_style=”][av_cell col_style=’avia-desc-col’]مالک[/av_cell][av_cell col_style=’avia-center-col’]2[/av_cell][av_cell col_style=’avia-center-col’]4[/av_cell][av_cell col_style=’avia-center-col’]0[/av_cell][/av_row] [av_row row_style=”][av_cell col_style=’avia-desc-col’]گروه[/av_cell][av_cell col_style=’avia-center-col’]0[/av_cell][av_cell col_style=’avia-center-col’]4[/av_cell][av_cell col_style=’avia-center-col’]0[/av_cell][/av_row] [av_row row_style=”][av_cell col_style=’avia-desc-col’]عموم افراد[/av_cell][av_cell col_style=’avia-center-col’]0[/av_cell][av_cell col_style=’avia-center-col’]0[/av_cell][av_cell col_style=’avia-center-col’]0[/av_cell][/av_row] [/av_table]

بنابراین سطوح دسترسی به صورت ۶۴۰ نمایش داده می شود.

ساختار دسترسی به فولدرها هم به همین صورت است، تنها تفاوت آن این است که «اجرا» به معنی این است که دایرکتوری به عنوان دایرکتوری کاری شما معرفی می شود.

در بیشتر CMSها تنظیمات دسترسی به صورت پیشفرض درست اعمال شده اند. پس چرا این مبحث را این قدر توضیح دادم؟ هنگامی که برای خطاهای دسترسی به دنبال راه حل می گردید، همه جا افراد به شما توصیه خواهند کرد که دسترسی فایل را به ۶۶۶ و دسترسی فولدر را به ۷۷۷ تغییر دهید. این توصیه معمولا موجب رفع تمامی خطاها می گردد، اما از لحاظ امنیتی یک توصیه افتضاح است. در صورت تنظیم دسترسی های فوق، به هر شخصی این اجازه را داده اید تا کدهای مخرب را برای حذف فایل های شما وارد وبسایت کنند.

نتیجه گیری

۱۰ مورد امنیتی ساده را برای افزایش چشمگیر امنیت وبسایت خود مرور کردید. در حالی که هر کدام از این موارد به تنهایی نمی تواند ضامن امنیت وبسایت شما باشد، استفاده از همه آنها می تواند بسیاری از حمله های خودکار به وبسایت شما را با شکست مواجه کند.

آگاهی از این مسایل و فهم آن ها بینش شما را نسبت به اصول تکنولوژي افزایش می دهد و به شما در راستای تبدیل شدن به یک وب مستر یا اوپراتور سایت بهتر کمک شایانی می کند.

کلمات کلیدی:
1 نظر
  1. رضایی 1 سال قبل

    فوق العاده کاربردی بود 🙂

اظهار نظر کنید

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

*

کلیه حقوق مادی و معنوی برای تسنیم محفوظ می باشد طراحی و اجرا: گروه طراحی و توسعه تسنیم.

Log in with your credentials

Forgot your details?