Для того, чтобы улучшить защиту сайта от вирусов, иногда даже не нужно что-то настраивать на самом сайте или сервере. Эта статья предназначена для обычных пользователей и в качестве девиза может выбрать себе что-то вроде «защититься от веб-вирусов может каждый».
Вирусы на сайтах: руководство по защите и истреблению
Для того, чтобы улучшить защиту сайта от вирусов, иногда даже не нужно что-то настраивать на самом сайте или сервере. Эта статья предназначена для обычных пользователей и в качестве девиза может выбрать себе что-то вроде «защититься от веб-вирусов может каждый».

Экспертом-консультантом будет выступать наш мастер-над-безопасностью Алексей Фёдорович, который как-то уже учил защищаться от DDOS-атак. Кстати, он в свободное от работы время пишет занимательные истории и ведет крутой твиттер.

Задачи и последствия заражения

У тех, кто писал вирус, могли быть разные цели. Соответственно, вашему сайту это чревато разным ущербом.

Цель вируса Ущерб для сайта
Банальное хулиганство Как правило, это дефейс, подмена одной страницы сайта на другую. Пользователи переходят на ваш сайт, но вместо него видят экран, где, например, написано, что сайт был взломан.
Использование в качестве посредника для корыстных целей Так через ваш сайт может стать частью ботнета — централизованной управляемой сети ботов. Применить ботнет злоумышленник может, например, для DDOS-атаки на другие сайты, рассылки спама, перебора паролей, накрутке трафика другим сайтам и т.д.
Нанесение вреда сайту Вирус может размножаться и повреждать другие файлы сайта, делая его неработоспособным. Сценариев очень много, например, написанный злоумышленником скрипт может при его выполнении удалять зарегистрированного пользователя сайта из базы.

Но даже хулиганский экран с пиратским флагом, зависший на несколько часов у вас на сайте, — это удар и по доходу, и по репутации.

К слову, заражение вирусом особенно ощутимо для тех сайтов, которые имеют хорошие позиции в поисковой выдаче. Ибо поисковый робот, заприметив вирус на своем очередном рейде, быстро доложит об этом поисковой системе. И ваш сайт может просто вылететь из выдачи. Надолго. На Хабрахабре писали об этом историю.

Меры предосторожности

Передаем микрофон Алексею, он подскажет, как с помощью элементарных средств можно заметно улучшить безопасность сайта.

Алексей Фёдорович QA Engineer

Для того, чтобы вирус начал свою работу, он должен быть внедрен в код сайта. Тут сценариев множество: от банального угона паролей до обходных способов, вроде создания SQL-запросов к базе, загрузке инфицированных файлов, инъекций в код и т.д.

Простой пример: злоумышленник сначала загружает шелл-код, запускает его, после чего загружает инфицированный исполняемый файл (например, 1.php) в какую-нибудь общедоступную папку сайта, вроде /uploads. В эту папку, к примеру, зарегистрированные пользователи вашего сайта обычно загружают свои аватары. И если сайт никак не проверяет загружаемые файлы, то злоумышленник может загрузить и затем вызвать его, набрав в адресной строке http://www.site.ru/uploads/1.php. И готово — вирус начал свою работу.

Для начала нужно создать условия для того, чтобы вероятность заражения снизилась.

  1. Сделайте надежный пароль (от админ-панели сайта и ftp). Пароли вида qwerty123 можно легко подобрать перебором. Поэтому пароль должен быть сгенерированным и состоять из букв в разных регистрах и цифр. Никогда не используйте один пароль для разных сервисов: например, почты, скайпа, FTP и админки — скомпрометирововав что-то одно, можно получить доступ к другому. Меняйте пароли минимум раз в месяц — это многим лень делать, а зря.
  2. Убедитесь, что пароль не выдает человеческий фактор. Ваш сайт имеет сомнительную защиту, если административный пароль написан на стикере в кабинете сисадмина. Или если недавно из компании уволили сотрудников с доступом к админ-панели сайта, причем после этого пароль не менялся.
  3. Спрячьте админку. У всех CMS, систем управления контентом, есть определенные «окончания», подставляя которые к сайту, можно быстро достучаться до админ-панели (например, в Битриксе это /bitrix/admin, в Joomla это /administrator). Ни к чему облегчать злоумышленникам задачу! Руководство по смене адреса админки можно найти в сети или поручить задачу системному администратору.
  4. Не устанавливайте непроверенные плагины и темы. Они часто содержат в себе уязвимости, о которых известно большинству хакеров.
  5. Мы писали о рисках установки непроверенных модулей с Маркетплейсов в одной из статей.

  6. Установите Basic-авторизацию для админ-панели. Это дополнительная защита, данные авторизации будут передаваться в зашифрованном виде.
  7. Включите доступ по IP. Доступ к вашему сайту будут иметь только сотрудники вашей организации, злоумышленник с паролями не сможет их использовать обычным способом.
  8. Установите систему мониторинга. Она будет отслеживать, какие действия были произведены над сайтом и в какое время (создание файлов, удаление, внесение изменений). Так будет легче найти источник вируса в будущем — и в принципе поубавит желание злоумышленников связываться с вами.
  9. Пароли в базе данных храните в хэшированном (зашифрованном) виде. Даже если у вас «угонят» базу, то пусть сначала помучаются с дешифрацией.
  10. Делайте бэкапы на внешние сервера (например, с помощью системной утилиты backupmanager). Если вовремя установить факт заражения, то можно будет быстро восстановить резервную копию сайта из бэкапа. Внешний сервер предпочтительнее выбирать потому, что там данные будут сохраннее.
  11. Запутайте структуру сайта. Средство «в лоб», но действенное. Если даже злоумышленники получили доступ к админ-панели сайта, они не смогут найти файл с доступами к базе данных. По крайней мере, быстро не смогут — а это даст вам время принять защитные меры.

Можете пройти по этим пунктам еще раз и за каждый ответ «да, у меня это есть» начислить себе 1 балл. Если в сумме наберете 8-10 баллов — у вас неплохая система защиты. Если от 0 до 5 — ваш сайт в зоне повышенного риска.

Также стоит сделать акцент, что большинство взломов происходит через загрузку и последующий запуск шелл-кода на сайт. Поэтому нужно максимально детально настроить всевозможные загрузчики файлов, систему комментариев и так далее — все те места, через которые пользователь может загрузить свой файл вам на сервер.

Сервисы для своевременного обнаружения вирусов на сайтах

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

Алексей Фёдорович QA Engineer

Чтобы оперативно среагировать на вирус, его нужно засечь, для этого есть хороший сканер AI-Bolit или Malware Detect (второй, если у вас сервер работает на Линуксе).

Еще можно быстро определить, заражен ли сайт, если добавить его в сервис вроде Яндекс-вебмастера. Сервис оповестит вас, если обнаружит заражение.

Если вирус к вам все-таки пробрался — на время его поисков заблокируйте к сайту доступ посетителей (или хотя бы возможность загружать пользовательские файлы). После определения причины не останавливайтесь на простом удалении инфицированных файлов или фрагментов кода — лучше восстановить сайт из резервной копии и обновить до последних версий CMS и плагины.

А вообще требуйте, чтобы вам произвели правильную настройку сервера еще на этапе разработки. Это правильный подход.

Если заинтересовались статьей, почитайте рекомендации ниже — вам понравится.