APIセキュリティとは?定義、基本、ヒント

組織のデータを完全に保護するには、APIセキュリティが欠かせません。APIセキュリティの基本を今すぐ学びましょう。

Sep 8, 2023
18 minute read
eSecurity Planet のコンテンツおよび製品のおすすめは、編集上の独立性を保っています。パートナーへのリンクをクリックすると、当社が報酬を得る場合があります。 詳細を見る

アプリケーション・プログラミング・インターフェース(API)セキュリティとは、アプリケーション間の極めて重要な接続を保護するためのツールとベストプラクティスを組み合わせたものです。

APIセキュリティは、厳格なプロトコルとアクセス制御によってソフトウェアコンポーネント間の円滑な通信を維持しながら、データとバックエンドシステムを保護します。脆弱性や設定ミスなどのセキュリティ上の弱点を防止・緩和するプロアクティブな防御により、不正アクセスやデータ侵害、その他の望ましくない操作からアプリを守ります。

APIセキュリティの基本

APIセキュリティには、厳格な認証・認可方式、データ暗号化技術、強固なアクセス制御など、さまざまな対策が含まれます。効果的な入力検証により侵入の可能性を防ぐ一方、安全なAPIキー管理とトークン管理の手順によって安全なアクセスを確保します。監査とログ記録によりリアルタイム監視が可能になり、インシデント対応や脅威の特定に役立ちます。

さらに、この包括的なアーキテクチャの基本要素として、安全なAPI設計標準の遵守とデータ保護法への準拠が、さまざまなサイバーリスクに対するAPIの耐性を高めます。

API security infographic from KLogics Security.
Image from KLogics Security

APIアーキテクチャ

APIは仮想的な橋渡し役として、ソースコードをパートナーに公開することなく、異なるアプリやシステムを接続して円滑な通信とデータ共有を実現し、バックエンドシステムも安全に保つことが期待されます。安全なAPIアーキテクチャは、そのための強固な基盤であり、セキュリティを考慮して設計されます。そのため、データ分割や暗号化といった優れた開発・コーディング practicesに加え、APIセキュリティには、認証済みユーザーだけがAPIにアクセスできるよう、明確な境界と権限を設定することも含まれます。APIを慎重に構築することで、脆弱性を最小限に抑え、偶発的なデータ漏えいを防止できます。

APIの発見とインベントリ管理

APIを仮想的な「扉」へのアクセスを許可するデジタルキー、APIインベントリの維持を鍵の台帳だと考えてみてください。重要なのは、自分が何を持っているかを把握することだけではなく、アクセスを管理することです。APIを追跡することで、潜在的なセキュリティギャップや不正侵入のリスクを管理し、攻撃経路になり得る箇所を防げます。

脅威の検知と防止

開発とアーキテクチャのプラクティスを整備した後も、疑わしい、あるいは不適切な動作がないかAPIのやり取りを監視する必要があります。APIセキュリティツールは、疑わしい操作やパターン、脆弱性を迅速に特定し、深刻化する前に対処できます。また、多くのAPIセキュリティツールは、APIがまだ開発中の段階でセキュリティ問題をテストできるため、開発環境と本番環境の両方でセキュリティを向上させます。

おすすめのAPIセキュリティツールのトップ製品

Advertisement

修正支援

対策を講じていても、脆弱性が発生することはあります。セキュリティインシデントに対する対応計画を用意しておくことが不可欠です。脆弱性が検出された場合や攻撃が発生した場合、修正支援によって問題に迅速に対処するための指針が得られます。これにより、タイムリーな封じ込めと安全な状態への復旧が可能になります。継続的インテグレーション/継続的デリバリー(CI/CD)プロセスとの統合も、セキュリティ修正の迅速化と追跡に重要です。

APIセキュリティ標準

現代のAPIセキュリティは、ベストプラクティス、監視、そしてOpen Authentication(OAuth)やOpenID Connectといった業界標準を基盤としています。これらはいずれも、デジタル環境の強化において特定の役割を果たします。

OAuthの仕組み

OAuthは主に認可に焦点を当てています。ユーザーのログイン情報を開示することなく、他のプログラムがユーザーに代わってリソースへアクセスできるようにするフレームワークを提供します。暗号学的署名を使用し、関係する当事者間の安全な通信を保証します。

OAuth 2.0ではアクセス委譲が追加されました。安全なリソースアクセスのためにアクセストークンやリフレッシュトークンなどのトークンを使用し、より柔軟で汎用性の高いトークンベースの方式を実現します。また、プロトコルをより理解しやすく柔軟にするため、リソース所有者、クライアント(アプリケーション)、認可サーバーといった役割の分担も標準化しました。

たとえば、Google Photos認可サーバーに登録するクライアント(モバイルアプリ)は、client_idとclient_secretを受け取ります。クライアントは、client_id、redirect_uri、response_type、scope、stateなどのパラメーターを含む認可エンドポイントへユーザーをリダイレクトすることで、OAuthプロセスを開始します。

次にユーザーにはGoogle Photosのログインページが表示され、アクセスを許可するか拒否するかを求められます。ユーザーがアクセスを許可すると、認可サーバーは認可コードを生成します。そのコードは指定されたクライアントに送信されます。クライアントは認可サーバーのトークンエンドポイントにPOSTリクエストを送り、アクセストークンと、場合によってはリフレッシュトークンを提供します。クライアントは取得したアクセストークンを使ってリソースサーバー(Google Photos)に認可済みのリクエストを送信でき、リソースサーバーはトークンを検証し、認可されていれば要求されたデータを返します。トークンの有効期限が切れた場合、クライアントはリフレッシュトークンを使って、ユーザーの操作なしに新しいアクセストークンを取得できます。

OAuth diagram from Medium.
Source: medium

OpenID Connect

OpenID Connectを通じて、幅広いプラットフォームやアプリにまたがるユーザーIDの正確な確認が実現します。認証という交響曲の指揮者、デジタルIDのマエストロであるOpenID Connectにより、ユーザーは単一の認証情報セットでさまざまなオンライン環境における本人確認を行えます。FacebookやGmailによる1回のログインでアクセスが高速化されるSpotifyのようなサービスを、これの一例として挙げられます。この機能により、OpenID ConnectはID検証も提供するようになり、アクセス提供に限定されていたOAuthの当初の範囲を超えて、より高速で安全な認証プロセスを実現します。

APIセキュリティで最も一般的な10のリスク

ここでは、OWASPなどのアプリケーションセキュリティ組織が挙げる、APIセキュリティに関する一般的な10のリスクと防止策を紹介します。

安全でないAPIの利用

このリスクは、ログインや認可を適切に管理しない、API経由で受け取ったデータの正確性を確保しないといった問題を含め、セキュリティ上の欠陥につながる方法でAPIを利用することです。

防止策:APIから受け取るデータを徹底的に検証し、サニタイズします。安全な通信プロトコル(HTTPS)を使用し、適切な認証手順を確立して認可チェックを実行することで、重要なリソースへのアクセスを制御します。

Advertisement

不適切なインベントリ管理

このリスクにより、アプリケーションのアーキテクチャ、構成要素、基盤技術に関する機密情報をAPIが誤って公開する可能性があります。

防止策:適切なAPIアクセス制限と認証を実装します。APIインベントリを定期的に監査・レビューし、意図したAPIだけが公開され、アクセス可能になっていることを確認します。

セキュリティ設定の不備

不適切に設定されたAPIは、セキュリティ脆弱性の主な原因です。不要な機能を有効にする、デフォルト設定を使用する、エラーへの対処が不十分であるといった問題が該当します。

防止策:機密情報の漏えいを避けるため、不要な機能を無効にし、アクセスには最小権限の原則を適用し、堅牢なエラー処理システムを導入します。

サーバーサイド・リクエスト・フォージェリ(SSRF)

攻撃者は、サーバーをだまして内部リソースへの不正な呼び出しを行わせることで、機密情報を暴露させたり、意図しない操作を誤って実行させたりする可能性があります。

防止策:不正なURLを防ぐため、ユーザー入力を検証してサニタイズします。ネットワークレベルの保護策で送信リクエストを制限し、サーバーがリクエストを送信できる許可済みドメインまたはIP範囲のホワイトリストを実装します。

業務フローへの無制限アクセス

このリスクは、APIが権限のないユーザーに機密性の高い企業の手順や業務へのアクセスを許可した場合に発生します。

防止策:予防策として、適切な認証・認可手順を実装します。権限のあるユーザーだけが重要なAPIにアクセスできるよう、ロールベースアクセス制御(RBAC)を導入します。

機能レベルの認可の不備

攻撃者は、認可プロセスの欠陥を悪用し、本来アクセスできない機能にアクセスしたり、許可されていない操作を実行したりします。

防止策:緩和策として、API内の各機能や操作に対するきめ細かな権限チェックを実装します。特定の機能へのアクセスを許可する前に、ユーザーの権限とロールを確認します。

リソース消費の無制限化

サービス拒否(DoS)攻撃は、攻撃者がAPIを利用して大量のサーバーリソースを消費させ、機能やアクセスを妨害することで実行されます。

防止策:リソースの悪用を緩和するため、レート制限、リクエストスロットリング、入力検証を実装します。APIの利用状況を確認し、不審なパターンを検出します。

オブジェクトプロパティレベルの認可の不備

これは、攻撃者がAPIリクエストをだまして、オブジェクトの特性や属性への不正アクセスや変更を可能にするものです。

防止策:ユーザーが許可された属性だけを閲覧・変更できるよう、適切なアクセス制限と検証を実装します。

認証の不備

攻撃者は、認証プロセスの欠陥を悪用してAPIや機密データへの不正アクセスを取得します。認証の不備は、脆弱なパスワード作成、パスワード保存システムの侵害、暗号化された認証フレームワークの脆弱性によって発生します。

防止策:ブルートフォース攻撃やパスワードスプレー攻撃などの一般的な攻撃から保護するには、多要素認証(MFA)などの強力な認証方式を実装し、安全なパスワード規則を適用して、暗号化を適切に実装します。

Advertisement

オブジェクトレベルの認可の不備(BOLA)

BOLAの脆弱性により、攻撃者は入力を改ざんして制限された領域にアクセスしたり、禁止された操作を実行したりできます。これは、ユーザー入力の検証を怠る安全でないコーディングプラクティスによって発生します。

防止策:権限のないユーザーによるリソースや操作へのアクセスを防ぐため、適切な入力検証と権限チェックを実装します。汎用一意識別子を使用し、ゼロトラストセキュリティフレームワークを採用できます。

APIの脆弱性に対抗するには、安全なコーディング技法、包括的なテスト、適切な設定、継続的な監視を組み合わせる必要があります。最新のセキュリティ問題を常に把握し、修正を開発プロセスに組み込むことが重要です。

OpenID Connect diagram from Curity.
Source: Curity

API攻撃を回避するためのヒント

API攻撃は、最も一般的で被害の大きいサイバーセキュリティ問題の一つです。こうしたリスクを低減するため、組織はAPIシステムの脆弱性にプロアクティブに対処する必要があります。さまざまな攻撃に耐えられる堅牢なAPIを構築することで、データの保護と正確性を確保し、重要なサービスへの自由なアクセスを維持できます。

強力な認証と認可を利用する

アプリケーションの要件に適した堅牢な認証メカニズムを選択します。安全なサードパーティーアクセスにはOAuthを、ユーザーセッションにはトークンベース認証を使用します。ロールベースアクセス制御(RBAC)を適用して認可を細かく管理し、ユーザーが許可されたリソースと操作にのみアクセスできるようにします。

レート制限とスロットリングを導入する

APIの特性とユーザーロールに合わせてレート制限を設定します。ユーザー、IP、特定のAPIエンドポイントごとにリクエスト数のしきい値を定義します。スロットリングは、リクエストを開始できる速度を制御することで、悪用やリソース枯渇に対する防御策として機能します。

入力を検証し、データをサニタイズする

ユーザー入力が想定される形式と値に準拠していることを確認するため、包括的な入力検証を実施します。確立された入力検証手法とライブラリを使用して、SQLインジェクションやクロスサイトスクリプティング(XSS)などの脅威を阻止します。出力エンコードを実装し、データがコードとして解釈される可能性を無効化します。

HTTPSと安全な通信を優先する

クライアントとサーバー間のデータ交換を暗号化するため、HTTPSのみを使用します。これによりデータの機密性が確保され、盗聴、中間者攻撃、データ改ざんが無効化されます。

適切なエラー処理を実装する

システム内部の仕組みに関する機密情報を含まない汎用的なエラーメッセージを採用します。機密データやレスポンスを明らかにすることなくエラーを記録できる、堅牢なエラー処理メカニズムを構築します。

セキュリティテストとコードレビューを徹底する

次の項目を含むセキュリティ評価を定期的に実施します:動的アプリケーションセキュリティテスト(DAST)、静的アプリケーションセキュリティテスト(SAST)、手動ペネトレーションテスト。継続的なコードレビューにより、脆弱性を早期に特定できます。

Advertisement

アップデートとパッチを迅速に適用する

APIの依存関係に関連するセキュリティ脆弱性を常に把握します。ライブラリ、フレームワーク、基盤となるOSなど、すべてのソフトウェア要素を最新の状態に保ちます。既知の脆弱性によるリスクを緩和するため、パッチを速やかに適用します。

APIトラフィックを監視する

APIに監視とログ記録のメカニズムを統合します。インバウンドおよびアウトバウンドのトラフィックを分析し、悪意ある活動を示唆する異常なパターン、急増、傾向を特定します。侵入検知・防御システム(IDPS)を導入し、疑わしい動作を自動的に検知・対応します。

Webアプリケーションファイアウォール(WAF)を導入する

防御をさらに強化するため、WAFの導入を検討します。WAFは悪意のあるトラフィックを遮断し、既知の攻撃パターンを阻止するとともに、新たな脅威から保護します。

おすすめのWebアプリケーションファイアウォール

ホワイトリスト登録したドメインとIPのみを許可する

可能であれば、信頼できるドメインまたは特定のIP範囲からのリクエストだけをAPIが受け付けるよう設定します。これにより、攻撃者となり得る存在への露出を最小限に抑えられます。

開発者とユーザーを教育する

開発チームに安全なコーディングのトレーニングを提供し、APIユーザーには継続的にセキュリティ意識向上トレーニングを実施します。開発から利用までのライフサイクル全体で、セキュリティを重視する意識を醸成します。

コンテンツ検証を組み込む

受信したAPIリクエストが、構造、形式、内容の面で想定されるスキーマに準拠していることを検証します。これにより、攻撃者がデータ処理の脆弱性を悪用するのを防ぎます。

サードパーティーアクセスにOAuthを実装する

サードパーティーアプリケーションと連携するAPIには、安全な認可とアクセス制限のためにOAuthを実装します。OAuthを使えば、ユーザーは認証情報を公開することなく、サードパーティーアプリに特定の権限を付与できます。

APIのバージョン管理を実装する

変更を導入する際に後方互換性を確保し、利用者がスムーズに移行できるよう、バージョン管理を導入します。これにより、既存の連携が中断されるのを防げます。

セキュリティヘッダーを組み込む

APIレスポンスにセキュリティヘッダーを利用し、ブラウザーの動作を制御します。コンテンツセキュリティポリシー(CSP)はクロスサイトスクリプティングの防止に役立ち、クロスオリジンリソース共有(CORS)ポリシーは、特定のオリジンからAPIへのアクセスを制限します。

安全なAPIドキュメントを整備する

APIドキュメントに、アプリケーションのアーキテクチャ、テクノロジースタック、セキュリティメカニズムに関する機密情報が記載されていないことを確認します。安全なAPI連携を理解するために必要な情報だけを開示します。

OWASPのガイドラインに従う

OWASPのリソース、特にOWASP API Security Top Tenの最新情報を常に確認します。推奨事項を定期的に見直して実装し、最新のAPIセキュリティのベストプラクティスに沿うようにします。

Advertisement

RESTとSOAPのAPIセキュリティ

RESTとSOAPはAPI構築で広く使われるアプローチであり、APIセキュリティのためには安全に利用することが重要です。

Simple Object Access Protocol(SOAP)は、Web Service Description Language(WSDL)を利用するツールと戦略の集合です。これらの要件はデータの錠と鍵の役割を果たし、送受信されるデータのプライバシーを確保するとともに、意図された受信者の同意なしに改変されないようにします。

SOAP APIセキュリティを標準化・体系化することで、エラーやセキュリティ上の欠陥が発生する可能性を低減する、簡潔なガイドラインが得られます。ただし、この標準化された厳格な手法は、単純なアプローチよりも設定や理解に手間がかかる可能性があります。

Representational State Transfer(REST)は、作成、読み取り、更新、削除(CRUD)を行う、より単純な処理に適しています。RESTはシンプルで柔軟性に優れているため、さまざまなアプリケーションで役立ちます。共有データの完全性と機密性を保護するため、RESTの実装ではHTTPSによる保護に加え、認証と認可にトークンを利用することが一般的です。

HTTPSはクライアントとサーバー間の通信を暗号化し、データの完全性と機密性を保証します。これはREST APIのセキュリティの基盤です。ブラウザーのアドレスバーに表示される南京錠のアイコンは、安全な接続を示します。アクセスの保護と認可には、JSON Web Tokens(JWT)、OAuthトークン、その他の認証トークンがよく使われます。トークンによって、ユーザーのロール、権限、アクセス特権が表されます。

Protocol layering diagram from Wallarm.
Source: Wallarm

RESTとSOAPの比較表


RESTSOAP
サーバー側セッション?はい(デフォルト設定の場合)。ステートレスですが、ステートフルに変更できます。いいえ。ステートフルであるためです。
どのように動作するか?データ取得の機能(サービス)を中心に動作します。getUserなどのコマンドを使用します。データはリソースとして扱われます。
転送プロトコルHTTP、UDP、SMPなどHTTPS
設計十分に標準化され、事前に定められた厳格なルールがあります。アーキテクチャは、それほど厳格ではないガイドラインに従います。
キャッシュ使用しない使用する
セキュリティACID特性に準拠し、エンタープライズグレードのセキュリティを確保します。機密データの交換や金融取引にも適しています。HTTPS + SSL
メッセージングで受け付ける形式XMLJSON、XML、HTML
リソース消費リソースを大量に消費し、より大きな帯域幅と計算能力を必要とします。必要なリソースが大幅に少なくて済みます。
Java APIJAX-WSJAX-RS
相互に連携できるか?アーキテクチャの基準が厳格であるため、SOAPは利用しません。このWebサービスは、多様な用途に対応する標準規格であるSOAPを利用できます。
公開方式WSDLを使って技術仕様やメソッドを確認できます。URIを使ってメソッドを公開できます。

APIテストに使える代表的なツールは?

これらのツールは、さまざまな要件や好みに対応します。Beagle SecurityはAPIセキュリティテスト向けの使いやすいインターフェースを提供し、StackHawkは開発者向けに設計され、Wallarmは自動脅威検知を専門としています。選択にあたっては、固有のニーズと組織のAPIセキュリティ要件の性質を考慮する必要があります。追加のアイデアについては、APIセキュリティツールのトップ製品をご覧ください。

Wallarm API Security Platform:自動脅威検知に最適

Wallarmは、オンラインの脅威からアプリケーションとAPIを保護するために開発された、包括的なセキュリティプラットフォームです。ユーザーの介入なしにセキュリティの脆弱性を迅速に認識して対処できる、自動脅威検知に優れています。そのため、APIセキュリティの監視と対応プロセスを自動化したい企業に適しています。

StackHawk:開発者チームに最適

StackHawkは、開発プロセスに無理なく組み込めるツールです。開発者にとって使いやすいAPIセキュリティテストツールであり、アプリケーションの作成・配布中にも利用できます。開発プロセスの早い段階でセキュリティ問題を特定・修正できるため、継続的インテグレーションと継続的デリバリー(CI/CD)に注力するチームにとって優れた資産となります。

Beagle Security:ユーザーインターフェースによるAPIセキュリティテストに最適

Beagle Securityは、APIセキュリティを評価するためのシンプルなユーザーインターフェースを提供します。APIのセキュリティをスキャンして評価しやすくなります。使いやすいインターフェースにより、開発者とセキュリティ専門家はセキュリティテストの結果を共有し、理解しやすくなります。APIセキュリティテストで使いやすさを重視するなら、Beagle Securityは賢明な選択肢となるでしょう。

関連記事:

API侵害の事例

残念ながら、重大なAPIセキュリティ侵害は常に発生しています。ここでは、今年発生した重大なAPI侵害を3件紹介します。直近の事例は、わずか数週間前に起きたものです。

Duolingo

2023年8月、著名な語学学習サイトDuolingoの260万人のユーザーについて、メールアドレス、ユーザー名、言語設定、学習進捗などの個人情報が流出したことが報じられました。メールアドレスがDuolingoのアカウントに紐付いているかを誰でも確認できる、保護されていないAPIが侵害の原因でした。

Discord

2023年3月、Discord向けのカスタム招待サービスDiscord.ioで発生したデータ侵害により、76万人を超えるユーザーが影響を受けました。ハッカーの「Akhirah」は、ユーザーデータベースをダークウェブ上で販売するとして投稿しました。データには機密性のない情報と、機密情報の可能性がある情報の両方が含まれていました。Discord.ioはサービスを停止して調査を開始しました。再び侵害が発生するのを防ぐため、Discord.ioはWebサイトのプログラムとセキュリティ機能を更新しようとしています。ユーザーにパスワード変更は強制されませんでしたが、2018年より前に登録したユーザーは、他のWebサイトでもパスワードを変更することを検討すべきです。Discord.ioとDiscordは独立した企業であるため、セキュリティを高めるためにユーザーには二要素認証の導入が推奨されています。

MOVEit

また今年は、MOVEitファイル転送ソフトウェアの侵害により、世界中で1,000を超える組織と6,000万人が影響を受けました。被害者の大半は米国、ドイツ、カナダ、英国に集中しています。特に、米国政府の請負業者であるMaximusでは、最大1,100万人分のデータが侵害されました。金融機関が最も大きな被害を受けました。

この侵害による推定被害額は約100億ドルですが、より多くの被害者が損失を報告すれば、さらに高額になる可能性があります。ランサムウェアグループのClopは、2021年からこの計画を進めていた可能性があり、このキャンペーンによって1億ドルという多額の利益を得る見込みです。

まとめ:APIセキュリティを適切に実践する

APIセキュリティは今日のデジタル環境で極めて重要です。機密データとサービスの機密性、完全性、可用性を確保するためです。単純なREST APIを扱う場合でも、複雑なSOAPベースのシステムを扱う場合でも、堅牢なセキュリティ対策は不可欠です。開発のベストプラクティス、脆弱性の追跡・評価、認証・認可制御の実装といった基本的なAPIセキュリティ対策は、低コストで大きな効果をもたらします。APIセキュリティソリューションに投資することは、深くつながった世界で組織の評判と財務的な健全性を守ることにもつながります。

次に、おすすめの脆弱性管理ツールのトップ製品をご覧ください。

Kathryn Timonera

Datamation and eWeek staff writer Kathryn Pearl Timonera has covered a wide range of industries in her career, including technology, cybersecurity, e-commerce, and programming. Kathryn now applies her talent for presenting information to technology and cybersecurity professionals.

eSecurity Planet Logo

eSecurity Planet is a leading resource for IT professionals at large enterprises who are actively researching cybersecurity vendors and latest trends. eSecurity Planet focuses on providing instruction for how to approach common security challenges, as well as informational deep-dives about advanced cybersecurity topics.

TechnologyAdvice が所有・運営しています。 © 2026 TechnologyAdvice. 無断転載を禁じます

広告主に関する開示:このサイトに掲載されている製品の一部は、TechnologyAdvice が報酬を受け取っている企業のものです。この報酬は、製品がこのサイトのどこにどのように表示されるか(表示される順序など)に影響する場合があります。TechnologyAdvice は、市場で入手可能なすべての企業やすべての種類の製品を掲載しているわけではありません。