Как стать автором
Обновить
0

Облачный сервис контроля целостности файлов вебсайта

Время на прочтение3 мин
Количество просмотров4K
взломали сайт

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

Имеем ли мы информацию о заходах по SSH, FTP? Бэкдор, залитый на сайт, может дооолго делать свое черное дело, прежде чем будет замечен. Или левые ссылки, залинкованные на картинки — они дадут о себе знать разве что потерей поисковых позиций. Знаете ли Вы, какие конкретно файлы редактировал нанятый программист?

Кажется, я переборщил со страшилками — а ведь это далеко не все… Когда я, занимаясь мелким SEO бизнесом, продумывал вопросы безопасности и осознал актуальность и масштаб проблемы, я поначалу создал для себя простой инструмент по контролю целостности файлов, который можно было использовать владельцу обычного виртуального хостинга (ибо на таких хостингах размещена масса сайтов-сателлитов), и потом, постепенно довел его до уровня облачного сервиса контроля целостности файлов iFube, бета-версию которого я и представляю вашему вниманию.

Чем хорош именно облачный подход к этому делу? Простотой установки, конечно, и тем, что данные не могут быть скомпрометированы на взломанном сервере.

Для получения md5 хеша или времени изменения (настраиваемо) файлов используется специальный Агентский скрипт. Я серьезно подошел в вопросу его надежности и безопасности. Скрипт имеет случайное имя и и первым делом проверяет специальный параметр-ключ. Его, скрипта, возможности строго ограничены и он не допускает побочного использования (о найденных уязвимостях, пожалуйста — в личку).

Агентский скрипт, помимо данных о целостности файлов, может отдавать и массу другой полезной информации — на данный момент это вывод команд wmstat, uptime, who. Это дает нам информацию о загрузке процессора, использовании памяти, системы ввода-вывода, SSH пользователях. Также, при обнаружении загрузки процессора выше критического, фиксируются процессы, наиболее загружающие CPU (в разработке). Ну а раз уж мы проводим вызов скрипта на сайте, то почему бы не замерить время запроса и не проверить наличие или отсутствие ключевого слова (это уже по адресу, задаваемому пользователем)?

Таким образом, имеем следующие типы мониторинга:
  • целостность файлов — создание/удаление/изменение файлов и папок;
  • системные параметры — системная загрузка, параметры wmstat, SSH пользователи;
  • доступность — время доступа, наличие/отсутствие ключевого слова;


Пользователь получает оповещения (алерты) о критических событиях — в inbox сервиса (доступен в меню Алерты), на e-mail, посредством СМС — все это настраивается, как по видам событий, так и по сайтам. Также доступны наглядные графики, например — график системной нагрузки
image
или доступа (аптайма)
image

На сегодняшний день сервис iFube работает в режиме бета-тестирования и используется бесплатно (кроме СМС) — регистрация.

Ближайшие направления развития сервиса:


  • интеграция возможности бэкапа, чтобы не только сообщать о факте изменения файла, но и показывать что конкретно было изменено;
  • возможность получать в рамках системного мониторинга любые данные (вызов команд linux, кастомных скриптов), и интеграция их в сервис с показом графиков и рассылкой алертов.
  • мобильные приложения.


И расскажу немного историю создания проекта. Как я уже писал, проект создавался мною лично, параллельно с мелким бизнесом и эпизодическим фрилансом. Времени ушло больше года. Также, параллельно развивался фреймворк, с использованием которого сейчас уже создано несколько сайтов, и который мне кажется достаточно удобным. Фреймворк (все таки надо назвать имя — Benyx) пока еще недостаточно документирован, но обязательно также будет представлен.

Сейчас скажу только что он сочетает конфигурирование посредством yaml файлов, haml-макетирование, PHP ActiveRecord ORM, а также (эх, понимаю что спорная идея) расширение REST до таких, к примеру запросов:
KISS /girl/$id

вместо
POST /girl/$id?do=kiss

Да, во view-файле так и пишем
html::link("+kiss /girl/$id",«Чмокнуть»)

(что там за плюсик в начале? так это ж — открыть в новом окне!).

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

Теперь я понимаю, что оптимальней было бы сначала развить некоторый попсовый проект, который давал бы средства к существованию, и не отнимал много времени, и потом уже посвящать себя серьезному делу. В принципе, у меня почти так и получилось.
Теги:
Хабы:
Всего голосов 23: ↑13 и ↓10+3
Комментарии16

Публикации

Информация

Сайт
ifube.com
Дата регистрации
Дата основания
Численность
1 человек (только я)
Местоположение
Россия

Истории