* プロモーションの引き換えに関する規則と条件をご覧ください
このAPIセキュリティチェックリストは、APIセキュリティのベストプラクティスをまとめただけのものではなく、APIのライフサイクルに基づいています。具体的には、最初に計画を立て、開発とテストを経た後、運用と保護で完結するという流れになっています。いわばAPIのためのセキュアなソフトウェア開発ライフサイクル(SDLC)の管理プロセスを構築するためのガイドです。
さまざまな組織でクラウド中心のデジタル化が進むにつれ、組織内のAPI(アプリケーション・プログラミング・インターフェース)の範囲と規模が拡大し、価値が増大しています。現在のAPIは次のような状況です。
- 顧客やパートナーに提供するアプリケーションやサービス(最新のAIイノベーションを含む)の中心で使用されている
- 開発者が使用するサービスからエンジニアがリフト&シフトするワークロードまで、クラウド環境全体に組み込まれている
- 収益源として、ビジネスの成長と開発者エコシステムの構築を支援している
しかし、ITやセキュリティ専門家の84% と同様に、APIのセキュリティインシデントを経験したことがある場合は、APIのリスクが増大していることを肌で感じているはずです。公開されたAPIや誤設定のAPIが蔓延し、保護されていないため、侵害されやすくなっています。しかも、APIに含まれる指示には、そのAPIにアクセスして背後にあるデータを取得する方法が書かれています。これこそがハッカーの狙いです。隠してセキュリティを確保することはできません。そのうえ、APIは組織内のさまざまなグループをほぼ常に結びつける役割を果たします。これらのグループがセキュリティを統一したいと思っても、そう簡単には実現できない場合があります。さらに、いわゆる「野放し状態」にあるAPIが多いと、セキュリティの確保がますます困難になります。多くの組織が、すべてのAPIを把握することなく、未管理のまま放置しています。こうした休眠API(ゾンビAPI)は、主な攻撃ベクトルとなります。
APIセキュリティのリスクは非常に高いです。APIに対する攻撃は、企業の収益や回復力、規制の遵守を損なう可能性があります。ほとんどの組織は、API攻撃を防止するための適切な制御や機能をまだ導入していません。確かに、多くの企業がAPIゲートウェイやWebアプリケーションファイアウォールなどのAPIツールを既存のスタックに組み込んでいます。しかし、これらのツールである程度の保護は実現できるものの、最新のAPI攻撃を防御できるだけの可視性、リアルタイムのセキュリティ、継続的なテストを提供するようには設計されていません。
以上のような理由を踏まえ、AkamaiはAPIセキュリティ確保のためのより厳格かつ体系的なアプローチとして、このAPIセキュリティチェックリストを作成しました。ライフサイクルの各段階で推奨される4つの制御により、APIの堅牢なセキュリティポスチャを実現できます。こうしたセキュアなSDLC管理プロセスの各段階は、次の表のようにまとめられます。
計画 |
|
開発 |
|
テスト |
|
運用 |
|
保護 |
|
計画
APIセキュリティの確保は、コードを書く前から始まっています。計画を立てる段階では、役割、責任、ポリシーなどのガバナンスの問題について徹底的に考えることが重要です。また、計画の策定はセキュリティ指標やライフサイクル管理のプロセスを判断するのに最適な場面でもあります。
APIの計画に関するセキュリティチェックリストは以下のとおりです。
- ガバナンス、役割、責任:API資産のセキュリティ確保に関する役割や責任を明確に規定していますか?これは開発者やセキュリティエンジニアにとっての現場レベルの責任だけでなく、リスクに関する意思決定とポリシーの監視に対処する管理監督責任も含みます。
- ポリシー、標準、仕様:APIのセキュアな設計、開発、テスト、運用に必要な最低限の要求事項を規定したポリシーや標準、API仕様のライブラリを策定していますか?
- セキュリティ指標:APIにまつわるリスクの測定と管理ができるように、APIセキュリティに関する一連のリスク指標を規定していますか?こうしたAPIリスク指標を関係者がフィードバックループとして使うことで、APIセキュリティのリスク管理を継続的に改善できます。
- ライフサイクル管理:有効なライフサイクル全体を通じ、所有権を規定したソフトウェア資産としてAPIを管理していますか?特に初期展開や継続的な変更管理、資産の廃棄に重点を置くのが効果的な方針です。
開発
開発の段階では、計画段階で策定したポリシーを実践します。開発者は、他の関係者たちと協力して、セキュアなAPIを作る責任を負います。
APIの開発に関するセキュリティチェックリストは以下のとおりです。
- トレーニング:API開発者やAPI管理の責任(ゲートウェイ、セキュリティ運用など)を担うその他の人員に対し、それぞれの役割に応じたAPIセキュリティの分野に関するトレーニングを実施していますか?
- 開発環境(IDE、リポジトリなど):正しく承認および管理されたソースコードのリポジトリでAPIのソースコードの開発や管理を行っていますか?開発者は正しく管理または承認された開発環境を利用していますか?
- 文書化:APIが各種仕様や標準に準拠しているかどうかを正しく文書化し、評価していますか?APIのスキーマが変更になったときにAPIドキュメントを更新していますか?そのドキュメントは第三者によるレビューやテスト/検証で利用できますか?
- 不具合の特定と解消:セキュリティに関するコードの不具合や脆弱性に注目し、それを特定して解消していますか?
テスト
開発したAPIは徹底的なテストのサイクルを経る必要があります。アプリケーションセキュリティのテストに使うチェックリストと同様に、以下ではAPIのテストプログラムに実装するセキュリティ制御について説明します。
APIのテストに関するセキュリティチェックリストは以下のとおりです。
- ソースコードのテスト:APIのソースコードを本番環境に展開する前に、静的アプリケーション・セキュリティ・テスト(SAST)や動的アプリケーション・セキュリティ・テスト(DAST)を実施していますか?
- 侵入テスト:本番環境への移行前に、本番環境のAPI管理、ネットワーク、ポリシー変数を可能な限り再現した状態で、APIエンドポイントの侵入テストを実施していますか?
- コンプライアンスレビュー:本番環境への移行前に、APIが各種標準や仕様に準拠しているか(GDPR、PCIコンプライアンスなど)を評価していますか?このプロセスには、アーキテクチャやネットワークの配置と設定(WAFの保護、ネットワークの配置など)の遵守が含まれる必要があります。
- 変更管理とリリース管理:ソフトウェアやITの変更ポリシーを明確に規定し、それに従ってAPIの実装や変更を行っていますか?変更の内容は、ソフトウェア資産のインベントリに正しく反映されているのが理想です。
開発とテストの段階におけるAPIのセキュリティ対策
認証およびアクセス制御:OAuthやAPIキーなどの堅牢な認証メカニズムを実装し、開発中やテスト中のAPIエンドポイントのセキュリティを確保します。アクセス制御ポリシーを確実に適用することで、機微な情報への不正アクセスを防止します。
レート制限:テストの段階では、悪用や想定されるDDoS攻撃からAPIを保護するためにレート制限を実施します。レート制限は、システムを過負荷状態にしてサービス妨害を招く可能性のある過剰なリクエストを防ぐ効果があります。
SQLインジェクションと検証:SQLインジェクションなどの一般的なAPI攻撃を想定したテストを行います。悪性の入力によるAPIの侵害を防げるよう、厳密な入力検証を実施します。APIを通じて渡されるデータのサニタイズ(無害化)と検証が確実に行われるようにすることで、インジェクション攻撃から保護します。
運用
APIが本番環境に移行した後も、APIセキュリティを有効な状態に維持する必要があります。実はこの段階になると、APIを見失い、脆弱性を招く危険性が大きくなります。
APIの運用に関するセキュリティチェックリストは以下のとおりです。
- APIのインベントリ:APIドキュメントを含め、すべてのAPIエンドポイントのインベントリを正確かつ最新の状態に維持していますか?
- 機微な情報のインベントリ:APIエンドポイントで処理される機微な情報のインベントリやマッピングを正確かつ最新の状態に維持していますか?さらに、どのユーザーが機微な情報にアクセスしているかを把握していますか?アクセス管理は、セキュリティとコンプライアンスの両面で不可欠な要素となります。
- 脆弱性の特定:本番環境の脆弱性やAPIのリスクが露出する部分を把握していますか?
- 設定管理:APIトラフィックを仲介し、保護するネットワーク、ゲートウェイ、ファイアウォールの要素の脆弱性や露出を把握していますか?
保護
APIの保護は、APIのライフサイクル全体を通じて維持する必要があります。このワークロードには、ログやトラフィックの収集、脅威の検知、アラートなどが含まれます。
APIの保護に関するチェックリストは以下のとおりです。
- ログやトラフィックの収集:運用やセキュリティの検査の参考となるよう、APIのアクティビティを記録し、データを保管していますか?
- 脅威の検知とアラート:異常なアクティビティを検知するために、APIのアクティビティを分析していますか?このプロセスには、該当するセキュリティチームや運用チームへの異常なイベントや悪用のイベントの通知ないし報告を含む必要があります。
- 機微な情報の移動:APIのトラフィックに含まれる機微な情報の移動を監視していますか?このプロセスには、不正な使用や異常な使用の検知を目的としたデータストリームの分析に加え、該当するセキュリティチームや運用チームに対する機微な情報の移動の通知ないし報告を含む必要があります。
- ブロックと修復:APIを介して機微な情報の不正な移動が生じた場合や、それ以外にAPIの悪用が疑われる場合に、それをブロックして修復していますか?
サイバーセキュリティの脅威からAPIを保護する
今日の脅威状況では、API探索、ポスチャ管理、ランタイム保護、APIセキュリティテストを提供する完全なAPIセキュリティソリューションが求められています。
1. API探索:多くの企業が自社のAPIを完全には把握していないのは、珍しいことではありません。ほとんどの組織では、APIトラフィックの大部分が可視化されていません。多くの場合、APIはすべてAPIゲートウェイ経由でルーティングされると想定されているからです。しかし、必ずしもそうではありません。インベントリが完全かつ正確なものでなければ、エンタープライズはさまざまなリスクにさらされてしまいます。必要なコア機能:
- 設定やタイプに関係なく、すべてのAPIを検索してインベントリを作成する
- 休眠API、レガシーAPI、ゾンビAPIを検知する
- 忘れられているドメイン、見落とされているドメイン、またはその他の不明なシャドードメインを特定する
- 盲点を解消し、潜在的な攻撃経路を明らかにする
2.APIポスチャ管理:完全なAPIインベントリを導入した場合、APIを通過するデータフローのタイプを把握し、規制要件への準拠に与える影響を理解することが重要になります。APIポスチャ管理では、トラフィック、コード、設定が包括的に示され、組織のAPIセキュリティ体制を評価することができます。必要なコア機能:
- インフラを自動的にスキャンして、設定ミスや隠れたリスクを把握する
- カスタムワークフローを作成して、主要関係者に脆弱性を通知する
- 機微な情報にアクセスできるAPIと内部ユーザーを特定する
- 検知した問題に重大度のランクを付けて、修復の優先順位を設定する
3. APIランタイムセキュリティ:「データ侵害を想定する」という概念については周知のことでしょう。API固有の侵害や攻撃は、必然の域に達していると言えます。本番環境で稼働しているすべてのAPIにおいて、攻撃をリアルタイムで検知してブロックできる必要があります。必要なコア機能:
- データの改ざんや漏えい、ポリシー違反、不審なふるまい、API攻撃を監視する
- ネットワークの変更や面倒なエージェントのインストールを行うことなく、APIトラフィックを分析する
- 既存のワークフロー(チケット発行、SIEMなど)と統合して、セキュリティ/運用チームに警告する
- 攻撃や悪用をリアルタイムで阻止し、修復の一部または全部を自動化する
4. APIセキュリティテスト:API開発チームは、1秒でも早く作業するよう求められています。あらゆるアプリケーションの開発において、スピードは非常に重要です。しかし、急ぐあまり脆弱性や設計上の欠陥が発生しやすくなったり、検知されないまま進行してしまったりするものです。開発中のAPIは、本番環境にリリースする前にテストを実施しておくことで、リスクだけでなく、脆弱なAPIを修正するコストも大幅に軽減することができます。必要なコア機能:
- さまざまな自動テストを実行して、悪性トラフィックをシミュレーションする
- APIを本番環境に展開する前に脆弱性を発見し、攻撃が成功するリスクを緩和する
- 定められたガバナンスポリシーやルールに照らして、APIの仕様を確認する
- APIに特化したセキュリティテストをオンデマンドで、またはCI/CDパイプラインの一環として実行する
こうした包括的なアプローチは、以下のような企業の既存のAPI保護機能を補完するものとして機能します。
- 脅威検知およびDDoS防止:サイバーセキュリティツールを活用して、想定されるAPI攻撃をリアルタイムで検知します。レート制限や負荷分散といったDDoS攻撃を防ぐための戦略を導入し、APIエンドポイントの可用性とセキュリティを維持します。
- ブロックと修復:自動化されたブロックと修復の対策を導入し、不正アクセスの試みや機微な情報の露出から保護します。WAF、認証、アクセス制御のポリシーを組み合わせて、APIゲートウェイレベルでのセキュリティを確保します。
以上のような制御が推奨されます。考慮すべき項目がいくつもあるため、実際はどの組織でもこれらすべてを十分にカバーできているわけではありません。しかし、このチェックリストは効果的な運用を確立し、APIセキュリティの改善が必要な部分を明らかにするうえで効果的な手段となります。APIセキュリティを適切に運用するための有効なベースラインとなるのです。
よくある質問(FAQ)
レート制限は、DDoS攻撃を阻止し、APIエンドポイントが過剰なリクエストによって過負荷状態になるのを防ぐために不可欠です。レート制限によって、ユーザーやクライアントが一定の時間内に実行できるリクエストの回数を制限することで、過負荷の状態でもAPIの可用性と応答性を維持しやすくなります。
OAuthは一般に広く使われている認証プロトコルであり、ユーザーが認証情報を共有することなく自分のデータへのアクセスを許可できるようにすることで、APIへのセキュアなアクセスを可能にします。OAuthを導入すると、承認されたユーザーやアプリケーションだけがAPIエンドポイントにアクセスできるよう促すことになり、不正アクセスやデータ漏えいのリスクを軽減できます。
入力検証は、SQLインジェクションなどの一般的なAPI攻撃の防止につながる重要なセキュリティ対策です。ユーザーや他のAPIから受け取ったデータを検証し、サニタイズ(無害化)することで、悪性の入力によるアプリケーションの侵害を防ぎ、機微な情報の保護とAPIの完全性の維持を可能にします。
Webアプリケーションファイアウォール(WAF)は、HTTPリクエストのフィルタリングと監視を通じて、APIの保護レイヤーを追加します。WAFは悪性のトラフィックを防ぎ、SQLインジェクションやクロスサイトスクリプティング(XSS)などの一般的な脅威から保護するとともに、APIゲートウェイレベルでアクセス制御ポリシーを適用することで、さまざまなサイバーセキュリティの脅威からAPIを保護します。
Akamai が選ばれる理由
Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。