



Исследователь с помощью брутфорса взломал API авиакомпании Avelo и получил доступ к данным пассажиров
Исследователю безопасности Алексу Шапиро удалось с помощью брутфорса взломать API системы бронирования авиакомпании Avelo. В результате получилось узнать личные данные случайных пассажиров.
Обычно API бронирования оснащены двухфакторной защитой, которая предотвращает кражу данных. Чтобы получить доступ к информации, надо знать номер бронирования и фамилию пассажира. Такая комбинация из двух параметров даёт очень много возможных значений, поэтому подобрать её сложно.
В системе бронирования авиакомпании Avelo не было двухфакторной защиты. Всё что надо для получения данных — шестизначный номер бронирования, состоящий из заглавных букв английского алфавита и цифр. Возможных значений всего 366 = 2 176 782 336, и их уже не так сложно подобрать брутфорсом.
Если арендовать сервер с возможностью отправлять по 100 тыс. запросов в секунду, то все актуальные коды бронирования можно будет получить примерно за шесть часов. При этом аренда сервера с нужными параметрами будет стоить в пределах тысячи долларов.
Следующей ошибкой инженеров Avelo стало игнорирование файлов cookie. В алгоритме проверки можно было бы привязать токен аутентификации к номеру бронирования. Тогда сервер возвращал бы пользователю только его данные. Разработчики этого не сделали, поэтому для запросов подходили любые файлы cookie с токеном аутентификации.
Единственная система защиты в API системы бронирования Avelo — ограничение на количество запросов в секунду. Блокировки подозрительных IP-адресов или капчи в системе не было.
Исследователь написал скрипт на Python для генерации случайных шестизначных кодов бронирования и получил от сервера данные пассажиров, включая:
личные данные: имя (FullName), дату рождения (DateOfBirth), пол (Gender);
номер удостоверения личности
Читать на habr.com