コンテンツにスキップ

Nodejs Bundlers (generic)

このガイドでは、アプリケーションへのZen Firewall by Aikidoのインストールと設定方法を説明します。以下の手順に従ってアプリケーションを保護してください。

問題や不具合が発生した場合は、サポートチャットまたはGithub issuesまでお気軽にご連絡ください。

https://github.com/AikidoSec/firewall-node

1. Zen Firewall by Aikido をインストールする

Section titled “1. Zen Firewall by Aikido をインストールする”

プロジェクトにZenをインストールします。

npm

Terminal window
npm install --save-exact @aikidosec/firewall

Yarn

Terminal window
yarn add --exact @aikidosec/firewall

pnpm

Terminal window
pnpm add --save-exact @aikidosec/firewall

2. 計装対象のパッケージをexternal化したままにする

Section titled “2. 計装対象のパッケージをexternal化したままにする”

Zenは実行時に node_modules からサポート対象のパッケージを読み込む必要があります。

バンドラーがexternal化をサポートしている場合は、すべてのサードパーティパッケージ、あるいは少なくともZenとZenが計装するパッケージを除外してください。

必要なexternalの一覧は次のコマンドで取得できます。

+const { externals } = require("@aikidosec/firewall/bundler");
+console.log(externals());

3. Zen Firewallをドライ / 検知専用モードで起動する

Section titled “3. Zen Firewallをドライ / 検知専用モードで起動する”

バンドルしたアプリを次のように実行します。

Terminal window
AIKIDO_BLOCK=false AIKIDO_TOKEN=AIK_RUNTIME_ node dist/app.js

Aikido Zenエージェントが認識できるよう、トークンを環境変数として設定します。まだトークンをお持ちでない場合は、こちらの手順に従ってください。

Terminal window
AIKIDO_TOKEN=AIK_RUNTIME_

アプリがリクエストをブロックせずに期待通り動作することを確認するため、まずドライモードで起動することを推奨します。誤検知を避けるため、ステージング環境で2週間程度Zen Firewallを稼働させることをおすすめします。

Terminal window
AIKIDO_BLOCK=false

アプリケーションにアクセスして、いくつかの操作を行うか、いくつかのページを開いてください。Zenはアプリケーション内のルートを自動的に検出します。

Zenアプリケーションの以下のページを確認することで、エージェントが正常に動作しているか検証できます。

  • Events: 「Application started」イベントが表示されるはずです。
  • Routes: しばらくすると、アプリケーションのルートがメソッド・ルート・リクエスト数とともにここに表示され始めます。
  • Instances: Zenがインストールされているアプリケーションのアクティブなインスタンス数が表示されるはずです。

5. ダッシュボードでレート制限を設定する

Section titled “5. ダッシュボードでレート制限を設定する”

Zen Firewallミドルウェアを追加したら、Aikidoダッシュボードでレート制限を設定することで、ブルートフォース攻撃からルートを保護するテストができます。

  1. 作成したアプリをクリックします。
  2. Routes タブに移動します。
  3. 制限したいルートを見つけて Setup rate limiting をクリックします。
  4. 手順に従ってレート制限を設定します(例: 1分あたり5リクエスト)。

認証ルートに保護とレート制限オプションが表示されているAPIルート管理インターフェース。

POST /auth/login のレート制限を1分あたり5リクエストに設定する。

レート制限を検証する

アプリを起動し、レート制限を設定したルートに1分以内に5回アクセスを試みてください。5回目の試行後、レート制限エラーが返されるはずです。

You are rate limited by Aikido firewall. (Your IP: 1.2.3.4)

おめでとうございます。Zen Firewallのインストールが完了しました。問題や懸念点、機能要望があれば、お気軽にサポートまでご連絡ください。

Zen Firewallが提供する多くの機能を、ぜひ引き続き探索してみてください。

補足情報: