Наш телефон 8 800 555 36 60

Как защитить сайт от вирусов

Евгения
Евгения
SEO-специалист

Озлобленные хакеры

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

Хакер за работой

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

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

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

Вот и думает владелец сайта, что же он такого плохого натворил, что конкуренты так обозлились на него. Зачем же сайт трогать, он же ни при чем, вроде как. И веб-мастера также голову чешут в недоумении, ну разве трафика на всех не хватит по высокочастотным запросам? Там миллионы трафа в месяц, а я всего лишь беру пару тысяч, разве я - конкурент вам?

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

Кто же они на самом деле?

А правда такова, что ломают сайты в основном не ради конкуренции, а ради спортивного интереса и получения дохода. Да, в большинстве случаев ломают сайты школьники старших классов и студенты. Неожиданно? Так и вирусы в основном они пишут. Почему? Интерес к программированию и сетям, уметь то, что не могут остальные. Зачастую - это банальный способ самовыражения.

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

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

Посему стоит признать, что уязвимость сайтов всегда будет впереди защищенности. Защита сайта - лишь следствие действий хакеров.  И пока считают, что хакеры озлоблены на весь мир и ломают их сайты просто так, из вредности или по заказу конкурентов, то кто-то обучается азам защиты, взламывая сайты ради интереса к технологиям взлома.

Хакерами в Америке в середине 20 века называли программистов и компьютерщиков, у которых был талант "от бога" и которые на ассемблере и фортране создавали нашу современную виртуальную реальность. Кто еще помнит перфокарты? Все привыкли к винде, кто-то к линуксу, а ведь никто не задумывался, как тяжко давался сей путь развития операционных систем.

Первые в истории компьютеры

Цитата из Википедии: Хакер -

Человек, увлекающийся исследованием подробностей (деталей) программируемых систем, изучением вопроса повышения их возможностей, в противоположность большинству пользователей, которые предпочитают ограничиваться изучением необходимого минимума. RFC 1983 усиливает это определение следующим образом: «Человек, наслаждающийся доскональным пониманием внутренних действий систем, компьютеров и компьютерных сетей в частности».

Что такое взлом сайта?

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

Чем это грозит? Тут уже зависит от целей взломщика. Может это просто интерес к взлому, может заработок с помощью проставления скрытых ссылок с биржи, а может спам с вашего сайта. Также возможно, что ваш сайт будет заражать ваших пользователей троянами, которые мало того, что отдадут свои пароли, так еще станут участниками DDoS в будущем.

А бывает, когда сайт ломают ради размещения дорвеев, и вы даже знать не будете, что у вас есть форум, на котором предлагают перейти на партнерский сайт и ввести СМС, дабы получить желанный контент.

Как происходит взлом сайта

Способов, на самом деле, очень много. Давайте рассмотрим основные.

1. SQL инъекция

2. XSS-атака

3. Брутфорс

4. Социальная инженерия

5. Трояны

SQL-инъекция для вашего сайта

Разберем сначала, что же собой представляет SQL-инъекция. Переведем SQL-язык на более понятный. Мне понравилось объяснение одного пользователя Хабра на сей счет.

Папа, уходя из дома, оставил записку маме, чтобы она оставила 100 рублей Коле. Звучит на языке SQL примерно так:

 ДОСТАНЬ ИЗ кошелька 100 РУБЛЕЙ И ДАЙ ИХ Коле

Записку находит Никита, брат Коли. Пользуясь тем, что у папы почерк неразборчивый, решил дополнить ее.

ДОСТАНЬ ИЗ кошелька 100 РУБЛЕЙ И ДАЙ ИХ Коле ИЛИ Никите

Приходит мама домой, читает записку и решает, что раз она вчера давала деньги Коле, значит, сегодня даст - Никите. В итоге, из-за того, что данные не фильтруются (неразборчивый почерк) - Никита обогатился.

Из данного примера мы понимаем, что база данных отдает то, что от нее требуют, особо не анализируя и не размышляя о своих действиях. Раз есть доступ к ней, значит пользователь уже является ее обладателем, а значит надо отдать те данные, что имеются в ячейках базы. Этим мы и будем пользоваться, т.к. плагин/компонент, который находится на сайте, уже по умолчанию вызывает доверие БД.

Взлом сайта через SQL инъекцию

И лома не надо, если есть адресная строка

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

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

Идем на сайт, где выкладывают эксплоиты (уязвимости) и ищем, что же будем ломать. Выбор пал на  уязвимость под CMS WordPress. Дыра находится в плагине WP 3D Twitter Wall. Ищем в гугле по url plugins/3d-twitter-wall. Находим подходящий сайт и переходим на него по ссылке из выдачи.

Далее, к url-сайту добавляем свой собственный запрос proxy.php?url=file:///etc/passwd и получаем файл.

Системный файл с аккаунтами

Но паролей там нет, админ сайта позаботился об этом. Пробуем изменить запрос proxy.php?url=file:///etc/shadow и получаем

Файл с паролями от аккаунта

Это уже интересней, здесь есть пароли, но только это хэш паролей. Тут - либо сами пытаемся расшифровать пароль, либо обращаемся к тем, кто сможет. Обычно подобные пароли вам расшифруют за 3-10$ на тематических сайтах, а может, и просто бесплатно (остались еще у нас альтруисты своего дела).

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

XSS-атаки

Xss это Css => Cross Site Scripting Чтобы не путать с CSS также называют XSS

Это атака ориентирована на пользователей сайта, в том числе и администратора. Позволяет украсть cookie, а если это «печеньки» админа, то и доступ к админке. Существуют два вида атаки - пассивная и активная.

Пассивная. Менее распространенная, т.к. надо заставить посетителя перейти по определенному виду ссылки.

Активная. Код скрывается в сообщении или даже в аватарке на форуме. И каждый, кто открывает страницу с данным кодом, отдает свои данные злоумышленнику.

XSS атака

Проверить сайт на уязвимость может любой. Для этого в формы ввода пробуем ввести - Скрипт для проверки XSS

Если вылезло сообщение, значит уязвимость присутствует. Chrome и FireFox зачастую режут такую уязвимость, поэтому желательно проверять через Internet Explorer.

Если уязвимость обнаружена, дальше можно уже подставить вместо alert (Окно сообщения)  другой скрипт, который также обработается браузером и уже будет возможность украсть куки, загрузить удаленно файлы.

Наглядно это выглядит так:

Поиск уязвимости XSS

Найденная уязвимость XSS

Прямолинейный Брутфорс

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

Многие набирают пароль, используя русские значения, но на английской раскладке. Такие словари тоже есть, поэтому рекомендуем использовать сложные наборы букв различного регистра со спецсимволами, например: #dJkL2Rmnb!912zY такой пароль годами будут перебирать, и по словарю его не подобрать.

Брутфорс - перебор паролей

Также не забывайте ставить плагины для защиты на свою CMS. Они помогут предотвратить брутфорс и после 3-5 попытки забанят айпи, есть конечно прокси, но их не миллионы как значений словаря, да и время это замедлит.

Выведываем тайны через социальную инженерию

В этом случае вряд ли с вас будут просить рассказать пароль, а вот выведать девичью фамилию матери могут. Или вообще в интернете найти. На практике был случай, когда администратором сайта являлась девушка молодая. Узнали ее почтовый адрес, запросили восстановление пароля, секретный вопрос был - «Кличка вашего домашнего питомца».

На форуме была тема про домашних питомцев, там и располагался ответ на секретный вопрос. После того, как злоумышленник овладел почтовым ящиком, был сброшен пароль с админки через почту. Вот так, за 10 минут, даже не обращаясь к жертве, сайт оказался в руках взломщика.

Поэтому рекомендуем не указывать в секретном вопросе настоящие и действительные данные. Ту же кличку питомца или любимое блюдо можно подобрать брутфорсом по словарю. Или выведать у вас. На вопрос «Серия и номер паспорта» всегда можно написать «17декабря1986года» такой ответ очень сложно подобрать перебором, и вы всегда будете помнить дату своего рождения, свадьбы или дату какого-нибудь счастливого момента своей жизни. Или использовать реальную информацию, но к ответу добавлять цифры, например, на вопрос - «Кличка вашего питомца» можно составить ответ «Васька1975». Даже если узнают кличку, никто не знает добавочного ответа.

Закидываем троянского коня

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

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

Далее, уже с помощью парсера, можно посмотреть скачанные с сервера отчеты, где будет вся информация о вашей системе и пароли.

Парсер с отчетами трояна

Немного о шеллах

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

Шеллов на данный момент очень много, есть с веб-интерфейсом, есть работающие через командную строку. Вот так выглядит шелл:

Веб-шелл залитый на сайт

Как мы видим, тут есть все, фактически - это полноценная админка сайта. Есть доступ ко всем файлам и изменению прав. Имеется консоль для исполнения php-кода, также можем обратиться к базе данных.

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

Как же защититься?

Мы выяснили основные способы взлома сайтов. Исходя из них, мы и можем составить некий минимум для защиты сайта.

  1. Регулярное обновление CMS и её плагинов. Перед обновлением CMS делайте резервную копию сайта, мало ли что может слететь.
  2. Проверка всех форм, с которыми взаимодействуют посетители сайта. Особенно это касается форм комментариев и отправки сообщений на форум. Т.к. в них присутствуют bb коды, которые обрабатываются функцией вместе с текстом, а значит может обработаться и какой-нибудь внедренный скрипт.
  3. Надежный пароль и ответ на секретный вопрос.
  4. Не принимать и не открывать незнакомые файлы. Даже если письмо пришло от закадычного друга с просьбой глянуть на картинку прикрепленную, переспросите, что там, лучше лично. Возможно друга взломали и разослали всем сообщение с зараженным файлом, так и наращивается база взломанных аккаунтов.
  5. Ставить модули или плагины, которые отвечают за защиту сайта. Например, которые ограничивают кол-во попыток неправильно введенного пароля. Или которые фильтруют запросы в БД.

Тотальная зачистка

Что делать если все же ваш сайт взломали? Чистить, в этом нам поможет скрипт Ai-Bolit. Запускать его можно непосредственно на сайте или проверять бэкап сайта на компьютере.

Закидываем его в папку с бэкапом, запускаем и ждем результатов.

Скрипт для поиска вирусов на сайте

После проверки получаем файл html, в котором можно узнать, что удалось скрипту найти на вашем сайте. Результаты сканирования подписаны и помечаны.

Сводный отчет скрипта Ai-Bolit

Вредоносный код и уязвимости

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

Ну, и напоследок

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

Кот хакер