Nodejs (Generic middleware)
このガイドでは、アプリケーションに Zen Firewall by Aikido をインストールして設定する手順を説明します。以下の手順に従ってアプリケーションを保護してください。
問題や不具合が発生した場合は、遠慮なくサポートチャットまたは Github issues までご連絡ください。
https://github.com/AikidoSec/firewall-node
- Node.js 16 以上
- カスタムミドルウェア/フックを許可する任意の HTTP フレームワーク
- Aikido アカウント と Zen Firewall トークン
インストールと設定
Section titled “インストールと設定”1. Zen Firewall by Aikido をインストールする
Section titled “1. Zen Firewall by Aikido をインストールする”プロジェクトに Zen をインストールします。
npm
npm install --save-exact @aikidosec/firewallYarn
yarn add --exact @aikidosec/firewallpnpm
pnpm add --save-exact @aikidosec/firewallrequire 構文
他のどのインポートよりも前に Zen を読み込みます。
+import "@aikidosec/firewall";// ...import 構文
他のどのライブラリよりも前に Zen をインポートします。
+require("@aikidosec/firewall");// ..2. リクエストブロックとユーザー識別を有効にする
Section titled “2. リクエストブロックとユーザー識別を有効にする”このミドルウェアを使用して、レート制限、ユーザー識別、ブロック機能を有効にします。
Zen Firewall は攻撃をブロックするためにこのミドルウェアを必須とはしません。コアとなる攻撃防御はこれなしでも機能します。このミドルウェアは、ルートへのレート制限の設定、Zen Firewallでのユーザー追跡、Zen Firewallによるボットトラフィックのブロック、Zen Firewallによる国別トラフィックのブロック、Zen Firewallによる既知の脅威アクターのブロックブロックといった保護機能のために Zen が利用する追加のリクエストコンテキストを提供します。
アプリケーションがユーザーを識別しリクエストを処理する方法に合わせて、この例を調整してください。
+const Zen = require("@aikidosec/firewall");++// Call this as early as possible before your request handling code,+function onRequest(req, res, next) {+ Zen.setUser({ id: "123", name: "John Doe" });++ const result = Zen.shouldBlockRequest();+ if (result.block) {+ if (result.type === "ratelimited") {+ res.statusCode = 429;+ res.end("You are rate limited by Zen.");+ return;+ }+ if (result.type === "blocked") {+ res.statusCode = 403;+ res.end("You are blocked by Zen.");+ return;+ }+ }+ next();+}3. Zen Firewall をドライ/検知専用モードで起動する
Section titled “3. Zen Firewall をドライ/検知専用モードで起動する”AIKIDO_BLOCK=false AIKIDO_TOKEN=AIK_RUNTIME_ node app.jsAikido Zen エージェントが読み取れるように、トークンを環境変数として設定します。トークンをまだお持ちでない場合は、こちらの手順に従ってください。
AIKIDO_TOKEN=AIK_RUNTIME_アプリを最初はドライモードで起動し、リクエストをブロックせずに期待通り動作することを確認することをお勧めします。誤検知を避けるため、Zen Firewall をステージング環境で2週間程度実行することをお勧めします。
AIKIDO_BLOCK=false4. アプリをテストする
Section titled “4. アプリをテストする”アプリケーションにアクセスし、いくつかの操作を行うか、いくつかのページを開いてください。Zen がアプリケーション内のルートを自動的に検出します。
Zen アプリケーションの以下のページを確認することで、エージェントが正しく動作していることを検証できます。
- Events: 「Application started」イベントが表示されるはずです。
- Routes: しばらくすると、アプリケーションのルートがメソッド、ルート、リクエスト数とともに表示され始めます。
- Instances: Zen がインストールされているアプリケーションのアクティブなインスタンス数が表示されるはずです。

5. ダッシュボードでレート制限を設定する
Section titled “5. ダッシュボードでレート制限を設定する”Zen Firewall ミドルウェアを追加したら、Aikido ダッシュボードでレート制限を設定することで、ブルートフォース攻撃からルートを保護するテストができます。
- 作成したアプリをクリックします。
- Routes タブに移動します。
- 制限したいルートを見つけ、Setup rate limiting をクリックします。
- 手順に従ってレート制限を設定します(例:1分あたり5リクエスト)。


レート制限の検証
アプリを起動し、1分以内にレート制限を設定したルートへ5回アクセスを試みてください。5回目の試行後、レート制限エラーが返されるはずです。
You are rate limited by Aikido firewall. (Your IP: 1.2.3.4)6. 次のステップ
Section titled “6. 次のステップ”おめでとうございます。Zen Firewall のインストールに成功しました。問題や懸念事項、機能リクエストがあれば、遠慮なくサポートまでご連絡ください。
Zen Firewall が提供する多くの機能をこれから探索できます。
- Zen Firewallによるボットトラフィックのブロック
- Zen FirewallによるTorトラフィックのブロックまたは監視
- Zen Firewallでのユーザー追跡
- Zen Firewallによる既知の脅威アクターのブロック
- Zen Firewallによる国別トラフィックのブロック
- ルートへのレート制限の設定
- アウトバウンドドメインの監視
その他の情報: