ブログ | CTO オフィス

API エンドポイントを保護すると、API のセキュリティ保護が難しくなります

ロリ・マクヴィッティ サムネイル
ロリ・マクヴィッティ
2024年1月30日公開

API のセキュリティ (非セキュリティ)に関する統計は数多く存在します。 インターネットでざっと検索するだけで、あなたが好きなトピックに関するほぼあらゆる視点が見つかります。 言うまでもなく、(a) API 攻撃は増加しており、(b) それらの攻撃の一部は成功しています。 

また、組織内に潜むすべての API を見つけるのに苦労していることもよくあります。 それは、これらの API がコア、クラウド、エッジに分散しているからだけではありません。 それは、よく知られている Open API 仕様 (OAS) 以外に、API の定義はもちろん、API を見つける際に頼れる実際の「標準」が存在しないからです。 

だからといってそれらが必要だというわけではありません。 結局のところ、SOAP、WSDL、UDDI があり、人々はまだそれらを使い、データ形式として XML に依存していますが、世界のほとんどは REST、JSON、GraphQL、gRPC に移行しています。 

たとえ標準があったとしても、API のセキュリティを確保するのが難しいという事実は変わりません。 

これは、API という用語が包括的なものであるためです。 たとえば、OpenTelemetry API は、「OpenTelemetry の機能を開発者に提供しています」と簡単に言うことができます。 Open Telemetry API 全体をカバーできるセキュリティ ポリシーがあるわけではありません。それが理想的であり、物事がずっと簡単になります。 しかし、私たちが持っているのはそれではありません。 私たちが持っているのは、OpenTelemetry APIエンドポイントをカバーするセキュリティ ポリシーです。 

それを詳しく調べてみましょうか?

API とエンドポイント

現在、誰もが生成 AI に夢中になっているので、例として Open AI API を使用しましょう。 

最初に気付くのは、API は「1 つ」しかないにもかかわらず、エンドポイントが多数あるということです。 幾つか? その数は、新しい機能が導入されるたびに変わります。 

以下は(完全なリストではありません)です: 

  • https://api.openai.com/v1/chat/completions 
  • https://api.openai.com/v1/audio/speech 
  • https://api.openai.com/v1/audio/transcriptions 
  • https://api.openai.com/v1/audio/translations 
  • https://api.openai.com/v1/embeddings 
  • https://api.openai.com/v1/fine_tuning/jobs
  • https://api.openai.com/v1/files 

マルチモーダル生成 AI は、コンテンツ タイプのリストにメディア (オーディオとビデオ) を追加しますが、処理要求を処理するための新しいエンドポイントも追加します。 ツールの使用などの追加機能により、エンドポイントの数も増加する可能性があります。 私たちが期待するあらゆる進歩、あらゆる新機能により、通常は API に別のエンドポイントが追加されます。 

これらのエンドポイントには「v1」も記載されています。 つまり、v2 がリリースされると、これらのエンドポイントをカバーする別のセキュリティ ポリシー セットが必要になり、実際のエンドポイントの変更に応じてそれらのポリシーの一部を変更する必要が生じます。 

これは IT スタックにも存在し、デバイス API を介して自動化が実現されます。 エンドポイントの数は、環境によって大きく異なります。 管理対象のデバイスが増えるほど、管理および保護する必要があるエンドポイントの数も増えます。 ああ、2 つのデバイスが同じ API を使用することはないということも忘れないでください。それはおかしいですよね? まるで 2 つのクラウド プロバイダーが同じ API を使用することに同意したようなものです。これが、さまざまな運用タスクを自動化しない理由として「複雑さ」が最も多く挙げられる理由である理由でしょう。 ツールや API が多すぎると自動化が難しくなり、セキュリティの確保もさらに難しくなります。 

しかし、 API セキュリティでは、攻撃者が侵入する経路となるすべてのエンドポイントに対処する必要があります。 また、各エンドポイントには、ペイロードに JSON (または XML、GraphQL、<ここに形式を挿入> オブジェクト) として格納される異なるパラメータ セットが必要です。 各パラメータに含めることができる内容には制限が必要です。 英数字ですか? キャラクター? 値の範囲ですか? どれくらい長くなるでしょうか? 使用できない文字は何ですか? これらすべての情報は、コンテンツの外観を強制するポリシーに変換され、それによって攻撃が侵入するのを防ぎます。 

Open AI API 専用のポリシーを構築するには、ある程度の時間がかかります。 そして、それはたった 1 つの API です。当社の 2024 年の調査によると、ほとんどの組織は平均 442.8 個の API を保有しており、非常に大規模な組織ではその数は急増します。 エンドポイントの数、およびエンドポイントのバージョンの数を考えると、API セキュリティがなぜそれほど難しいのかがすぐに明らかになります。 

そして、なぜ攻撃者は彼らを標的にし続けるほど成功しているのか。