AIがAPIセキュリティをどのように改善するか

APIは、組織のデジタルトランスフォーメーションイニシアチブの最高峰となり、従業員、パートナー、顧客、その他の利害関係者がデジタルエコシステム全体のアプリケーション、データ、ビジネス機能にアクセスできるようになりました。したがって、ハッカーがこれらの重要な企業資産に対する攻撃の波を増やしているのも不思議ではありません。

残念ながら、問題は悪化するだけのようです。Gartnerは、「2022年までに、APIの悪用が最も頻繁な攻撃ベクトルになり、エンタープライズWebアプリケーションのデータ侵害につながる」と予測しています。

多くの企業は、認証、承認、スロットリングなどのメカニズムを提供するAPI管理ソリューションを実装することで対応しています。これらは、APIエコシステム全体でAPIにアクセスするユーザーとその頻度を制御するための必須機能です。ただし、組織は、内部および外部のAPI戦略を構築する際に、動的な人工知能(AI)主導のセキュリティを実装することにより、APIに対するより高度な攻撃の増加に対処する必要もあります。

この記事では、APIエコシステム全体のセキュリティ、整合性、および可用性を確保するために組織が組み込む必要のあるAPI管理およびセキュリティツールについて説明します。

ルールベースおよびポリシーベースのセキュリティ対策

静的または動的な方法で実行できるルールベースおよびポリシーベースのセキュリティチェックは、API管理ソリューションの必須部分です。APIゲートウェイはAPIアクセスのメインエントリポイントとして機能するため、通常、セキュリティ、レート制限、スロットリングなどに関連するポリシーとルールに対して着信リクエストを検査することでポリシーの適用を処理します。静的および動的なセキュリティチェックをいくつか見て、追加のセキュリティチェックを確認しましょう。彼らがもたらす価値。

静的セキュリティチェック

静的セキュリティチェックは、通常、事前定義されたルールまたはポリシーのセットに対してメッセージデータを検証するため、要求量や以前の要求データに依存しません。ゲートウェイではさまざまな静的セキュリティスキャンが実行され、SQLインジェクション、まとまりのある解析攻撃、エンティティ拡張攻撃、スキーマポイズニングなどがブロックされます。

一方、静的ポリシーチェックは、ペイロードスキャン、ヘッダーインスペクション、アクセスパターンなどに適用できます。たとえば、SQLインジェクションは、ペイロードを使用して実行される一般的なタイプの攻撃です。ユーザーがJSON(JavaScript Object Notation)ペイロードを送信すると、APIゲートウェイはこの特定のリクエストを事前定義されたJSONスキーマに対して検証できます。ゲートウェイは、メッセージ内の有害なデータやテキストパターンから保護するために、必要に応じてコンテンツ内の要素やその他の属性の数を制限することもできます。

動的セキュリティチェック

静的セキュリティスキャンとは対照的に、動的セキュリティチェックは常に時間とともに変化するものに対してチェックします。通常、これには、既存のデータを使用して行われた決定を使用して要求データを検証することが含まれます。動的チェックの例には、アクセストークンの検証、異常検出、スロットルなどがあります。これらの動的チェックは、ゲートウェイに送信されるデータ量に大きく依存します。これらの動的チェックがAPIゲートウェイの外部で行われることがあり、その後、決定がゲートウェイに伝達されます。いくつかの例を見てみましょう。

攻撃者がAPIにアクセスするときはいつでも、攻撃者が最初に行うことは可能な限り多くのデータを読み取ることであるため、スロットルとレート制限は攻撃の影響を減らすために重要です。APIリクエストを調整する(つまり、データへのアクセスを制限する)には、特定の時間枠内に着信リクエストの数を保持する必要があります。リクエスト数がその時点で割り当てられた量を超える場合、ゲートウェイはAPI呼び出しをブロックできます。レート制限を使用すると、特定のサービスに許可される同時アクセスを制限できます。

認証

認証は、APIゲートウェイがAPIを一意に呼び出す各ユーザーを識別するのに役立ちます。利用可能なAPIゲートウェイソリューションは、通常、基本認証、OAuth 2.0、JWT(JSON Web Token)セキュリティ、および証明書ベースのセキュリティをサポートしています。一部のゲートウェイは、その上に認証レイヤーを提供して、追加のきめ細かい権限検証を行います。これは通常、XACML(eXtensible Access Control Markup Language)スタイルのポリシー定義言語に基づいています。これは、APIに、リソースごとに異なるレベルのアクセス制御を必要とする複数のリソースが含まれている場合に重要です。

従来のAPIセキュリティの制限

認証、承認、レート制限、スロットリングに関するポリシーベースのアプローチは効果的なツールですが、それでもハッカーがAPIを悪用できる可能性があります。特に、APIゲートウェイは複数のWebサービスの前にあり、それらが管理するAPIは頻繁に多数のセッションでロードされます。ポリシーとプロセスを使用してこれらすべてのセッションを分析したとしても、追加の計算能力がなければ、ゲートウェイがすべての要求を検査することは困難です。

さらに、各APIには独自のアクセスパターンがあります。したがって、あるAPIの正当なアクセスパターンは、別のAPIの悪意のあるアクティビティを示している可能性があります。たとえば、誰かがオンラインショッピングアプリケーションを介して商品を購入する場合、購入する前に複数の検索を実行します。したがって、10〜20のリクエストを短時間で検索APIに送信する単一のユーザーは、検索APIの正当なアクセスパターンになる可能性があります。ただし、同じユーザーが購入APIに複数のリクエストを送信した場合、アクセスパターンは、ハッカーが盗まれたクレジットカードを使用して可能な限り撤退しようとするなど、悪意のあるアクティビティを示している可能性があります。したがって、正しい応答を決定するには、各APIアクセスパターンを個別に分析する必要があります。

さらに別の要因は、かなりの数の攻撃が内部で発生することです。ここでは、有効な資格情報とシステムへのアクセス権を持つユーザーが、それらのシステムを攻撃する能力を利用しています。ポリシーベースの認証および承認機能は、この種の攻撃を防ぐようには設計されていません。 

ここで説明する攻撃から保護するためにAPIゲートウェイにさらにルールとポリシーを適用できたとしても、APIゲートウェイの追加のオーバーヘッドは許容できません。企業は、APIゲートウェイの処理遅延を負担するように依頼することで、本物のユーザーを苛立たせる余裕はありません。代わりに、ゲートウェイは、ユーザーAPI呼び出しをブロックしたり遅くしたりせずに、有効な要求を処理する必要があります。

AIセキュリティレイヤーを追加する場合

ポリシーベースのAPI保護によって残された亀裂を埋めるために、最新のセキュリティチームは、動的な攻撃と各APIの固有の脆弱性を検出して対応できる人工知能ベースのAPIセキュリティを必要としています。AIモデルを適用してすべてのAPIアクティビティを継続的に検査およびレポートすることにより、企業は、従来の方法では見落とされていたAPIインフラストラクチャ全体の異常なAPIアクティビティと脅威を自動的に発見できます。

標準のセキュリティ対策で異常やリスクを検出できる場合でも、発見には数か月かかる場合があります。対照的に、ユーザーアクセスパターンに基づいて事前に構築されたモデルを使用すると、AI主導のセキュリティレイヤーにより、一部の攻撃をほぼリアルタイムで検出できます。

重要なことに、AIエンジンは通常、APIゲートウェイの外部で実行され、その決定をAPIゲートウェイに伝達します。APIゲートウェイはこれらのリクエストを処理するためにリソースを消費する必要がないため、AIセキュリティの追加は通常ランタイムパフォーマンスに影響を与えません。

ポリシーベースとAI主導のAPIセキュリティの統合

AIを利用したセキュリティをAPI管理の実装に追加する場合、セキュリティの実施ポイントと決定ポイントがあります。通常、これらのユニットは、必要な計算能力が高いため独立していますが、待ち時間が効率に影響を与えることは許されません。

APIゲートウェイは、APIリクエストをインターセプトし、さまざまなポリシーを適用します。これにリンクされているのはセキュリティ実施ポイントです。これは、決定ポイントへの各要求(API呼び出し)の属性を記述し、セキュリティ決定を要求してから、ゲートウェイでその決定を実施します。 AIを利用した決定ポイントは、各APIアクセスパターンの動作を継続的に学習し、異常な動作を検出し、リクエストのさまざまな属性にフラグを付けます。

学習期間中に、必要に応じてポリシーを決定ポイントに追加し、これらのポリシー(APIごとに異なる場合があります)を呼び出すオプションが必要です。公開する予定の各APIの潜在的な脆弱性を完全に理解したら、セキュリティチームがポリシーを定義する必要があります。ただし、外部ポリシーからのサポートがなくても、適応型のAIを活用した意思決定ポイントと施行ポイントのテクノロジーは、ポリシーでは検出できない複雑な攻撃の一部を最終的に学習して防止します。

2つの別個のセキュリティ実施ポイントおよび決定ポイントコンポーネントを持つことのもう1つの利点は、既存のAPI管理ソリューションと統合できることです。単純なユーザーインターフェイスの拡張とカスタマイズされた拡張機能により、セキュリティ施行ポイントをAPIパブリッシャーとゲートウェイに統合できます。 APIパブリッシャーは、UIから、公開されたAPIのAIセキュリティを有効にするかどうか、および必要な特別なポリシーを選択できます。拡張セキュリティ実施ポイントは、要求属性を決定ポイントに公開し、決定ポイントの応答に従ってAPIへのアクセスを制限します。

ただし、イベントをディシジョンポイントに公開し、その応答に基づいてアクセスを制限するには時間がかかり、ネットワークに大きく依存します。したがって、キャッシュメカニズムを使用して非同期で実装するのが最適です。これは精度に少し影響しますが、ゲートウェイの効率を考慮すると、AIセキュリティレイヤーを追加しても、全体的な遅延への影響は最小限に抑えられます。

AI主導のセキュリティレイヤーの課題

もちろん、メリットはコストなしでは得られません。AI主導のセキュリティレイヤーは追加レベルのAPI保護を提供しますが、セキュリティチームが対処する必要のあるいくつかの課題があります。

  • 追加のオーバーヘッド。追加のAIセキュリティレイヤーは、メッセージフローにいくらかのオーバーヘッドを追加します。したがって、メディエーションソリューションは、メインのメディエーションフローの外部で情報の収集と公開を処理するのに十分スマートである必要があります。
  • 誤検知。大量の誤検知は、セキュリティ専門家による追加のレビューが必要になります。ただし、一部の高度なAIアルゴリズムを使用すると、トリガーされる誤検知の数を減らすことができます。
  • 信頼の欠如。決定がどのように行われたかを理解していないと、人々は不快に感じます。ダッシュボードとアラートは、ユーザーが意思決定の背後にある要因を視覚化するのに役立ちます。たとえば、ユーザーが1分間に1,000回以上の異常な速度でシステムにアクセスするためにブロックされたことをアラートが明確に示している場合、ユーザーはシステムの決定を理解して信頼できます。
  • データの脆弱性。ほとんどのAIおよび機械学習ソリューションは、機密性が高く個人的な大量のデータに依存しています。その結果、これらのソリューションは、データ侵害や個人情報の盗難に遭いやすくなる可能性があります。欧州連合GDPR(一般データ保護規則)に準拠することは、このリスクを軽減するのに役立ちますが、完全に排除するわけではありません。
  • ラベル付きデータの制限。最も強力なAIシステムは、教師あり学習を通じてトレーニングされます。教師あり学習では、機械が理解できるように編成されたラベル付きデータが必要です。しかし、ラベル付けされたデータには限界があり、ますます困難になるアルゴリズムの将来の自動作成は問題を悪化させるだけです。
  • 障害のあるデータ。AIシステムの有効性は、トレーニングされたデータによって異なります。多くの場合、悪いデータは、民族、共同体、性別、または人種の偏見に関連しており、個々のユーザーに関する重要な決定に影響を与える可能性があります。

今日の企業におけるAPIの重要な役割を考えると、APIはますますハッカーや悪意のあるユーザーの標的になりつつあります。認証、承認、ペイロードスキャン、スキーマ検証、スロットリング、レート制限などのポリシーベースのメカニズムは、APIセキュリティ戦略を成功させるためのベースライン要件です。ただし、AIモデルを追加して、すべてのAPIアクティビティを継続的に検査およびレポートすることによってのみ、企業は、今日出現している最も高度なセキュリティ攻撃から保護されます。

Sanjeewa Malalgodaは、WSO2のソフトウェアアーキテクト兼エンジニアリングアソシエイトディレクターであり、WSO2 APIManagerの開発を主導しています。Lakshitha Gunasekaraは、WSO2 APIManagerチームのソフトウェアエンジニアです。 

New Tech Forumは、前例のない深さと幅で新しいエンタープライズテクノロジーを探索して議論する場を提供します。選択は主観的であり、読者にとって重要で最も興味深いと思われるテクノロジーの選択に基づいています。出版用のマーケティング資料を受け入れず、寄稿されたすべてのコンテンツを編集する権利を留保します。すべてのお問い合わせは[email protected]まで お送りください