Яндекс: утечка информации

9 Авг
2011

Недавний случай с индексацией СМС-сообщений с сайта Мегафона и последующая череда «интересных открытий» заставила меня глубоко задуматься. Вчера эта же проблема коснулась и моей компании, правда совсем немного, — Яндекс проиндексировал несколько резюме (доступные по секретным ссылкам), оставленных кандидатами на вакансии на небольшом специализированном сайте, куда они загружали свои тестовые задания. Мы узнали об этом от одного из наших кандидатов. Было неприятно, мы извинились и удалили скомпрометированные данные, а также поставили пресловутый robots.txt с запрещающими правилами. Стала еще интересней позиция Яндекса по этому вопросу. И вот последовало заявление представителя Яндекса Владимира Иванова. Далее хотелось бы прокомментировать этот ответ, поскольку, на мой взгляд, реакция общественности на эти события слишком спокойная именно потому, что многие недопонимают или недооценивают происходящее. Большая часть упомянутого заявления сводилась к пассажам, что ссылки уже изначально доступны, и если бы не Яндекс, то эти ссылки стали бы известны другим способом. Цитата — «личную информацию посетителей сайта необходимо защитить, например, закрыть паролем». Давайте задумаемся, что значит «закрыть паролем» и что нам это даст. Сделаем это на примере сервиса самого же Яндекса. Проведем эксперимент. Для этого любой желающий может зайти на главную страницу Яндекса и ввести какой-нибудь логин и пароль. Я ввожу MYLOGINи MYPASSWORD. Нажимаю кнопочку «Войти». И браузер отправляет на сервер POST-запрос со следующим содержимым:
1
2
3
4
Content-Type: application/x-www-form-urlencoded 
Content-Length: 55 
 
login=MYLOGIN&passwd=MYPASSWORD&timestamp=1311672796386
Этот запрос я перехватил с помощью Firebug, но он в таком же виде проходит через все прокси-серверы и приходит на сервер Яндекса. То есть каждый день миллионы пользователей отправляют свои пароли в открытом виде через все те же прокси-серверы, системы СОРМ, и доступны всем программам, которые упоминались в пассажах Владимира Иванова. (Аналогично будет на любом сайте, не использующем HTTPS.) К чему я веду? К тому, что в понимании Яндекса передача открытого пароля безопасна и удовлетворяет определению «закрыть паролем». Тогда зачем все эти пассажи, ведь использование секретных ссылок (а в известных мне случаях именно они были проиндексированы) ничем с точки зрения безопасности не отличается от используемого Яндексом метода аутентификации. Объясню. Посмотрим на шаблон секретной ссылки:
1
<a href="http://some-server/private?secretKey=CODE">some-server/private?secretKey=CODE</a>
Во многих случаях CODE — это либо хеш, либо идентификатор. Подбор CODE в секретной ссылке эквивалентен подбору пароля в обычной аутентификации, пример которой приведен выше. CODE можно составить из логина и пароля, например, по аналогии с предыдущим примером «MYLOGINMYPASSWORD», то есть это тоже способ «закрыть паролем». Разница между двумя этими способами аутентификации состоит не в безопасности передачи информации, а в удобстве использования: когда пользователь вводит пароль в специальное поле, пароль не отображается на экране. В секретной же ссылке вся информация всегда на виду при этой ссылке. Первый способ легко свести ко второму, и наоборот: в первом случае мы можем рядом с ссылкой написать логин и пароль, во втором, наоборот вырезать этот код из ссылки и вводить его вручную. Еще раз повторю. Между этими способами, первый из которых Яндекс рекомендует использовать и использует сам, а второй, наоборот, не рекомендует и «другим не дает», нет существенной разницы с точки зрения информационной безопасности — оба метода не безопасны, так как пароль передается в открытом виде. Но даже если мы станем использовать HTTPS, то все равно, наша информационная безопасность будет «в руках» программ, с которыми мы работаем: браузеров, дополнений к браузерам (в том числе Яндекс.Бар, тот же Firebug), JavaScript-кода (в том числе Яндекс.Метрика), и серверного ПО. Мы доверяем этим программам, однако, если вдруг одна из этих программ (а такая техническая возможность давно есть и в видимой перспективе будет), начнет перехватывать наши пароли от почтовых ящиков, личных кабинетов, и так далее и отправлять их на какой-нибудь сайт с открытым доступом, мы назовем это утечкой данных и никак иначе. Поэтому, и в текущей ситуации нужно называть вещи своими именами: проиндексированные Яндексом страницы, доступные по секретным ссылкам — это результат утечки данных, причем все стрелки указывают на Яндекс.Бар и Яндекс.Метрику. Что касается рекомендации использовать robots.txt, то это лишь «замыливание проблемы». Да, теперь разработчики сайтов будут вынуждены создавать запрещающий robots.txt, а потом уже разрешать к индексации публичные разделы. Но так или иначе, это безответственный подход Яндекса. Это значит, что по-умолчанию Яндекс считает все доступные ему данные публичными. Потом может еще окажется, что нужно где-то галочку поставить, чтобы моя почта не индексировалась?
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх