[Спам и антиспам, Информационная безопасность, Чулан, Управление персоналом] Вы — часть руководства? Отключите прием вызовов в телеграм! Баг-хантер? Уважайте других людей

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
13-Апр-2021 23:30

Всем привет. Сегодня речь пойдет не совсем о разработке. Я даже не знаю с чего начать. Это просто крик души.Вы когда-нибудь пользовались звонками в телеграм? Это в целом удобно, особенно если не знаешь номера телефона. Но три месяца назад началась очень неприятная история, которая в конечном счете вымотала всю нашу поддержку, да и меня тоже.Хто я?
Я - технический директор зарубежной компании. Прошел весь путь с момента идеи продукта и до текущего момента. По сути, мы - стартап, но вышли на самоокупаемость. Я часто отвечаю в поддержке для ускорения процесса если, конечно же, у меня есть свободное время. Итак, история началась 3 месяца назад. Наша команда в основном работает удаленно, но желающие могут посещать офис в Москве. Так вот, в конце января наш офис (а за одно и столицу) решил посетить один из сотрудников. Было принято решение встретить его с аэропорта. Должен сказать, я не отвечаю на телефонные звонки когда за рулем. И вот я еду в аэропорт, как мне начинает звонить раннее неизвестный мне человек в телеге. Я конечно же сбрасываю, но так просто я не отделался. Звонки начали повторяться постоянно. Сбросил - через 5 секунд тебе уже снова звонят. Ну что-ж. Выход очевиден: беззвучный режим и глаза на дорогу. Как только я доехал до аэропорта и открыл чат - увидел что этот человек, который так сильно названивал, нашел несколько багов в нашем приложении и просит вознаграждение. После чего я перенаправляю его на других сотрудников, забираю коллегу и еду обратно. Дальше пришло несколько сообщений которые я снова не прочитал потому что был за рулем и снова очередь звонков, которые были сброшены.
Вернувшись в офис, я решил уделить время охотнику за багами. После небольшой переписки, багхантер понимает что вознаграждение не я плачу и что все-таки я бесполезен для него. Ситуация стихает на некоторое время. Но неделю назад все началось с бОльшей силой. Я как обычно сижу на работе, провожу митап со своей командой, как мне начинают звонить. Естественно все по старой схеме: я занят > сброс > звонок. Цикл замкнулся.
while (true) {
  const rand = randomFloat();
  if (rand > 0.9) {
    writeMessage("Hi");
    continue;
  }
  callTelegramm();
}
После митапа я пишу "What happened?" ииии... Дальше ничего. Сообщение не прочитано, человек так сильно пытался до меня дозвониться и пропал. Через 3 дня он объявляется и сообщает что нашел аж 10(!) багов. Я думаю "как же так, 10 багов, я о них ничего не знаю". Логично что я сразу же занялся его вопросом и решил лично проверить все.-_- ([%$#%^&$#] заголовок украден хакерами анонимусами)После проверки "багов" оказалось что часть из них - возможность вытащить "личные данные пользователей". Звучит страшно, но на деле там оказалось что можно получить nickname пользователя, чей ник ты и так должен знать и (внимание) ID пользователя. Wow. Чтобы было немного понятнее: вы можете найти в телеграм пользователя по его нику. Чтобы его найти - вы и так должны знать ник. Это точно личные данные пользователей уязвимые для атаки? Вот такой же "баг" у нас нашли. Другой "баг" - возможность доступа к открытым разделам приложения без оплаты. Мы сняли требование оплаты для того чтобы пользователь мог зайти в настройки и изменить емаил или пароль. Или же сменить тарифный план на бесплатный. Так вот как оказалось - это критическая уязвимость.Еще могу рассказать как взломать абсолютно любой сервис. Как же? Все просто: открываете дев-тулзы на сайте и меняете текст в хтмл на свой личный. Для удобства представим что вы в сообществе вк добавляете модератора. Так вот вы находите в девтулзах слово "модератор" и пишете "владелец". А потом нажимаете кнопку, которая и выдает права. Проверять не стоит, ведь вы и так уверены что сообщество теперь принадлежит другому пользователю. Правда если все же проверить права - он окажется модератором, но это не важно. Звучит как ерунда? Я с вами согласен.
В конечном счете оказалось из 10 багов, за которые, кстати, тот самый нереальный охотник просил $2000, действительно багами считать можно только 2. И то они заключались в том, что мы не ограничиваем максимальное количество вводимых символов в инпут пароля при логине и регистрации. Казалось бы: можно попробовать забить сервер. Но при превышении максимального веса запроса - сервер сам отбросит его, да и к тому же у нас передается очень много данных между клиентом и сервером. Бывает возвращается ответ с 10к+ строк текста. Пора поговорить о bug bountyРешение было принято. За это платить $2000 не будем, оно того не стоит. Было предложено $400 за эти 2 момента. Но эта сумма не устроила охотника за багами. Он снисходительно снизил цену до $1500. 1500? Что? За максимальное ограничение символов? Его аргументом стало то, что это можно использовать для DDOS-атаки. Но DDOS-атака не проводится на поля для ввода. Она не так подбирается. Ищется место, в котором сервер медленнее всего обрабатывает запрос - очевидно там тяжелая работа с базой или какая-то дополнительная обработка, а может и в оперативу выгружает большое количество данных. И именно в этом место начинается атака чтобы положить сервер. В результате я предложил решение: проведешь успешную атаку с этим "багом" и мы поговорим об оплате за него.
Тут баг-хантер решил что пора понижать планку еще: до $1000. На самом деле $400 за эти "баги" и так сильно завышенная цена. После моего отказа - начались звонки - я отписал что в данный момент работаю и не могу ответить, но звонки продолжились. На следующий день все повторилось - я перенаправил его на других сотрудников, но с ними сей человек разговаривать не стал и продолжил долбиться ко мне в личку. В конце рабочего дня он отписал, что согласен на $600, после чего мы с ним еще раз поговорили и сошлись на 500, но без дальнейшего продолжения сотрудничества. После чего я связался с CEO компании и оказалось, что за день до этого ему уже перевели $500 (в тот момент, когда его это не устраивало). Я снова списался с охотником на баги и оказалось что он хочет еще $500. То есть в общей сложности $1000. И снова начались звонки... Я запретил ему в настройках звонить мне - он зарегал второй аккаунт, затем третий. После - начал звонить и писать в чат поддержки с требованием перевести ему еще со словами "иначе с вами никто не будет работать". Дальше - больше. Дело пошло к угрозам, жалобным и злобным эмоджи.
Потом пошел флуд в личку. И в конечном счете я не выдержал и отправил его в бан. Может быть у кого-то были подобные проблемы? Как вы их решаете? Формально у нас не было компании на hackerOne. Этот человек сам нашел нас и сам же скинул баги и запросил цену. Мы готовы платить, но всему есть предел. Буду рад обсудить это в комментариях. Мораль сей басни такова
  • Не названивайте в телеграм постоянно. Если человек сбросил - он занят и обязательно ответит позже
  • Не ломите цену. Ну ей богу. Ограничение по количеству символов в инпуте не стоит 2000 у.е. Оно и 500 не стоит если честно. Такими темпами можно будет оценивать отсутствие валидации полей на клиенте в тысячу долларов. А главным аргументом станет "Ну и что, что запрос не выполняется. Он же на сервер улетает. Запрос лишний - можно дудосить"
  • Проверяйте баги прежде чем отписывать о них. Изменить в девтулзах текст - это не баг если он ни к чему не привел
Всех же, кто является частью руководства компании, призываю ограничить прием вызовов в телеграм не только в личном, но и в аккаунте поддержки - нашу команду просто вымотали за 3 дня. 3 дня безостановочных звонков. А главное - поддержка не может себе позволить заблокировать пользователя или сама отключить прием вызовов. Я восхищаюсь их терпению. Я бы просто не выдержал.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_spam_i_antispam (Спам и антиспам), #_informatsionnaja_bezopasnost (Информационная безопасность), #_chulan (Чулан), #_upravlenie_personalom (Управление персоналом), #_telegram (телеграм), #_uvazhenie (уважение), #_nadoelo (надоело), #_podderzhka (поддержка), #_bezopasnost (безопасность), #_bagi (баги), #_spam_i_antispam (
Спам и антиспам
)
, #_informatsionnaja_bezopasnost (
Информационная безопасность
)
, #_chulan (
Чулан
)
, #_upravlenie_personalom (
Управление персоналом
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 12:23
Часовой пояс: UTC + 5