ブログ

API の仕組みとそれが潜在的なセキュリティ問題となる理由

フランク・キエイ・マヌ サムネイル
フランク・キエイ・マヌ
2022年10月25日公開

私たちの多くは、applicationプログラミング インターフェイス (API)という用語を聞いたことがあるかもしれませんがapplication開発者や技術職に就いていない限り、API が実際に何であるか (または何をするか) を完全に理解していない可能性があります。 確かにその意味は直感的ではありません。

API は、あるapplicationが別のアプリケーションの情報や機能にアクセスするためのチャネルを提供します。 ただし、追加のコンテキストが必要になる可能性があるので、基本的な類推から始めましょう。

APIの説明

交通事故に遭い、車を修理する必要があるとします。 評判の良い修理店を見つけて、サービス担当者と協力して必要な作業について話し合い、質問に答えてもらい、見積もりを取得し、予約を取ります。

整備士を雇ったり、部品を注文したり、必要な作業工具や機器を用意したり、診断テストを実行したりするのは、あなたの責任ではありません。 フロントガラスの交換、ボディの再塗装、またはホイールの再調整が必要な場合は、サービス担当者がそれらの外部サービスも手配します。

サービス担当者は、お客様とショップの間のインターフェイス、つまりお客様のサービス要求を処理するメッセンジャー兼通訳であると同時に、お客様が車の修理に関わる舞台裏の詳細や複雑な手順をすべて知る必要がないようにする存在と考えることができます。

サービス担当者はお客様に代わって、お客様のご要望を伺い、正確に通訳・翻訳し、ご要望を満たすために必要なすべてのサービスを手配し、最終的にお客様の車を正常な状態で返却することで対応します。

このシナリオで注意すべき重要な用語と概念は、メッセンジャーおよび通訳/翻訳者としてのインターフェース、要求応答プロセス、および修復方法の詳細から要求者であるユーザーを保護するという概念です。 これらの概念はすべて、API の動作の中心となります。

ここで、これらの概念のいくつかを、携帯電話の一般的な旅行アプリなど、毎日使用する一般的なapplicationに適用してみましょう。 このアプリは、フライト、ホテル、クルーズ、地上交通、ツアーなどに関する最新情報を提供する可能性があります。 このアプリを製作する会社が、このすべての情報を自社のデータベースに保存したり、社内にすべての専門知識を有したりしている可能性は低いです。 代わりに、このデータは、ホテル、航空会社、クルーズラインなどのパートナーベンダーが提供する API を使用してアプリ経由で配信されます。 API は修理工場のサービス担当者のようなもので、要求元の顧客 (この場合は旅行アプリ) に必要なものを提供し、不必要な複雑さを最小限に抑えます。

モダンアプリの構成要素

今日、API は最新のapplicationsの構成要素となっています。 また、このシリーズの前回のブログ「モダン アプリの構築と展開方法」で説明したように、コンテナーはモダンapplicationsにも不可欠であり、applicationを個別のコンポーネントに分割することで、開発と将来の更新の管理が容易になります。

API は、実質的にはこれらのコンテナ クラスターとそれらが共有するapplicationサービス間の通信チャネルです。 さらに、外部サーバーやデータベースとのデータ交換も容易になります。 (下図1参照)

欠点は、API によってデータが外部に公開される可能性があることです。 このため、組織の API は、データへのアクセスだけでなく、組織のインフラストラクチャ内の他の重要なシステムへの潜在的なエントリ ポイントとして、攻撃者にとって非常に魅力的になります。 適切な予防措置とセキュリティ管理が実施されていない場合、API は組織に重大なリスクをもたらす可能性があります。

図1: コンテナ クラスタとそれらが共有するapplicationサービスは API を介して通信します。

APIは攻撃対象領域を拡大する

API が現代のapplication開発の基盤となるにつれて、攻撃対象領域は拡大し続けます。 残念ながら、多くの組織では、アプリに接続する API の適切なインベントリを維持するのが遅れています。 また、新たな脆弱性を回避するために、API が定期的にメンテナンスおよび更新されるようにする必要もあります。

攻撃者は API の脆弱性を悪用してネットワークにアクセスし、個人を特定できる情報 (PII) や知的財産(IP) など、組織の最も機密性の高いデータを危険にさらす可能性があります。 これにより、企業のブランドと評判が損なわれ、収益が失われ、多額の罰金が発生する可能性があります。

API は、Web アプリケーションやモバイルapplicationsを標的とする攻撃と同じ種類の攻撃の多くに対して脆弱です。たとえば、次のような攻撃です。

  • 通常、一般ユーザーがユーザー名とパスワードを入力する場所に API プログラムに悪意のあるコードを挿入すること (インジェクションと呼ばれます)。
  • 処理できる以上のトラフィックで API をフラッディングし、通信先のアプリを対象ユーザーが利用できない状態にします。これは通常、分散型サービス拒否 (DDoS) 攻撃と呼ばれます。
  • 盗まれた資格情報を使用して API への不正アクセスを試みること。通常、これはクレデンシャル スタッフィングと呼ばれます。

潜在的なリスクを理解する

API は、最新のapplicationsを構築するための好ましい方法となっています。 外部ソースからapplicationに情報を取り込むという概念は新しいものではありませんが、アプリ開発手法は常に進化しており、革新へのプレッシャーもあるため、組織は API を適切に保護する前に公開することに伴う潜在的なリスクをまだ把握していない可能性があります。

幸いなことに、API のセキュリティ保護には大きな謎はありません。 ほとんどの組織では、インジェクション、DDoS の脅威、クレデンシャル スタッフィング、および API を標的とするその他の種類の攻撃など、よく知られている攻撃に対抗するための対策をすでに講じています。

下のビデオを見て、F5 が組織のデジタル エクスペリエンスを強化する API の保護をどのように支援しているかを確認してください。
 

サイバーセキュリティ啓発月間に関する 4 部構成のシリーズの他のブログ投稿もぜひご覧ください。 最新のアプリがどのように構築され、展開されるか悪意のある人物が攻撃でapplicationsを悪用する方法、そしてサイバー犯罪者がオンライン アカウントを乗っ取る方法