コンテンツにスキップ

Zenはどのように機能するのか?

Zen Firewall by Aikidoは、コードに直接埋め込まれる強力なApplication Firewallです。この位置に配置されることで、外部から届くリクエストを検査するだけでなく、コード内で実際に何が起きているかを把握し理解できます。

Zenが従来型ファイアウォールと異なる点

Section titled “Zenが従来型ファイアウォールと異なる点”

Zenはランタイム内の主要なパッケージや組み込みモジュール(Node.jsのfs.readFilehttp.requestfetchmysql.queryなど)にインストルメンテーションを行います。この機能により、安全でないユーザー入力がSQLクエリのクォートを抜け出したり、ファイルパスを操作したり、送信先HTTP接続のホスト名を書き換えたりするような危険な文脈に現れた場合、Zenはその入力の発生源まで遡って追跡できます。これを検知すると、Zenは例外をスローすることでコード内で直接その操作を停止します。また、スタックトレースも取得するため、開発者は問題がどこでどのように発生したかを素早く確認できます。

アプリケーションの完全な文脈を踏まえて動作するため、従来型のファイアウォールやWAFに比べて、より正確な判断が可能になり、継続的なチューニングやルール更新の必要性も減らせます。

一方、従来型のファイアウォールやWAFは、ネットワークの境界に配置され、受信したHTTPリクエストのみに基づいてブロックするかどうかを判断します。一般的には、' OR 1=1 --のようなSQLインジェクションのペイロードを検出するなど、パターンマッチングに依存しています。これには限界があり、そのリクエストがアプリケーション内部でどう処理されるかは見えないため、無害なリクエストをブロックしてしまったり、巧妙に偽装された攻撃を見逃したりする可能性があります。

Zenと従来型のファイアウォールやWAFの両方が必要になる理由

Section titled “Zenと従来型のファイアウォールやWAFの両方が必要になる理由”

Zenは分散型サービス拒否攻撃(DDoS)を防ぐことはできません。これは、ネットワークスタックの奥深くに位置しているため、大量のトラフィックの奔流がアプリケーションに到達する前に止めることができないためです。こうした状況に対処するには、依然として従来型のファイアウォールが必要です。最も強固な保護は、両者を併用することで実現します。大規模なネットワーク脅威にはファイアウォールを、コードレベルでの精密な保護にはZenを使うのです。

Zenには、多くの従来型ファイアウォールが提供する機能を超えた次のような機能も含まれています。

  • ボットおよびIPのブロック – ファイアウォールでもボットをブロックできますが、高度なボットフィルタリングの設定は複雑になりがちです。Zenを使えば、ボット、既知の脅威アクター、Torからのリクエストのブロックが容易に行えるほか、法的・ビジネス上の理由で必要な場合には国や大陸単位でのアクセス制限も可能です。
  • ユーザー単位のレート制限 – ファイアウォールはIPアドレス単位でのレート制限を提供します。Zenは実際のユーザー単位でレート制限を行うことができ、レート制限グループIDを設定する方法も提供します。例えば、B2B SaaSでは個々のユーザーやIPではなく、顧客アカウント単位でエンドポイントをレート制限できます。
  • 自動APIドキュメント生成 – Zenは実際のトラフィックをサンプリングしてOpenAPI仕様を生成し、それをAikidoプラットフォーム上でAPIのスキャンやテストに利用できます。
  • AIモデルの追跡 – 大規模言語モデルへの呼び出しを行っている場合、Zenは入力・出力トークンを追跡し、さまざまなプロバイダーやモデルにまたがる使用量とコストを見積もることができます。

Zenは多くの場合、単一のコマンドで数秒でインストールできます。このセットアップ体験は、OpenTelemetryのようなトレーシングライブラリを追加する場合と似ています。Zenは大量の静的ルールに依存するのではなく、ランタイムにインストルメンテーションを行うことで動作するため、頻繁な更新や複雑な設定を必要としません。