Поради щодо захисту сайту від злому

Не так давно я виявив, що пошуковій видачі блог став виходити з позначкою «Сайт може загрожувати безпеці комп'ютера». Такий напис виходить якщо на Вашому сайті було встановлено шкідливий код. Сьогодні ми спробує розібратися в причинах і наслідках цього явища.

Безпекою сайту починають цікавитися після того як сайт зламали і більшість впадають в паніку і зневіру. Дуже неприємно коли праці всього Вашого життя всього за кілька хвилин можуть піти в небуття. Але не все так погано як здається, особливо якщо Ви робите щоденні архіви.

Відразу після виявлення написи «сайт може загрожувати безпеці вашого комп'ютера» слід знайти шкідливий код і терміново відправити сайт в Яндекс на повторну перевірку, так що б напис поруч з сайтом якомога швидше зникла. Якщо Ви зробили все правильно, то Ваш сайт піде зі списку небезпечних через пару днів.

Хто і навіщо розміщує шкідливий код

Отже, давайте перерахуємо що можна отримати з Вашого блогу тим хто його хоче або вже зламав:

  • Трафік, який можна перенаправляти на любий білі і чорні партнерські програми
  • Мобільний трафік, який можна перенаправляти на партнерські програми
  • Розміщення автоматичних посилань, які показуються лише пошуковим роботам, тобто слив ваги сайту
  • Розміщення дорвеев в папках Вашого сайту, тобто тисячі сторінок пошукового спаму, за що Ваш сайт можу в майбутньому серйозно пессімізіровать або взагалі викинути з видачі
  • Розміщення фреймів в коді ява скриптів, флеша або просто в шаблонах. Через ці фрейми можуть завантажувати віруси кожному відвідувачеві Вашого сайту.
  • І багато інших нехороші речі, що дозволяють зловмисникові від Вашого імені заробляти на відвідувачах

Як хакери можу зламати Ваш сайт. Звідки ноги ростуть?

Злом серверів хостера.

Перший і напевно самий неприємний варіант - це коли зламують сервер хостера, тобто всі сайти розміщені на даному сервері, а не тільки Ваші стають уразливими. Уявіть якщо зламуються відразу кілька десятків серверів. Роботи для адміністраторів хостингів тут буде дуже багато.

Хоча таке і не часто буває, але захиститися від цього для звичайного користувача шаред хостингу неможливо, тому відразу вибирайте надійний хостинг, наприклад friendhosting За багато років використання хостингів від різних компанії, напевно це найкращий і це стосується не тільки технічного боку справи але і шикарним підтримки навіть самого недорого тарифу. Рекомендую! (До речі, як раз після того як на блозі розмістили шкідливий код переїхав на сюди і проблем з тих пір не знаю, тьху тьху тьху)

Злом VPS / VDS.

Якщо Ви придбали віртуальний виділений сервер, то відповідальність за його налаштування і захисту повністю лежить на Вас, тому його точно так само можуть зламати, однак в цьому випадку зловмисник отримає доступ тільки до Ваших сайтів і адміністратори хостера не будуть особливо нервувати з цього приводу. Для усунення вразливості серверної ОС Вам доведеться залучити фахівців і лише після цього приступати до пошуку залишених шкідливих кодів.

Цей випадок теж не з найприємніших тому як зловмисник отримав root доступ до VDS швидше за все буде прати логи, так щоб Ви не могли знайти вразливість.

Злом WordPress через уразливість php скриптів.

Інший спосіб зламати Ваш сайт і заразити шкідливим кодом - це знайти вразливість в пхп скриптах, модулях, плагинах, темах. Напевно, це найпоширеніший спосіб. Що відбувається з Вашим сайтом:

  • Через вразливість зчитуються паролі від бази даних
  • Паролі розшифровуються, зловмисник отримує доступ до адмінки
  • Зловмисник завантажує web shell на Ваш сайт, який дозволяє керувати всіма файлами які у Вас є на хостингу

Якщо У Вас кілька сайтів, то швидше за все зловмисник розмістить web shell на кожному з них в різних директоріях.

Що робити коли Ваш сайт вже заражений.

Отже, очевидно, що для початку слід видалити шкідливий код, якщо Ви їх знайшли. Код в файлі htaccess може виглядати наступним чином:

RewriteCond% (Android | midp | j2me | symbian | series \ 60 | symbos | windows \ mobile | windows \ ce | ppc | smartphone | blackberry | mtk | bada | windows \ phone) [NC]

RewriteCond% . (Accoona | ia_archiver | antabot | ask \ jeeves | baidu | dcpbot | eltaindexer | feedfetcher | gamespy | gigabot | googlebot | gsa - crawler | grub - client | gulper | slurp | mihalism | msnbot | worldindexer | ooyyo | pagebull | scooter | w3c_validator | jigsaw | webalta | yahoofeedseeker | yahoo. \ slurp | mmcrawler | yandexbot | yandeximages | yandexvideo | yandexmedia | yandexblogs | yandexaddurl | yandexfavicons | yandexdirect | yandexmetrika | yandexcatalog | yandexnews | yandeximageresizer) [NC]

RewriteRule (. *) Http. //google-play-android.net/u/1316 [L, R = 302]

Це директиви мобільного редиректу, після того як людина зайшла на Ваш сайт з мобільного пристрою його автоматично перекине на ось таку сторінку, де його вже чекає псевдо додаток - чорний мидлет.

Не буде зайвим скачати Ваш сайт цілком на локальний диск і досліджувати його останнім антивірусом, але як правило антивіруси можуть знайти тільки не зашифровані Веб Шели ... Веб йшов є звичайним php файл який можна покласти в одну з директорії сайту (з можливістю запуску php скрипта з цієї директорії). За своєю суттю це звичайний файловий менеджер тільки через інтернет і дозволяє управляти файлами вашого сайту. Деякі веб-майстри користуються веб шелом і на своїх сайтах просто тому, що це найшвидший спосіб внести невеликі зміни в будь-які файли сайту.

Кілька практичних порад.

1. Якщо у Вас VDS або VPS рознесіть сайти по різним користувачам. так щоб у кожного користувача - власника Вашого сайту були права тільки на один сайт. Таким чином якщо зловмисник зламає один з Ваших сайтів, то він не зможе отримати доступ до решти сайтам.

Поради щодо захисту сайту від злому
Права на директорії

2. Встановіть на всі папки сайту права 755 рекурсивно

Поради щодо захисту сайту від злому
Встановлюємо права на файли

3. Встановіть на всі файли сайту права 644

4. Обов'язково закрити доступ до адміністративної частини сайту (тобто там де ви входите під адміністратором) за допомогою директив веб сервера через файл .htaccess

Наприклад, для блогу на WordPress можна в папку wp-admin покласти файл .htaccess такого змісту:

Таким чином, на стороні Вашого сайту виконається будь-яка команда через вразливий плагін, тому завантажувати і встановлювати плагіни можна тільки з сайту розробника CMS, але навіть в цьому випадку плагіни можуть мати свідомо відомі уразливості. Обов'язково дивіться, скачував чи хто небудь цей плагін. Як правило, уразливий плагін швидко виявляється.

6. Видаліть всі невикористовувані шаблони і постарайтеся пригадати звідки Ви взяли поточний шаблон сайту. Ситуація з шаблонами ще гірша ніж з плагінами. Зловмисник розміщує на треккера преміумні шаблони абсолютно бисплатно, зашивши попередньо туди скрипт показу посилань або можливість віддалено виконувати команди або навіть самовидаляється код, який після виконання і заливки веб шела просто видаляє себе. Дурний вебмастер викачує преміум шаблон безкоштовно і радіє і навіть дякує людини які виклав такі шаблони ...

Виявити такий шкідливий код в шаблонах іноді дуже складно, так як преміумні шаблони можуть складатися з тисяч різних php і js файлів.

Видалення шкідливого коду, пошук уразливості.

Видалити шкідливий код - це лише мала частина справи і будьте впевнені, що якщо на вашому сайті є вразливість то веб йшов, а разом з ним і шкідливий код знову з'явиться. Ще гірший варіант - це коли шкідливий код вшивають в базу даних. Наприклад, в запис новини або текст головної сторінки. Шукати його доведеться не тільки в файлах але і в базі даних.

Шукаємо уразливості в php файлах

В результаті буде видано список файлів в коді яких може виявитися бек дор, тобто лазівка ​​для заливки веб шела або віддаленого виконання команд.

'Antichat Shell v1.3' = gt; 'Version ([0-9 \.] +) By Grinay'.

'Ayyildiz Tim -AYT- Shell v' = gt; 'Shell v ([0-9 \.] +) Biz B'. 'AZRaiLPhp' = gt;

'Silinemedi: \ $ deldir'. 'Backdor1' = gt; 'Coded By Charlichaplin'. 'Backdorfr' = gt;

'Ce script permet d \' exploiter '. 'C100.php' = gt; 'Written by Captain Crunch Team'.

'C99 original' = gt; 'Admin @ SpyGrup \ .Org \ [Kruis \]'. 'Casus15.php' = gt; 'CasuS ([0-9 \.] +) By MafiABoY'.

'Crystal' = gt; 'Coded by. Super-Crystal and Mohajer22 '. 'Ctt_sh.php' = gt; '\ [CT \] TEAM SCRIPTING - RODNOC'.

'Cyber ​​Shell' = gt; 'Cyber ​​Shell'. 'DC3 Security Crew Shell PRiV' = gt;

'Shell written by Bl0od3r'. 'Dive Shell 1.0 - Emperor Hacking Team' = gt;

'Dive Shell - Emperor Hacking Team'. 'DTool Pro' = gt;

'Comandos Exclusivos do DTool Pro'. 'DxShell' = gt; 'DxShell'. 'Fatalshell' = gt;

'Lutfen Dosyayi Adlandiriniz'. 'Fuckphpshell' = gt; ''. 'Fuckphpshell' = gt;

'This is a priv3 server'. 'GFS web-shell' = gt; 'GFS Web-Shell'.

'H4ntu shell [powered by tsoi]' = gt; 'H4ntu shell \ [powered by tsoi \]'. 'Img.php' = gt;

'NsT View \ $ ver'. 'IMHaPFtp.php' = gt; 'IMHaBiRLiGi Php Ftp Editoru'. 'Ironshell' = gt;

'You can put a md5 string here too, for plaintext passwords'.

'KAdot Universal Shell' = gt; 'KA_uShell ([0-9 \.] +)'. 'Lamashell' = gt; 'Lama \' s \ 'hell'.

'Liz0ziM Private Safe Mode Command Execuriton Bypass Exploit' = gt;

'Liz0ziM Private Safe Mode Command Execuriton Bypass Exploit'. 'Load_shell' = gt;

'Loader \' z WEB Shell '. 'Mailer3.php' = gt; 'Moroccan Spamers Ma-EditioN By GhOsT'.

'Matamu' = gt; 'Matamu Mat'. 'Moroccan Spamers Ma-EditioN By GhOsT' = gt;

'Open the file attachment if any, and base64_encode'. 'Myshell' = gt; '\ $ MyShellVersion'.

'Mysql interface' = gt; 'Mysql interface v ([0-9 \.] +)'.

'MySQL Web Interface Version' = gt; 'MySQL Web Interface Version'. 'NCC-Shell' = gt;

'Hacked by Silver'. 'NetworkFileManagerPHP' = gt;

'NetworkFileManagerPHP for channel'. 'NIX REMOTE WEB-SHELL' = gt;

'NIX REMOTE WEB-SHELL'. 'Nshell.php' = gt; 'NShell v ([0-9 \.] +)'. 'Nstview.php' = gt;

'NsTView \ $ ver'. 'PHANTASMA' = gt; 'PHANTASMA- NeW CmD'. 'PHP Shell.php' = gt;

'PHPSHELL.PHP BY MACKER'. 'Php-backdoor' = gt; 'A simple php backdoor'.

'Php-include-w-shell' = gt; 'LOTFREE PHP Backdoor'. 'Phpbackdoor15' = gt; 'Return "Hopefully dumped!"'.

'PHpINJ' = gt; 'News Remote PHP Shell Injection'. 'Phpjackal' = gt; 'PHPJackal'.

'PHPRemoteView' = gt; 'PhpRemoteView'. 'Phpshell17' = gt;

'PHP Shell is aninteractive PHP-page'. 'Phvayv.php' = gt; 'PHVayv'. 'Private-i3lue' = gt;

'Webadmin \ .php - a simple Web-based file manager'. 'Ru24PostWebShell' = gt;

'Ru24PostWebShell'. 'R57 Shell.php v 1.22 or 33' = gt; '\ (C \) oded by 1dt \ .w0lf'.

'R577.php' = gt; 'Admin @ spygrup \ .org \ [Kruis \]'. 'Rootshell.php' = gt;

'Www.SR-Crew.org'. 'Russian.php' = gt; 'KAdot Universal Shell'. 'S72 Shell' = gt;

'Cr @ zy_King'. 'Safe0ver Shell -Safe Mod Bypass By Evilc0der' = gt;

'Safe_Mode Bypass PHP'. 'SimAttacker - Vrsion' = gt; 'Simple PHP backdoor by DK'.

'Simple-backdoor' = gt; 'G-Security Webshell'. 'Simple_cmd' = gt;

'Simorgh Security Magazine'. 'SimShell 1.0' = gt; 'Sincap 1.0'. 'SnIpEr_SA Shell' = gt;

'\ (C \) oded by SnIpEr_SA'. 'Spy.php' = gt; '\ $ Version = "SpyGrup \ .Org SpeciaL"'.

'W3d.php' = gt; 'W3D Shell'. 'W4k.php' = gt; 'Chdir \ (\ $ lastdir \); c99shexit \ (\); '.

'Webshell.txt' = gt; 'This PHP Web Shell was developed by Digital Outcast'.

'WinX Shell' = gt; '-: \ [GreenwooD \]: - WinX Shell'. 'Worse Linux Shell' = gt;

'Watch Your system Shany was here'. 'Xinfo.php' = gt;

'NetworkFileManagerPHP for channel'. 'Base64' = gt; 'Base64'. 'Eval' = gt; 'Eval'.

'Zacosmall' = gt; 'Small PHP Web Shell by ZaCo'. 'Wso shell' = gt; '\ $ Auth_pass = "([0-9a-f])"; | \ $ default_action = \' FilesMan \ ';' );

$ Allowed_ext = array ( 'php'. 'Phtml'. 'Php5'. 'Php4');

$ Ite = new RecursiveDirectoryIterator ( "./");

foreach (new RecursiveIteratorIterator ($ ite) as $ filename = gt; $ Cur)

if (in_array (substr (strrchr ($ filename. '.'). 1). $ allowed_ext) and basename ($ filename)! =

$ Content = file_get_contents ($ filename);

Ще можна проаналізувати дати зміни директорій і файлів, але як правило ця інформація підміняється зловмисниками, щоб замести сліди.

Шукаємо шкідливий код в MySQL базі