Регистрация



Проблема: уязвимость интернет-сайтов

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

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

Если вы думаете, что ваш сайт не заинтересует хакеров потому, что он не такой уж важный, не очень посещаемый, и на нём нечего украсть, то вы заблуждаетесь. Дело в том, что большинство взломов и заражений интернет-сайтов происходит в автоматическом режиме, без активного участия хакера. Созданная хакером программа-робот просто методично взламывает один сайт за другим, передавая в руки своего создателя тысячи и десятки тысяч сайтов, которые в нужный момент по его команде примут участие в каком-либо неблагородном деле. Одна из схем работы таких систем представляет собой следующее. Хакер вручную взламывает один сайт, и добавляет на его страницы вредоносный код, который никак себя не обнаруживает, но внедряет в компьютеры всех посетителей этих страниц вирус. Этот вирус сканирует компьютер, на который он попал, находит там различную информацию, которая может заинтересовать его создателя, и отправляет эту информацию на автоматизированный сервер. Наиболее интересной из собранной информации могут оказаться пароли FTP-доступа к сайту, владельцем которого является хозяин заражённого компьютера. Получив такой пароль, сервер получает полный доступ к файлам сайта, и внедряет в них тот же вредоносный код, который я упоминал. С этого момента цикл повторяется снова и снова. Так как распространяемые вирусы не наносят видимого вреда, они могут оставаться незамеченными длительное время, долго не попадать в базы данных производителей антивирусов и антивирусы будут не в состоянии их обнаружить.

Решение: активный контроль

Наиболее действенным решением, в такой ситуации, представляется активный постоянный контроль за неизменностью содержимого файлов наших интернет-сайтов. Продолжая сравнение с сейфом: каждый банк, кроме хороших замков на своём хранилище, обязательно устанавливает сигнализацию, которая гарантирует, что даже если ворам и удастся открыть хранилище, это по крайней мере не останется незамеченным, и банк сможет вовремя принять меры. В отличие от банка, которому в общем-то не особо много остаётся предпринять если его обчистят, у нас, веб-мастеров, дела обстоят значительно лучше. Ведь если я вовремя узнаю, что определённые файлы моего сайта были изменены без моего ведома, я смогу своевременно восстановить эти файлы из своей резервной копии, исключив таким образом опасность когда-нибудь попасть в большие неприятности. Иными словами, имея возможность своевременного оповещения о взломе, я могу почти полностью предотвратить все его пагубные последствия.
Тут уместно будет напомнить, что даже в динамических сайтах (блогах, форумах, магазинах) где содержимое сайта постоянно меняется, файлы, составляющие сайт, не изменяются. Новое содержимое обычно хранится в базе данных. Только она, база данных, постоянно изменяется в динамических сайтах. В файлах же хранятся скрипты (программы), и содержимое файлов, как правило, не изменяется годами. Таким образом, если содержимое какого-либо файла изменилось, или если у вас появился новый файл, то это скорее всего результат хакерского взлома вашего сайта. Исключение составляют медиа-файлы: картинки, музыка, видео. Однако, такие файлы не представляют опасности, и их контролировать нет необходимости.

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

Подробности: что, как и сколько?

Сразу после регистрации вы получите маленький PHP-файл с уникальным именем, который следует загрузить в корневую папку вашего сайта или сайтов. Вы сможете просмотреть содержимое этого файла, чтобы убедиться, что он не содержит ничего подозрительного. Вам не придётся сообщать системе ни FTP, ни какие другие административные доступы для ваших сайтов. Программа, запускаемая автоматически еженощно на сервере системы, обратится к вышеупомянутому файлу. В ответ на этот запрос, скрипт, содержащийся в файле, просканирует файловую систему вашего сайта, вычислит хеш-коды для каждого файла, и отправит их системе. Отправляться будут только имена файлов (пути) и соответствующие им хеш-коды, но не содержимое файлов. Таким образом, это не увеличит потребляемый вашим сайтом трафик в сколько-нибудь значимой степени. На сервере системы будет храниться база данных имён и хеш-кодов ваших файлов. Система, получив новые хеш-коды, сравнит их со вчерашними, и результат этого сравнения будет отправлен на вашу электронную почту. То есть, если не было никаких изменений, то вы получите письмо, содержащее только одну фразу: "Изменений не найдено". В противном случае, если какой-либо файл был изменён, или добавлен, или удалён, то вы получите соответствующее сообщение с полным списком изменённых файлов и характером изменения (изменён/удалён/добавлен).

Стоимость сервиса: 10€ в год за каждые 1000 файлов охраняемых сайтов. Первый пробный месяц сервис предоставляется бесплатно. Оплата принимается за год вперёд в размере 10€ или 12$(USD) или 400 рублей (цены фиксированы в каждой валюте, и не зависят от текущего курса валют). Оплатить услугу можно посредством платёжных систем PayPal (включая любые крединые карты) и WebMoney.
1000 файлов - это очень много. Тут нужно иметь в виду, что проверяются только файлы, представляющие потенциальную угрозу - это HTML, PHP, JS, и немногие другие файлы. Обычный средний сайт, построенный не на одном из таких монстрических движков как WordPress или Jumla, содержит всего несколько десятков файлов, подлежащих проверке. Форум SMF, к примеру, содержит 390 таких файлов.

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

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