> 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 は、コードに直接組み込まれる強力なアプリケーションファイアウォールです。この位置にあるため、外側から受信リクエストを確認するだけではなく、コード内で実際に何が起きているかを見て理解できます。

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

Zen は、ランタイム内の主要なパッケージや組み込みモジュールに計測を行います（例： `fs.readFile`, `http.request`, `fetch`、そして `mysql.query` Node.js において）。この機能により Zen は、危険な文脈で現れた場合に、潜在的に安全でないユーザー入力をその発生源まで追跡できます。たとえば、入力が 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
