سایت خود را تمیز و نگهداری کنید

برای تمیز نگه داشتن سایت و جلوگیری از هک شدن در آینده، به موارد زیر نیاز دارید:

  • دسترسی مدیر پوسته یا ترمینال به سرورهای سایت شما: وب، پایگاه داده، فایل ها
  • آشنایی با دستورات پوسته یا ترمینال
  • درک کد (مانند PHP یا جاوا اسکریپت)
  • فضای ذخیره سازی برای ایجاد پشتیبان از سایت شما، از جمله فایل ها، پایگاه داده و تصاویر

اقدامات بعدی

در این مرحله چندین عمل را پوشش خواهیم داد:

  • اگر فکر می کنید که هکر قصد دارد اطلاعات شخصی کاربران را به دست آورد (مانند صفحات فیشینگ) منابع اضافی را از کجا پیدا کنید.
  • گزینه ای برای استفاده از حذف URL ها در کنسول جستجو برای تسریع حذف URL های کاملا جدید، نامطلوب و قابل مشاهده توسط کاربر ایجاد شده توسط هکر که نمی خواهید در نتایج جستجوی Google ظاهر شوند.
  • گزینه ای برای درخواست از Google برای خزیدن مجدد URL های شما در کنسول جستجو برای تسریع در پردازش صفحات تمیز توسط Google - یعنی صفحاتی که جدید هستند یا به تازگی به روز شده اند - که می خواهید در نتایج جستجوی Google ظاهر شوند.
  • نصب آخرین و امن ترین نسخه نرم افزار.
  • حذف برنامه ها یا افزونه های غیر ضروری یا استفاده نشده که می توانند سایت شما را در آینده آسیب پذیرتر کنند.
  • بازیابی محتوای خوب و حذف محتوای هکر.
  • رفع آسیب‌پذیری علت اصلی که توسط هکر مورد سوء استفاده قرار گرفته است.
  • تغییر همه پسوردها
  • برنامه ریزی برای حفظ امنیت سایت خود

1. منابع پشتیبانی را بیابید

اگر اطلاعات محرمانه کاربر از سایت شما به دست آمده است (به عنوان مثال، به دلیل اینکه بخشی از یک حمله فیشینگ بوده است)، ممکن است بخواهید قبل از شروع تمیز کردن سایت یا حذف هر گونه فایل، مسئولیت های تجاری، قانونی یا قانونی را در نظر بگیرید. در موارد فیشینگ، antiphishing.org دارای منابع مفیدی مانند سند آنهاست که اگر سایت شما توسط فیشر هک شد چه باید کرد .

2. حذف سریع URL های جدید ایجاد شده توسط هکر را در نظر بگیرید

اگر هکر URL های کاملا جدید و قابل مشاهده برای کاربر ایجاد کرده است، می توانید با استفاده از ویژگی Remove URLs در کنسول جستجو، این صفحات را سریعتر از نتایج جستجوی Google حذف کنید. این مرحله اختیاری است. اگر فقط صفحات را حذف کنید و سپس سرور خود را برای بازگرداندن کد وضعیت 404 پیکربندی کنید، طبیعتاً صفحات با گذشت زمان از فهرست Google خارج می شوند.

  • تصمیم برای استفاده از حذف URL احتمالاً به تعداد صفحات جدید و ناخواسته ایجاد شده (ممکن است تعداد زیادی از صفحات در حذف URL ها دست و پا گیر باشد) و همچنین آسیب احتمالی این صفحات به کاربران بستگی دارد. برای اینکه صفحات ارسال شده از طریق حذف URL هرگز در نتایج جستجو ظاهر نشوند، مطمئن شوید که صفحات نیز به گونه ای پیکربندی شده اند که برای URL های ناخواسته و حذف شده، یک پاسخ 404 File Not Found برگرداند.
  • از این ابزار برای درخواست حذف صفحات قبلی که فقط توسط هکر آسیب دیده اند استفاده نکنید. می خواهید این صفحات پس از پاکسازی در نتایج جستجو ظاهر شوند. حذف URL فقط برای صفحاتی است که هرگز نمی خواهید در نتایج ظاهر شوند.

3. تسریع در پردازش صفحات تمیز خود توسط Google را در نظر بگیرید

اگر صفحات تمیز جدیدی دارید یا به‌روزرسانی شده‌اید، می‌توانید از Google بخواهید تا URL‌های شما را در «کنسول جستجو» مجدداً بررسی کند تا این صفحات را به فهرست Google ارسال کند. این اختیاری است. اگر این مرحله را رد کنید، صفحات جدید یا اصلاح شده شما احتمالاً با گذشت زمان خزیده و پردازش می شوند.

4. شروع به پاکسازی سرور(های) خود کنید

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

  • پشتیبان گیری تمیز و فعلی
  • پشتیبان گیری تمیز اما قدیمی
  • پشتیبان در دسترس نیست

ابتدا بررسی کنید که پشتیبان شما قبل از هک شدن سایت شما ایجاد شده باشد.

پشتیبان گیری تمیز و فعلی

  1. پشتیبان خود را بازیابی کنید
  2. هر گونه ارتقاء نرم افزار، به روز رسانی، یا وصله های موجود را نصب کنید. این شامل نرم‌افزار سیستم‌عاملی است که سرور را کنترل می‌کنید و همه برنامه‌ها، مانند سیستم مدیریت محتوا، پلت فرم تجارت الکترونیک، افزونه‌ها یا قالب‌ها.
  3. نرم‌افزاری را که سایت دیگر استفاده نمی‌کند از سرور خود حذف کنید (مانند ابزارک‌ها، افزونه‌ها یا برنامه‌ها).
  4. آسیب پذیری را اصلاح کنید.
  5. اطمینان حاصل کنید که تمام مشکلاتی که در حین ارزیابی آسیب یافت می شوند، برطرف شده اند.
  6. گذرواژه‌ها را یک بار دیگر برای همه حساب‌های مرتبط با سایت (به عنوان مثال، ورود به سیستم برای دسترسی FTP، دسترسی به پایگاه داده، مدیران سیستم و حساب‌های CMS) تغییر دهید. در سیستم های مبتنی بر یونیکس:
passwd admin1

پشتیبان گیری تمیز اما قدیمی

  1. یک تصویر دیسک از سایت فعلی خود بسازید حتی اگر هنوز آلوده است. این کپی فقط برای ایمنی است. کپی را به عنوان آلوده علامت گذاری کنید تا آن را از بقیه متمایز کنید. در یک سیستم مبتنی بر یونیکس، ایجاد یک تصویر دیسک می تواند به صورت زیر باشد:
dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 \
> /mirror/full-backup-20120125-infected.gz
  1. از سرور خود یک نسخه پشتیبان تهیه کنید، از جمله تصاویر و فایل های رسانه ای. اگر پایگاه داده دارید، از دیتابیس نیز نسخه پشتیبان تهیه کنید.
tar -pczf full-backup-20120125-infected.tar.gz www/
mysqldump
-u root -p --all-databases | gzip -9 \
> fulldb_backup-20120125-infected.sql
  1. نسخه پشتیبان تمیز اما قدیمی را در سرور خود بازیابی کنید.
  2. در نظر بگیرید که آیا می توانید نرم افزارهایی را که سایت دیگر از آنها استفاده نمی کند (به عنوان مثال، ویجت ها، افزونه ها یا برنامه های کاربردی) روی سرور خود حذف کنید.
  3. تمام نرم افزارها، از جمله سیستم عامل را اگر کنترل سرور را در دست دارید، و همه برنامه های نرم افزاری، مانند سیستم مدیریت محتوا، پلت فرم تجارت الکترونیک، افزونه ها و قالب ها ارتقا دهید. حتماً به‌روزرسانی‌ها و وصله‌های امنیتی موجود را بررسی و نصب کنید.
  4. آسیب پذیری را اصلاح کنید.
  5. یک diff سایت را به صورت دستی یا خودکار انجام دهید -- بین نسخه پشتیبان تمیز و کپی آلوده فعلی.
diff -qr www/ backups/full-backup-20120124/
  1. هر محتوای جدید و تمیزی را که می‌خواهید از نسخه آلوده در سرور ارتقا یافته حفظ شود، آپلود کنید.
rsync -avz /backups/full-backup-20120124/www/clean-file.jpg /www/
  1. بررسی کنید که هر URL لیست شده از Assess the آسیب تصحیح شده باشد.
  2. گذرواژه‌ها را یک بار دیگر برای همه حساب‌های مرتبط با سایت تغییر دهید (به عنوان مثال، ورود به سیستم برای دسترسی FTP، دسترسی به پایگاه داده، مدیران سیستم و حساب‌های CMS). در سیستم های مبتنی بر یونیکس:
$passwd admin1

پشتیبان در دسترس نیست

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

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

dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 \
> /mirror/full-backup-20120125-infected.gz

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

tar -pczf full-backup-20120125-infected.tar.gz www/
mysqldump
-u root -p --all-databases | gzip -9 \
> fulldb_backup-20120125-infected.sql

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

برای پاک کردن محتوای سایت در فایل سیستم نسخه پشتیبان جدید (نه خود سرور)، موارد زیر را انجام دهید:

  1. اگر تحقیقات قبلی شما مجوزهای فایل خیلی ملایم را پیدا کرد، ادامه دهید و آنها را اصلاح کنید. مطمئن شوید که این کار را روی نسخه پشتیبان انجام می دهید، نه خود سرور.
  2. همچنین در نسخه پشتیبان، تمام فایل‌های مربوط به URL‌های کشف شده به عنوان در معرض خطر را از Assess the damage پاک کنید. اینها ممکن است فایل های پیکربندی سرور، جاوا اسکریپت، HTML یا PHP باشند.
  3. مطمئن شوید که فایل‌های جدیدی که توسط هکر ایجاد شده است را نیز حذف کنید (یک پاسخ 404 ارائه دهید) که ممکن است با استفاده از ابزار حذف URL در کنسول جستجو ارسال کرده باشید یا ننوشته باشید.
  4. اگر آسیب‌پذیری در کد یا رمزهای عبور شکسته وجود دارد، آن را اصلاح کنید. کتابخانه های اعتبار سنجی ورودی یا ممیزی های امنیتی ممکن است کمک کننده باشند.
  5. اگر سایت شما دارای پایگاه داده است، شروع به پاکسازی سوابق اصلاح شده توسط هکرها در نسخه پشتیبان خود کنید. درست قبل از اینکه فکر کنید کارتان تمام شده است، تعداد بیشتری از رکوردها را بررسی کنید تا مطمئن شوید پایگاه داده تمیز به نظر می رسد.
  6. گذرواژه‌ها را یک بار دیگر برای همه حساب‌های مرتبط با سایت تغییر دهید (به عنوان مثال، ورود به سیستم برای دسترسی FTP، دسترسی به پایگاه داده، مدیران سیستم و حساب‌های CMS). در سیستم های مبتنی بر یونیکس، از کد زیر استفاده کنید:
$passwd admin1

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

5. نرم افزارهای غیر ضروری را حذف کنید

در نظر بگیرید که آیا می‌توانید نرم‌افزارهایی مانند ویجت‌ها، افزونه‌ها یا برنامه‌هایی را که سایت دیگر از آنها استفاده نمی‌کند، روی سرور خود حذف کنید. این می تواند امنیت را افزایش دهد و تعمیر و نگهداری آینده را ساده کند.

6. تمام سرورها را پاک کنید

  1. یک نصب تمیز انجام دهید، نه فقط یک ارتقا. ارتقاها می توانند فایل های نسخه قبلی را ترک کنند. اگر یک فایل آلوده روی سرور باقی بماند، احتمال هک شدن مجدد سایت شما بیشتر است.
    • اگر سرور را در دست دارید، نصب تازه باید شامل سیستم عامل و همه برنامه های نرم افزاری مانند سیستم مدیریت محتوا، پلت فرم تجارت الکترونیک، افزونه ها و قالب ها باشد. حتماً به‌روزرسانی‌ها و وصله‌های امنیتی موجود را بررسی کنید.
  2. محتوای خوب را از کپی سیستم فایل پشتیبان تمیز به سرور(های) تازه نصب شده منتقل کنید. فقط فایل های پاک یا پایگاه داده شناخته شده را آپلود و بازیابی کنید. مطمئن شوید که مجوزهای فایل مناسب را حفظ کرده و فایل های سیستمی تازه نصب شده را بازنویسی نکنید.
  3. آخرین تغییر گذرواژه‌ها را برای همه حساب‌های مرتبط با سایت (به عنوان مثال، ورود به سیستم برای دسترسی FTP، دسترسی به پایگاه داده، مدیران سیستم و حساب‌های CMS) انجام دهید. در سیستم های مبتنی بر یونیکس، از کد زیر استفاده کنید:
passwd admin1

7. یک برنامه نگهداری طولانی مدت ایجاد کنید

اکیداً توصیه می کنیم موارد زیر را انجام دهید:

  • به طور منظم و خودکار از سایت خود نسخه پشتیبان تهیه کنید.
  • مراقب به روز نگه داشتن نرم افزار باشید.
  • اقدامات امنیتی همه برنامه‌ها، پلاگین‌ها و سایر نرم‌افزارهای شخص ثالث را قبل از نصب آنها بر روی سرور خود بدانید. یک آسیب پذیری امنیتی در یک برنامه نرم افزاری می تواند بر ایمنی کل سایت شما تأثیر بگذارد.
  • ایجاد گذرواژه های قوی را اجباری کنید.
  • همه دستگاه‌های مورد استفاده برای ورود به سیستم را ایمن نگه دارید (سیستم عامل و مرورگر به‌روزرسانی شده).

8. دوباره بررسی کنید که پاکسازی کامل شده است

اطمینان حاصل کنید که می توانید به سؤالات زیر پاسخ «بله» بدهید:

  • آیا اگر هکر اطلاعات شخصی کاربران را به دست آورد، اقدامات لازم را انجام داده ام؟
  • آیا سایت من آخرین و امن ترین نسخه نرم افزار را اجرا می کند؟
  • آیا همه برنامه ها یا افزونه های غیر ضروری یا استفاده نشده را که می توانند سایت من را در آینده آسیب پذیرتر کنند حذف کرده ام؟
  • آیا محتوای خود را بازیابی کردم و محتوای هکر را حذف کردم؟
  • آیا من آسیب‌پذیری ریشه‌ای را که باعث هک شدن سایت من شده بود، برطرف کردم؟
  • آیا برنامه ای برای ایمن نگه داشتن سایت خود دارم؟

اکنون می توانید سایت خود را به صورت آنلاین بازگردانید.