API セキュリティとは?

API はソフトウェアアプリケーション同士の相互作用を可能にし、マイクロサービスアーキテクチャなどの最新のソフトウェアパターンにとって重要です。

API セキュリティは、API を不正アクセス、悪用、攻撃から保護するために講じられる対策です。API は広く使用され、機密性の高いソフトウェア機能やデータへのアクセスを可能にするため、格好の攻撃対象になる頻度が増加しています。

API セキュリティは、現代の Web アプリケーションセキュリティの重要な構成要素です。財務情報や個人情報などの機密データを保護し、API とその接続先システムの完全性を損なう可能性のある攻撃を防ぐには、API セキュリティが不可欠です。API はますます普及し、重要なビジネスプロセスやサービスを支えるために使用されているため、保護する必要があります。 

API セキュリティが重要な理由

API を利用することでさまざまなアプリケーション間での高速通信が可能になるため、企業は異なるシステムやテクノロジーを統合して、より効率的で効果的なオペレーションを実現できます。 

しかし、API が適切に管理、保護されていないと、セキュリティリスクを招く恐れがあります。攻撃者がAPI の脆弱性を悪用して機密性の高いデータにアクセスし、アプリケーションに悪質なコードを挿入するなどして、データ侵害やシステムクラッシュ、その他の深刻な結果をもたらしていることは、周知のとおりです。

データやリソースの機密性、完全性、可用性を確保するために、API セキュリティは不可欠です。マイクロサービスやサーバーレスアーキテクチャでは、ほぼすべてのエンタープライズアプリケーションが基本的な機能を API に依存しています。API セキュリティは、現代の情報セキュリティの中核を成す要素であり、アプリケーション間の North-South トラフィックと East-West トラフィックを保護します。 

また、機密データの交換において厳格なセキュリティとプライバシー保護を要求する、GDPR、HIPAA、PCI DSS などの規制要件へのコンプライアンスにおいても API セキュリティは重要です。これらの規制に準拠しなかった場合、法的制裁や金銭的な罰則が科される可能性があります。

REST API と SOAP 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 ベースのアプリケーションやサービスの構築に広く使用されています。これらはプラットフォームに依存しないため、開発者は HTTP リクエストをサポートする任意のプログラミング言語またはフレームワークで使用できます。これらは非常にスケーラブルで、複数のクライアントからの大量のリクエストを同時に処理できます。SOAP API は一般的に、セキュリティと信頼性が極めて重要なエンタープライズ環境で使用されます。これらは、異なるシステム間でデータを交換するための標準化された方法を提供し、複雑なオペレーションやメッセージ・パターンを処理できます。他の Web サービスよりも複雑で大がかりになる場合があり、追加の処理オーバーヘッドとネットワーク帯域幅が必要になることがあります。

OWASP API セキュリティトップ10とは?

API 関連のセキュリティ脅威の高まりを受け、OWASP(OWASP)は API に特化した独自のトップ10リストをリリースしました。OWASP の API セキュリティトップ10は、組織が API に関連するリスクや脅威、およびそれらを保護する方法を理解するのに役立つ包括的なガイドです。以下にトップ10をご紹介します。

  • API1:2023 オブジェクトレベルの認可の不備:オブジェクトレベルの認可は、アクセスを許可されているオブジェクトのみにユーザーがアクセスできるよう確認するためのアクセス制御メカニズムで、通常はコードレベルで実装されます。

  • API2:2023 認証の不備:認証のエンドポイントとフローを必ず保護する必要があります。"パスワードを忘れた/パスワードをリセット" も認証メカニズムとして扱う必要があります。 

  • API3:2023 Broken Object Property Level Authorization:ユーザーに API エンドポイント経由でオブジェクトへのアクセスを許可する場合、アクセスしようとしている特定のオブジェクトプロパティへのアクセス権がユーザーに付与されていることを確認することが非常に重要です。

  • API4:2023 無制限のリソース消費:API リクエストを処理するには、ネットワーク帯域幅、CPU、メモリ、ストレージなどのリソースが必要です。Serviceプロバイダーは、メール/SMS/電話の送信、生体認証の検証など、必要なリソースをAPI統合やリクエストごとの課金を通じて利用可能にすることがあります。

  • API5:2023 機能レベルの認可の不備:機能レベルの認可の問題を見つける最善の方法は、認可メカニズムを徹底的に分析することです。

  • API6:2023 機密性の高いビジネスフローへの無制限のアクセス:機密性の高いビジネスフローを公開する API エンドポイントへのアクセスが適切に制限されていない場合、API エンドポイントは脆弱です。

  • API7:2023 サーバーサイドリクエストフォージェリ: サーバーサイドリクエストフォージェリ(SSRF)の欠陥は、API がユーザー指定の URL を検証せずにリモートリソースを取得するときに発生します。これにより、ファイアウォールや VPN で保護されている場合でも、攻撃者はアプリケーションが細工されたリクエストを意図しない宛先に送信するよう強制できます。

  • API8:2023 セキュリティの設定ミス: セキュリティ強化が行われていない、最新のセキュリティパッチが適用されていない、受信リクエストの処理方法に不一致がある、TLSが使用されていないなどの場合、APIに脆弱性が存在する可能性があります。

  • API9:2023 Improper Inventory Management:無秩序に広がり、接続を伴う API と先進的なアプリケーションは、新しい課題を提起しています。組織は自社の API と API エンドポイント、そしてデータがどのように保存され、外部のサードパーティと共有されているかをよく理解し、それらの可視性を持つ必要があります。

  • API10:2023 APIの安全でない利用:開発者は、ユーザー入力よりもサードパーティAPIから受信したデータを信頼しがちです。これは特に有名企業が提供する API について言えることです。そのため、例えば入力検証やサニタイズに関して、開発者はより脆弱なセキュリティ基準を採用しがちです。

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

セキュアでプライベートなサービス通信の実現において、API セキュリティのベストプラクティスを実践することが非常に重要です。ベストプラクティスの一部を以下に示します。 

API セキュリティの全体像
  • HTTPS を使用する:常に HTTP の代わりに HTTPS を使用するようにします。HTTPS ではトランジット中のデータが暗号化されるため、中間者攻撃を防止できます。

  • 認証を使用:認証メカニズムを実装して、許可されたユーザーのみがAPIにアクセスできるようにします。OAuth またはトークンベースの認証ソリューションの使用を検討してください。 

  • 暗号化を使用する:常に暗号化メソッドを使用してデータの機密性を保護します。SSL/TLS または Advanced Encryption Standard(AES)レベルの暗号化を使用します。

  • レート制限とスロットリングを使用します:API コールのメソッドと頻度にレート制限を設定し、サービス拒否攻撃(DoS)を防ぎます。レート制限では、ユーザー接続を調整することで、アクセスと可用性のバランスを取ることもできます。

  • メッセージレベルのセキュリティを使用します:メッセージの完全性と機密性を保護します。XML Encryption と XML 署名の使用を検討してください。 

  • 入力検証を使用する: 全ての入力データを検証し、SQL インジェクション(SQLi)やクロスサイトスクリプティング(XSS)などの攻撃を防ぎます。

  • ロールベースのアクセスコントロール(RBAC)を使用する:RBAC を実装し、機密データや機能へのアクセスを制限します。 

  • ログとモニタリング:リアルタイムのログ記録およびモニタリングの仕組みを実装し、セキュリティインシデントを検出して対応します。 

  • ソフトウェアを最新の状態に保つ:オペレーティングシステム(OS)、Web サービス、Web アプリケーションフレームワークを含むすべてのソフトウェアを、最新のセキュリティアップデートとパッチで最新の状態に保ちます。 

  • セキュリティテスト:定期的にセキュリティテストを実施し、脆弱性や潜在的なセキュリティリスクを特定します。

これらのセキュリティのベストプラクティスに従うことで、API エンドポイントの安全性を維持し、攻撃から保護するのに役立ちます。 

 今すぐFastly を無料でお試しください!

Fastly を試してみませんか?

ぜひご連絡ください