コンテンツにスキップ

Nodejs (Next.js standalone)

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

next.config.js で standalone output を有効化します。

const nextConfig = {
+ output: "standalone",
};

ビルド後、firewall パッケージを standalone output にコピーします。

Terminal window
mkdir -p .next/standalone/node_modules/@aikidosec
cp -r node_modules/@aikidosec/firewall .next/standalone/node_modules/@aikidosec

Zen をプリロードした状態で standalone サーバーを起動します。

Terminal window
node -r @aikidosec/firewall/instrument .next/standalone/server.js

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

Section titled “2. Zen Firewall をドライ / 検知専用モードで起動する”
Terminal window
AIKIDO_BLOCK=false AIKIDO_TOKEN=AIK_RUNTIME_ node -r @aikidosec/firewall/instrument .next/standalone/server.js

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

Terminal window
AIKIDO_TOKEN=AIK_RUNTIME_

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

Terminal window
AIKIDO_BLOCK=false

ユーザーが自分のものではないレコードにアクセスするのを防ぎます。IDOR保護は、請求書、チケット、ユーザープロファイルなどのリソースへの不正アクセスを、最小限の設定で検知します。

Zen FirewallによるIDOR保護

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

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

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

5. フレームワークに関する注意点

Section titled “5. フレームワークに関する注意点”

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

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

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

  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 が提供する多くの機能を、これから探索していきましょう。

追加情報: