Akamai は Fermyon を買収し、WebAssembly Function as a Service(FaaS)と Akamai のグローバル分散プラットフォームを統合しました。 ニュースを読む

安全なAPIとは

アプリケーション・プログラミング・インターフェース(API)は、現代のアプリケーションアーキテクチャに不可欠です。APIは、アプリケーションが他のソフトウェア、サービス、プラットフォームと通信してデータを交換できるようにするルールとプロトコルを定義します。この機能により、開発者は既存のソフトウェアのデータや機能を活用してより強力なアプリケーションを構築できます。また、企業はITシステムを外部サービスやサードパーティプラットフォームと統合できます。

APIには大きな運用リスクもあります。組織がクラウド中心になり、デジタル化するにつれ、API資産の範囲、規模、複雑さが増大しています。API は、多くの場合、オンプレミスからハイブリッドクラウドまで、複数の環境に分散しています。事態をさらに複雑にしているのは、API エコシステムが組織のネットワークやクラウドを超えて広がっていることにあります。サードパーティーや開発者エコシステムに属するアプリ、サービス、システムとの無数の接続がAPIによって築かれていることを考えてみてください。

APIの範囲、規模、複雑さが増大しているため、次の点に関するリアルタイムの知見を得ることは困難です。

  • 多くの場合独自の開発者チームが存在するさまざまな事業部門のどこにAPIはがあるのか

  • APIの設定方法、ルーティング場所、適切な認証と認可の制御の有無

  • APIが呼び出されたときに機微な情報を返すかどうか、そのデータにアクセスできるのは誰か

問題をさらに困難にするのは、組織が蓄積するAPIの大部分が管理されておらず、目に見えず、多くの場合保護されていないということです。これには、休眠API、シャドウAPI、ゾンビAPIが含まれます。多くの場合、それらは一般的に使用されているツールの防御をすり抜けます。

企業のセキュリティチームは、APIだけでなく、APIがやり取りするアプリケーション、Webサービス、IT環境のセキュリティを確保するために、API攻撃、API侵害、API悪用から保護するためのテクノロジーとベストプラクティスを導入する必要があります。 

APIに対する主な脅威

APIに対する8つの主要な脅威を示す図

API に対する最も一般的な脅威は、いくつかのカテゴリーに分類されます。

  • 脆弱性の悪用:多くのAPIには脆弱性があり、攻撃者はそれを利用してAPIリクエストを送信し、望ましくないふるまいを引き起こすことができます。この脆弱性を悪用することで、攻撃者はAPIや関連アプリケーションに不正アクセスする可能性があります。一般的な例としては、クロスサイトリクエストフォージェリ(CSRF)などがあります。

  • インジェクション攻撃:SQLインジェクション、クロスサイトスクリプティング(XSS)、XMLインジェクション、スクリプティングなどの攻撃では、攻撃者が悪性コードをAPIリクエストに挿入します。サーバーによってコードが実行されると、APIは特定の不要なアクションや悪性のアクションを実行する可能性があります。

  • 認証の問題:認証とは、APIリクエストを受け入れて処理する前に、ユーザー、アプリケーション、またはデバイスが正当なクライアントかどうかを判断するプロセスです。組織の認証メカニズムが脆弱な場合、攻撃者は正当なユーザーの認証情報を取得したり、APIキーを盗んだり、認証トークンを傍受して使用したり、さまざまなパスワードや暗号化キーの組み合わせを総当たり攻撃で試したりする可能性があります。

  • 認可の問題:認可とは、クライアントに許可するAPIアクセスのレベルを決定するタスクです。認可が適切に管理されていない場合、API クライアントは、使用できないはずのデータにアクセスできる可能性があり、データ漏えいのリスクが高まります。一般的な例として、オブジェクトレベルの認可の不備(BOLA)と呼ばれる脅威があります。この場合、アクセス制御が不十分であるため、攻撃者はアクセスできるべきでないオブジェクトにアクセスしたり操作したりすることができます。

  • サービス妨害(DoS)攻撃または分散型サービス妨害(DDoS)攻撃:これらの攻撃は、処理できないほど多くのトラフィックでAPIを過負荷状態にし、APIのクラッシュや速度低下を引き起こします。その結果、サービスが正当なユーザーに対して拒否される可能性があります。

  • Machine-in-the-middle(MITM)攻撃:攻撃者が2つのシステム間のトラフィックや通信を傍受できると、APIキー、アクセストークン、ユーザー認証情報などの機微な情報を取得したり、当事者間で送信されるデータを操作したりできる可能性があります。

  • セキュリティ上の設定ミス:ITチームがAPIのセキュリティ設定を適切に設定しないと、攻撃者が不正アクセスを取得し、権限を昇格させ、IT環境を侵害できるようになる可能性があります。

  • データ漏えい:多くのAPIは、APIリクエストに応答するときに必要以上に多くの情報を漏えいさせるように操作される可能性があります。攻撃者はこの欠陥を悪用してデータを盗んだり、不正アクセスを取得したりできます。

APIのセキュリティ確保の必要性

現代のWebアプリケーションやアプリでAPIが果たす重要な役割を考えると、APIのセキュリティを確保するタスクは全体的なサイバーセキュリティにとって不可欠です。APIのセキュリティを適切に確保しないと、組織に重大な悪影響を及ぼす可能性があります。

  • 機微な情報の損失:攻撃者がAPIを使用してバックエンドシステムにアクセスすると、顧客の個人情報、ビジネスプラン、財務記録、知的財産などの機微な情報を盗むことができます。

  • 信頼の喪失:APIセキュリティの脅威 に屈した組織は、多くの場合、顧客やパートナーからの信頼を失い、ビジネス機会や収益に大きな影響が生じます。API攻撃を受けた後、セキュリティチームは、上級管理職や取締役など、社内の主要関係者からの信頼を失う可能性があります。 

  • コンプライアンス違反:機微な情報が盗まれたり、データ漏えいで公開されたりすると、規制の厳しい業界の組織には多額の罰金や法的な罰が科せられる可能性があります。多くの組織は、データセキュリティ規制への準拠方法を検討する際にAPIを考慮しますが、APIセキュリティとコンプライアンスのベストプラクティスを認識している組織ははるかに少ないです。

  • データ侵害とサイバー攻撃:多くのサイバー犯罪者は、API攻撃を使用してIT環境にアクセスし、大規模な悪性サイバー攻撃を仕掛けます。

  • サービスの中断:APIはアプリケーションとシステムを接続するために不可欠なため、APIに対する攻撃によってサービスやシステムが破損し、停止や生産性の大幅な低下が発生する可能性があります。

  • 金銭的損害:API攻撃は、攻撃者が金融口座から資金を吸い上げることを可能にするだけでなく、緩和プロセス、フォレンジック調査、生産性の低下、ビジネス機会の損失において組織にとって大きな損失をもたらします。

APIセキュリティの課題

APIのセキュリティを確保するために、ITチームはたくさんの重要な課題を克服する必要があります。

  • 複雑なAPIエコシステム:組織のAPIエコシステムは、数千ものAPI、多数のAPIエンドポイント、さまざまなタイプのリクエストが存在するため、通常は非常に複雑です。さらに、組織のデジタルフットプリントには、オープンソース API、サードパーティ API、シャドウAPIが含まれている場合があるため、すべての資産のインベントリを作成することは困難です。その結果、ITチームは強力なセキュリティ対策でAPIを保護するどころか、APIを100%可視化することさえできなくなる可能性があります。

  • 進化する脅威:攻撃者はAPIを悪用する新しい方法を絶えず開発しているため、常に警戒し、セキュリティ対策を更新する必要があります。

  • 相互接続性:APIはIT環境全体に組み込まれているため、ITチームはレイテンシー、パフォーマンスの低下、スケーラビリティの制限につながる可能性のあるセキュリティ対策を導入することに消極的です。

  • 無秩序な急増:多くの企業では、APIのセキュリティを確保し、開発を管理するための中心的なフレームワークがなく、多様なチームによってAPIが迅速に開発されています。

  • 配信のプレッシャー:現代のソフトウェア開発ライフサイクルは急速であるため、APIのセキュリティ確保の必要性と、新しいバージョンを迅速に本番環境に移行するというプレッシャーの間で葛藤が生じています。

API のセキュリティを確保するためのテクノロジー

ITチームは、複数のテクノロジーレイヤーを採用してAPIのセキュリティを適切に確保することができます。ここでは、APIを管理し、ベースラインとなる保護セットを提供するために組織が一般的に使用する従来のツールの例を4つ紹介します。

  • 認証および認可プロトコル:認証と認可は、APIセキュリティ に不可欠な要素です。OAuth 2.0、OpenID Connect、JSON Web Tokens(JWT)などのプロトコルは、ユーザーのアイデンティティを検証し、リソースへのアクセスを制御するのに役立ちます。これらのテクノロジーをロールベースのアクセス制御や属性ベースのアクセス制御と組み合わせて実装することで、APIのセキュリティ確保の取り組みを大幅に改善できます。

  • API 管理プラットフォーム:API管理プラットフォームプロバイダーは、組織がAPIを作成、公開、監視、分析、保護するための包括的なツールを提供します。このソリューションは、開発から廃止までのAPIライフサイクル全体を一元的に管理する方法を提供します。

  • API ゲートウェイ:APIゲートウェイは、すべてのAPIトラフィックの単一のエントリーポイントとして機能し、レート制限、スロットリング、APIリクエストの検証などのタスクを管理します。APIとゲートウェイはトラフィックとアクティビティの詳細なログを取得するため、リアルタイムの監視機能も提供できます。

  • Web アプリケーションファイアウォール(WAF):WAFは、HTTPリクエストのフィルタリングと監視によってAPIを保護します。WAFはクライアントとサーバーの間に配置され、Webアプリケーションとの間で送受信されるHTTP/HTTPSトラフィックを監視、フィルタリング、分析します。特に、アプリケーションレイヤーを標的とする攻撃を防御するのに役立ちます。

しかし、API攻撃は複雑で、頻繁に発生するため、多くの組織で使用されている従来のツールを超えたセキュリティレイヤーが必要となります。企業は、API探索、APIセキュリティ体制管理、ランタイム保護、APIセキュリティテストを提供する完全なAPIセキュリティソリューションを使用する必要があります。 

この包括的なアプローチは、API ライフサイクル全体で API を管理してセキュリティを確保する上で、API ゲートウェイや WAF といった組織の既存のツールを補完する重要な役割を果たします。

API 探索:ほとんどの組織では、API トラフィックの大部分が可視化されていません。多くの場合、API はすべて API ゲートウェイ経由でルーティングされると想定されているからです。しかし、必ずしもそうではありません。一般的な組織の API の多くは管理されていません(例えば、忘れられているが、依然として動作していて、機微な情報に接している休眠 API など)。インベントリが完全かつ正確なものでなければ、エンタープライズはさまざまなリスクにさらされてしまいます。必要なコア機能は次のとおりです。

  • 設定やタイプに関係なく、すべての API を検索してインベントリを作成する

  • 休眠 API、レガシー API、ゾンビ API を検知する

  • 忘れられているドメイン、見落とされているドメイン、またはその他の不明なシャドードメインを特定する

  • 盲点を解消し、潜在的な攻撃経路を明らかにする 

API ポスチャ管理:完全な API インベントリを導入した場合、API を通過するデータフローのタイプを把握し、規制要件への準拠に与える影響を理解することが重要になります。API 体制管理では、トラフィック、コード、設定が包括的に示され、組織の API セキュリティ体制を評価することができます。必要なコア機能:

  • インフラを自動的にスキャンして、設定ミスや隠れたリスクを把握する

  • カスタムワークフローを作成して、主要関係者に脆弱性を通知する

  • 機微な情報にアクセスできる API と内部ユーザーを特定する

  • 検知した問題に重大度のランクを付けて、修復の優先順位を設定する

API ランタイムセキュリティ:「データ侵害を想定する」という概念については周知のことでしょう。API 固有の侵入や攻撃は、必然の域に達していると言えます。本番環境で稼働しているすべての API において、攻撃をリアルタイムで検知してブロックできる必要があります。必要なコア機能:

  • データの改ざんや漏えい、ポリシー違反、不審なふるまい、API 攻撃を監視する

  • ネットワークの変更や面倒なエージェントのインストールを行うことなく、API トラフィックを分析する

  • 既存のワークフロー(チケット発行、SIEM など)と統合して、セキュリティ/運用チームに警告する

  • 攻撃や悪用をリアルタイムで阻止し、修復の一部または全部を自動化する 

API セキュリティテスト:API 開発チームは、1 秒でも早く作業するよう求められています。あらゆるアプリケーションの開発において、スピードは非常に重要です。しかし、急ぐあまり脆弱性や設計上の欠陥が発生しやすくなったり、検知されないまま進行してしまったりするものです。開発中の API は、本番環境にリリースする前にテストを実施しておくことで、リスクだけでなく、脆弱な API を修正するコストも大幅に軽減することができます。必要なコア機能:

  • さまざまな自動テストを実行して、悪性トラフィックをシミュレーションする

  • API を本番環境に展開する前に脆弱性を発見し、攻撃が成功するリスクを緩和する

  • 定められたガバナンスポリシーやルールに照らして、API の仕様を確認する

  • API に特化したセキュリティテストをオンデマンドで、または CI/CD パイプラインの一環として実行する

注:APIセキュリティソリューションに加えて、組織はWebアプリケーションおよび API 保護(WAAP)の機能を検討できます。WAAPは、複数の攻撃ベクトルからの脅威を迅速に特定して緩和するように設計されており、WAFの従来の保護を拡張します。WAFやWAAPと連携するAPIセキュリティソリューションは、ファイアウォールをさらに超えて保護を拡張し、可能な限り強力な防御を構築します。

APIのセキュリティを確保するための総合的なベストプラクティス

以下のAPIセキュリティのベストプラクティスは、組織がセキュリティリスクを緩和し、堅牢なWebアプリケーションセキュリティを確保するのに役立ちます。

  • 転送中のデータの暗号化:Transport Layer Security(TLS)プロトコルとSecure Sockets Layer(SSL)プロトコルを使用して、クライアントとAPIの間を移動するときにデータを暗号化し、APIコールが傍受されたり改ざんされたりしないようにします。

  • 入力の検証とサニタイズ(無害化):すべての入力が適切に検証およびサニタイズされるようにすることで、インジェクション攻撃を防ぎます。検証とは、有効なデータと見なされるものへの期待に沿った入力であることを確認するプロセスです。サニタイズとは、入力をクリーニングまたはフィルタリングして、悪性のコンテンツや有害なコンテンツを排除するプロセスです。

  • レート制限とスロットルの使用:APIリクエストの数を制御して、APIの悪用や過剰使用を回避し、リソースの過剰消費を防止し、潜在的なDoS攻撃やDDoS攻撃をブロックします。

  • APIアクティビティの監視とログ記録:APIコールの詳細なログを保存し、異常なアクティビティがないか監視します。セキュリティチームは、ログを分析することで、異常なトラフィックの急増や、セキュリティ脅威を示す可能性のあるログイン試行の失敗の繰り返しなど、疑わしいアクティビティや異常なパターンを明らかにできます。

  • 定期的なセキュリティテストの実施:定期的なセキュリティテストと監査を使用して、脆弱性を特定し、修正します。テストは、セキュリティチームの欠陥発見能力を最大限に高めるために、開発環境と本番環境で実行できます。

  • 最小権限アクセスの実装:ユーザーとサービスが、その機能を果たすために必要な最低レベルのアクセス権限のみを持つようにします。これにより、APIやITリソースへの不正アクセスを防止できます。

  • APIエンドポイントのセキュリティ確保:APIゲートウェイやWebアプリケーションファイアウォールの使用など、適切なセキュリティ対策でAPIエンドポイントを保護します。

  • 安全なAPI設計の実行:APIのセキュリティを確保する最も重要な方法の1つは、設計プロセスのできるだけ早い段階でセキュリティを導入することです。開発中に欠陥をテストして排除することで、開発チームはAPIが本番環境に移行した後に攻撃者によって脆弱性が悪用されるリスクを制限できます。

  • OWASP Top 10 の監視:Open Worldwide Application Security Project(OWASP)は、ソフトウェアのセキュリティ強化に重点を置く非営利団体です。OWASP API Security Top 10は、開発者やセキュリティ専門家が対処すべき最も重要なAPIセキュリティ問題のリストです。

  • ゼロトラストの原則の採用:ゼロトラストのセキュリティアプローチは、IT環境の内外のユーザー、デバイス、アプリケーションは本質的に信頼できないことを前提とします。ゼロトラスト のフレームワークでは、APIへのアクセスを要求するたびに継続的な認証と検証を要求することで、不正アクセスを防止し、組織の防御を突破した攻撃の被害を制限します。

  • APIキーの使用:APIキーは、Webサイトを使用する人ではなく、APIコールを行うアプリケーションやWebサイトを認証する一意の識別子です。APIキーは、不要なコール、不正アクセス、データ漏えいを防止するのに役立ちます。

FAQ

Simple Object Access Protocol(SOAP)とRepresentational State Transfer(REST)は異なるタイプのAPIです。SOAP APIは、メッセージングにXMLを使用する高度に構造化されたメッセージプロトコルであり、WS-Securityなどの標準が組み込まれているため、設計上安全性が高いです。REST APIはAPIに対するよりシンプルなアプローチを提供しますが、セキュリティ機能が組み込まれていません。データの送信、展開、インタラクションにセキュリティを追加する必要があります。

APIエンドポイントは、APIが他のシステムやアプリケーションとやり取りするための特定のパスです。各エンドポイントはAPI内の固有の機能またはリソースを表しており、不正アクセスや攻撃を防止するためには、これらのエンドポイントのセキュリティを確保することが不可欠です。

Akamai が選ばれる理由

Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。

Akamai の全セキュリティソリューションをご紹介