Здарова!
Не так давно исследователь нашёл серьёзную уязвимость в instagram, сообщил об этом, но копнул слишком далеко и нарушил условия багбаунти. Если не в курсе, вот тебе ссылка . Подобная история произошла со мной.
Как-то вечером я проводил исследование и нашел уязвимости на паре десятков сайтов, в том числе на одном из доменов linkedin.
Чтение произвольных файлов от привилегированного пользователя (root). Прочитав единственный файл в директории root — было понятно, что это данные для аутентификации к облачному хранилищу Amazon .
Технические подробности в блоге wallarm .

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

Уязвимости и инциденты
Я считаю, если была найдена критическая уязвимость, нужно расследовать и принять меры по минимизации рисков. Кто-то мог получить доступ к внутренней инфраструктуре (не получал, а теоретически мог) — надо расследовать. Смена паролей, сброс сессионных идентификаторов, прочие меры. То есть всё, что делала бы организация, если бы они обнаружили инцидент, а не багу сдал исследователь.
Хотя бы потому что никто не знает, эксплуатировали ли эту уязвимость до того, как её нашёл исследователь. Может ей уже 5 лет и она хранится где-нибудь на закрытых площадках.
Так что обвинение в том, что я отнимаю время, считаю некорректным.
Этика и этичные хакеры
Множество хакеров — люди воспитанные предрассудками. Основной аргумент — за любую работу нужно платить. Огромное количество людей считают, что если «хакер» ворвался на сайт какой-то компании, компания уже автоматически должна ему бабла (IMHO, это вымогательство).
Без знаний типа уязвимости, способа эксплуатации и устранения, они суют кавычки во все щели и считают, что за эту работу им все должны.
И часто, после нахождения уязвимости, эти «этичные» багхантеры работают на два фронта. Продают слитые исходники или БД, и сдают уязвимость в bugbounty программу. Удобно.
И вот после этого разрешить хакерам лазить по внутрянке и сливать данные?
Тонкие грани
Нет чётких правил как вести себя при обнаружении уязвимостей. Например, если я прочитаю /etc/passwd могу ли я получить техническую информацию, которую можно использовать для дальнейших атак? Конечно. А ведь это первый файл, который будет прочитан. Кто-то скажет /etc/hosts — а у кого-то это очень важный файл с технической информацией о внутренней инфраструктуре и администраторах системы.
Как проверить, что у тебя привилегии суперпользователя? Почему-то сразу в голову приходит shadow. С паролями.
А иногда, невозможно оценить даже критичность уязвимости без эксплуатации таковой. Если бы завели /home/flag и /home/superflag — тогда другое дело. Есть что искать и как доказать наличие уязвимости.
Нашёл открытую базу данных (без пароля, например — MongoDB) — отправишь разработчикам, а они — иди в жопу, это пустая база для тестов.
Посмотришь — нарушишь правило программы.
Как отличить исследователя от злоумышленника? Если злоумышленник будет пытаться взломать ресурс, начнёт сливать файлы, а его поймают. Он скажет — а я тут багбаунти занимаюсь. Вот вам письмо написал.
Исследователь, получив чувствительную информацию, становится злоумышленником.
Я перегнул палку, когда зашёл на облачное хранилище. Но логин и пароль уже должен считаться скомпрометированным (обязательная процедура после такой баги). Исходники не сливал. Так кто же я?
