コンテンツにスキップ

ASP.NET Framework (including OWIN)

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

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

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

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

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

プロジェクトが .NET Framework 4.6 以上で動作していることを確認してください。

NuGet からパッケージをインストールします。

Terminal window
dotnet add package Aikido.Zen.DotNetFramework

または、Package Manager Console で実行します。

Terminal window
Install-Package Aikido.Zen.DotNetFramework

トークンを Web.config に追加します。

<appSettings>
<add key="Aikido:AikidoToken" value="your-api-key" />
</appSettings>

アプリの起動時に Zen を開始します。

! Startup.cs
+using Aikido.Zen.DotNetFramework;
public void Configuration(IAppBuilder app)
{
// other code
+ Zen.Start();
}

OWIN を使用している場合:

! Global.asax.cs
+using Aikido.Zen.DotNetFramework;
protected void Application_Start()
{
// other code
+ Zen.Start();
}

2. ユーザー識別とブロックを有効にする

Section titled “2. ユーザー識別とブロックを有効にする”

このミドルウェアを使用して現在のユーザーを識別し、ユーザーブロックなどのユーザーベース機能を有効にします。

Zen Firewall は攻撃をブロックするためにこのミドルウェアを必須とはしません。コアとなる攻撃防御はこれなしでも機能します。Zen にリクエストを行っているユーザーを認識させたい場合に、このミドルウェアを追加してください。

アプリケーションがユーザーを識別する方法に合わせて、この例を調整してください。

! Startup.cs
public void Configuration(IAppBuilder app)
{
+ Zen.SetUser(context => new User(context.User.Identity.Name, context.User.Identity.Name));
Zen.Start();
}

OWIN を使用している場合:

! Global.asax.cs
public void Application_Start()
{
+ Zen.SetUser(context => new User(context.User.Identity.Name, context.User.Identity.Name));
Zen.Start();
}

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

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

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

Terminal window
AIKIDO_TOKEN=AIK_RUNTIME_

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

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

その他の情報: