Общедоступные результаты тестов на коронавирус – как не обезопасить свои данные

TL;DR — дата рождения или номер социального страхования не является хорошей идеей для обеспечения доступа к данным.

Головоломка — в чем разница между двумя картинками ниже?

Но начнем с самого начала. К сожалению, как это часто бывает в мире ИТ, удобство не идет рука об руку с безопасностью. Я думаю, что на этот раз все было похоже. Тем не менее, существует набор конфиденциальных данных, где компромиссы не должны быть сделаны. Такие данные включают, но не ограничиваются ими, информацию о нашем здоровье.

Встревоженный сообщением от моего друга Kacpra о том, как предоставляется доступ к лабораторным результатам, я решил исследовать решение, ответственное за это, более подробно.

Как видно на графике выше – для доступа к вашему результату через функционал «упрощенного логина» вам понадобятся две информации:

  • Идентификатор заказа, где последующие номера заказов увеличиваются;
  • заказ даты рождения человека [день=X&месяц=X&год=X]

Согласно определенным предположениям, количество комбинаций дат рождения, которые могут быть назначены идентификатору заказа, составляет всего около 19 000 комбинаций. Нетрудно догадаться, что сгенерировать все подобные комбинации и проверить, соответствуют ли они порядковой номеру, не является серьезной проблемой.

Оказалось, что мои предположения верны и после нескольких сотен перечислений удалось сопоставить данные доступа:

злоумышленник перечисления

Это позволило и всё более конфиденциальную информацию о пациенте, такую как:

  • имя;
  • имя;
  • песель;
  • дата рождения;
  • адрес проживания;
  • результат испытаний;
Результаты теста на коронавирус
Результаты теста на коронавирус

Другой пример успешной попытки перечисления:

перечисление отрыжки злоумышленника
Результаты теста на коронавирус

Как только я подтвердил свою восприимчивость, я сообщил об этой ошибке ответственному программному обеспечению вместе с рекомендациями по ремонту:

Сообщение электронной почты об ошибке безопасности

Что делать, как жить?

Одной из наиболее распространенных мер безопасности против этих типов атак является реализация капчи. После нескольких (например, трех) неудачных попыток доступа к данным заказа пользователю приложения будет предложено переписать отображаемый код капчи. Обратите внимание, однако, что реализация такого механизма является лишь (или до тех пор) замедлением злоумышленника, который в простейших случаях сможет в дальнейшем брутфорсировать дату рождения с помощью сканеров OCR или специализированных сервисов чтения капч.

Лучшей и рекомендуемой функцией безопасности является доступ к результатам заказа через достаточно длинный, случайный пароль,который придет на номер телефона клиента.

К счастью, ошибка была исправлена довольно быстро, реализовав механизм reCAPTCHA от google:

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Закладка Постоянная ссылка.

Podziel się swoją opinią na temat artykułu