Допустима ли публикация уязвимостей?

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

Насколько уместна публикация подробностей незакрытых уязвимостей?

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

Летом 2015-го один из пользователей Firefox обратил внимание на странное поведение независимого новостного сайта в доменной зоне .ru: уязвимости в стандартной PDF-читалке сайт использовал для сбора данных о своих посетителях. Сотрудникам Mozilla понадобилось всего несколько часов, чтобы навсегда закрыть довольно серьёзную уязвимость.

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

Например, некогда столь популярный мессенджер Skype. В 2013-м мою учетную запись заблокировали (вместе с деньгами, без предупреждений и без возможности снять блокировку), а спустя несколько месяцев дико утомительных, но абсолютно безрезультатных разговоров с тогда уже майкрософтовской поддержкой я узнал, что, скорее всего, заблокировали меня из-за старого (даже на тот момент) бага. Даже сейчас я не уверен, что стоит вдаваться в подробности, ибо до сих пор не уверен, что дыру закрыли.

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

Повторюсь: со мной сия беда приключилась в конце 2013-го, а уже в начале 2014-го я узнал, что ещё летом 2013-го один из пользователей Хабра предупреждал о возможности перманентной блокировки случайных пользователей. Мотивы его были вполне благородными: он хотел, чтобы Microsoft наконец-то признали проблему и скорректировали собственные методы борьбы со спамом. Услышал ли его хоть кто-то? О, да! Судя по тоннам почти одинаковых вопросов на скайповском форуме, повеселиться тогда решили многие. Вот только Microsoft дыры латать не спешили. И, если честно, я до сих пор не уверен, что проблема уже неактуальна. Хотя казалось бы…

Означает ли это, что рассказывать об уязвимостях опасно, а значит, ненужно вовсе? Тоже нет. Потому что история знает и другие примеры. Взять хотя бы всё тот же Skype: в 2012-м путем нехитрых манипуляций с изменением электронного адреса, к которому была привязана учётная запись, можно было сбросить пароль от любого другого аккаунта. Всё, что вам для этого было нужно, это адрес электронной почты жертвы. А разве сложно его достать? Нужно ли было рассказывать об этом всему миру? Не знаю… Но спустя три месяца после публикации уязвимость наконец-то закрыли. Да, это довольно долго, и, скорее всего, многие проныры успели ей воспользоваться, но в конце концов цели мы всё-таки достигли: дыра закрыта!

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

Например, хакеру, получившему доступ к данным 20 млн. пользователей сайта знакомств TopFace, повезло: ему не предъявляли исков, его не пугали тюрьмой, его поблагодарили за проделанную работу и предложили сотрудничество. И, по-моему, это идеальный вариант развития событий. Вот только это, скорее исключение, нежели правило.

Специалисту по безопасности из Сан-Франциско повезло куда меньше. Когда весной 2015-го ему удалось превратить три подарочные карты Starbucks номиналом в $5 каждая в две по $15 и $5, он сразу же сообщил об этом представителям компании. По традиции связаться с технической поддержкой было довольно, но спустя каких-то полтора месяца уязвимость, которая потенциально могла принести убытки на сотни тысяч долларов, всё-таки устранили. Вот только вместо благодарности Starbucks обвинили нашего героя в мошенничестве.

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

В конце 2016-м сотрудники Project Zero (одно из подразделений Google) обнаружили довольно серьезную уязвимость в браузерах Edge и IE (Internet Explorer) от Microsoft, о чём оперативно сообщили коллегам. Вот только ответа они так и не получили, и даже спустя три месяца проблема так и не была устранена. А ведь это предустановленные в Windows браузеры, а значит под угрозой потенциально находились пользователи всех майкросовтовсих операционок от WindowsXP до Windows10! Так и не получив от Microsoft никакого ответа и не увидев какой бы то ни было реакции в течении 90 дней Google опубликовали подробности уязвимости в своем баг-трекере. Microsoft вполне ожидаемо сему факту не обрадовались.

И уж если даже такие гиганты не могут договориться, уместно ли публиковать подробности уязвимостей, как быть нам, простым пользователям? У крупных компаний и серьёзных хакеров существует условная договоренность хранить молчание в течении уже обозначенных 90 дней: если разработчик проигнорирует сообщение и не закроет уязвимость, о ней можно рассказать остальному миру.

Вот только мы в сами не Google и не лулзы. Нам не так просто связаться напрямую с разработчиками, а обычная поддержка, в которую пишут простые смертные, не всегда компетентна в таких вопросах. Да и сами сообщения могут затеряться в тоннах однотипного фидбека от таких же пользователей. Что если я пока не уверен, что действительно смог привлечь внимание разработчиков? Действует ли правило 90 дней в этом случае?

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

И это не совсем риторический вопрос… Некоторое время назад, зная лишь круг общения конкретного пользователя, я смог узнать его e-mail и номер телефона. Кто-то скажет, что это мелочи, мол, эту информацию о нём и так знают почти все, но, по-моему, номер телефона и адрес электронной почты — это довольно важный аспект приватности!

Это не уязвимость в классическом понимании этого слова, но другого слова я подобрать, увы, не смог. Довольно долго я думал о том, как рассказать об этом максимально убедительно, но не подставляя при этом других пользователей. В определённый период я даже собирался использовать в качестве примера максимально медийного на тот момент Павла Дурова, но, во-первых, он оказался не так прост и с ним такие шутки не прокатили, а во-вторых, даже в случае успеха это было бы уж слишком похоже на пошаговую инструкцию по получению личных данных. А это как раз то, чего мне хотелось бы избежать. Так что вопрос о том, насколько допустима публикация уязвимостей, пока остается открытым… по крайней мере для меня…

26 марта 2017

Comment