高度なセキュリティによるAPIの強化

NGINX | 2021年8月09日

テクノロジー関連のニュースを追っていると、「今日もまたセキュリティ侵害か」と感じることがよくあります。しかし近年、APIを狙った攻撃による侵害が増えています。運動中だからといって安心はできません。最近、あるセキュリティ研究者が、フィットネスバイクベンダーのPelotonが提供するAPIについて、認証されていないリクエストに対してユーザーアカウントの非公開データを返していたことを発見しました。

F5の「2021年版アプリケーション戦略の現状」レポートでは、回答者の58%が、アプリケーションをモダナイズするためにAPIレイヤーを構築していると回答しています。DevOps、クラウド、マイクロサービスの普及に伴い、アプリケーションとその基盤となるAPIは、以下を含むさまざまな分散環境でサポートする必要があります。

  • オンプレミス、クラウド、ハイブリッド環境
  • 開発、テスト、ステージング、サンドボックス、本番環境
  • 内部API:開発者間のコラボレーションを促進し、データサイロを解消
  • お客さま、パートナー、サードパーティの開発者に公開される外部API

APIゲートウェイは、リクエストのルーティング、APIクライアントの認証と認可、レート制限の適用によってAPIトラフィックを仲介し、APIベースのサービスを過負荷から保護します。多くのNGINXユーザーは、前述のような分散環境全体にAPIゲートウェイを導入して成果を上げていますが、その一方で、APIが新たな攻撃経路となる状況にも直面しています。F5の「2021 Application Protection Report」によると、APIインシデントの約3分の2は、APIが完全に公開され、認証や認可の仕組みが一切なかったことが原因で発生しています。

The NGINX Controller API Management Moduleは、APIを保護するためのさまざまなメカニズムを提供します。主なものは次のとおりです。

  • レート制限 – レート制限ポリシーでは、一定期間内にAPIゲートウェイが各APIクライアントから受け付けるリクエスト数に上限を設定することで、APIへの過剰な負荷を防ぎ、DDoS攻撃を緩和します。これは、リソース不足とレート制限の不備(API4)の脆弱性への対処に役立ちます。この脆弱性は、OWASP API Security Top 10 2019に挙げられています。
  • 認証と認可 – 認証と認可のメカニズムにより、適切なアクセス権限を持つクライアントのみがAPIを利用できるようにします。そのようなメカニズムの1つが、JSON Web Token(JWT)内の「クレーム」です。これは、OWASP API Security Top 10 2019に挙げられている3つの脆弱性への対処に役立ちます。オブジェクトレベルの認可の不備(API1)、ユーザー認証の不備(API2)、および機能レベルの認可の不備(API5)です。

API管理向けNGINX Controller App Security Add‑Onのご紹介

NGINX Controller API Management Module向けのNGINX Controller App Securityアドオンにより、APIセキュリティをさらに強化できるようになりました。

あらゆる環境に対応する分散型APIセキュリティ

Controller App Securityを使用すると、Webアプリケーションファイアウォール(WAF)を導入し、マルチクラウドの分散環境全体でAPIを保護できます。このアドオンにより、パブリッククラウド、プライベートクラウド、ベアメタル、VM、コンテナなど、あらゆる場所に導入されたNGINX APIゲートウェイへ強固なセキュリティをシームレスに統合できます。

NGINXの「コアバリュー」に忠実なController App Securityは、軽量でプラットフォームに依存せず、高いパフォーマンスを発揮します。高いパフォーマンスをどのように実現しているのでしょうか。WAFをNGINX APIゲートウェイと同じ場所に配置することで、APIトラフィックのホップ数を1つ減らし、レイテンシと複雑さの両方を低減しています。これは、WAFと統合されていない一般的なAPI管理ソリューションとは大きく異なります。一般的なソリューションではWAFを別途導入する必要があり、導入後のAPIトラフィックはWAFとAPIゲートウェイを個別に通過しなければなりません。Controller App Securityは緊密な統合により、セキュリティを損なうことなく高いパフォーマンスを実現します。

F5の実績あるセキュリティ専門知識を基盤とするController App Securityは、OWASP API Security Top 10の脆弱性に加え、SQLインジェクションやリモートコマンド実行(RCE)などの一般的な脆弱性に対する保護機能を標準で提供します。このアドオンは、不正な形式のCookie、JSON、XMLをチェックするほか、許可されたファイル形式とレスポンスステータスコードも検証します。また、HTTP RFCへの準拠を確保し、攻撃を隠蔽するために使用される回避手法を検出します。

可視性と分析機能の強化

Controller App Securityは、さまざまな攻撃タイプに関する各種メトリクスとインサイトを提供します。これには、上位のWAF脅威と標的となったAPI、誤検知の調査に使用する上位シグネチャ、WAFの処理結果に関する統計、WAF違反イベントが含まれます。このレベルの可視性は、OWASP API Security Top 10 2019の脆弱性(API10)である「不十分なロギングとモニタリング」への対処に役立ちます。

以下のスクリーンショットは、追跡可能なメトリクスの一部を示しています。

  • 過去3時間に発生した特定の違反タイプの件数を、前日の同じ時間帯と比較します。
  • 過去3時間にAPIトラフィックに適用された適用モード。
  • 過去6時間に多く発生した攻撃タイプ。
  • 過去30分間のセキュリティイベントのログ。

柔軟できめ細かなポリシー

Controller App Securityでは、セキュリティポリシーを柔軟かつきめ細かく制御できます。このスクリーンショットに示すように、適用モードとしてブロックと監視のみの両方を設定できます。監視のみのモードでは、悪意のあるトラフィックはログに記録されますが、APIサーバーには転送されます。また、誤検知を減らすために、デフォルトのシグネチャを無効にすることもできます。

このスクリーンショットには、最も多くのAPI呼び出しをブロックしているシグネチャの一覧が表示されています。この情報を使用して、誤検知を減らすために調整が必要なシグネチャの優先順位を決めることができます。

DevOpsに適したAPIセキュリティ

Controller App Securityは、セルフサービスを実現し、セキュリティチームとDevOpsチーム間の運用上のボトルネックを解消するとともに、自動化をサポートし、WAFをCI/CDパイプラインにネイティブに統合することで、DevOpsの能力を最大限に引き出します。これらの機能は、シフトレフトの取り組みを推進します。シフトレフトでは、CI/CDパイプラインにセキュリティを統合することで、開発者とDevOpsチームがソフトウェア開発サイクルの早い段階(特にテストフェーズ)からセキュリティを適用します。APIセキュリティを後付けで対応するのではなく、API開発プロセスに不可欠な要素として組み込むことで、本番環境で発生する問題を減らせます。

NGINX Controller App Security for API Managementをお試しになりませんか?30日間の無料トライアルをダウンロードするか、APIセキュリティのニーズについてご相談ください。


共有

著者について

Karthik Krishnaswamy
Karthik Krishnaswamyプロダクトマーケティング担当ディレクター | F5

Karthik Krishnaswamyのその他のブログ記事

関連するブログ記事

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
NGINX | 2024/01/18

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する

OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
NGINX | 2023/05/31

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正

Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
NGINX | 2023/02/09

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法

Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINX | 2022/05/24

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング

NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
NGINX | 2018/08/17

SELinuxでNGINXおよびNGINX Plusを使用する

Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。

NGINX PlusによるAWS Auto Scalingグループの負荷分散
NGINX | 2017/03/06

NGINX PlusによるAWS Auto Scalingグループの負荷分散

新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります