- PVSM.RU - https://www.pvsm.ru -

О том, как стартап может вылететь из индекса в одночасье

Здравствуй!

Год назад мы столкнулись с проблемой. Если в двух словах — нас взломали. Взломали творчески, так, что мы не сразу поняли, что вообще происходит. В процессе решения проблемы получилось овладеть полезными навыками: составлять abuse-обращения и результативно общаться с хостерами, в т.ч. — зарубежными, больше радеть о безопасности нашего ресурса, постоянно мониторить наличие нашего сайта в индексе Яндекс и Google, и внимательно относиться к мелочам. В описываемом случае обычный символ «-» (тире) сыграл с нами злую шутку.

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

Итак, наш основной ресурс находится по адресу: www.ist-budget.ru [1]: там есть своя постоянная аудитория, массив проиндексированных страниц, например, справочник организаций: www.ist-budget.ru/customers.php [2] и www.ist-budget.ru/customers.php [2], где в общей сложности содержится более 5 млн. страниц; разный интерактив, перспектива развития и прочее. Для оптимизации ресурса, разработок и экспериментов мы используем сайт-песочницу с аналогичным именем, но на другом домене: www.ist-budget.com [3]. Песочница закрыта от посещений «извне», в т.ч. и от поисковых роботов, которые индексируют странички.

Первые тревожные сигналы стали поступать в июне 2013г., когда по запросам в результатах поисковой выдачи Google стали появляться наши страницы, но принадлежащие не основному ресурсу, а вроде бы как песочнице. Мы проверили robots.txt комовского сайта (песочницы), еще раз убедились в том, что он закрыт от индексирования, и предположили, что скоростной Гугл мог проиндексировать часть страниц в момент кратковременного снятия ограничений.

А через несколько дней появился повод для более серьезного беспокойства – резко снизилась посещаемость основного ресурса на домене RU, как следствие – упало количество входящих обращений от посетителей сайта. И снова в поисковиках всплыл сайт-песочница, но с обстоятельством, от осознания которого нас синхронно прошиб холодный пот – мы пригляделись и обнаружили, что в названии «песочницы» отсутствует знак тире, т.е. вместо адреса www.ist-budget.com [3] был адрес www.istbudget.com [4], удивительно, что раньше мы на эту вещь внимания не обратили. Сервисы типа whois ожидаемо показали, что сайт был зарегистрирован буквально пару недель назад, на приватную персону, американский доменный регистратор CLOUDFLARE и молдавский хостер [5] Trabia-Network завершили картину так, что даже самому неискушенному человеку в нашей компании стало предельно понятно – этот сайт совсем не “песочница” и не имеет к нам никакого отношения.

Детальный анализ показал: сайт-клон молдавашка полностью сохранил наш исходный дизайн, структуру и содержание страниц основного домена и поддоменов. Контактные данные (адрес, телефоны, реквизиты) тоже остались без изменений, кроме указанного на главной странице логина Skype: вместо ist-budget.ru появился istbudget.com, хотя, сам Skype этот логин знать категорически отказался (т.е. этот логин не был зарегистрирован).
В это же время наш основной домен стал сильно тормозить, в основном, по причине того, что клон продолжал парсить с него новые странички и обновившуюся информацию в основных разделах. Каждое “зависание” сопровождалось смс от полезной утилитки Пинг Админ (эта утилита в итоге сыграла чуть ли не самую важную роль в решение проблемы), постоянно мониторящей быстродействие сайта, количество “тревожных” смс от неё о зависании тогда измерялось в сотнях :)

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

SetEnvIfNoCase REMOTE_ADDR "^xxx.xxx.[0-9]+.[0-9]+$" REDIR=toredir
RewriteCond %{REDIR} ^toredir$ [NC]
RewriteRule ^(.*)$ www.ist-budget.com/redir.php?page= [6]$1 [R=301,L]

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

Быстродействие было относительно восстановлено, но остались две проблемы:
1. В индексе поисковиков по-прежнему висел сайт-клон, а не мы.
2. На сайте-клоне все равно происходили обновления синхронно с обновлениями на нашем домене, но без явных зависаний, что добавило нам еще больше недоумения.

И тут было больше вопросов, чем ответов. Вот один из них: если поисковики определили полный дубль двух сайтов — почему из индекса они выбрасывают сайт, который явно старше (домен зарегистрирован на три года раньше, чем у клона), а не свежепоявившийся дубликат? Много было бредовых вариантов-ответов, например мы предположили, что приоритетом для поисковиков (в частности — Гугл) всегда является сайт в доменной зоне *.com, именно поэтому наш основной RU-домен “ушел”. А еще была переписка с техподдержкой Google. Хотя, односторонний поток писем в адрес саппорта Google сложно назвать перепиской, мы просто пытались выяснить, наложены ли какие-либо санкции на наш сайт, что стало причиной вылета из индекса. Ответных писем не было. А потом и вовсе оказалось, что мы искали решение совсем не там.

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

_________________________________________

Письмо начиналось вот так:

Добрый день.
13 июня 2013 года был зарегистрирован фишинговый сайт www.istbudget.com/ [7]
Данные подтверждают, что он хостится [5] у Вас:

IP 178.175.138.11
Хост: 178-175-138-11.ip.as43289.net
Город: Chisinau
Страна: Moldova, Republic of
IP диапазон: 178.175.128.0 — 178.175.255.255
Название провайдера: I.C.S. Trabia-Network S.R.L.
Whois Server Version 2.0
Domain Name: ISTBUDGET.COM
Registrar: SHANGHAI YOVOLE NETWORKS INC.
Whois Server: whois.yovole.com
Referral URL: www.yovole.com [8]
Name Server: ERIC.NS.CLOUDFLARE.COM
Name Server: RUTH.NS.CLOUDFLARE.COM
Status: clientTransferProhibited
Updated Date: 13-jun-2013
Creation Date: 13-jun-2013
Expiration Date: 13-jun-2014


_________________________________________

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

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

Вообще, приятно порадовала быстрая реакция провайдера и доменного регистратора. Без дополнительных вопросов и сложностей мы получили желаемый результат. А дальше было ожидание, что пройдет 2-3 дня с момента “смерти” клона и наш сайт вновь вернется в индекс поисковиков, однако, это не происходило, в выдаче по-прежнему были страницы сайта-клона, при переходе на которые Хром регулярно сообщал, что по этому адресу ресурс не существует. И снова мы писали письма в саппорт Яндекс и Google. Создать письмо в вебмастере Яндекса не получалось, поэтому, просто писали в техподдержку в свободной форме.

Решение проблемы нашли случайно и совсем не там, где прикладывали усилия: утилита Пинг Админ перестала присылать смс в моменты, когда сайт зависал. Мы обратили на это внимание, зашли в личный кабинет сервиса, проверили баланс (он был положительным), увидели, что Пинг Админ определяет наш сайт как недоступный вот уже в течение нескольких дней. Написали письмо в саппорт сервиса, сообщили об ошибке, а в ответ получили письмо, где техподдержка сообщила о том, что наш основной домен отдает 301-ый редирект для поисковых роботов на адрес комовского сайта-паразита, соответственно, роботы при заходе на основной ресурс получали сигнал о том, что данный домен является неосновным зеркалом нового сайта-клона.

Благодаря 301 редиректу «зеркальщик» яндекса благополучно склеил наш основной домен с новым паразитным доменом, и именно поэтому сайт-клон начал индексироваться и появился в результатах поисковой выдачи вместо основного ресурса.

Мы нашли и исправили уязвимость, порадовавшись, что легко отделались, удалили редиректы, прописанные чужими руками в нашем коде. К слову, паразитный код нашелся довольно легко по вызову eval(base64_encode()).

В течение 30 минут наш основной домен вернулся в индекс Google, чуть позже — в Яндекс. И это уже совсем другая история.

Автор: Andreich64

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/bezopasnost/63070

Ссылки в тексте:

[1] www.ist-budget.ru: http://www.ist-budget.ru

[2] www.ist-budget.ru/customers.php: http://www.ist-budget.ru/customers.php

[3] www.ist-budget.com: http://www.ist-budget.com

[4] www.istbudget.com: http://www.istbudget.com

[5] хостер: https://www.reg.ru/?rlink=reflink-717

[6] www.ist-budget.com/redir.php?page=: http://www.ist-budget.com/redir.php?page=

[7] www.istbudget.com/: http://www.istbudget.com/

[8] www.yovole.com: http://www.yovole.com

[9] Источник: http://habrahabr.ru/post/227267/