Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。
アプリケーション・プログラミング・インターフェース(API)は、現代のソフトウェアアプリケーションに不可欠なコンポーネントです。APIは、データベース、アプリケーション、プラットフォームが相互に通信し、情報を交換できるようにするため、デジタルエコシステムを適切に機能させるために不可欠です。また、膨大な量の機微な情報にアクセスしたり、送信したりすることもできます。これらの事実により、APIはサイバー犯罪者にとって非常に人気のある攻撃ベクトルとなっており、APIセキュリティの脅威の防止はCISOにとって優先度の高い課題となっています。
API とは何ですか?
APIは、アプリケーションが他のシステムと通信してデータを共有できるようにするルールとプロトコルを定義します。この相互接続性により、開発者は既存のアプリケーションの機能やサービスを活用するアプリケーションを構築できます。新しいアプリケーションを構築するたびに機能やサービスをゼロから再作成する必要はありません。その結果、APIはソフトウェア開発を加速し、イノベーション、コラボレーション、自動化を可能にします。
サイバー犯罪者がAPIを標的にする理由とは
APIの使用が爆発的に増加したことで、APIセキュリティの脅威はますます強力になっています。APIは重要な機能を実現することが多いため、ビジネスを中断させたい攻撃者にとって魅力的な標的となります。また、APIによってエンドポイントが公開される可能性があります。エンドポイントのセキュリティが適切に確保されていないと、アプリケーションのデータやサービス、またはより広範なIT環境にアクセスするために悪用される恐れがあります。さらに、APIは大量の個人情報(PII)、財務データ、その他の機微な情報を処理します。最新のアプリやマイクロサービスアーキテクチャにおけるAPIへの依存度の高まりにより、新たに広範なアタックサーフェスが生まれ、攻撃者がAPIコードの脆弱性を悪用する機会が増えています。
API セキュリティが重要である理由
APIセキュリティソリューションは、サイバー脅威や脆弱性からAPIを保護し、機密情報を保護し、APIが提供するデータやサービスの可用性を確保するのに役立ちます。APIセキュリティには、APIエンドポイントを保護するための認証、認可、検証、暗号化などの複数の保護レイヤーが含まれます。
さまざまなAPIセキュリティ脅威からの防御を成功させることで、組織は壊滅的な損害を与え得る攻撃を防ぎ、重要なサイバーセキュリティ目標を達成できます。
- 機微な情報の保護:APIは多くの場合、機微な情報を大量に処理します。優れたAPIセキュリティは、機微なユーザーデータやPIIを公開するセキュリティ侵害を回避し、攻撃者がアプリケーションやITシステムに不正にアクセスするのを防ぐために役立ちます。
- 信頼の維持:データ漏えいは、組織の評判を大きく損ない、信頼やビジネス機会の喪失を引き起こす可能性があります。安全なAPIは、データを保護し、サービスの信頼性を確保することで、ユーザー、顧客、パートナーの信頼を維持するのに役立ちます。
- コンプライアンスの確保:多くの業界は、機微な情報の保護を求める規制要件の対象となっています。安全なAPIは、組織がこれらの規制を遵守し、法的罰則や罰金を回避するのに役立ちます。
- サービスの中断の防止:サイバー犯罪者は多くの場合、サービス妨害(DoS)攻撃や、ユーザーや顧客に対するサービスの可用性に影響を与える可能性のあるその他の中断の一部としてAPIを標的にします。APIのセキュリティを確保することは、ビジネスの運営と生産性を維持するために不可欠です。
API に対するセキュリティ脅威の種類
APIセキュリティの脅威にはさまざまなタイプがあります。OWASP API Security Top 10は、Open Worldwide Application Security Projectが決定した最も危険なAPIセキュリティ脅威のリストです。これらの脅威やその他の脅威は、さまざまなAPIセキュリティの問題を悪用します。
認証および認可の問題
認証 とは、APIにアクセスしようとするユーザー、デバイス、またはアプリケーションが、本当にそれらが主張する人または物であることを確認するプロセスです。 認可 は、認証されたエンティティがAPIで何を実行できるかを決めます。攻撃者は、認証プロトコルの弱点を悪用したり認可チェックをバイパスしたりして、APIに不正アクセスする可能性があります。これはAPIの悪用またはビジネスロジックの悪用と呼ばれ、データ漏えい、不正なトランザクション、その他の悪性のアクティビティにつながる可能性があります。この領域におけるAPIセキュリティの脅威には、次のような種類があります。
認証の不備: 認証メカニズムが脆弱であるか、または誤って設定されていると、攻撃者が正当なユーザーになりすます可能性があります。
オブジェクトレベルの認可の不備: アクセス制御を適切に適用しないと、権限のないユーザーが機微な情報にアクセスしたり、機微な情報を変更したりする可能性があります。
オブジェクトプロパティレベルの認可の不備: この脅威には、オブジェクトの特定のプロパティへの不正アクセスが含まれます。
データ公開とデータ漏えい
このAPIセキュリティ脅威により、攻撃者はAPIが過剰なデータや不適切にマスキングされたデータを返すようにします。そうすることで、攻撃者はAPI応答を分析して機微な情報を抽出できます。この API セキュリティの脅威には次のようなものがあります。
- 過度なデータ公開:APIは必要以上に多くのデータを返す可能性があり、機微な情報が公開されるリスクが高まります。
- 不十分なデータマスキング:PIIなどの機微な情報を適切にマスキングしないと、データ漏えいにつながる可能性があります。
インジェクション攻撃
インジェクション攻撃では、攻撃者は悪性コードを含むAPIリクエストを作成し、APIが入力を処理する方法の脆弱性を悪用します。バックエンドシステムがコードを実行する際に、攻撃者は不正アクセスを取得したり、データを操作したり、その他の有害なアクションを実行したりする可能性があります。インジェクション攻撃には次のものが含まれます。
SQL インジェクション:悪性のSQLクエリーをAPIリクエストに挿入して、データベースを操作したり、データベースにアクセスしたりします。
コマンドインジェクション:悪性コードをAPIリクエストに挿入することで、サーバー上で任意のコマンドを実行します。
サービス妨害(DoS)
DoS攻撃や分散型サービス妨害( DDoS )攻撃は、短時間で大量のリクエストをAPIに送信し、APIの処理能力を過負荷状態にします。その結果、APIがクラッシュしたり速度が低下したりして、正当なユーザーが使用できなくなる可能性があります。
セキュリティ上の設定ミス
このカテゴリーのAPIセキュリティ脅威により、攻撃者はAPIとその環境の誤った設定や安全でない設定を悪用できます。ハッカーは、これらの設定ミスを悪用することで、不正アクセス、権限昇格、システム侵害を行う可能性があります。一般的な標的には、安全でないエンドポイント、公開されたデバッグ情報、パッチが適用されていないAPIの脆弱性などがあります。
安全でないデフォルト設定:この攻撃は、安全ではないデフォルト設定を悪用します。
不完全な設定:この攻撃は、セキュリティ設定を適切に設定していないことを利用します。
Machine-in-the-middle(MITM)攻撃
MITM攻撃では、ハッカーがクライアントとAPI間の通信を傍受して、機微な情報を盗んだり、データを操作したり、通信ストリームに悪性コードを挿入したりします。MITM攻撃は次のことを利用します。
暗号化の欠如:転送中のデータを暗号化していない場合、攻撃者がデータを簡単に傍受して読み取ることができます。
脆弱な暗号化:古い暗号化プロトコルや脆弱な暗号化プロトコルの使用。
認証情報の侵害
脅威アクターは、ソーシャルエンジニアリング手法を使用して正当な認証情報を取得し、特権APIキーにアクセスすることがよくあります。これにより、正当なユーザーまたは管理者になりすましてAPIにアクセスできるようになります。また、攻撃者は総当たり攻撃を使用して、有効な組み合わせが見つかるまでパスワードを繰り返し推測する場合もあります。
API の悪用
攻撃者は、意図しないふるまいや結果、または悪性のふるまいや結果を生み出す欠陥を悪用することで、APIを悪用する可能性があります。たとえば、サーバーサイドリクエストフォージェリ(SSRF)では、攻撃者がAPIを操作して内部システムに不正なリクエストを送信します。これにより、社内サービスへの不正アクセスやデータ漏えいが発生し、大規模でコストのかかるデータスクレイピング攻撃が発生する可能性があります。
API 保護の課題
APIセキュリティの脅威から組織を守るチームは、いくつかの課題を克服する必要があります。
可視性の欠如:APIは多くの場合、複数のサービス、サードパーティ統合、マイクロサービスを含む複雑なエコシステム内に存在します。これにオープンソースAPIとサードパーティAPIが加わると、セキュリティチームはセキュリティ確保だけでなく、デジタルフットプリント内のすべてのAPIを特定してインベントリを作成するのに苦労することがよくあります。
リアルタイム要件:APIは頻繁にリクエストをリアルタイムで処理する必要があるため、レイテンシーを引き起こす可能性のあるセキュリティ対策を実装することは困難です。
急速な普及とAPIスプロール:多くの組織では、APIは複数のチームによって急速に開発されており、多くの場合、APIを管理または保護するための中心的なフレームワークがありません。そのため、さまざまなプラットフォームで一貫したセキュリティを確保することは困難です。
迅速な開発サイクル:現代のソフトウェア開発の迅速な開発サイクルが原因で、セキュリティが見過ごされる可能性があります。継続的インテグレーションおよび継続的デリバリー(CI/CD)パイプラインには、脆弱性が適切に対処されるようにするための適切なセキュリティテストが含まれない場合があります。
APIセキュリティの脅威を緩和する方法
APIセキュリティの脅威を緩和するためには、複数のセキュリティ対策を採用することが賢明です。
強力な認証と認可:OAuthや多要素認証(MFA)などの強力な認証方法を使用すると、許可されたユーザーのみがAPIにアクセスできるようになります。機能レベルの認可と、オブジェクトレベルの認可の不備のチェックを実装することで、機微な情報への不正アクセスを防止できます。
リアルタイムトラフィック分析:正しいパラメーター内で動作しているAPIでも悪用される可能性があるため、APIトラフィックのふるまいを分析することは、APIを確実に保護するために不可欠です。トラフィック分析では、ある国から発生したAPIコールが1時間後に別の国から発生したなど、ベースラインの期待とは異なるAPIのふるまいの変化を調べます。
堅牢な API テスト:本番環境に導入する前にAPIの脆弱性を評価することは、問題が発生する前にAPIライフサイクルを保護する方法です。この手法により、開発者は、イノベーションをサポートするAPIのセキュリティを損なうことなく、最新のイノベーションに対応できます。
API ゲートウェイ:API ゲートウェイは、すべての API リクエストのエントリーポイントとして機能し、認証、レート制限、トラフィック管理、キャッシングなどのタスクを管理して DDoS 攻撃をリアルタイムで防止します。
レート制限およびスロットル:レート制限とスロットリングは、APIが特定の期間に処理できるリクエスト数を制限することで、DoS攻撃やDDoS攻撃を防止するのに役立ちます。これにより、トラフィックの多い状況でも正当なユーザーがAPIを利用できるようになります。
入力の検証:すべての入力データを検証することで、SQLインジェクションや過剰なデータ公開など、多くの一般的な攻撃を防止できます。予期される有効なデータのみがAPIによって処理されるようにすることで、セキュリティ脆弱性のリスクを軽減できます。
安全な通信の使用:Transport Layer Security(TLS)を使用して転送中のデータを暗号化し、機微な情報が攻撃者に傍受されるのを防ぐことができます。データの機密性と完全性を維持するためには、クライアントとAPI間のすべての通信が暗号化されることが不可欠です。
定期的な監査とAPIセキュリティテスト:定期的なセキュリティ監査とテストを実施することで、攻撃者に悪用される前に脆弱性を特定して対処できます。自動化されたセキュリティテストツールをCI/CDパイプラインに統合して、継続的なセキュリティ監視が行われるようにすることできます。
API管理ソリューションとAPIゲートウェイソリューション:API管理ソリューションやAPIゲートウェイソリューションを使用すると、APIセキュリティを一元的に制御できます。これらのツールは、セキュリティポリシーの適用、APIの使用状況の監視、潜在的なセキュリティ脅威の検知に役立ちます。
ゼロトラスト・アーキテクチャの導入:ゼロトラストのセキュリティモデルを採用することで、ユーザーやデバイスがどこにいてもデフォルトで信頼されることがなくなります。アイデンティティと権限を継続的に検証することで、認可されたユーザーのみがAPIにアクセスできるようになります。
Web アプリケーションファイアウォール(WAF)の使用:Webアプリケーションファイアウォールは、SQLインジェクションやクロスサイトスクリプティング(XSS)などの一般的なWebベースの攻撃からAPIを保護します。WAFは、悪性のリクエストをブロックし、追加のセキュリティレイヤーを提供するように設定できます。
API セキュリティのベストプラクティス
組織は、特定のAPIセキュリティソリューションを実装するだけでなく、次のベストプラクティスに従うことでAPIセキュリティを向上させることができます。
OWASPのガイドラインの遵守:Open Worldwide Application Security Project(OWASP)は、APIのセキュリティを確保するための包括的なガイドラインを提供します。OWASP API Security Top 10では、最も重要なAPIセキュリティリスクを取り上げ、その緩和策を提案しています。
APIエンドポイントのセキュリティ確保:すべてのAPIエンドポイントが認証と認可のチェックによって適切に保護されるようにすることで、不正アクセスを防止できます。適切なアクセス制御対策を実装し、エンドポイント設定を定期的にレビューすることで、セキュリティを強化できます。
JSON Web Token(JWT)の使用:JSON Web Tokenを使用して安全なデータ交換を行うことで、APIリクエストの認証と認可を確実に行うことができます。JWTは、当事者間で情報を安全に送信する方法を提供し、APIリクエストの完全性と真正性を検証するために使用できます。
APIのふるまいの監視:APIのふるまいを監視することで、セキュリティ脅威である可能性のある異常なアクティビティや疑わしいアクティビティを検知できます。ロギングソリューションや監視ソリューションを実装することで、APIトラフィックを可視化し、潜在的なセキュリティインシデントを特定できます。
開発者の教育:APIセキュリティのベストプラクティスについて開発者を教育し、APIテストを使用してAPI開発プロセスにセキュリティを組み込むことで、セキュリティの脆弱性を防止できます。安全なコーディング手法に関するトレーニングとリソースを提供することで、APIの全体的なセキュリティを強化できます。
セキュリティ対策の自動化:自動化により、APIライフサイクル全体でセキュリティ対策を一貫して適用できます。セキュリティテスト、監視、セキュリティポリシーの適用に自動化されたツールを使用して、人的ミスの可能性を低減できます。
API キーの保護:適切にセキュリティが確保されていない場合、APIリクエストを認証する識別子であるAPIキーが公開される可能性があります。MFAを使用し、APIキーを安全に保存することで、不正アクセスから保護できます。
ボットの緩和:悪性ボットは、APIを悪用して、Credential Stuffingや機微な情報のスクレイピングなどの自動化されたサイバー攻撃を実行する可能性があります。ボット緩和戦略を実装し、APIトラフィックを監視することで、このようなアクティビティを検知して防止できます。
よくある質問(FAQ)
狭義では、APIセキュリティは不正アクセスを防止し、データを暗号化してセキュリティを確保し、一般的な脆弱性を修正するためにAPIを保護することに重点を置きます。アプリケーションセキュリティはより広い範囲をカバーし、コード、インフラ、ユーザーデータなど、アプリケーション全体のセキュリティを確保することに重点を置きます。
APIエンドポイントは、アプリケーションが別のサービスにアクセスしてデータを取得したりアクションを実行したりできる特定のアドレスまたはURLです。