San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
API Security OWASP, Attacks

過剰なデータ露出

はじめに

API3:過剰なデータ露出

攻撃者・攻撃経路セキュリティの弱点影響
この脆弱性の根底には、APIは利用者に必要なデータのみを返すべきという考えがあります。余計なデータを提供すると、悪意ある攻撃者がMitM攻撃等によりAPIの通信を傍受し、データを悪用する恐れがあります。記事後半でさらに例を挙げて説明します。この脆弱性は上位10件中3位にランクインするほど見逃しやすいです。自動化ツールは、アプリの動作を詳細に指示しなければ不要なデータを判断できないため、十分な効果が期待できません。多くのAPIは全データを返し、フロントエンドにフィルタリングを任せる実装となっているためです。機密データが露出すると、露出する情報により事業に重大な影響を及ぼす恐れがあります。そもそもの性質上、その影響は大きくなる傾向があります。
過剰なデータ露出

過剰なデータ露出とは

APIはフロントエンドのクライアントに必要なデータのみを返すべきですが、時としてチームがミスをしたり楽な方法を選んだ結果、全てのデータを返すAPIが実装されることがあります。このようにAPIが過剰なデータを返す場合、過剰なデータ露出と呼ばれます。

攻撃シナリオの例

例えば、クレジットカード情報を取得するアプリがあるとします。利用者にはフロントエンド側でフィルタされるためCCVは表示されませんが、API自体は過剰なデータを返してしまいます。

例:

GET /api/v1/cards?id=0
[
    {
        "CVV": "677",
        "creditCard": "1234567901234",
        "id": 0,
        "user": "API",
        "validUntil": "1992"
    }
]
過剰なデータ露出の例

ご覧の通り、クレジットカード情報を取得する呼び出しが行われ、利用者にはCCVが見えなくても、APIが返すことで過剰なデータ露出となっています。

さらに別の例を挙げます。あるモバイルアプリがGETリクエストを /api/articles/{articleId}/comments/{commentId} に送信し、著者を含むコメントのメタデータを取得します。しかし、通信が傍受されると著者のPII情報も見えてしまう可能性があります。

GET /api/v1/comments?id=0
[
    {
        "comment": "1234567901234",
        "id": 0,
        "user": "testUser",
        "user adress": "testlane, testing - 340043 testing in testland",
        "user email": "test@bla.com"
    }
]
過剰なデータ露出の例2

過剰なデータ露出への対策

  • フロントエンドクライアントによるデータのフィルタリングに依存すべきではありません
  • バックエンドからの全レスポンスに機密データが含まれていないか確認すべきです
  • 新しい APIエンドポイント を作成する際、データの利用者と必要なデータを十分に考慮する必要があります
  • to_json() や to_string() のようなメソッドは、渡されたオブジェクト全体を無差別に出力してしまい、望ましくない結果を招く恐れがあります。特定のプロパティだけを返すようにし、オブジェクト全体を渡さないよう注意すべきです
  • Wallarmのアプリで扱う全ての PII情報 は、定期的に分類・再インデックスする必要があります。新規・既存の API呼び出し のレスポンスも、不要なPII情報が含まれていないか確認すべきです
  • あらかじめ定義したスキームに基づいてリクエストやレスポンスを検証するスキームベースのバリデーションは、セキュリティ対策として有用です。APIからの全レスポンスをチェックするために活用できますが、スキームの作成には手間がかかります
過剰なデータ露出への対策

結論

この問題は一見シンプルなため見落としやすく、Wallarmの自動検出でも拾いにくい性質があります。データの選別を適切に行うために、APIセキュリティソリューションの活用が推奨されます。統計データに基づいたOWASP Top 10 2021のランキングも取りまとめています。APIから送られる各データがどの程度機微なもので、何がフロントエンドに必要かを判断することが重要です。可能な限りフロントエンドでのフィルタリングは避けるべきです。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック