【第2回】「OWASP API Security Top 10とは?APIの脅威と対策を知ろう」

Share

Security NEWS TOPに戻る
バックナンバー TOPに戻る

デジタル化が進む現代において、Webサービスやスマートフォンアプリ、IoT機器まで、あらゆるシステムがAPIを通じて連携しています。しかし、その利便性の反面、APIを標的としたサイバー攻撃も急増しています。こうした背景の中、APIに特化したセキュリティリスクをまとめたのが「OWASP API Security Top 10」です。

「OWASP Top 10」を中心に、基本的なセキュリティ知識を深め、企業での対策に活かすことを目的としたシリーズ第2回の今回は、API開発や管理に関わる企業の情報システム部門・開発担当者に向けて、OWASP API Security Top 10の概要と代表的なリスク、具体的な対策についてわかりやすく解説します。

OWASP API Security Top 10とは

OWASP API Security Top 10は、OWASP(Open Web Application Security Project)がAPIセキュリティに関する10大リスクを選定・解説したもので、Webアプリケーション版『OWASP Top 10』同様、攻撃シナリオや防御方法がTop10形式で詳しく記載されており、API固有の脆弱性やセキュリティリスクの把握と対策をするための判断材料のひとつとして捉え、活用することができます。

「API」について、SQAT.jpでは以下の記事でも解説しています。
あわせてぜひご覧ください。
APIのセキュリティ脅威とは
APIとは何か(2)~APIの脅威とリスク~

APIセキュリティ

APIは異なるソフトウェア間の通信を可能にしますが、同時に攻撃者にとっての格好の標的にもなり得ます。そのため、APIを利用する企業やアプリケーション開発者にとってAPIのセキュリティ対策は重要な課題です。セキュリティリスクは他のプログラムやサービスと機能などデータを共有しているAPI特有の仕組みから生じます。APIが不適切に設計・管理されていると、未認証のアクセス、データ漏洩、機密情報の不正取得といったリスクが高まります。以下は、APIセキュリティに関する主なリスクの例です。

  • データ漏洩:APIを通じて個人情報や機密情報が漏洩するリスク
  • 不十分な認証:認証要素が不十分なことによる不正アクセスのリスク
  • サイバー攻撃リスク:標的型攻撃インジェクション攻撃やサービス運用妨害(DoS)攻撃などのサイバー攻撃を受けてしまうリスク
  • APIキーの窃取:APIキーが盗まれることによる不正利用のリスク

OWASP API Security Top 10:2023概要

以下は、2023年に発表された最新版のOWASP API Security Top 10のリストです。

項目番号リスク名概要
API1:2023Broken Object Level Authorization
(オブジェクトレベルでの認可の不備)
オブジェクトレベルの認可が不適切で、他ユーザのIDを参照できてしまう問題。IDを任意に変更して不正取得される
API2:2023Broken Authentication
(認証の不備)
認証トークンやセッション管理の不備により、なりすましや不正アクセスが可能となる状態
API3:2023Broken Object Property Level Authorization
(オブジェクトプロパティレベルの認可の不備)
オブジェクト内の個別プロパティに対して、参照・更新権限チェックがない問題。内部値が漏洩・改ざんされる恐れがある
API4:2023Unrestricted Resource Consumption
(無制限のリソース消費)
CPU、ネットワーク、メール送信等リソース制御がなく、DoS攻撃対策やコスト対策が不十分な状態
API5:2023Broken Function Level Authorization
(機能レベルの認可の不備)
本来の権限を超えて管理機能が呼び出され、削除・変更など不正操作が可能になる
API6:2023Unrestricted Access to Sensitive Business Flows
(機密性の高いビジネスフローへの無制限のアクセス)
購入や予約など、業務フローが制限なく自動化され悪用され得る状態。API側の防御が不十分な状態
API7:2023Server Side Request Forgery
(サーバサイドリクエストフォージェリ)
外部から渡されたURLを検証せず内部リソースをリクエストし、不正アクセス・ポートスキャンを誘発する
API8:2023Security Misconfiguration
(不適切なセキュリティ設定)
セキュリティ設定ミスにより、デバッグモードや不要エンドポイントが公開されたままになっている状態
API9:2023Improper Inventory Management(不適切なインベントリ管理)バージョン管理や資産管理不備により、古いAPIやテスト系エンドポイントが放置された状態
API10:2023Unsafe Consumption of APIs
(APIの安全でない使用)
APIクライアント側の不適切な利用により、API仕様外の動作等を招くケース
出典:OWASP Top 10 API Security Risks – 2023より弊社和訳

OWASP API Security Top 10:2023の代表的なリスクとその影響

OWASP API Security Top 10では、APIに特化した攻撃手法や設計ミスを10項目に分類しています。ここでは特に影響の大きい代表的な5項目を取り上げ、それぞれの特徴と企業に与える影響を見ていきましょう。

API1: Broken Object Level Authorization

  • 概要:他人のデータにアクセスできてしまう認可チェックの不備
  • 例:/users/12345を/users/12346に変更して別ユーザの情報を取得
  • 影響:個人情報漏洩、プライバシー侵害、法令違反リスク
  • 実例:T-Mobile(2020年)でAPI経由により契約者情報が漏洩*1

API2: Broken Authentication

API3: Broken Object Property Level Authorization

API4: Unrestricted Resource Consumption

  • 概要:API利用時のリソース消費に対する制限がなく、過剰利用を許してしまう
  • 例:無制限にファイルをアップロード、高頻度でログイン試行
  • 影響:DoS攻撃によるサービスの停止、インフラコストの急増
  • 実例:なし

API6: Unrestricted Access to Sensitive Business Flows

これらのリスクは、API開発における「利便性と安全性のバランス」が崩れたときに生じやすいものです。次章では、こうしたリスクに対して開発・運用チームがどのように備えるべきか、具体的な対策を解説します。

開発・運用チームがすべき対策

OWASP API Security Top 10:2023に示されたリスクは、設計・開発・運用のあらゆる段階での対策が必要です。APIは公開範囲が広く、攻撃対象になりやすいため、企業の情報システム部門や開発チームは「守るべきポイント」を明確にし、セキュリティレベルを高めていく必要があります。以下に代表的な対策を整理します。

認証・認可の適切な管理

  • アクセストークン(OAuthトークンなど)の署名検証や有効期限管理を適切に行う
  • 多要素認証(MFA)やOAuth 2.0/OpenID Connectなどの業界標準プロトコルを採用
  • ユーザIDやオブジェクトIDに基づいたアクセス制御(認可)の一貫性を保つ

目的:適切なユーザにのみ権限を付与し、不正アクセスのリスクを軽減する

入力データのバリデーションと制御

  • ユーザから受け取るリクエストパラメータ、JSON、ヘッダー情報などに対してサーバーサイドで厳格な検証を実施
  • 過剰なフィールドの受け入れを避け、明示的に許可されたパラメータだけを処理
  • 入力サイズ、データ型、構造の制限と、想定外の入力に対する例外処理を徹底

目的:不正な値による処理改ざん(Mass Assignment、インジェクション)やサービス停止リスクを軽減

脆弱性診断・ログ監視等の定期的な実施

  • APIエンドポイントに対するセキュリティ診断(ペネトレーションテスト、動的解析)を定期的に実施
  • SwaggerやOpenAPI仕様書をもとに、未公開API・テスト用APIが本番に露出していないか確認するため、棚卸しを実施
  • APIゲートウェイやWAF(Web Application Firewall)と連携したログの収集・監視も強化

目的:潜在的な脆弱性や構成ミスを早期に発見し、攻撃の起点となる入口を閉じる

レート制限と自動化対策

  • IPアドレスやユーザごとのレートリミットを設ける(例:1分間に○回まで)
  • CAPTCHAやボット対策(Device Fingerprint等)を導入して業務APIの濫用を防止
  • クラウド利用時はコスト制御のためのクォータ設定や自動アラートも重要

目的:DoS攻撃や不正自動化による買い占め行為の防止

セキュアなAPI設計の徹底

  • 最小権限の原則に基づいたロール設計、バージョン管理の明確化
  • 非公開APIは認証必須かつアクセス制限を設け、エラーメッセージは曖昧化
  • API仕様書の公開範囲と利用契約(利用規約・SLAs)にもセキュリティ要件を記載

目的:開発段階からセキュリティを組み込む“Security by Design(セキュリティ・バイ・デザイン)”の実現

企業におけるAPI活用が進む今、セキュリティ対策もまたアプリケーションとは別軸で強化が求められます。OWASP API Security Top 10はその出発点であり、ここで挙げた対策はすべての開発・運用現場で必須です。継続的な見直しと体制整備によって、APIの安全な運用を実現しましょう。

第3回では、クラウドや自動化が進む今、ますます注目されている「Non-Human Identities(NHI)」に焦点を当てます。人ではないアカウントが引き起こす新たな課題とは何か、そして企業はどう備えるべきかを解説します。


―第3回「Non-Human Identities Top 10とは?自動化時代に求められる新しいセキュリティ視点」へ続く―

【連載一覧】

―第1回「OWASP Top 10とは?アプリケーションセキュリティの基本を押さえよう」―
―第3回「Non-Human Identities Top 10とは?自動化時代に求められる新しいセキュリティ視点」―

Security NEWS TOPに戻る
バックナンバー TOPに戻る


資料ダウンロードボタン
年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
お問い合わせボタン
サービスに関する疑問や質問はこちらからお気軽にお問合せください。

Security Serviceへのリンクバナー画像
BBsecコーポレートサイトへのリンクバナー画像
セキュリティ緊急対応のバナー画像

APIとは何か(3)
~APIセキュリティのベストプラクティス~

Share

Security NEWS TOPに戻る
バックナンバー TOPに戻る

APIセキュリティは、適切な認証と認可が鍵です。本記事では、APIのセキュリティを強化するための基本的な対策からベストプラクティスまで解説します。脅威に対抗するための対策案を紹介し、セキュアなAPI運用のポイントを提供します。

前回記事はこちら。
シリーズ第1回目「APIとは何か(1)~基本概念とセキュリティの重要性~
シリーズ第2回目「APIとは何か(2)~APIの脅威とリスク~

認証と認可の重要性

ソフトウェアセキュリティにおける問題の多くは、信頼境界をまたぐデータ(プログラム内の入出力)やモノ(フレームワーク)に起因しています。様々な場所から様々なデバイスによりアクセスされる昨今の環境下では、既存の認証を信用せず、あらゆるアクセスを信用しないという前提に立った上で動的なアクセスコントロールによって認可する「ゼロトラスト」の考え方が必要です。ポイントは、「認証」と「認可」の違いを的確に理解することです。「認証」と「認可」が適切に区別されていないシステムの場合、本人確認を行うユーザ認証さえ突破してしまえば、システムのどこにでも自由にアクセス可能となってしまい、非常に危険です。

「認証」と「認可」を明確に区別して信頼境界の安全を保つことが重要であり、その実現にあたっては、厳格なセッション管理が鍵となります。代表例として、ソフトウェアにおけるアクセス認可において、アクセストークンによる堅牢な制御の上で、信頼境界ごとのリソースに認可プロセスを設定するといった方法が挙げられます。

基本的なセキュリティ対策

セキュリティ対策の取り組みには、基本的なセキュリティ対策こそが効果的であるという前提に立って、今一度自組織のセキュリティを見直すことが重要です。

セキュリティ基本10項目

標的型攻撃メール訓練の実施

標的型攻撃メール訓練は、従業員のセキュリティ意識向上と実践的なスキル習得に効果的です。訓練では、攻撃メールを模倣したシナリオを用いて、従業員が疑わしいメールを識別し、適切に対応するスキルを養います。定期的な訓練実施により、従業員のセキュリティ意識が継続的に高まり、実際の攻撃に対する組織の耐性が強化されます。また、訓練後のフィードバックやセキュリティ教育との組み合わせにより、より効果的な対策が可能になります。

定期的なバックアップの実施と安全な保管(別場所での保管推奨)

ランサムウェアによる被害からデータを保護するために、サーバに対してオフラインバックアップ(データだけを独立して磁気テープ・ストレートなどで物理的に隔離しておくこと)を行うことがおすすめです。バックアップの頻度や保管場所を見直し、最新の情報が常に保存されるようにすることが重要です。

バックアップ等から復旧可能であることの定期的な確認

バックアップが確実に復旧可能であることを確認するため、定期的にリカバリーテストを実施します。これにより、実際の復旧作業時に問題が発生しないことを保証し、緊急時に迅速かつ確実なデータ復旧が可能となります。また、テスト結果を文書化し、必要に応じて復旧手順の改善を図ります。このような確認作業を怠ると、いざという時にデータ復旧が困難になるリスクが高まります。

OS、各種コンポーネントのバージョン管理、パッチ適用

システムの脆弱性を悪用する攻撃を防ぐためには、OSやソフトウェアコンポーネントの最新バージョンへの更新・パッチ適用の実施をすることが必要不可欠です。定期的なパッチ適用とバージョン管理により、サイバー攻撃のリスクを大幅に軽減できます。特にゼロデイ攻撃のリスクを軽減するためには、普段から脆弱性関連の情報収集やバージョン更新が求められます。

認証機構の強化(14文字以上といった長いパスフレーズの強制や、適切な多要素認証の導入など)

認証の強化は、サイバー攻撃から組織を守るための基本的な対策です。単純なパスワードではなく、長く複雑なパスワードにし、さらに多要素認証(MFA)を導入することを推奨します。多要素認証はパスワードに加え、物理トークンや生体認証などの認証要素を用いることで、不正アクセスされるリスクを低減します。これにより、アカウントのセキュリティが飛躍的に向上します。

適切なアクセス制御および監視、ログの取得・分析

システム内の情報やリソースへのアクセスを厳格に管理し、適切なアクセス制御を行うことは、内部からの不正行為を防ぐために重要です。また、システムの稼働状況やアクセスログを定期的に取得し分析することで、異常な挙動を早期に検知できます。

シャドーIT(管理者が許可しない端末やソフトウェア)の有無の確認

シャドーITは、組織のセキュリティポリシーに反する可能性があり、脆弱性やデータ漏洩の原因となることがあります。定期的な監査や従業員への教育を通じて、シャドーITの存在を確認し、適切な対策を講じることが重要です。

攻撃を受けた場合に想定される影響範囲の把握

サイバー攻撃を受けた際に、どのような影響が組織に及ぶかを事前に把握しておくことは重要です。影響範囲を明確にすることで、インシデント発生時の対応計画を具体化し、迅速な対策を講じることが可能になります。システム全体の依存関係や業務の優先度を考慮し、被害を最小限に抑えましょう。

システムのセキュリティ状態、および実装済みセキュリティ対策の有効性の確認

定期的にシステムのセキュリティ状態を確認し、現在のセキュリティ対策が有効に機能しているかを確認することが効果的です。脆弱性診断やペネトレーションテストを実施することで、システムの弱点を特定し、自組織の状況に適した対応の実施が可能になります。

CSIRTの整備(全社的なインシデントレスポンス体制の構築と維持)

CSIRT(Computer Security Incident Response Team)は、サイバー攻撃やインシデント発生時に迅速かつ適切な対応を行うための専門チームです。CSIRTの整備は、全社的なセキュリティ体制を強化し、インシデント発生時の被害を最小限に抑えるために不可欠です。定期的な訓練とシミュレーションを通じて、CSIRTの対応力を維持し、常に最新の脅威に対応できる体制を整えます。

APIセキュリティのベストプラクティス

OAuthトークン

OAuthトークンは、APIへのアクセスを安全に制御するための認可手段です。ユーザのパスワードを直接共有せず、一時的なトークンでアクセスを許可する仕組みにより、不正アクセスのリスクを軽減します。

暗号化と署名

API通信では、暗号化が重要です。また、署名による送信者の認証をすることも重要です。SSL/TLS(TLS 1.3推奨)での暗号化により、データが送受信される途中で盗聴されないようにします。署名には一般的にRSA暗号やECDSAなどのアルゴリズムが使用され、SHA-256などのハッシュ関数と組み合わせてデータの完全性を保証します。デジタル証明書を使用することで、通信相手の身元確認も可能になり、より強固なセキュリティを実現できます。

レート制限とスロットリング

レート制限とスロットリングは、APIへのリクエスト数を一定範囲に抑え、サーバへの負荷を管理するための手法です。過剰なリクエストをブロックし、DDoS攻撃などのリスクを軽減します。また、正規ユーザの快適な利用を維持し、サービスの安定稼働を支えます。

APIゲートウェイの使用

APIゲートウェイは、API管理を一元化するためのツールです。認証、認可、レート制限、監視など、APIに関連するセキュリティ機能を提供します。これにより、システム全体のAPI運用を最適化します。APIの脆弱性を効果的に軽減することができます。また、監視とログ収集を行うことで、問題発生時の迅速な対応が可能になります。

APIのセキュリティ対策

ここまで見てきたAPIセキュリティ脅威を踏まえると、以下のようなポイントにおいて脆弱でないことが重要と考えられます。

APIのセキュリティ対策のポイント図

開発中、リリース後、更新時といった、いかなる状況においても、適切な脆弱性管理・対応ができているかどうかが、鍵となります。

APIのセキュリティ対策の概要図

APIの開発にあたっては、DevSecOpsを適用して脆弱性を作り込まないようにすること、APIリリース後も、新たな脆弱性が生まれていないか、APIセキュリティ診断などを通じて確認を継続することが重要です。

APIはスマホアプリでも多く活用されています。誰もがスマートフォンを利用している今、攻撃の被害が多くの人々に影響を及ぼす可能性があるからこそ、スマホアプリにおいて次の攻撃につながる情報が漏洩したり、スマホアプリの改竄が行われたりする可能性を摘んでおくことが、スマホアプリを提供するうえで重要となります。スマホアプリのセキュリティ対策の一つとしては、信頼できる第三者機関による脆弱性診断の実施があげられます。第三者の専門家からの診断を受けることで、網羅的な確認ができるため、早急に効率よく対策を実施するのに役立つでしょう。

関連記事:

  • 攻撃者が狙う重要情報の宝庫!―スマホアプリのセキュリティ―
  • まとめ

    APIのセキュリティについて、認証と認可は基本となる重要な要素です。現代では従来の境界型セキュリティでは不十分となり、あらゆるアクセスを疑う「ゼロトラスト」モデルが求められています。認証は「誰か」を確認するプロセス、認可は「何を許可するか」を決める仕組みであり、両者の違いを明確に理解しておくことが重要です。

    組織の安全を守るには、基本的なセキュリティ対策の実施が不可欠です。具体的には、攻撃メール訓練の実施、バックアップ管理、システムの更新、強固な認証の導入、アクセス制御とログ分析などが推奨されます。また、インシデント対応チーム(CSIRT)の整備により、問題発生時の迅速な対応が可能となります。

    APIセキュリティの観点からは、OAuthトークンの導入、通信の暗号化と署名、レート制限やスロットリングでの制限、APIゲートウェイが推奨されます。開発段階からリリース・運用後まで脆弱性管理を徹底し、特にユーザへの影響が大きいと考えられるサービスでは第三者機関によるセキュリティ診断も活用することをおすすめします。

    Security NEWS TOPに戻る
    バックナンバー TOPに戻る


    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像