セキュリティ
Blackstone傘下の不動産会社がSSN下4桁、生年月日、住所などを漏洩
A Blackstone real estate company exposed SSN digits, DOBs, addresses and more (alexschapiro.com)
要約
Beam LivingというBlackstone傘下の不動産管理会社で、GraphQL APIの脆弱性により、入居希望者の個人情報(SSN下4桁、生年月日、住所、電話番号など)がメールアドレスを知っていれば誰でもアクセスできる状態になっていたことが発覚しました。報告者は迅速な対応を求めたものの、開示プロセスは遅延し、問題が修正された後も、企業側の対応に問題が残りました。
全文翻訳
ニューヨークでの住居探しは大変です。それは誰もが知っています。しかし、誰もが知らないのは、アパートを見つけるよりも、他人の社会保障番号の下4桁を見つける方が簡単だということです…
私はBeam Living、Blackstoneのポートフォリオ企業で賃貸契約を申し込んでいました。通常のプロセスを進めましたが、(セキュリティ意識の高い人間として)ウェブを閲覧する際は常にネットワークタブを開いており、スクリプトキディ(またはGLM-5.2)が簡単に侵入できるようなウェブサイトに機密情報を入力していないことを確認しています。
社会保障番号を入力している最中に、それを処理しているGraphQL(リップ、かつてはホットなものだった)クエリを調べてみることにしました。最初のGraphQLクエリには、特に注目すべき点は見つかりませんでした。しかし、メインプロフィールに移動したとき、pd-dlcore.beamliving.com/graphqlへの呼び出しと、以下のペイロードを見つけました。
{
"operationName": "contact",
"variables": {
"contactId": "[email protected]"
}
}
完全なGraphQLクエリを表示
query contact($contactId: String!) {
contact(contactId: $contactId) {
...contactInfo
__typename
}
}
fragment contactInfo on ContactDtoModel {
incomeVerificationMethod
incomeCheckStatus
incomeCheckReferenceId
creditScore
address
applicationStatus
city
companyOrSchool
consentDate
consentIp
country
dateOfBirth
emailAddress
emergencyContact {
emergencyContactEmail
emergencyContactName
emergencyContactPhone
emergencyContactRelationship
__typename
}
firstName
id
identityVerificationSubmittedDate
incomeCheckDate
isCurrentLeasee
jobTitle
lastName
noSsn
occupation
pets {
birthDay
breed
id
isServiceDog
licenseNumber
name
rabiesExpirationDate
weight
__typename
}
postalCode
preferredName
screeningFeePaid
ssnInfo
state
status {
...applicationStatus
__typename
}
telephone
__typename
}
fragment applicationStatus on StatusDtoModel {
applicationProgress {
basicInfo {
actionRequired
__typename
}
dogsInformation {
actionRequired
__typename
}
emergencyContact {
actionRequired
__typename
}
identityVerification {
actionRequired
__typename
}
incomeVerification {
actionRequired
__typename
}
payments {
actionRequired
__typename
}
review {
actionRequired
__typename
}
__typename
}
progressDetails {
applicationForm {
description
status
__typename
}
firstMonthRent {
description
status
__typename
}
identityVerification {
description
identityVerificationCompletedDate
identityVerificationStatus
identityVerificationSubmittedDate
status
__typename
}
incomeVerification {
description
status
__typename
}
leaseGuarantee {
description
status
__typename
}
leaseSigning {
description
signatureId
status
__typename
}
managerReview {
managerReview
managerReviewDecisionCode
status
__typename
}
securityDeposit {
description
paymentLink
securityReplacement
__typename
}
backgroundScreeningCheck {
status
__typename
}
creditCheck {
status
__typename
}
__typename
}
guestCardCreated
unitReservationFailed
__typename
}
これは必ずしも悪いことではありませんが、ユーザーのメールアドレスをセッションクッキーから派生させるのではなく、このようにGraphQLクエリに供給することは、常に疑わしい兆候です。
明白なテスト
そこで、私は明白なことをしました – 友人のメールアドレス(彼もそのサービスを利用したことを知っていました)を取り込んで…ブーム。彼の社会保障番号の下4桁、生年月日、自宅住所、IPアドレス、電話番号などなど。
影響は私のアプリケーションや私の建物に限定されませんでした。Beam Livingはこの賃貸ポータルをそのコミュニティ全体で使用していました:8 Spruce StuyTown Peter Cooper Village Kips Bay Court Parker Towers
その共有ポータルを通じて申し込んだすべての人 – そしてその記録がシステムに残っている人 – は、社会保障番号情報、生年月日、自宅住所、IPアドレス、電話番号、その他の申請データに、メールアドレスを知っている誰でもアクセスできる状態でした。
開示とサイレントパッチ
私はすぐにテストを中止し、Beam Livingに開示しました。開示プロセスは理想的ではありませんでした – 私は多くのメールを送り、最終的にBeam Livingチームの誰かと電話で話すことになりました。彼らはチェックしたが問題はないと言いました。私は再びエクスプロイトを試すために戻りましたが、それはサイレントにパッチされていました。
したがって、問題が修正されたことを嬉しく思いますが、企業(特にBlackstoneのような巨大企業が所有する企業)がこのような開示方法をとるべきではありません…
開示のタイムラインは以下の通りです。
6月14日:私は[email protected]に、申請者および保証人の個人情報(SSN下4桁、クレジットスコア、生年月日、住所、電話番号を含む)を漏洩する深刻な脆弱性を報告するためにメールしました。責任ある開示方法について尋ねました。
6月16日:返信がなかったため、フォローアップし、深刻さを強調し、Beam Livingに適切な開示チャネルを確認するか、セキュリティチームに接続するように再度依頼しました。返信はありませんでした。
6月23日:Beam Livingの賃貸担当者に、メールアドレスを通じてSSNの桁、生年月日、電話番号、住所、その他の申請データを漏洩する深刻な脆弱性を発見したと伝えました。責任ある開示のための適切なチームに接続するように依頼しました。
6月24日:フォローアップし、脆弱性がまだ稼働中であると警告しました。賃貸担当者は、私の報告が調査のためにチームに転送されたと述べました。
6月26日~7月8日:連絡を取り続けました。7月1日と再び7月8日に、私のデータと他のユーザーのデータがまだ漏洩していると明確に警告しました。
7月9日:電話での会話の後、Beam Livingのレジデントエクスペリエンスチームは、テクノロジーチームに渡すために詳細を送るように求めました。直後に再テストしたところ、問題が最終的にパッチされたことがわかりました。開示の調整を申し出、彼らに応答する時間を与えた後に公開する予定であると述べました。
7月9日以降:Beam Livingのオペレーション責任者と連絡を取りました。彼女は非常に親切で、脆弱性を公に開示する意向であると伝えました。まあ、仕方ない!このブログを投稿するつもりであることを彼らに知らせ、賃貸契約がキャンセルされないことを願っています…