Tata Nexarcは、クライアントに表示されるAPIレスポンス内にログイン用ワンタイムパスワード(OTP)が露出していた重大な認証の欠陥を修正しました。
この問題により、登録済みの携帯電話番号を知っている未認証の攻撃者が、パスワードレスログインに必要なOTPを取得し、アカウントを乗っ取ることが可能だったとみられます。
Eaton社は7月30日にインドのコンピュータ緊急対応チーム(CERT-In)にこの脆弱性を報告し、CERT-Inは修正を確認しました。公開の発表は8月24日に行われました。
Tata Nexarcは、メールアドレスまたは携帯電話番号を使ってユーザーを認証するOTPワークフローを採用しています。Eaton社は、このワークフローを開始するリクエストのレスポンスにotpGeneratedForMobileという名前のフィールドが含まれていることを発見しました。
このペイロードはAES暗号化されていたものの、プラットフォームのクライアント側JavaScriptには、それを復号・処理するために必要なロジックが含まれていました。
この設計により、暗号化はブラウザを操作する本人からその秘密情報を守る役には立たず、平文のOTPがクライアント側で入手可能な状態になっていました。報道によれば、このフィールドはフロントエンドで必須のものではなく、含める必要がないものだったとされています。
OTPは本来、電話やメールの受信箱を保有していることを証明するためのものです。認証を要求してきたクライアントにそれを返してしまうことは、このセキュリティ境界を崩壊させることを意味します。
攻撃者は、配信チャネルにアクセスしたりコードを推測したりすることなく、露出した値を利用して認証を完了できた可能性があります。
Eaton社の報告によると、企業プロフィールの変更、従業員管理、注文・出荷履歴、ライセンス、マーケットプレイスでの活動、サブスクリプション、提案書、通知といった管理者権限を含むアカウントにアクセスできたとしています。
テスト中に推測した番号の1つはTata Business Hubのアカウントに、もう1つはTata Steelに関連付けられていました。これらの主張は潜在的な影響を示すものであり、データが改ざんまたは抽出されたことを独自に検証した証拠ではありません。
この発表では、研究者が電話番号記録を大量に窃取する手法は特定できなかったとされています。とはいえ、侵害された企業アカウントを通じて利用可能な権限により、業務・商取引情報が露出したり、不正な変更が可能になったりした恐れがあります。
CERT-Inは7月30日に報告を受領し、7月31日に脆弱性が修正されたことを確認しました。修正により、APIレスポンスからotpGeneratedForMobileが削除されました。
今回の事案は、クライアント側の暗号化がサーバー側のアクセス制御の代わりにはならないことを示しています。クライアントは、本来開示されるべきでない認証情報や検証用の秘密情報を決して受け取ってはなりません。
OTPの生成と検証はサーバー側にとどめるべきであり、APIはトランザクション参照や汎用的な配信ステータスなど、次のステップに必要な最小限の状態のみを返すようにすべきです。
パスワードレス認証を運用する組織は、暗号化されたネットワークトラフィックを検査するだけでなく、ブラウザ環境でAPIレスポンスをテストすることも必要です。
レビューでは、フロントエンドのコードやログ、エラーメッセージ、分析用ペイロード、デバッグツールを通じて秘密情報が復元できないことを確認すべきです。
OTPの有効期限を短くすること、使い捨て運用の徹底、レート制限、監視といった対策は依然として有効な防御層ですが、いずれも未認証のクライアントにコードを直接送信してしまうことを埋め合わせるものではありません。
セキュリティチームに、不審な活動をより迅速に調査し、ビジネスへの影響が拡大する前に脅威を封じ込めるための可視性とコンテキストを与えましょう。 ANY.RUNで調査を強化する
翻訳元: https://cyberpress.org/tata-b2b-platform-flaw/