1. 概要
昨今、WebアプリケーションにおいてAPI(Application Programming Interface)を実装するケースが多くなっています。その反面、利用が進むにつれ大きな課題となっているのがAPIセキュリティです。
今年の3月にもGrafanaが公開しているWebアプリケーションにおいてオブジェクトレベルの認可制御の不備の脆弱性が発見されるなど、API実装の際の不備により生じる脆弱性は世界中で発見されており、弊社の脆弱性診断サービスでも数多くの脆弱性が発見されています。
このような背景から昨年OWASPよりOWASP API Security Top 10 2023が発表されるなど、APIに関する脆弱性にも注目が集まっています[1]。
そこで今回はOWASP API Security Top 10 からAPIに関する脆弱性の紹介、またランキングTOPにあるオブジェクトレベルの認可制御の不備の原因と対策についてご紹介します。本稿がWebアプリケーションのセキュリティ対策の一助になれば幸いです。
2. OWASP API Security Top 10とは
OWASP (Open Worldwide Application Security Project) は、ソフトウェアのセキュリティ向上に取り組む非営利団体です[2]。 同団体ではWebアプリケーションやデスクトップアプリ、モバイルなど様々な分野における脆弱性のランキングを発表しています。今回ご紹介するAPIのランキングは2023年に4年ぶりの改訂がなされました。
OWASP API Security Top 10は以下のようになっています。
【表1】OWASP API Security Top 10
3. オブジェクトレベルの認可制御の不備とは
OWASP API Security TOP 10の上位5項目のうち3項目は権限(アクセス制御)に関連しています。そのうちランキングのTOPにあるオブジェクトレベルの認可制御の不備についてご紹介します。
オブジェクトレベルの認可制御の不備は、攻撃者がリクエスト内で送信されるオブジェクトのIDを操作することで、オブジェクトレベル認可に不備があるAPIエンドポイントを悪用できる脆弱性です。この脆弱性により、本来アクセス権限が無いユーザーが機密情報にアクセスしてしまい、情報漏洩や悪意ある操作が行われるリスクが高まります。
4. 悪用例
では、オブジェクトレベルの認可制御の不備の脆弱性が攻撃者にどのように悪用されるかの一例をご紹介いたします。
とあるサービスでGET /user/{ユーザーID}のようなリクエストを送信し、ユーザー情報を取得しているとします。
もし、この仕様にオブジェクトレベルの認可制御の不備の脆弱性があった場合、URLの{ユーザーID}を別のユーザーのものに置き換えたリクエストを送信すると、通常、自身の権限では閲覧できないはずのユーザー情報の閲覧が可能になります【図1】。
【図1】オブジェクトレベルの認可制御の不備の脆弱性 悪用例
上記の例はユーザーがリクエストしたオブジェクトに対し、リクエストしたアクションを実行する権限を持っていることの検証がなされていないことから発生する悪用例です。
5. 対策
対策としては以下が挙げられます[3]。
・ユーザーポリシーと階層に依存する適切な承認メカニズムを実装する。
・クライアントからの入力を使用してデータベースのレコードにアクセスするすべての関数で、ログインしているユーザーがそのレコードに対してリクエストしたアクションを実行するためのアクセス権を持っているかどうかを、認可メカニズムを使用して確認する。
・レコードの ID には、ランダムで予測不可能な値を GUID として使用する。
・認可メカニズムの脆弱性を評価するテストを作成し、テストが不合格となるような変更をデプロイしない。
また、米国のリサーチグループであるガートナー社は「Webアプリケーションのセキュリティ要件を満たすために、既存のWAF(Web Application Firewall)が耐えていた範囲より包括的にウェブ危険動向の変化に備えなければならない」との見解を述べています。したがって、既存のWAFにWeb APIセキュリティ、DDoS防御、APIモニタリング機能などが追加されたWAAP(Web Application and API Protection)を導入することも対策の一つとして挙げられます。
6. まとめ
APIはクラウド、モバイル、IoTなど様々な環境で広く活用されています。特にAPIを通じて転送される個人情報、信用情報などのセンシティブデータの流出は深刻な結果を招くことがあります。本稿でOWASP Top10とオブジェクトレベルの認可制御の不備についてご紹介させていただきましたが、他にもAPIの脆弱性は様々あり、対策がなされていないと悪意のある攻撃者に利用されてしまうことから対策は必須と考えます。弊社の脆弱性診断サービスでは、このような脆弱性も含め、多種多様な脆弱性カテゴリの診断をしていますので、是非弊社の脆弱性診断をご検討ください。
7. SSKのセキュリティ運用監視サービスおよび脆弱性診断サービスについて
急速なデジタルシフトやDXの進展により、サイバー攻撃の標的となりうる範囲は大きく広がっています。更にランサムウェアをはじめとするサイバー攻撃の脅威は増す一方となり、企業活動においてサイバーセキュリティ対策は必要不可欠な課題となっています。
SSKのセキュリティ運用監視サービスでは、24時間365日、リアルタイムでセキュリティログの有人監視をおこなっております。セキュリティ対策として様々なセキュリティ機器やサービスを導入するケースも増加しており、当社ではUTM製品をはじめ、SASE、EDR等、新しいセキュリティソリューションも監視対象としてサービス展開を行っています。また、脆弱性診断サービスでは、診断経験豊富なセキュリティエンジニアがお客様のシステムを診断し、検出された脆弱性への対策をご提案しております。Webアプリケーションだけでなくネイティブアプリケーション診断やクラウドサービス設定診断も行っています。
セキュリティ運用監視サービス:
https://www.ssk-kan.co.jp/e-gate#e-gate--02
脆弱性診断サービス:
https://www.ssk-kan.co.jp/vulnerability-assessment
8. 参考情報
[1] OWASP API Security Top 10 2024年6月13日閲覧
https://owasp.org/API-Security/editions/2023/en/0x11-t10/
[2] OWASP 2024年6月13日閲覧
https://owasp.org/about/
[3] owasp-api-security-ja 2024年6月13日閲覧
https://coky-t.gitbook.io/owasp-api-security-ja/0xa1-broken-object-level-authorization
※本資料には弊社が管理しない第三者サイトへのリンクが含まれています。各サイトの掲げる使用条件に従ってご利用ください。
リンク先のコンテンツは予告なく、変更、削除される場合があります。
※掲載した会社名、システム名、製品名は一般に各社の登録商標 または商標です。
≪お問合せ先≫
サービス&セキュリティ株式会社
〒150-0011
東京都渋谷区東3丁目14番15号 MOビル2F
TEL 03-3499-2077
FAX 03-5464-9977
sales@ssk-kan.co.jp