Сразу хочу оговориться, что данная статья — не крик души, не бахвальство и, тем более, не попытка очернить чью-то там репутацию. Я просто призываю быть немного внимательнее пользователей услуг к сервисам компаний, которые их обслуживают, а сами компании — к сервисам, которые они предлагают своим клиентам. Иной раз такие сервисы ради удобства клиентов жертвуют их же, клиентов, конфиденциальностью. В каких пределах это происходило в моем случае — под катом.
В один прекрасный день на мой телефон в очередной раз позвонили из Москвы (сам я проживаю в регионе), попросили поучаствовать в опросе и спросили мою супругу. Я просто молча положил трубку. А через час мне пришло долгожданное SMS-сообщение из службы экспресс-доставки, услугами которой мы пользовались уже не первый год. Текст, аналогичный полученному, был выслан мне в Viber и на электронную почту. Данное SMS-сообщение содержало ссылку на официальный сайт компании вида www.XXXX.ru/dostavka/?hash=XXXXXXXXXXXX, пройдя по которой я мог отслеживать движение груза и управлять его доставкой (отказаться от груза, выбрать дату доставки и пр.).
Пройдя по ссылке, я увидел, что браузер автоматически залогинился с моим номером телефона и номером накладной (заполненная форма авторизации была на экране буквально секунды две), после чего я получил доступ к личному кабинету, в котором были представлены персональные данные (ФИО и домашний адрес) получателя, а также сведения о дате и времени доставки груза. И тут меня передернуло — доставку мы часто заказывали на имя супруги (ее ФИО и были указаны на сайте), поскольку она работает ближе к офису компании и забрать посылку ей обычно проще. А номер телефона был указан мой, поскольку заказываю товар у отправителя я. При этом я только сейчас обратил внимание, что совершение каких-либо действий для того, чтобы залогиниться (т.е. подтвердить свою личность), с моей стороны не требовалось вообще. Просто прошел по ссылке и вуаля! Удобно, казалось бы.
Данное обстоятельство позволило мне предположить, что любой человек, пройдя по моей ссылке, может увидеть информацию о моем отправлении (а заодно и персональные данные, а именно: номер телефона, ФИО и домашний адрес). Само по себе данное обстоятельство уже не особо приятное. В то же время, слово «hash» в адресе дало мне надежду на то, что следующая за ним последовательность — результат некой хэш-функции, и подобрать последовательность таким образом, чтобы попасть в чей-то личный кабинет, будет затруднительно. Чтобы проверить данное предположение, я изменил последний символ в последовательности (цифру) и попал в чужой личный кабинет, где мне были доступны чужие персональные данные, а при входе логином автоматически послужил чужой номер телефона. Поверхностно пробежавшись по «соседним» личным кабинетам, я понял, что последовательность символов, следующая за "?hash=" — это не результат хэш-функции, а некий код, выдающийся по порядку каждому клиенту по каждому отдельному отправлению. Замена иных символов в последовательности — шестнадцатеричных цифр на предыдущие или последующие позволила мне попасть без какой-либо авторизации в чужие личные кабинеты, что давало доступ к сведениям о номере телефона, фио получателя и его адресе (часто — домашнем).
Так я с ужасом понял, что компания хранит персональные данные своих клиентов (а заодно и наши с супругой) в открытом виде на страницах, доступных любому лицу, имеющему доступ к их официальному сайту. Для доступа к персональным данным клиентов компании по всей стране достаточно пропарсить страницы личных кабинетов, подставляя методом перебора значения последовательности, следующей за "/?hash=" в url. Причем абсолютно никакой защитой от скрапинга сайт не располагал. Спешно набросанный на коленке краулер безо всяких проксей в 20 потоков буквально за пару минут собрал несколько сотен живых записей, после чего я его выключил. Нет, IP не забанили. Это была бомба. Справедливости ради надо сказать, что так можно было собрать данные не всех клиентов, а только тех, кто находится, так сказать, в «активной фазе получения груза». До момента поступления груза в какой-то из ближайших сортировочных центров и почти сразу после его получения доступ в кабинет управления доставкой закрыт, но телефон и номер накладной все еще светились в форме авторизации (т.е. базу живых номеров собрать все-таки было можно).
Таким образом, избранный компанией способ хранения персональных данных клиентов обеспечивал неконтролируемое раскрытие этих данных третьим лицам, что являлось грубейшим нарушением требований статей 7 и 19 Федерального закона от 27.07.2006 №152-ФЗ «О персональных данных». С одной стороны, очень-очень сильно хотелось пожаловаться в Роспотребнадзор, с другой же стороны я понимал, что для компании создание сайта направление не профильное (а сайт, судя по копирайтам, они сделали сами), а службы ИБ в ее штате вообще могло и не быть. Поэтому (чтобы писать от себя) я выждал пару дней, пока придет груз уже на мое имя, убедился, что все по-прежнему работает, и изложил им обнаруженную мной проблему, честно указав, что намерен написать о ней сразу по закрытии уязвимости или через две недели с момента обращения (что наступит раньше). В ответ я получил дежурную благодарность и обещание передать информацию руководству и моему менеджеру.
Сколько эта брешь просуществовала на сайте можно только гадать, но я уверен, что она вовсю эксплуатировалась заинтересованными лицами. На сегодня (спустя почти три недели) брешь, вроде бы, закрыта. В прочем, со мной представитель компании не связывались.
Автор: iSergios