API はソフトウェアアプリケーション間のインタラクションを可能にし、マイクロサービスアーキテクチャなどの先進的なソフトウェアパターンにとって欠かせないものです。
API セキュリティは、 API を不正アクセスや悪用、攻撃から保護するための対策です。API は広く使用され、機密性の高いデータやソフトウェア機能へのアクセスを可能に するため、攻撃対象になる頻度が増加しています。
そのため、API セキュリティは先進的な Web アプリケーションを保護する上で非常に重要な役割を担います。財務情報や個人情報など機密性の高いデータを保護し、攻撃によって API とその接続先システムの完全性が損なわれるのを防ぐには、API セキュリティが必要不可欠です。API がますます普及し、ビジネスにとって重要なプロセスやサービスの中核を担う中、それらを保護する必要があります。
API を利用することでさまざまなアプリケーション間での高速通信が可能になるため、企業は異なるシステムやテクノロジーを統合して、オペレーションの効率と効果を高めることができます。
しかし、API が適切に管理、保護されていないと、セキュリティリスクを招く恐れがあります。攻撃者が API の脆弱性を悪用して機密性の高いデータへのアクセスやアプリケーションへの悪質なコードの挿入を試み、データ侵害やシステムダウンなどの深刻な被害 をもたらしていることは、周知のとおりです。
データやリソースの機密性や完全性、可用性を確保する上で、API セキュリティは欠かせません。マイクロサービスやサーバーレスアーキテクチャの普及に伴い、ほとんどすべてのエンタープライズアプリケーションの基本的な機能に API が使用されています。そのため、API セキュリティは先進的な情報セキュリティの中核を成し、アプリケーション間の縦方向と横方向のトラフィックを保護しています。
また、機密性の高いデータの交換において厳格なセキュリティとプライバシー保護を要求する、GDPR や HIPAA、PCI DSS などの規制要件へのコンプライアンスにおいても API セキュリティは重要です。これらの規制に準拠しなかった場合、法的制裁や罰金が科される可能性があります。
最 新の API 設計では、主に2つのアーキテクチャタイプが使用されています。
REST : Representational State Transfer (REST) API は、Hyper Text Transfer Protocol (HTTP) リクエストを使用して Web ベースのアプリケーションやサービスと通信やデータのやり取りを行う Web サービスです。
SOAP : Simple Object Access Protocol (SOAP) API は、Extensible Markup Language (XML) を使用してアプリケーション間またはサービス間で通信やデータの交換を行う Web サービスです。
RESTful API は Web ベースのアプリケーションやサービスの構築に広く使用されています。RESTful API はプラットフォームに依存しないため、開発者は HTTP リクエストをサポートする任意のフレームワークや好きなプログラミング言語を使用することができます。また、非常にスケーラブルで、複数のクライアントからの多くのリクエストを同時に処理することが可能です。一方、SOAP API は一般的に、セキュリティと信頼性が極めて重要なエンタープライズ環境で使用されます。SOAP API によって、標準化された方法で異なるシステム間のデータ交換を行い、複雑なオペレーションやメッセージパターンに対応できます。他の Web サービスよりも複雑で多くのデータ処理が行われる場合があり、処理オーバーヘッドとネットワーク帯域の追加が必要になることがあります。
API 関連のセキュリティ脅威の高まりを受け、OWASP (Open Web Application Security Project) は API への脅威に絞った独自のトップ10リストを公開しています。OWASP の API セキュリティトップ10は、API に関連するリスクや脅威を把握し、それらから API を保護する方法を理解するのに役立つ包括的なガイドです。以下にトップ10の脅威をご紹介します。
API1:2023 オブジェクトレベルの認可の不備 : オブジェクトレベルの認可は、アクセスを許可されているオブジェクトのみにユーザーがアクセスできるよう確認するためのアクセス制御メカニズムで、通常はコードレベルで実装されます。
API2:2023 認証の不備 : 認証のエンドポイントとフローを必ず保護します。「パスワードの回復やリセットの機能」も認証メカニズムとして扱う必要があります。
API3:2023 オブジェクトプロパティレベルの認可の不備 : ユーザーに API エンドポイント経由でのオブジェクトへのアクセスを許可する場合、アクセスしようとしている特定のオブジェクトプロパティへのアクセス権がユーザーに付与されていることを確認することが非常に重要です。
API4:2023 リソース消費の制限の不備 : API リクエストを処理する際、ネットワーク帯域や CPU、メモリ、ストレージなどのリソースが消費されます。サービスプロバイダーは API 統合で必要なリソースを利用可能にし、メール/SMS/電話コールの送信や生体認証での検証など、リクエストごとに料金を支払う場合があります。
API5:2023 機能レベルの認可の不備 : 機能レベルの認可の問題を特定する最良の方法は、認可メカニズムを徹底的に分析することです。
API6:2023 機密性の高いビジネスフローへの無制限のアクセス : 機密性の高いビジネスフローを公開する API エンドポイントへのアクセスが適切に制限されていない場合、API エンドポイントが脆弱になります。
API7:2023 サーバーサイドリクエストフォージェリ : サーバーサイドリクエストフォージェリ (SSRF) の欠陥は、API がリモートリソースを取得する際に、ユーザーが提供した URL を検証せずに使用することで発生します。攻撃者は SSRF によって、ファイアウォールや VPN で保護されている場合でも、アプリケーションが細工されたリクエストを意図しない宛先に送信するよう強制することができます。
API8:2023 セキュリティの設定ミス : セキュリティが強化されていない、最新のセキュリティパッチが適用されていない、受信リクエストが処理される方法に不一致がある、トランスポートレイヤーセキュリティ (TLS) が使用されていないといった場合に、 API に脆弱性が存在する可能性があります。
API9:2023 不適切なインベントリ管理 : 無秩序に広がり、接続を伴う API と先進的なアプリケーションは、新しい課題を提起しています。組織は自社の API と API エンドポイント、そしてデータがどのように保存され、外部のサードパーティと共有されているかをよく理解し、それらを可視化する必要があります。
API10:2023 安全でない API の使用 : 開発者は、ユーザーが入力するデータよりも、サードパーティから受け取るデータを信頼する傾向があり、特に大手企業が提供する API で、このような傾向が強く見られます。そのため、例えば入力検証やサニタイズに関して開発者は、より脆弱なセキュリティ基準を採用することが多々あります。
セキュアでプライベートなサービス通信の実現において、API セキュリティのベストプラクティスを実践することが非常に重要です。以下では、役立つベストプラクティスの一部をご紹介します。
HTTPS の使用 : 常に HTTP の代わりに HTTPS を使用するようにします。HTTPS では転送中のデータが暗号化されるため、中間者攻撃を回避できます。
認証システム : OAuth やトークンベースの認証ソリューションなどの認証メカニズムを実装し、許可されたユーザーのみが API にアクセスできるようにします。
暗号化 : 常に暗号化メソッドを使用してデータの機密性を保護します。SSL/TLS または AES (Advanced Encryption Standard) レベルの暗号化をお勧めします。
レート制限/スロットリング : API コールのメソッドと頻度にレート制限を設定し、サービス妨害 (DoS) 攻撃を防ぎます。また、レート制限によってユーザー接続を調整することで、アクセスと可用性のバランスを取ることができます。
メッセージレベルのセキュリティ : XML 暗号化や XML シグネチャなどを使用して、メッセージの完全性と機密性を保護します。
入力検証 : 全ての入力データを検証し、SQL インジェクション (SQLi) やクロスサイトスクリプティング (XSS) などの攻撃を防ぎます。
ロールベース・アクセス・コントロール (RBAC) : RBAC を実装し、機密性の高いデータや機能へのアクセスを制御します。
ログおよびモニタリング : リアルタイムログとモニタリングのメカニズムを実装し、セキュリティインシデントを迅速に特定して対処します。
ソフトウェアを最新の状態に維持する : オペレーティングシステム (OS)、Web サービス、Web アプリケーションフレームワークも含め、あらゆるソフトウェアに最新のセキュリティアップデートとパッチを適用します。
セキュリティテスト : 定期的にセキュリティテストを実施し、脆弱性や潜在的なセキュリティリスクを特定します。
セキュリティのベストプラクティスを実践することで、API エンドポイントの安全性を維持し、攻撃からの保護を強化できます。
早速 Fastly を無料でお試しください!