APIセキュリティの解説
多くの組織は、API(アプリケーションプログラミングインターフェース)を介して顧客にデータへのアクセスを提供し、カスタマイズしたソリューションを構築したり、サービスを強化したりできるようにしています。しかし、このアクセスにはセキュリティリスクが伴うため、APIセキュリティはあらゆるビジネスの成功に不可欠な要素となっています。
APIセキュリティとは
APIセキュリティとは、API内のデータの機密性、整合性、可用性を保護するために導入される戦略と対策を指します。これらの対策には以下のものがあります。
- 認証と承認:承認されたユーザーとアプリケーションのみがAPIにアクセスできるようにするメカニズムを実装します。認証はユーザーのアイデンティティを確認し、承認はアクセスレベルを決定します。
- データ保護:暗号化を使用して、転送中および保存中のデータを保護します。HTTPSやTLSなどの安全な通信プロトコルは、APIを介して交換されるデータの傍受や改ざんを防ぎます。
- モニタリングとログ記録:APIの使用状況を追跡して、潜在的なセキュリティ脅威を検知して対応します。過剰なリクエスト数などの異常なトラフィックパターンを監視することで、悪意のあるアクティビティを早期に検知できます。
- テストと脆弱性評価:ペネトレーションテスト、脆弱性スキャン、コードレビューなどの定期的なテストを実施して、攻撃者に悪用される前に弱点を特定します。
Schunk Group
このユーザー事例を読んで、国際的なハイテク企業であるSchunk Groupがクラウドネイティブなクラウドストライクセキュリティを使用して、そのITインフラストラクチャをどのように保護しているかをご覧ください。
ユーザー事例を読むAPIセキュリティが重要な理由
堅牢なAPIセキュリティがなければ、組織は深刻な影響を及ぼす可能性のあるさまざまな攻撃に対して脆弱になります。APIの脆弱性は、攻撃者によって悪用され、個人情報、財務記録、ログイン認証情報などの機密データにアクセスされる可能性があります。このような侵害は、アイデンティティの盗難、詐欺、サイバー犯罪につながる可能性があります。攻撃者がDoS(サービス拒否)攻撃を実行し、ユーザーが重要なサービスにアクセスできないようにする可能性もあります。
サードパーティサービスとの連携にAPIを利用している企業にとって、セキュリティ侵害は次のような結果をもたらす可能性があります。
- 評判の低下:顧客の信頼喪失。
- 金銭的損失:侵害への対応に関連する費用と潜在的な事業損失。
- 法的影響:データ保護規制の違反による罰金、規制上の罰則、訴訟の可能性。
APIセキュリティを強化する方法
1. レート制限とスロットリングを実装する:不正使用を防ぐために、ユーザーが特定の時間内に実行できるリクエストの数を制限します。
2. APIゲートウェイを使用する:ゲートウェイは、APIトラフィックを管理、監視、保護するための中央制御ポイントを提供します。
3. ゼロトラストモデルを採用する:ゼロトラストでは、ネットワーク内のユーザーとシステムも含め、すべてのユーザーとシステムにアイデンティティの確認を要求します。
4. 開発者を教育する:API開発者がセキュアコーディング手法を理解し、進化する脅威に対応するためにスキルを定期的に更新するようにします。
APIセキュリティとアプリケーションセキュリティ
APIセキュリティとアプリケーションセキュリティは議論の中でしばしば重複しますが、デジタル環境のセキュリティ保護においては目的が異なります。APIセキュリティはシステムとデバイス間で共有されるデータの保護に不可欠であり、アプリケーションセキュリティはソフトウェアアプリケーション内のエンドユーザーの操作性とデータの保護に重点を置いています。
主な違い
1. 攻撃対象領域:
- APIは幅広いクライアントに接続するように設計されており、本質的に脆弱性ポイントが多くなるため、一般的に従来のWebアプリケーションよりも攻撃対象領域が広くなります。
- アプリケーション、特にWebアプリケーションは、他のシステムではなくエンドユーザーと直接対話することが多いため、通常、攻撃対象領域はより限定的です。
2. アクセシビリティと脆弱性:
- APIは複数のプラットフォームやデバイスからアクセスできるため、セキュリティ上の脅威にさらされやすくなります。統合を目的としたオープンなアクセスは、適切に保護されていない場合、悪用につながる可能性があります。
- 対照的に、アプリケーションはユーザーインターフェースを考慮して設計されており、セキュリティ上の脅威は多くの場合、ユーザー入力の処理、セッション管理、およびUIの脆弱性に集中しています。
3. 認証スキーム:
- APIは、OAuthやJWT (JSON Web Token) などのトークンベースの認証メカニズムを頻繁に使用し、クライアントが従来の認証情報ではなくトークンを使用して認証できるようにします。
- Webアプリケーションでは、通常、パスワードの入力に加えてユーザーのスマートフォンに確認コードを送信するなど、アイデンティティを確認するために2FA(2要素認証)方式が採用されています。
4. 主なセキュリティリスク:
- APIのOWASPトップ10には、オブジェクトレベルおよび関数レベルでの認証の欠陥や、過剰なデータ公開に関連する問題が含まれています。
- しかし、WebアプリケーションのOWASPトップ10では、UI(ユーザーインターフェース)の欠陥、セッション管理の脆弱性、安全でないUIコンポーネントから生じる問題に重点を置いています。
基本的なAPIセキュリティ標準
安全なAPIを開発する際には、暗号化、認証、承認に関連する主要な標準に準拠することが不可欠です。
1. TLS暗号化:
TLS(トランスポート層セキュリティ)は、転送中のデータを暗号化することでクライアントとサーバー間の接続を保護するプロトコルです。これにより、第三者によるデータの傍受や改ざんを防ぎ、転送中の機密情報を保護するうえで非常に重要です。
2. OAuth:
OAuthは、主要な認証情報を共有せずに、サードパーティアプリケーションにAPIへの限定的なアクセスを許可する認証フレームワークです。OAuthは一時的なトークンを作成し、セキュリティを損なうことなく、特定の期間、リソースへの制御されたアクセスを許可します。
3. SAML(セキュリティアサーションマークアップ言語):
XMLベースの標準規格であるSAMLは、安全な認証および承認のやり取りに広く利用されています。通常、SSO(シングルサインオン)システムに実装されており、ユーザーは一度認証すれば、認証情報を再入力することなく複数のアプリケーションに安全にアクセスできます。
4. JWT(JSON Webトークン):
JWTは、認証および承認のクレームを表すために使用される、コンパクトでURLに適したトークン形式です。JWTには、ユーザーIDや有効期限などの重要な詳細情報が安全かつ効率的な方法で含まれており、Webアプリケーションやモバイルアプリケーションでのセッション管理と承認に最適です。
5. OWASP RESTセキュリティチートシート:
OWASP RESTセキュリティチートシートは、インジェクション攻撃、不備のある認証、データ漏洩などの一般的な脆弱性からREST APIを保護するためのガイドラインを提供します。その推奨事項の中には、ユーザー認証の管理とデータ転送のセキュリティ保護にJWTを使用することが含まれています。
APIセキュリティに関するトップ10の問題とその防止策
APIはアプリケーション間の通信を可能にするために不可欠ですが、独自のセキュリティ上の課題が伴います。OWASPのAPIセキュリティに関するトップ10の問題は、主に認証とアクセス制御の脆弱性に焦点を当て、今日のAPIが直面する最も一般的な脅威を浮き彫りにしています。ここでは、これらの問題と、それらを防ぐために推奨されるベストプラクティスについて詳しく見ていきます。
APIは実際に感染報告がある形でどのように悪用されているか
1. オブジェクトレベルの権限の不備
オブジェクトレベルの権限の不備は、APIがユーザーが特定のオブジェクトへのアクセス権を持っているかどうかを検証できない場合に発生し、攻撃者が制限されたデータにアクセスしたり変更したりすることが可能になります。このリスクを防ぐには、アプリケーション全体でオブジェクトレベルの承認を一貫して適用する一元化されたアクセス制御メカニズムが必要です。このメカニズムは、各オブジェクト要求に対するユーザー権限を正確に検証し、不正アクセスの防止に役立ちます。
2. 不備のあるユーザー認証
不備のあるユーザー認証は、APIがユーザーを適切に認証しない場合に発生し、攻撃者が正当なユーザーになりすますことが可能になります。これを防ぐには、MFA(多要素認証)を実装し、パスワードのハッシュ化やソルト化などの安全なパスワード保存方法を実践します。MFA(多要素認証)は、ユーザーに追加のデバイスまたは認証情報によるアイデンティティの検証を求めることでセキュリティを強化し、なりすましのリスクを軽減します。
3. 不備のあるプロパティレベルの権限
大規模なオブジェクトを扱うAPIでは、オブジェクトレベルのアクセスが安全であっても、オブジェクトのプロパティを通じて不要なデータが公開されるリスクがあります。このリスクに対処するには、暗号化とデータフィルタリングによってデータ流出を制限することが不可欠です。オブジェクト内の機密プロパティを暗号化し、データをクライアントに返す前に慎重にフィルタリングして、必要な情報のみにアクセスできるようにします。
4. リソースとレートリミットの欠如
APIにリソース管理やレート制限制御が備わっていない場合、DoS(サービス拒否)攻撃に対して脆弱になります。これを防ぐには、レート制限を適用してユーザーが送信できるリクエストの数を制御し、公平な使用を確保するためのリソース割り当てメカニズムを実装します。この戦略により、過剰なリクエストを制限し、APIのパフォーマンスと可用性を維持できます。
5. 不備のある機能レベルの権限
不備のある機能レベルの権限、APIが機能レベルまたはエンドポイントレベルで認証を実施しない場合に発生し、攻撃者が制限された機能に意図せずアクセスできるようになります。一元化されたアクセス制御メカニズムで機能レベルの権限を管理し、すべてのエンドポイントにポリシーを適用する必要があります。これにより、ユーザーの役割に基づいて機密機能へのアクセスを制限できます。
6. SSRF(サーバーサイドリクエストフォージェリ)
SSRFは、APIがクライアントからのURLを検証せずに受け入れる場合に発生し、攻撃者が内部サービスを公開する悪意のあるURLを送信できるようになります。SSRFを防ぐには、リクエストを承認されたURLに制限するURL許可リストを使用し、内部IPアドレスをフィルタリングして内部リソースへの不正アクセスを防止します。
7. セキュリティの設定ミス
APIが安全でない設定や古いソフトウェアを使用すると、セキュリティの設定ミスが発生し、攻撃に対して脆弱になります。これを軽減するには、セキュアコーディングの手法に従い、安全なデフォルトを使用します。ソフトウェアを定期的に更新し、不要な機能を無効にし、強化された設定を採用して、潜在的な攻撃への露出を最小限に抑えます。
8. 自動化された脅威からの保護の欠如
ビジネスワークフローを悪用するボットなどの自動化された攻撃は、経済的損失を引き起こしたり、組織の評判を損なったりする可能性があります。デバイスフィンガープリンティングを実装し、Tor出口ノードなどの疑わしいIPアドレスをブロックすることで、これらの脅威から保護します。さらに、主要なフロー(購入や紹介など)に合理的な利用制限を設け、高リスクの取引には本人確認を義務付けます。
9. 不適切なアセット管理
鍵や証明書などのアセットの管理が適切でない場合、不正アクセスが発生する可能性があります。この問題を防ぐには、セキュアコーディング手法を使用し、セキュリティ設定を定期的に更新します。不要な機能を無効にし、安全なデフォルトを採用し、アセットの権限を定期的に確認して、不正アクセスによるリスクを最小限に抑えます。
10. サードパーティAPIの安全でない使用
APIは多くの場合サードパーティのAPIに依存しますが、それらのAPI自体にもセキュリティ上の弱点がある可能性があります。インジェクション攻撃を防ぐためにすべての入力(サードパーティAPIからのデータを含む)をサニタイズし、ホスト名の許可リストを使用して潜在的な脆弱性を制限します。これらの手順は、アクセスを制御し、安全でないサードパーティAPIとのやり取りによるデータ漏洩のリスクを軽減するのに役立ちます。
バークシャー銀行
バークシャー銀行が成長し、デジタルトランスフォーメーションに注力する中、同社が直面する主なサイバー課題は、APIセキュリティ、ゼロデイ脆弱性の増加、銀行システムやサービスのクラウドへの移行に伴うサードパーティのリスク管理、サイバー攻撃の巧妙化と頻度の増加です。
バークシャー銀行がCrowdStrike Falcon®プラットフォームに「非常に満足している」理由をご覧ください。
今すぐダウンロードAPIの安全の維持
APIセキュリティの管理は複雑に思えるかもしれませんが、実際はそれほど複雑ではありません。CrowdStrike Falcon®プラットフォームは、複数のホストにわたるAPIセキュリティポスチャを評価し、サービスの設定を監視して、潜在的な脅威に備えるテストを支援します。CrowdStrike Threat Graph®では、クラウドスケールのAIがAPIイベントをリアルタイムで分析します。
エンドポイントとワークロードのテレメトリを実用的なセキュリティインサイトでエンリッチするFalconプラットフォームをお試しください。