Java (Javalin)
このガイドでは、アプリケーションに Zen Firewall by Aikido をインストールして設定する手順を説明します。以下の手順に従ってアプリケーションを保護してください。
問題や不具合が発生した場合は、遠慮なくサポートチャットまたは Github issues までご連絡ください。
https://github.com/AikidoSec/firewall-java
- Java 17 以上(Java 21 までテスト済み。同じエージェントで Kotlin/Groovy もサポート)
- Javalin 6.x
- Aikido アカウント と Zen Firewall トークン
インストールと設定
Section titled “インストールと設定”1. Zen Firewall by Aikido をインストールする
Section titled “1. Zen Firewall by Aikido をインストールする”最新の Java エージェントバンドルをダウンロードして展開します。
zip
curl -L https://github.com/AikidoSec/firewall-java/releases/latest/download/zen.zip -o zen.zipunzip zen.ziptar.gz
curl -L https://github.com/AikidoSec/firewall-java/releases/latest/download/zen.tar.gz -o zen.tar.gztar -xzf zen.tar.gz展開したフォルダ構造はそのまま維持し(例:/opt/zen)、プロセスから読み書きできることを確認してください。
Java エージェントをランタイムに追加します。
-javaagent:/opt/zen/agent.jarレート制限やユーザーブロック機能を使う場合は、プロジェクトに agent_api.jar を追加してください。
Gradle:
dependencies { implementation files('/opt/zen/agent_api.jar')}Maven:
<dependency> <groupId>dev.aikido</groupId> <artifactId>agent_api</artifactId> <version>1.0</version> <systemPath>/opt/zen/agent_api.jar</systemPath></dependency>2. リクエストブロックとユーザー識別を有効にする
Section titled “2. リクエストブロックとユーザー識別を有効にする”このミドルウェアを使用して、レート制限、ユーザー識別、ブロック機能を有効にします。
Zen Firewall は攻撃をブロックするためにこのミドルウェアを必須とはしません。コアとなる攻撃防御はこれなしでも機能します。このミドルウェアは、ルートへのレート制限の設定、Zen Firewallでのユーザー追跡、Zen Firewallによるボットトラフィックのブロック、Zen Firewallによる国別トラフィックのブロック、Zen Firewallによる既知の脅威アクターのブロックブロックといった保護機能のために Zen が利用する追加のリクエストコンテキストを提供します。
アプリケーションがユーザーを識別しリクエストを処理する方法に合わせて、この例を調整してください。
+import dev.aikido.agent_api.SetUser;+import dev.aikido.agent_api.middleware.AikidoJavalinMiddleware;++app.before(ctx -> {+ SetUser.setUser(new SetUser.UserObject("your-id-here", "John Doe"));+});++app.before(new AikidoJavalinMiddleware());3. Zen Firewall をドライ/検知専用モードで起動する
Section titled “3. Zen Firewall をドライ/検知専用モードで起動する”AIKIDO_TOKEN=AIK_RUNTIME_... AIKIDO_BLOCK=false java -javaagent:/opt/zen/agent.jar -jar build/myapp.jarAikido 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による国別トラフィックのブロック
- ルートへのレート制限の設定
- アウトバウンドドメインの監視
その他の情報: