sQanner: как появился и для чего нужен
Проблема
Представьте 9 сайтов на одном хостинге. Все разной направленности и работают на разных системах управления сайтом. Вдруг от Яндекс.Метрика приходит уведомление о недоступности одного из сайтов. Начинаем разбираться в чём дело.
На главной странице белый экран. Смотрим логи и выясняем что в index.php ошибка синтаксиса. Но откуда она там взялась если сайт стопятьсот лет никто не трогал? Смотрим в файл, а в конце файла спустя много много пустых строк вставлен зловредный код, единственная цель которого перенаправлять входящий трафик на сторонний ресурс.
Зловред выпилили, сайт заработал. Сменили пароли от хостинга, ftp, базы, всех административных панелей. Вроде всё ок. Через неделю в той же Метрике Яндекса замечаем падение трафика, а в панели вебмастера резко возросшее число проиндексированных страниц.
Жуть как не приятно когда шарятся в твоих вещах
Детальный анализ дал ясно понять - заражены все сайты на хостинге. Откуда именно началось заражение не известно, но причиной могла стать любая уязвимость любого движка или его плагина. Вот что сделали:
- разнесли все сайты на разные аккаунты хостинга. Это в будущем не даст заразить все сайты из за уязвимости в одном
- пересобрали все сайты и их плагины с нуля, а шаблоны чистили вручную
Сейчас с этими сайтами всё хорошо: они доступны, индексируются, приносят прибыль. На графике ниже видно что почти 2000 страниц было замечено Яндексом, а после их запрета в robots.txt и письма в Яндекс, поисковый робот их наконец выплюнул.
Случалось ли с Вами такое? Поднимаетесь на свой этаж, подходите к двери, а она чуть приоткрыта. Входите, а дома всё вверх дном перевёрнуто. Ощущение от подобных заражений именно такое. Жуть как не приятно когда шарятся в твоих вещах.
Поиск решения
После этого случая Я задумался над тем как получить больше контроля и осведомлённости о том что происходит на сервере. Первое что пришло в голову - инициировать локальный git, а для наглядности периодически пушить их в GitHub или bitBucket. Попробовал на паре сайтов - годится, но сложновато:
- приходится на каждый сервер ходить через консоль по ssh
- под каждый проект нужно завести github репозиторий, а это платная функция
- проверять изменения через git status, комитить, пушить и смотреть что изменилось
Была мысль настроить отправку изменений на github по крону, но это тоже какой то полуручной костыль.
Искал что то готовое и наткнулся на
- Anti-Shell который умеет всё то что хочется, но децентрализовано и не обновляется уже два года
- AI-Bolit который скорее лечит, а не уведомляет об изменения, в то время как я считаю что лечить можно только в ручную и только если "шаришь в коде"
Так пришла мысль о единой панели управления, которая бы автоматически или по запросу опрашивала сервер на предмет изменения файлов и уведомляла если изменения были.
Пилим решение
Сервер самостоятельно не умеет следить за изменениями файлов, но его легко этому обучит. Я написал небольшой скрипт на php, который собирает информацию о всех файлах и папках на сервере в файл - базу.
Это было проще простого - опытный разработчик пишет такое за рабочий день
Этот скрипт - сканер пользователи будут загружать на свой хостинг, а онлайн сервис будет обращаться к нему с вопросом "Ну что там? Есть изменения?".
Сам веб сервис разработал на php фреймворке Laravel и то что получилось пока далеко от идеала, но оно работает, а это главное.
- Теперь пользователи со схожей проблемой могут:
- Зарегистрироваться в сервисе
- Добавить сайт за изменениями которого хотят следить
- Скачать скрипт - сканер и загрузить его на свой сервер
- Запросить сканирование вручную или дождаться автоматического сканирование, которое происходит каждый час
Установка такого мониторинга не занимает больше 5 минут у разработчиков и не должна занимать более 15 минут у рядового пользователя. Оповещения об изменениях на сервере отображаются в личном кабинете, в удобном виде, сгруппированы по сайтам и сортированы по времени.
Всё это называется sQanner.
Всем неравнодушным
Обитатели Спарка, если Вам интересна описанная услуга - не стесняйтесь регистрироваться и пользоваться sQanner'ом. Мы открыты к обратной связи и готовы оперативно внедрять новые функции и исправлять баги. Делитесь своим мнением здесь на Спарке, пишите в личку или на support@sqanner.com
Бонус! Все пользователи, которые начали пользоваться сервисом до начала монетизации, получат специальные условия платного пользования.