BOPLA とは

オブジェクトプロパティレベルの認可の不備(BOPLA)は、アプリケーション・プログラミング・インターフェース(API)のセキュリティ上の脆弱性です。認可チェックが不十分であるため、ハッカーは機微なオブジェクトのプロパティを表示または操作できる可能性があります。これにより、データの損失、機微な情報の公開、権限の昇格、アカウント乗っ取りが発生する可能性があります。BOPLAは、OWASP Top 10 APIセキュリティ問題の2023リストで第3位にランクされています。

BOPLA の脆弱性とは

Webアプリケーションは、データベースレコードやファイルなどのオブジェクトに関する情報をAPIにクエリーすることで、フロントエンドページのデータを取得し、フィールドに入力します。各オブジェクトには通常、複数のデータポイントまたは「プロパティ」が含まれます。たとえば、ユーザーアカウントに関連付けられているプロファイルには、first_name、last_name、email_address、password、ssn_number、is_adminmなどのプロパティが含まれている場合があります。これは、ユーザーに管理者権限があるかどうかを示します。

APIコール中、APIはAPI応答で技術的に必要な情報よりも多くの情報を送信することが多く、必要なデータを抽出し、ユーザーのためにビューをレンダリングする作業はクライアントアプリケーションに委ねられます。この脆弱性は、次の2つの異なる方法でAPIエンドポイントにリスクをもたらします。

過度なデータ公開。これは、要求されたAPIコールよりも多くの情報がAPI応答に含まれており、ユーザーやアプリがアクセスできない機微な情報(この例ではパスワードとSSN_number)が含まれている場合に発生します。Webサイトやアプリに表示されるAPIレスポンスについては、過剰なデータの一部はAPIレスポンス自体にのみ存在し、簡単に抽出できます。 

一括割り当て。これは、APIエンドポイントが権限のないユーザーにオブジェクトプロパティの値の変更、追加、削除を許可する場合に発生します。上記の例のレコードでは、API応答によってIS_ADMINプロパティが存在することが不必要に明らかになった場合、攻撃者はIS_ADMINプロパティをTRUEに変更することで、権限を昇格する可能性があります。これにより、他のプロパティに変更を加えたり、アクセスできない他のオブジェクトにアクセスしたりすることもできます。

BOPLAは、2023年のOWASP Top 10 API Security Issueで初めて導入されました。これは、以前のリストに別々に掲載されていた過剰なデータ公開と大量割り当てという2つの脅威を組み合わせたものです。

BOPLAとBOLAの違い

BOPLAは、OWASP Top 10 APIセキュリティリストの1位にあるオブジェクトレベルの認可の不備(BOLA)に関連しています。ただし、BOLAはオブジェクト全体にアクセスするための認可を指し、BOPLAはオブジェクト内の個々のプロパティに影響を与える脆弱性を指します。

Illustration showing that BOPLA refers to a property inside an object オブジェクト内のプロパティを指す BOPLA

オブジェクトレベルの認可の不備(BOLA)と BOPLA の基本的な違いは、BOLA はオブジェクト全体を指し、BOPLA はオブジェクト内のプロパティを指していることです。 

APIがBOLA攻撃を防止するために十分なオブジェクトレベルの認可を適用したとしても、BOPLA攻撃を防御するためにはこれらの対策では不十分である可能性があります。BOPLAの脆弱性を緩和するために、チームはオブジェクトとその特性をカバーするより具体的な認可を採用する必要があります。また、APIオブジェクト内のさまざまなアクセスレベルも考慮する必要があります。APIオブジェクトには多くの場合、パブリックプロパティとプライベートプロパティの両方があります。

BOPLA攻撃がもたらす損害

BOPLAの脆弱性に重点を置いた攻撃により、攻撃者は次のことを実行できる可能性があります。

  • アクセスすべきでないオブジェクトのプロパティを変更する
  • アクセスを禁止する必要のある機微な情報を表示する
  • 権限を昇格してアカウントを乗っ取る

なぜBOPLAの脆弱性を検知するのが難しいか

これまで、セキュリティチームはWebアプリケーションファイアウォールAPIゲートウェイに 依存してAPIを脅威から保護してきました。しかし、WAFやAPIゲートウェイのセキュリティでは、ビジネスロジックやAPIコンテキストが考慮されていないため、API経由で送信される機微な情報を特定したり、個々のデータ資産が示す露出レベルを把握したりすることはできません。また、これらのAPI保護ソリューションは、正当なコールと悪性のアクティビティを常に区別することはできません。たとえば、PUTメソッドを使用して追加のパラメーターを指定してリクエストを送信する悪性のAPIコールは、WAFまたはAPIゲートウェイへの通常のAPIコールのように見えます。

BOPLAの脆弱性を検知するためには、セキュリティチームがAPIリクエストと応答に含まれる可能性のあるさまざまな機微な情報のタイプを特定してレポートできるテクノロジーが必要です。優れたソリューションは、攻撃者が不正なパラメーターを使用してAPIリクエストを操作した異常なアクティビティも追跡する必要があります。各エンドポイントとユーザーのAPIアクセスをベースライン化して追跡する機能は、過剰な消費を特定し、APIコールの追加パラメーターが通常のふるまいから外れているインスタンスを特定するのに役立ちます。また、APIセキュリティは、攻撃の調査段階でAPIをプロービングしている攻撃者を検知し、APIの構造とビジネスロジックを理解しようとすることもできなければなりません。

BOPLA 攻撃を防ぐ方法

コードのセキュリティを確保し、オブジェクトプロパティの権限に問題がないことを確認することは、開発者にとって最優先事項です。しかし、BOPLAの脆弱性は、セキュリティチームが制御できないサードパーティAPIで発生することが増えています。

BOPLA攻撃を防止するために、セキュリティチームはいくつかの重要な手順を実行できます。

安全なコードについての開発者への教育。セキュリティチームは、開発者がプロパティレベルの権限を正しく割り当てる必要性を理解し、すべてのAPIエンドポイントに標準化された認可戦略を適用できるように支援する必要があります。安全なコードは、すべての参照リソースのユーザー認証レベルと認可要件を考慮する必要があります。セキュリティポリシーは、許可リストを介して編集可能なフィールドを厳密に制御する必要があります。また、開発者はAPI応答で返されるデータの量と種類について保守的であるべきであり、ユースケースをよく理解しているために必要なデータのみを含める必要があります。

ゼロトラストゼロトラストの セキュリティアプローチの基本要素である最小権限の原則を実装することで、ユーザーは必要な最小限のアクセスレベルに制限され、BOPLA攻撃を防止したり、ユーザーが引き起こす可能性のある損害を制限したりすることができます。

探索。脆弱なAPIエンドポイントを特定することで、チームは問題を開発者に警告し、APIが脆弱である場合にベンダーに通知できます。

監視APIセキュリティツールは、BOPLAの脆弱性を悪用する攻撃(一括割り当てなど)のトラフィックを監視できます。

強力な認可。APIエンドポイント内でオブジェクトを公開する場合、認可プロセスでは、ユーザーが実際にオブジェクトプロパティへのアクセスを許可されていることを確認する必要があります。ロールベースのアクセス制御(RBAC)を採用することで、許可された個人のみが特定のプロパティにアクセスできるようになります。

監査と更新。権限を継続的にチェックして更新することで、最新かつ正確な状態を維持できます。

よくある質問(FAQ)

アプリケーション・プログラミング・インターフェース(API)とは、異なるソフトウェアプログラムやコンポーネント間での通信、データ交換、機能共有を可能にするプロトコルと定義のセットです。APIは、アプリケーションのやり取り方法を定義することで、さまざまなソフトウェアシステムがeコマース、モバイル決済、ソーシャルメディアクラウドサービス、その他の多くのコンピューティング分野の重要な機能をサポートする情報を要求して共有できるようにします。

Open Worldwide Application Security Project(OWASP)は、ソフトウェアセキュリティの向上を目的とした非営利団体です。OWASPは毎年、WebアプリケーションとAPIのセキュリティリスクトップ10のリストを公開しています。このレポートは、世界中のセキュリティ専門家チームによって作成されています。

オブジェクトレベルの認可の不備(BOLA)は、2023年のOWASP Top 10 APIセキュリティリスクのリストによると、アプリケーションプログラミングインターフェース(API)に対する最大の脅威と考えられているセキュリティ脆弱性です。BOLAの脆弱性は、Webアプリケーションのアクセス制御メカニズムの欠陥であり、ユーザーはIT環境内のデータベースレコード、ファイル、その他のリソースなどの「オブジェクト」にアクセスしたり操作したりできます。アプリケーションのメカニズムでアクセス制御が適切に適用されていない場合、権限のないユーザーは、アクセス権を持つべきではないオブジェクトに対してアクションを実行できます。

Akamai が選ばれる理由

Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。

Akamai の全セキュリティソリューションをご紹介