بیشتر صاحبان کسبوکارهای کوچک دربارهی امنیت سایت یک فرض پنهان دارند: «ما آنقدر بزرگ نیستیم که کسی بخواهد هکمان کند.» این فرض قابل درک است و تقریبا همیشه غلط. بیشتر حملهها به سایتهای کوچک، هدفمند نیستند. ابزارهای خودکار هر روز اینترنت را برای یافتن نسخههای قدیمی و آسیبپذیر سیستمهای مدیریت محتوا، افزونهها و رمزهای ضعیف میگردند. برای این ابزارها فرقی نمیکند سایت متعلق به یک شرکت بزرگ باشد یا یک فروشگاه محلی. فقط مهم است که در باز باشد.
پیامد این حملهها برای کسبوکار کوچک هم کوچک نیست. سایتی که هک شده ممکن است به ابزار ارسال هرزنامه یا پخش بدافزار تبدیل شود، اطلاعات مشتریها را افشا کند، در نتایج جستوجو با هشدار نمایش داده شود یا بهطور کامل از دسترس خارج شود. موضع ما در گرینلبز این است: امنیت سایت کسبوکار کوچک پروژهی پیچیده و گران نیست؛ مجموعهای از عادتهای ساده است که باید پیش از حادثه شکل بگیرند. بعد از حادثه، همان عادتها چند برابر گرانتر و با خسارت تمام میشوند.
سایتهای کوچک معمولا از کجا آسیب میبینند
برای اینکه بدانیم از کجا شروع کنیم، باید ببینیم خطرهای رایج کجاست. پروژهی OWASP Top Ten فهرستی از مهمترین دستههای ریسک امنیتی در برنامههای وب منتشر میکند که مرجع شناختهشدهای در این حوزه است. بسیاری از این دستهها برای سایتهای کوچک هم صادقاند، اما در عمل، بیشتر حادثهها از چند نقطهی ساده شروع میشوند.
نرمافزار و افزونههای قدیمی
سیستم مدیریت محتوا، قالب و افزونههایی که ماهها یا سالها بهروز نشدهاند، رایجترین در ورودیاند. وقتی آسیبپذیری در نسخهای کشف و منتشر میشود، ابزارهای خودکار خیلی زود شروع به جستوجوی سایتهایی میکنند که هنوز همان نسخه را دارند.
رمزهای ضعیف و دسترسیهای پراکنده
رمز ساده برای پنل مدیریت، رمز مشترک بین چند نفر، یا حسابهایی که برای فریلنسر یا کارمند قبلی ساخته شده و هرگز حذف نشدهاند. هر حساب فعال بلااستفاده، دری است که کسی از آن مراقبت نمیکند.
نبود پشتیبان قابل بازگردانی
خود پشتیبان، جلوی حمله را نمیگیرد، اما تفاوت بین یک روز بد و یک فاجعه است. بسیاری از کسبوکارها فکر میکنند پشتیبان دارند، تا روزی که بخواهند از آن استفاده کنند و بفهمند ناقص است، قدیمی است یا روی همان سروری است که آسیب دیده.
افزونهها و کدهای ناشناخته
افزونهای که از منبعی نامعتبر نصب شده، قالبی که نسخهی رایگان غیررسمی از یک قالب پولی است، یا کدی که کسی از جایی کپی کرده و در سایت گذاشته، میتواند از روز اول حاوی کد مخرب باشد.
سه ستون امنیت پیش از حادثه
امنیت برای کسبوکار کوچک را میشود روی سه ستون ساخت: پشتیبان، دسترسی و بهروزرسانی. اگر این سه درست باشند، بخش بزرگی از خطرهای رایج پوشش داده میشود.
ستون اول: پشتیبانگیری که واقعا کار کند
پشتیبانگیری یعنی داشتن نسخهای از دادهها و فایلها که اگر نسخهی اصلی از دست رفت، بتوان آن را بازگرداند. این تعریف ساده، چند الزام مهم دارد که اغلب نادیده گرفته میشوند.
پشتیبان باید کامل باشد. هم فایلهای سایت، هم پایگاه داده و هم فایلهای بارگذاریشده مثل تصاویر و اسناد. پشتیبانی که فقط پایگاه داده را دارد، برای بازگرداندن کامل سایت کافی نیست.
پشتیبان باید جای دیگری باشد. پشتیبانی که روی همان سرور سایت نگهداری میشود، در صورت هک شدن یا خرابی سرور، همراه سایت از دست میرود. دستکم یک نسخه باید در مکانی جدا و مستقل نگهداری شود.
پشتیبان باید منظم باشد. فاصلهی پشتیبانگیری باید با میزان تغییر سایت متناسب باشد. سایتی که هر روز سفارش ثبت میکند، به پشتیبان روزانه نیاز دارد. سایتی که ماهی یک بار تغییر میکند، با فاصلهی بیشتر هم کنار میآید.
پشتیبان باید آزمون شود. مهمترین و فراموششدهترین قدم. هر چند وقت یک بار، یک پشتیبان را روی محیط جداگانه بازگردانی کنید و ببینید سایت واقعا بالا میآید یا نه. پشتیبانی که هرگز آزمون نشده، فقط امید است.
ستون دوم: دسترسیها با کمترین امتیاز
اصل کمترین امتیاز میگوید هر کاربر یا سیستم فقط باید به همان چیزی دسترسی داشته باشد که برای کارش لازم است. نویسندهی محتوا به دسترسی مدیر کامل نیاز ندارد. فریلنسری که یک تغییر کوچک انجام میدهد، به دسترسی دائمی به سرور نیاز ندارد.
در عمل، این اصل به چند عادت ساده تبدیل میشود:
- هر نفر حساب خودش را داشته باشد. رمز مشترک یعنی نمیدانید چه کسی چه کاری کرده و نمیتوانید دسترسی یک نفر را بدون عوض کردن رمز همه قطع کنید.
- سطح دسترسی متناسب با نقش باشد. نقشهای ویرایشگر، نویسنده و مدیر را از هم جدا کنید.
- دسترسیهای موقت، موقت بمانند. وقتی کار فریلنسر یا پیمانکار تمام شد، حسابش همان روز غیرفعال شود.
- ورود دومرحلهای فعال باشد. احراز هویت چندعاملی برای پنل مدیریت سایت، هاست، دامنه و ایمیل اصلی، یکی از سادهترین و مؤثرترین قدمهای امنیتی است. حتی اگر رمز لو برود، مهاجم بدون عامل دوم وارد نمیشود.
- فهرست دسترسیها مکتوب باشد. باید بدانید چه کسانی به چه سیستمهایی دسترسی دارند. این فهرست را هر چند ماه یک بار بازبینی کنید.
دسترسیهای اصلی، یعنی دامنه، هاست و حسابهای مدیریتی، باید به نام خود کسبوکار باشند. در مقالهی دامنه و هاست به نام شما نیست؟ نشان دادیم که بدون این مالکیت، در روز حادثه حتی اختیار تصمیمگیری دربارهی سایت خودتان را ندارید.
ستون سوم: بهروزرسانی منظم و کنترلشده
بهروزرسانی سیستم مدیریت محتوا، قالب، افزونهها و نرمافزارهای سرور، بخش بزرگی از آسیبپذیریهای شناختهشده را میبندد. اما بهروزرسانی بیبرنامه هم ریسک دارد: ممکن است چیزی را خراب کند.
راه درست این است که بهروزرسانیها منظم، اما کنترلشده انجام شوند. پیش از هر بهروزرسانی مهم، پشتیبان گرفته شود. اگر امکان دارد، بهروزرسانی اول روی نسخهی آزمایشی سایت انجام شود. بهروزرسانیهای امنیتی فوری، اولویت داشته باشند و منتظر چرخهی عادی نمانند.
یک قدم مهم دیگر، کم کردن سطح حمله است. هر افزونهای که استفاده نمیشود، حذف شود، نه فقط غیرفعال. هر قالب اضافه، حذف شود. هر چه اجزای کمتری داشته باشید، بهروزرسانی سادهتر و آسیبپذیری کمتر است.
چه کسی مسئول امنیت است
پرسشی که در بسیاری از کسبوکارهای کوچک بیپاسخ میماند، این است که امنیت سایت دقیقا کار چه کسی است. صاحب کسبوکار فکر میکند طراح سایت مسئول است. طراح فکر میکند پروژه با تحویل تمام شده. شرکت میزبانی فکر میکند فقط مسئول سرور است، نه نرمافزاری که روی آن نصب شده. نتیجه این است که هیچکس مسئول نیست و هر کس فرض میکند دیگری حواسش هست.
راه حل، تقسیم صریح مسئولیتهاست. شرکت میزبانی معمولا مسئول سختافزار، شبکه و گاهی سیستمعامل سرور است. اما بهروزرسانی سیستم مدیریت محتوا و افزونهها، مدیریت حسابهای کاربری و آزمون پشتیبانها، معمولا بهطور خودکار به عهدهی کسی نیست، مگر اینکه صریحا تعیین شود. این را در قرارداد نگهداری یا دستکم در یک سند داخلی بنویسید: چه کسی، هر چند وقت، چه کاری انجام میدهد و به چه کسی گزارش میدهد.
حتی اگر کار فنی را به یک تیم بیرونی بسپارید، یک نفر در خود کسبوکار باید مالک این موضوع باشد. لازم نیست متخصص فنی باشد. کافی است بداند چه چیزهایی باید انجام شود و هر ماه بپرسد انجام شده یا نه. همین پرسش سادهی ماهانه، بسیاری از غفلتها را پیش از تبدیل شدن به حادثه آشکار میکند.
امنیت و دادهی مشتری
بسیاری از سایتهای کوچک بیش از آنچه فکر میکنند دادهی مشتری نگه میدارند: نام و شمارهی تماس در فرمها، نشانی در سفارشها، ایمیل در خبرنامه. قاعدهی ساده این است: دادهای را که لازم ندارید، جمع نکنید، و دادهای را که دیگر لازم ندارید، نگه ندارید. هر دادهای که ذخیره نشده باشد، هرگز افشا نمیشود. این قاعده هم ریسک را کم میکند و هم پشتیبانگیری و بازگردانی را سادهتر.
چند لایهی تکمیلی
وقتی سه ستون اصلی سر جایشان بودند، این لایهها امنیت را بیشتر میکنند.
گواهی امنیتی و HTTPS. همهی صفحهها باید از HTTPS استفاده کنند و گواهی پیش از انقضا تمدید شود. تمدید خودکار، این نگرانی را حذف میکند.
پایش دسترسپذیری. ابزاری که اگر سایت از دسترس خارج شد، فوری به شما خبر دهد. بدترین راه فهمیدن از کار افتادن سایت، پیام مشتری است.
ثبت رویدادها. ثبت ورودها و تغییرات مهم، تا اگر اتفاقی افتاد، بتوانید بفهمید چه کسی، کی و چه کاری کرده است.
محافظت فرمها. فرمهای تماس و ثبتنام باید در برابر ارسالهای خودکار و هرزنامه محافظت شوند و دادهی ورودی آنها پیش از ذخیره بررسی شود.
برنامهی واکنش به حادثه
حتی با همهی این اقدامات، احتمال حادثه صفر نمیشود. تفاوت کسبوکاری که از حادثه سالم بیرون میآید با کسبوکاری که آسیب جدی میبیند، اغلب در این است که از قبل میدانسته در آن روز چه کند.
یک برنامهی سادهی یکصفحهای کافی است که به این پرسشها پاسخ دهد: چه کسی اولین تماس است؟ چه کسی دسترسی فنی برای بررسی و بازگردانی دارد؟ آخرین پشتیبان سالم کجاست؟ اگر دادهی مشتری درگیر شده، به چه کسانی و چطور خبر داده میشود؟ و پس از بازگردانی، چه کسی مسئول پیدا کردن علت و بستن در ورودی است؟
این برنامه را جایی نگه دارید که در روز حادثه، حتی اگر سایت و ایمیل از کار افتاده باشند، در دسترس باشد.
اشتباههای رایج
امنیت را یک بار درست کردن. امنیت وضعیت نیست، فرایند است. سایتی که امروز امن است، با گذشت چند ماه بدون بهروزرسانی، دیگر امن نیست.
تکیه به یک نفر. اگر فقط یک نفر رمزها، دسترسیها و محل پشتیبانها را میداند، امنیت سایت به در دسترس بودن او وابسته است.
پنهان کردن حادثه. بعضی کسبوکارها از ترس آبرو، حادثه را پنهان میکنند. اگر دادهی مشتری درگیر شده، پنهانکاری معمولا اعتماد را بیشتر از خود حادثه از بین میبرد.
خرید ابزار بهجای ساختن عادت. ابزارهای امنیتی مفیدند، اما جای پشتیبان آزمونشده، دسترسیهای مرتب و بهروزرسانی منظم را نمیگیرند.
چکلیست امنیت پیش از حادثه
این پرسشها را امروز دربارهی سایت خودتان بپرسید:
- آخرین پشتیبان کامل کی گرفته شده و در مکانی جدا از سرور اصلی نگهداری میشود؟
- آخرین بار کی یک پشتیبان را واقعا بازگردانی و آزمون کردهایم؟
- هر نفر حساب جداگانه با سطح دسترسی متناسب دارد؟
- حسابهای کارمندان و پیمانکاران قبلی غیرفعال شدهاند؟
- ورود دومرحلهای برای پنل سایت، هاست، دامنه و ایمیل اصلی فعال است؟
- سیستم مدیریت محتوا، قالب و افزونهها بهروزند و افزونههای بلااستفاده حذف شدهاند؟
- اگر سایت از دسترس خارج شود، کسی پیش از مشتریها باخبر میشود؟
- برنامهی مکتوب و در دسترسی برای روز حادثه داریم؟
هر پاسخ منفی، یک کار مشخص برای هفتهی آینده است. لازم نیست همه را در یک روز درست کنید. از پشتیبان و ورود دومرحلهای شروع کنید، چون کمترین زحمت و بیشترین اثر را دارند. سپس سراغ مرتب کردن دسترسیها و بهروزرسانیها بروید. این چکلیست را هر سه ماه یک بار تکرار کنید تا امنیت به عادت تبدیل شود.
جمعبندی
امنیت سایت کسبوکار کوچک به بودجهی بزرگ یا تیم امنیتی تخصصی نیاز ندارد. به چند عادت ساده نیاز دارد که منظم انجام شوند: پشتیبانی که واقعا قابل بازگردانی است، دسترسیهایی که مرتب و محدودند و بهروزرسانیهایی که عقب نمیافتند. هزینهی این عادتها کوچک و قابل پیشبینی است؛ هزینهی نداشتنشان بزرگ و ناگهانی.
اگر نمیدانید سایت شما امروز در کدام یک از این سه ستون ضعف دارد، یا میخواهید این عادتها را به یک فرایند نگهداری منظم تبدیل کنید، تیم گرینلبز میتواند این بررسی و برنامه را کنارتان بسازد. خدمات گرینلبز را ببینید.



