> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/zen-firewall/how-does-zen-work.md).

# Zenはどのように動作するのか？

AikidoのZen Firewallは、コードに直接埋め込まれる強力なアプリケーションファイアウォールです。この位置にあることで、WAFのように外部から受信リクエストを検査するだけでなく、コードの中で実際に何が起きているかを確認し、理解できます。

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

Zenは、実行環境内の主要なパッケージや組み込みモジュールを計測します（例： `fs.readFile`, `http.request`, `fetch`、および `mysql.query` Node.js 内で）。この機能により、危険な文脈で潜在的に安全でないユーザー入力が現れたときに、その発生源まで追跡できます。たとえば、入力が SQL クエリの引用符から抜け出す、ファイルパスを操作する、送信先 HTTP 接続のホスト名を変更する、あるいは同様のセキュリティ脆弱性を生み出す場合です。これを検知すると、Zen は例外を投げてコード内で直接その操作を停止します。また、スタックトレースも取得するため、開発者は問題がどこでどのように発生したかをすぐに確認できます。

**アプリケーション全体のコンテキストを踏まえて動作するため、従来のファイアウォールや WAF と比べて、より正確な判断ができ、継続的な調整やルール更新の必要性を減らせます。**

これに対して、従来のファイアウォールや WAF はネットワークの境界に配置され、受信した HTTP リクエストだけを基にブロックするかどうかを判断します。通常はパターンマッチングに依存しており、たとえば次のような SQL インジェクションのペイロードを見つけます。 `' OR 1=1 --`。ただしこれには限界があります。アプリケーション内部でそのリクエストがどのように処理されるかを見られないため、無害なリクエストをブロックしてしまったり、巧妙に隠された攻撃を見逃したりすることがあります。

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

Zenは分散型サービス拒否攻撃（DDoS）からは防御できません。ネットワークスタックの内部に深く位置しているため、アプリケーションに届く前の大量のトラフィックを止めることができないからです。そうした状況に対応するには、従来のファイアウォールが依然として必要です。最も強力な保護は両方を使うことです。大規模なネットワーク脅威にはファイアウォールを、正確でコードレベルの保護にはZenを使います。

### ブロックだけではない

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

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

### 導入と保守が簡単

Zenは、1回のコマンドで数秒でインストールできます。セットアップ体験は、OpenTelemetryのようなトレーシングライブラリを追加するのに似ています。Zenは大規模な静的ルールセットに依存するのではなく、実行環境を計測することで動作するため、頻繁な更新や複雑な設定を必要としません。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.aikido.dev/docs/docs-ja/zen-firewall/how-does-zen-work.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
