APIセキュリティとは?

APIセキュリティとは、アプリケーションプログラミングインターフェイス(API)をサイバー攻撃から守ることです。Webアプリケーションと並んで、APIはデジタルトランスフォーメーションの原動力となるものですが、それが攻撃に対して非常に脆弱であることもまた事実です。SQLインジェクションからサーバーの設定ミスに至るまで、APIを危険にさらす可能性のあるサイバーセキュリティ脅威は世の中にあふれています。APIがハッキングされた場合、その結果として、コストのかかるデータ漏洩や生産性の大幅な低下が引き起こされる可能性があります。APIディスカバリーやAPIアビューズのようなAPIセキュリティ機能は、これらのリスクを軽減するとともに、ボット管理やWebアプリケーションファイアウォール(WAF)のようなその他のセキュリティメカニズムと連携することで、すべての動作環境を総合的に保護します。

APIセキュリティに関するその他のトピックとしては、下記のものがあります。

APIセキュリティソリューションは何を提供すべきか?

IT環境がより複雑になる中で、重要なコンポーネントを接続しクライアントアクセスを容易化するようなAPIをすべて保護することも、より複雑化しています。

今日のIT環境は、複数のクラウド、膨大な数のアプリケーション、そして複数のアプリケーションアーキテクチャにまたがっており、Kubernetesなどのオープンソースプラットフォームを取り入れることで、より多くのリモートワーカーにサービスを提供しています。その結果、十分なAPIセキュリティを確保することに関して、新たな課題が発生しています。このような文脈において、適切なAPIセキュリティソリューションとは、次のような機能を備えたクラウドベースのソリューションまたはオンプレミス型のソリューションであると考えられます。

  • モノリシックベースのAPIと、より新しいマイクロサービスベースのAPIの両方を保護する。
  • ボットネット対策およびボットネット防止により、APIの誤用や悪用を防ぐ。
  • WAFとの統合により、XSS攻撃やSQLインジェクションを阻止する。
  • APIの自動検出とインベントリ機能。
  • APIに関するポジティブなセキュリティモデル。
  • APIアビューズの検出を含む、APIセキュリティおよびパフォーマンスアナリティクス。
  • JSONベースやXMLベースの脅威およびバッファオーバーフローに対抗するためのAPIセキュリティ。
  • Volumetricおよびレイヤー4-7のDDoS対策。
  • セキュリティポリシーを中央に一元化した上で、高度な構成管理を実施する。
  • クラウド全体におけるセキュリティガバナンスに関する包括的な可視性を提供する統合管理ポータル。
  • アプリケーションが置かれている場所にかかわらず、アプリケーションに対して、極めて低遅延で一貫性のある保護を提供する。
  • DNSやBGPのリダイレクト機能を搭載した、アプリケーショントラフィック用のプロキシ。

これらの主要なAPI管理および保護機能を提供するために、モダンなAPIセキュリティプラットフォームは、AIや機械学習(ML)などのテクノロジーが持つパワーを活用することで、絶えず変化する脅威に対する継続的な適応を実現しています。また、ワールドワイドなレベルで、ソリューションにおける信頼できるパフォーマンスと冗長性をサポートするために、複数のPoP(Point of Presence)が導入される場合もあります。

APIセキュリティを向上させる理由とその方法

APIはその設計上初めから自動化されているため、APIには、自動化されたサイバー攻撃に対して独特の脆弱性があります。例としては、データ漏洩時に盗まれたクレデンシャルを大規模に悪用しようとする攻撃(クレデンシャルスタッフィング)などが挙げられます。DDoS攻撃はもちろんのこと、プログラム可能なボットを利用した攻撃も常に懸念されています。

この種の脅威は、運用環境やセキュリティ情報環境の複雑さと相まって、その巧妙さを増し続ける一方です。基本的に、企業はかつてないほど、次のようなテクノロジーに依存するようになっています。

  • 複数のクラウドに展開されたワークロード:これらのワークロードは、それぞれの環境に対応した異なるセキュリティツールのパッチワークを通じて保護されます。
  • 新しいアプリケーションアーキテクチャ:マイクロサービスベースのような新しいアプリケーションアーキテクチャは、厳格なAPIセキュリティに加えて、非常に効率的なAPIアクセスと通信を必要とします。
  • セルフサービス式のクラウド管理コンソール:これを利用するためには、従来型のアプリケーションおよびAPIのセキュリティソリューションとは異なるスキルが求められます。

WebアプリケーションやAPIのセキュリティに対する従来型のアプローチは、個々のデータセンターに設置されたスタンドアロンのWAFやDDoS対策が中心でしたが、今や、現実のAPI主導型のマルチクラウド環境にぴったりと合致するような、より新しい戦略が求められています。

具体的には、高度な脅威を食い止めるためのアクセス制御、権利認証、ユーザー認証を実施するだけでなく、マルチクラウド環境全体を通じて一貫したセキュリティ体制を支えるような、全体的な保護を確保する必要があります。今やAPIセキュリティソリューションは、次のような機能を備えた便利なクラウドベースのサービスを通じて、このようなレベルの包括的な階層型のサイバーセキュリティと、より合理化されたAPI管理を提供できるようになりました。

マルチクラウド環境における導入と設定の簡素化

APIセキュリティソリューションが提供するダッシュボードを利用すると、強固なアプリケーションおよびAPIセキュリティの設定、スケーリング、および維持が簡単に行えるようになるため、運用およびインフラストラクチャの複雑さを最小限に抑えることができます。また、クリティカルなAPIの脆弱性の保護を、すべてのセキュリティ管理とポリシー実施のための統一されたセルフサービスポータル(つまり、ポリシー制御のための1つの画面)を通じて実施できます。

あらゆる場所で、あらゆるAPIやアプリケーションを保護

APIセキュリティプラットフォームを使用すると、任意の接続されているアプリケーションとの間でやり取りされるトラフィックのスクリーニングが行えるようになります。これは、対象となるアプリケーションがホスティングされている環境(パブリッククラウド、プライベートクラウド、またはオンプレミス)や、同アプリケーションの持つアーキテクチャ(モノリシックベースまたはマイクロサービスベース)にかかわらず実行できます。このため、APIが進化した結果、その他のバックエンドサービスや新たに移行されたアプリケーションをサポートするようになったとしても、APIセキュリティプラットフォームは、APIが進化するペースに合わせて、すべてのサービスやアプリケーションに対して適切な保護を適用できます。

WAFの統合

APIセキュリティアーキテクチャに内蔵のWAFは、アプリケーションとAPIを最も高度な脅威からも守るように設計されています。シグネチャのスキャンは、既知の攻撃やAPIの脆弱性を特定するのに役立ちます。また、ポジティブセキュリティモデルを使うと、環境にとって基本的に必要となるサービスのみを許可することで、ゼロデイ脅威に対抗できるようになります。

多層型のDDoS対策

DDoS攻撃はさまざまな形態を取りますが、その中には正規のリクエストの振る舞いをするようなバリアントも含まれています。APIセキュリティには、レイヤー4~7のDDoS対策が組み込まれているため、Volumetric攻撃と、APIセキュリティの脆弱性を利用したより高度なレイヤー7攻撃の両方を阻止できます。大容量を備えた常時オン状態のグローバルなスクラビングネットワークは、DDoS攻撃の緩和をさらに支援するほか、クリーンなトラフィックのみが企業や組織のインフラストラクチャに渡されることを保証します。

ボット対策とボット管理

高度に自動化された特性により、悪意あるボットは、情報をスクレイピングすることや、ジャンクリクエストを通じてAPIを過負荷状態に陥らせることができます。ボットを抑制するために、APIセキュリティツールでは、シグネチャやデバイスのフィンガープリントを通じて、リアルタイムで緩和措置を実施できます。また、SIEMやコラボレーションプラットフォームとの統合により、ボットやその他のAPIセキュリティ脅威に関して、リアルタイムのダッシュボード画面を通じて詳細なレポートを作成できます。

Citrix ADCおよびCitrix ADMにおけるAPIセキュリティの強化

Citrix Web App and API Protectionは、包括的で統合された多層型のAPIセキュリティを提供します。また、Citrix ADCとCitrix ADMに投資することで、企業や組織は、カスタマイズ可能なパラメータを持つAPIゲートウェイのような機能を通じて、APIセキュリティをさらに強化できます。

  • Citrix ADCに内蔵のAPIゲートウェイは、API呼び出しのための単一エントリーポイントを提供します。APIゲートウェイは、レート制限、ユーザー認証/権利認証、コンテンツのルーティング、およびその他のタスクを実行することで、APIを介したバックエンドサービスへのセキュアで信頼できるアクセスを提供します。
  • Citrix ADMは、機械学習を活用することで、さまざまなサイバー攻撃を阻止します。これには、APIを経由した過剰なクライアント接続やアカウント乗っ取りの試みなどが含まれます。WAFの侵害やボット違反などの問題を追跡するために、Citrix ADMではアナリティクス機能が提供されています。
  • Citrix ADMに内蔵されているMLベースのアナリティクスプラットフォームのAPIセキュリティを使うと、Citrix ADCインスタンスに過剰なCPUやメモリの負荷をかけずに済みます。また、その検出機能は、アップグレードを行う必要なしに、完全にかつ継続的に利用可能となります。

全体として、効果的なAPIセキュリティを実現するには、複数のツールが協調して機能することが必要となります。Citrix API管理ソリューションは、お客様の保有する最も重要な資産を脅威から守ると同時に、従業員がどこからでも生産的な仕事を確実に行えるようにします。

関連資料

Kubernetesとは何をするものですか?

Kubernetesとは、マイクロサービスアーキテクチャの管理に使用されるソリューションであり、ほとんどのクラウド環境に導入できます。Google、AWS、Microsoft Azureなどの主要なパブリッククラウドプラットフォームはいずれもKubernetesをサポートしているため、IT部門はKubernetesを利用して、アプリケーションをより簡単にクラウドに移行できます。Kubernetesは、サービス検出と負荷分散、自動化された展開とロールバック、トラフィックやサーバー負荷に基づいた自動スケーリングなどの機能を備えており、開発チームに大きなメリットをもたらします。

Kubernetesは何のために使われますか?

コンテナ化されたアプリケーションは、従来型のサーバーからインフラストラクチャを抽象化する行為が進化した結果もたらされた最新のテクノロジーです。Gartner社は、2022年までに、グローバル企業の75%以上がコンテナ化されたアプリケーションを本番環境で実行することになるだろうと予測しています1。その理由として、企業や組織が、アプリケーションをより迅速に展開するためにDevOpsを採用する中で、コンテナ化が大きなメリットをもたらすことを認識したことが挙げられます。実際、コンテナ化は、クラウドネイティブアプリケーション開発を迅速化するために役立つほか、長期間稼働しているサービスを常時オンに維持するためや、新しいビルドを効率的に管理するためにも役立つことが知られています。

Kubernetesにおける「サービス」とは?

Kubernetesにおける「サービス」とは、機能的に類似したポッドをグループ化し、それらのポッド間で効果的に負荷分散を行うコンポーネントのことです。Kubernetesにおける「サービス」は、一連のポッドに対して1つの固定IPアドレスと1つのDNS名を維持することで、それらのポッドが作成された後、破棄された際に他のポッドが同じIPアドレスを使って接続できるようにします。Kubernetesのドキュメントによると、アプリケーションのバックエンドを構成するポッドは変化する可能性があるものの、フロントエンドはそれを追跡する必要はないとのことです。

KubernetesとDockerの比較

Dockerコンテナは、パッケージ化されたアプリケーションを配布するための効率的な手段の1つです。Kubernetesは、Dockerコンテナを調整し管理できるように設計されていますが、Docker Swarmとの競争にも直面しています。Docker Swarmは、ネイティブなクラスタリング機能を備えたシンプルなコンテナオーケストレーションエンジンです。Kubernetesの競合製品としては、Apache MesosやJenkinsなどが挙げられます。Jenkinsは、継続的なインテグレーションを実現するためのサーバーツールです。

Kubernetesにおける「ネットワーキング」とは?

「ネットワーキング」とは、Kubernetesクラスタを構成するノードやポッドの分散システムを運用する上で中心的な役割を果たす機能です。Kubernetesにおける「ネットワーキング」の本質的な特徴として、すべてのポッドが一意のIPを持つこと、そのIPがポッド内のすべてのコンテナにより共有されること、そしてポッドがどのノード上にあるかにかかわらず、他のすべてのポッドから当該IPへのルーティングが可能であることが挙げられます。特別に指定されたサンドボックスコンテナには、1つのネットワークネームスペースが割り当てられます。このネームスペースは、ポッド内のすべてのコンテナにより共有されるものであり、これにより、コンテナが破棄された場合でもポッドのIPが変化しないことを保証できます。ポッドごとに1つのIPを割り当てることで、クラスタ内のすべてのポッド間での通信が可能となるほか、2つのアプリケーションが同じポートを使わないことを保証できます。このような「ポッドごとに1つのIP」式のモデルは、仮想マシンモデルに類似しており、VMからコンテナへのアプリケーションの移植を容易にします。

Kubernetesにおける負荷分散

Kubernetesは、各ポッドがそれぞれ一意のIPアドレスを持つことを利用して、マイクロサービスポッド間における東西トラフィックの基本的な負荷分散をサポートしています。Kubernetesが提供する「kube-proxy」と呼ばれる機能は、そのデフォルトのiptablesモードにおいて、基本的なロードバランサーとして動作します。この場合、kube-proxyは、ルールベースのIP管理を適用し、ランダム(最小接続)選択またはラウンドロビン選択を使用することで、IPリスト上にある複数のポッド間でネットワークトラフィックを分散します。

KubernetesのIngress

kube-proxyは、レイヤー7の負荷分散や可観測性などの高度な機能を持たないため、Ingressの純正な負荷分散機能を提供できません。Ingressの純正な負荷分散機能とは、ユーザーがKubernetesクラスタへの外部アクセスを管理するためのトラフィックルーティング規則を設定するためのAPIオブジェクトのことです。なお、Ingressは、あくまで「初めの一歩」であることにご注意ください。Ingressはトラフィックルールと宛先を指定しますが、実際に外部サービスへのアクセスを許可するためには、Ingressコントローラーという追加コンポーネントが必要になります。

KubernetesのIngressコントローラー

KubernetesのIngressコントローラーは、インバウンドリクエストを管理し、具体的なテクノロジーと調和するようなルーティング仕様を提供します。オープンソースのIngressコントローラーは数多く提供されており、主要なクラウドプロバイダーはすべて、自社のロードバランサーと互換性があり他のクラウドサービスとネイティブに統合できるIngressコントローラーをサポートしています。一般的なユースケースでは、複数のIngressコントローラーがKubernetesクラスタ内で実行されます。そして、個々のリクエストに対応する際に、当該クラスタ内にあるIngressコントローラーが選択され展開されます。

Kubernetesに対応したCitrixソリューション

Citrix ADC

マイクロサービスへの移行を加速させている多くの企業にとって、Kubernetesは、より迅速な展開、クラウドポータビリティ、スケーラビリティと可用性の向上を可能にする最適なプラットフォームとなっています。シトリックスでは、お客様が広範な選択肢の中から合ったプラットフォームを選べるようにしています。この選択肢には、Kubernetesをはじめ、オープンソースのプラットフォームやツール、そしてお客様のペースでクラウドネイティブ環境に移行できるようにする柔軟なアプリケーションデリバリープラットフォームが含まれています。Citrix ADCを使うと、次のことが可能となります。

  • 集中的な再教育を必要とせずに、ITチームの既存のスキルを活用できます。
  • モノリシックベースのアプリケーションおよびマイクロサービスベースのアプリケーション全体を通じて、一貫したセキュリティポリシーによる包括的な保護を実現します。
  • 大規模環境でマイクロサービスに関する全体像を把握することにより、トラブルシューティングを迅速かつ容易に行えるようになります。

マイクロサービスやクラウドネイティブアプリケーションのユースケースを紹介するほか、同アプリケーションに対応したシトリックスのアプリケーションデリバリーソリューションについて詳しくご説明します。

関連資料

次のステップ