コンテンツにスキップ

Nodejs with esbuild

このガイドでは、アプリケーションに 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

bundle: true の場合、esbuild を external packages で設定します。

const { build } = require("esbuild");
build({
entryPoints: ["./app.js"],
bundle: true,
platform: "node",
outfile: "./dist/app.js",
+ packages: "external",
});

出力とあわせて本番用の node_modules をコピーしてください。

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

Section titled “2. Zen Firewall をドライ / 検知専用モードで起動する”
Terminal window
AIKIDO_BLOCK=false AIKIDO_TOKEN=AIK_RUNTIME_ node dist/app.js

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

Terminal window
AIKIDO_TOKEN=AIK_RUNTIME_

まずは dry mode でアプリを起動し、リクエストをブロックせずに期待どおり動作することを確認することをお勧めします。誤検知(false positives)を避けるため、ステージング環境で 2 週間ほど Zen Firewall を実行することをお勧めします。

Terminal window
AIKIDO_BLOCK=false

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

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

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

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

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

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

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

保護機能とレート制限オプションを備えた認証ルートを表示する API ルート管理画面。

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

Verify Rate Limiting

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

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

おめでとうございます。Zen Firewall のインストールに成功しました。問題が発生した場合や、ご要望・機能リクエストがある場合は、遠慮なくサポートまでご連絡ください。

Zen Firewall が提供する多くの機能を、これから探ってみてください。

追加情報: