Сервис Beam Living от Blackstone раскрыл цифры SSN, даты рождения и адреса заявителей на аренду

Сервис Beam Living от Blackstone раскрыл цифры SSN, даты рождения и адреса заявителей на аренду

Автор поста подаёт заявку на аренду через Beam Living, жилищную платформу, входящую в портфель Blackstone, и по привычке следит за вкладкой сети в браузере. Там обнаруживается GraphQL-запрос «contact», который по одному параметру, «contactId» с имейлом, возвращает полный профиль заявителя: последние четыре цифры номера социального страхования (SSN), дату рождения, домашний адрес, IP-адрес, телефон, кредитный рейтинг, статус заявки, данные об экстренном контакте и даже сведения о питомцах. Запрос не проверяет, что обратившийся, владелец именно этой анкеты: достаточно подставить чужой имейл.

Автор проверяет догадку на имейле друга, тоже подававшего заявку через Beam Living, и получает его реальные персональные данные. Проблема не ограничена одной анкетой или одним домом: тот же общий портал обслуживает сразу несколько объектов портфеля, 8 Spruce, StuyTown, Peter Cooper Village, Kips Bay Court и Parker Towers. Любой, чья анкета оставалась в системе, был уязвим для того, кто знал его имейл, независимо от того, о каком из этих домов речь.

Дальше начинается почти месяц попыток достучаться до Beam Living (в тексте указаны только даты, без года). 14 июня уходит письмо с описанием уязвимости, которая затрагивает SSN, кредитный рейтинг, дату рождения, адрес и телефон заявителей и поручителей, с просьбой указать канал для ответственного раскрытия, ответа нет. 16 июня уходит повторное письмо с акцентом на серьёзность проблемы, снова тишина. 23 июня автор сообщает о находке напрямую своему агенту по аренде в Beam Living и просит связать с профильной командой. 24 июня, предупреждение, что уязвимость всё ещё активна; агент отвечает, что заявку передали дальше на расследование. С 26 июня по 8 июля продолжаются попытки достучаться, а 1 и 8 июля отдельно повторяется предупреждение, что данные автора и других пользователей по-прежнему доступны. В какой-то момент этой переписки в Beam Living на звонок отвечают, что всё проверили и никакой проблемы нет. Наконец 9 июля, после телефонного разговора, команда Beam Living по работе с резидентами (Resident Experience) просит прислать детали для передачи технической команде; сразу после звонка автор перепроверяет уязвимость и обнаруживает, что её тихо закрыли. После этого автор связывается с главой операционного отдела Beam Living, она реагирует доброжелательно, и автор предупреждает её о намерении опубликовать находку. Пост в итоге выходит, а в конце автор иронично замечает, что не уверен, не аннулируют ли ему за это аренду.

Ключевые факты

  • GraphQL-запрос «contact» в Beam Living возвращал полный профиль заявителя по одному параметру, имейлу, без проверки, что обратившийся и есть владелец анкеты.
  • Через дыру были доступны последние 4 цифры SSN, дата рождения, домашний адрес, IP-адрес, телефон, кредитный рейтинг, статус заявки и даже данные о питомцах.
  • Один и тот же портал обслуживал сразу несколько объектов Blackstone-портфеля, 8 Spruce, StuyTown, Peter Cooper Village, Kips Bay Court и Parker Towers.
  • Автору находки потребовался почти месяц (с 14 июня по 9 июля) и несколько каналов связи, чтобы добиться от Beam Living содержательной реакции.
  • На один из звонков в Beam Living ответили, что проблемы нет вообще, и позже её тихо пропатчили.

Почему это важно

Это конкретный, задокументированный случай обычной ошибки авторизации в GraphQL API: запрос принимал имейл как параметр и не проверял, что за ним стоит именно тот, кто спрашивает. В результате анкета любого заявителя на аренду, с последними цифрами SSN, датой рождения, адресом и другими личными данными, открывалась любому, кто знал этот имейл. История показывает и то, что дорогой владелец вроде Blackstone не гарантирует зрелую защиту персональных данных, и то, что канал ответственного раскрытия уязвимостей у Beam Living фактически не работал: обращения игнорировались неделями, а один из ответов по телефону состоял в том, что проблемы нет вообще.

Кому это важно

В первую очередь, тем, кто подавал заявку на аренду через Beam Living в перечисленных комплексах (8 Spruce, StuyTown, Peter Cooper Village, Kips Bay Court, Parker Towers): их персональные данные потенциально были доступны любому, кто знал их имейл, пока анкета оставалась в системе. Это также релевантно инженерам и специалистам по безопасности, которые проектируют GraphQL API: случай, учебный пример того, к чему приводит проверка личности пользователя по параметру запроса вместо данных сессии.

Как это применить

Технический урок сформулирован в самом материале: если запрос принимает имейл или любой другой идентификатор пользователя как параметр, а не берёт его из сессии, это само по себе повод для отдельной проверки авторизации, нужно явно сверять, что автор запроса и владелец записи совпадают, а не полагаться на то, что клиент запросит «только своё». Для тех, кто подавал заявку через Beam Living в упомянутых комплексах, практический шаг, уточнить у компании, оставалась ли анкета в системе на момент уязвимости, и внимательнее относиться к тому, какие данные вводятся в подобные арендные порталы.

Можно ли доверять

Материал, не пересказ чужой новости, а публикация человека, который лично проходит процесс подачи заявки на аренду, сам замечает GraphQL-запрос в сетевой вкладке браузера и лично подтверждает уязвимость, подставив имейл друга, тоже пользовавшегося сервисом Beam Living. В посте приведён полный текст GraphQL-запроса и фрагменты схемы данных, а также подробная, датированная переписка с Beam Living, уровень технической детализации, который трудно подделать. Слабое место: имя автора и год событий в тексте не указаны, а версия о звонках и обещаниях Beam Living передана только со стороны автора, встречного комментария компании в материале нет.

Риски и подводные камни

Прямая опасность для тех, чьи данные были в системе, последние цифры SSN в связке с датой рождения, адресом и телефоном достаточны для типичных схем кражи личности, а сколько именно чужих анкет реально просматривали за время, что дыра была открыта, в тексте не указано. Есть риск и для автора находки: публикация выходит от человека, который сам остаётся заявителем того же Beam Living, отсюда и финальная ирония поста о том, не аннулируют ли за это аренду.

«Само по себе это не обязательно плохо, но если имейл пользователя передаётся в GraphQL-запрос, вместо того чтобы просто брать его из куки сессии, это всегда подозрительный знак.»

— автор находки