Безопасность сайта: поиск троянов
Вы сильно заблуждаетесь, если считаете, что признаком сломанного сайта является турецкий флаг на главной странице. Давно существует налаженная схема зарабатывания денег на сломанных сайтах.
Сначала загружается "бэкдор" или "троян", что по сути одно и то же, представляет собой небольшой скрипт, позволяющий выполнять команды на зараженном сайте. Он может пролежать без дела не один месяц, но при этом дырка вашего сайта выложена на продажу на каком-нибудь хакерском форуме. Это первый этап заработка. Затем купивший уязвимость вставляет на сайте разного рода ссылки, предназначенные либо для продвижения чего-то в поисковиках (т.е. это черный SEO), либо для отправки ваших посетителей на хакерский (или тоже сломанный) сайт, который так или иначе вымогает деньги через SMS. К сожалению, вовлечённость населения в интернет на фоне компьютерной грамотности позволяет таким пакостным людям делать свой бизнес.
Для нашей компании вопрос безопасности имеет первостепенное значение. Мы изучаем каждую жалобу на взлом, скажу, что за мою практику работы в техподдержке (с 5-й версии), не было подтвержденного взлома через ядро битрикса.
Это не потому что наши программисты пишут идеальный код. Естественно, с опытом код становится надежнее, но программист думает о другом и по-другому. У взломщика деструктивное мышление, в определенной части программы оказываются данные, которые программист не предполагал получить, это приводит к некорректной работе программы.
Все наши дистрибутивы и все обновления тестируются специалистами по безопасности внутри компании перед выпуском. Мы ломаем свой код, уязвимости остаются внутри лаборатории. Но почему бывают взломы снаружи?[spoiler]
Основные методы взлома сайта
Первая и самая распространенная причина - это виртуальный (разделяемый, шаред) хостинг. Архитектурно он не обеспечивает полную изоляцию клиентов. Взлом одного сайта на хостинге часто ведет к взлому соседних. А зачастую, даже не надо ломать сайт, достаточно зарегистрировать тестовый аккаунт.Никто не делает регулярный анализ конфигурации, а мониторить и обеспечивать безопасность виртуального хостинга обычно экономически необоснованно. После одной из жалоб клиента наши специалисты проверили один разделяемый хостинг на безопасность через тестовый аккаунт. Было выявлено сразу две уязвимости, одна из которых позволяла стать администратором на соседних сайтах, другая - получить все пароли к базам данных. Естественно, информация сразу была направлена хостеру, и на сегодня проблемы закрыты. Но ситуация в целом печальна.
Тут мне вспоминается диалог из одного из любимых фильмов:
— И часто бывают такие аварии?— Вы даже не представляете.— А в какой компании вы работаете?— В очень крупной.Другая причина в старом уязвимом ПО, которое лежит рядом на этом же аккаунте или на соседнем аккаунте шаред хостинга (что связано с первой проблемой безопасности шаред хостинга). Это какой-нибудь сторонний форум, FCKeditor, joomla и пр. Если программа не обновляется автоматически, никто не обновляет её. В интернете полно рецептов по взлому старых версий ПО.
Следующий по распространенности случай - это заражение локального windows-компьютера трояном, который уводит сохраненные ftp пароли и сохраненные пароли браузера.
Немаловажное значение имеет выбор паролей. Удивительно, но очень часто пользователи создают аккаунты: admin/admin, admin/bitrix, admin/123456, admin/111111. При этом выключают капчу для защиты от подбора пароля у группы администраторов.
Разово привлеченные и обиженные недобросовестные программисты могут оставить на сайте трояны.
К сожалению, у пользователя практически нет возможности защититься от уязвимости шаред хостинга. Пожалуй, самое лучшее, что можно сделать - это вовремя забить тревогу чтобы хостер предпринял меры.
Не размещайте на одном аккаунте хостинга коммерческий сайт на битриксе и частную страничку на джумле. Увы, желание сэкономить на хостинге часто приводит к том, что на одном аккаунте живет неизвестно что.Не ленитесь создавать пароли сложнее, чем стандартные. Добавьте 2-3 специальных символа.
Пользуйтесь одноразовыми паролями . Вы не представляете, насколько вы повысите защищенность своего сайта. Это не требует дополнительных затрат, сгодится любой мобильный телефон .
Не привлекайте дешевых программистов на фриланс, экономия может выйти дороже.
Кто ломает сайты?
Среди тех, кто называет себя хакерами очень мало серьезных специалистов, способных самостоятельно что-то сломать. В подавляющем большинстве это так называемые "скрипт-кидди", которые используют готовые инструкции и готовые скрипты, написанные профессионалами. Это подтверждается тем, что все случаи взлома похожи друг на друга словно сделаны по копирке. Такая ситуация с одной стороны объясняет большую популярность темы взлома, с другой - позволяет более менее простыми способами от них защититься.
Заражение вирусом или взлом
Уже не один год популярна тема заражения сайта вирусом. Для пользователя это равносильно взлому, но в действительности абсолютно другое. Принципиальная разница в том, что вирус действует автоматически и изначально живет на вашем локальном компьютере. Он по своему алгоритму делает замены в файлах на сайте используя ваши пароли для входа. Хакер действует более точечно и аккуратно.
Борьба с вирусом сводится к лечению своего компьютера, а потом автоматическим удалением вируса (или восстановлением из бэкапа). С хакером сложнее потому что надо найти точку входа на сайт. Бэкдоров часто бывает несколько, поэтому удалив один можно оставить дырку в другом.
Между тем, точка входа может быть единая: это заражение вашего компьютера. Держите его в чистоте, обновляйте антивирус и не забывайте делать проверки. Microsoft бесплатно предоставляет антивирус для лицензионной версии windows.
Вариант лечения от вирусов предлагал некоторое время назад. А вот против бэкдоров до сих пор ничего не было. С помощью нашего специалиста по безопасности написал небольшой скрипт, который позволит найти подавляющее большинство (из популярных) бэкдоров на сайте. Но он не будет искать и чистить вирусы!
Автоматический поиск троянов
Мы не можем выпустить средство, гарантирующее 100% защиту от троянов и сделать его частью продукта потому, что вариантов написать нечто, делающее деструктивные действия, очень много. Но чтобы найти популярные бэкдоры, достаточно знать их характерные признаки.
Предложенный скрипт просканирует весь ваш сайт от корня в поисках подозрительных файлов. Условно обозначен признак, который показался подозрительным скрипту. Далее вы можете посмотреть скрипты и выполнить переименование так чтобы троян стал не опасен.
На моей установке демо сайта редакции "Большой бизнес" нашлись все трояны из папки "sh", куда они были сложены. При этом произошло два ложносрабатывания: подозрительным оказался файл кеша и заенкоженный Zend'ом файл. Я умышленно не стал делать для них исключения т.к. ничего не мешает злодею положить троян в папку кеша, а зенд файлов у нас нет с 9-й версии. Делать исключения - значит увеличивать возможность пропуска трояна.Поиск зенд файлов можно рассматривать как полезную фишку скрипта.
Найденный троян поместите в карантин, затем проверьте свой компьютер на вирусы, после чего смените все пароли, напишите хостеру с просьбой проанализировать причину взлома и предоставить логи доступа вашего сайта. С информацией и логами обращайтесь в нашу техподдержку если причину установить не удалось.
Если вы не нашли троян, это не значит, что их нет, но даёт определенную долю уверенности. Специалист, видя скрипт, легко напишет обход для него. Это не панацея. Чем больше узнаю про безопасность в интернете, тем больше убеждаюсь, что в интернете нет ничего абсолютно защищенного. Любая информация может быть получена если усилия и затраты на её получение стоят результата.