Хотите Big Mac от McDonald’s? А к нему — полные данные о 64 миллионах человек

McHire нанимает всех… включая хакеров с логином 123456.


5af850ud3dmxr8of22p0wstodhluai4x.jpg


Система найма McDonald's оказалась защищена паролем, который знает каждый ребенок — «123456». Две простые уязвимости позволили получить доступ к личным данным 64 миллионов соискателей работы в крупнейшей сети ресторанов мира.

McHire — это платформа подбора персонала, которую использует около 90% франчайзи McDonald's. Она построена на чат-боте по имени Olivia, разработанном компанией Paradox.ai. Olivia собирает у кандидатов личные данные, предпочтения по сменам и проводит личностные тесты. Исследователи заинтересовались системой после жалоб на Reddit: пользователи сообщали, что бот отвечает бессмысленно.


9d4v5htlt4hiyrjym91hefjtg262aidg.png


В ходе поверхностного анализа, занявшего всего несколько часов, специалисты обнаружили две критические проблемы. Во-первых, интерфейс для ресторанов по адресу https://www.mchire.com/signin принимал дефолтные логин и пароль «123456». Во-вторых, внутренняя API содержала уязвимость типа Insecure Direct Object Reference (IDOR), позволявшую поочерёдно запрашивать заявки других пользователей, подставляя различные идентификаторы.

Проверка началась с подачи заявки на вакансию через сайт https://jobs.mchire.com/ . Olivia попросила ввести email и номер телефона, а затем тут же предложила пройти личностный тест от компании Traitify. Вопросы сводились к выбору «Я» или «Не я» в ответ на утверждения вроде «люблю переработки». Было несложно догадаться, какие ответы предпочтительны для работодателя, но сам процесс вызывал недоумение.

Дальнейшее продвижение по этапам найма остановилось: судя по всему, заявка ушла на ручную проверку. Попытки внедрить команды в бот Olivia ни к чему не привели — он реагировал только на заранее заданные фразы. Открытых API для кандидатов обнаружено не было.

Тогда исследователи переключились на административную часть платформы. Сайт https://www.mchire.com/signin по умолчанию предлагает вход через корпоративную учётную запись McDonald's, но внизу находилась менее заметная ссылка «Paradox team members». В поле логина и пароля ввели «123456» и — неожиданно — оказались внутри админ-панели.


l0nsspuupck2qvv50w4lnrojfi0z3hv0.png


Это оказалась тестовая среда: ресторан, где «сотрудниками» числились сами разработчики из Paradox.ai. Исследователи решили откликнуться на одну из тестовых вакансий, уже настроенных в учётной записи, чтобы посмотреть, как процесс выглядит со стороны ресторана. Интерфейс работодателя позволял просматривать все активные переписки с ботом Olivia и вмешиваться на определённых этапах — например, после завершения личностного теста.

Во время просмотра своей тестовой заявки они обратили внимание на интересный API-запрос: PUT /api/lead/cem-xhr. Судя по названию, он проксировал запросы к некой системе управления взаимодействием с кандидатами (Customer или Candidate Experience Manager, CEM) через XHR. Основным параметром запроса был lead_id — идентификатор чата. В их случае он составлял примерно 64 185 742. Уменьшив его на единицу, исследователи сразу получили доступ к персональным данным другого соискателя McDonald's, включая контактную информацию в открытом виде.


v2f455td00jgnvaxoisfu1mmrowa3ebq.png


Таким образом, перебирая идентификаторы, можно было получить доступ к любой анкете в системе McHire — более 64 миллионам заявлений по всему McDonald's. Полученная информация включала имена, email-адреса, номера телефонов, адреса, статус заявки и все данные, которые заполнял кандидат (предпочтения по сменам и прочее), а также токены авторизации для входа в пользовательский интерфейс от имени соискателей.

Как только масштабы проблемы стали очевидны, исследователи попытались сообщить об этом в Paradox.ai. Однако страница безопасности компании просто утверждала, что «переживать о безопасности не стоит», и не содержала контактных данных. В итоге пришлось писать на случайные адреса.

Paradox.ai и McDonald's быстро отреагировали: дефолтные учётные данные были отключены, уязвимости устранены, а сама компания подтвердила закрытие проблем и начала дополнительную проверку системы.