
[Releases][release] | [Pull Requests][pr] | [Issues][issues]
[![GitHub release][img-version-badge]][repo] [![Build Status][img-actions-badge]][actions-ci] [![Pull Requests][img-pr-badge]][pr] [![Slack][img-slack-badge]][slack] [![License][img-license-badge]][license]
Strelka Web UI は、Strelka Enterprise File Scanner 向けのブラウザおよび API ベースのファイル送信フロントエンドです。ユーザーは Strelka クラスタにファイルを送信し、過去のレスポンス結果を簡単に確認できます。Strelka Web UI は LDAP 認証と API アクセスをサポートしており、Strelka スキャナと安全かつ柔軟に連携する手段を提供します。本書では、Strelka Web UI のセットアップと使用方法、その機能、および関連プロジェクトについて詳しく説明します。
ファイル送信 UI は以下の機能を提供します:
デフォルトでは、Strelka UI はユーザーがシステムをテストできる最小限の「クイックスタート」デプロイメントを使用するように設定されています。このデプロイメントはローカルの Strelka インスタンスを対象とし、ローカルデータベースを起動します。ユーザーは任意のユーザー名 / パスワードでこのシステムにアクセスできます。リモートの Strelka インスタンス、データベースを対象とする方法、または認証に LDAP を使用する方法の詳細については、追加セットアップ セクションを参照してください:
Start or ensure Strelka cluster is ready and accessible.
See https://github.com/target/strelka for more information.
# Terminal 1
# From the ./strelka-ui directory
$ docker-compose -f docker-compose.yml up
1) Open A Browser
2) Navigate to 0.0.0.0:8080
3) Login with:
- Username: strelka
- Password: strelka
このセクションでは、より安全に使用するために、リモートの Strelka インスタンス、ストレージ用のリモートデータベース、認証用の LDAP サーバーを対象とする方法について詳しく説明します。これらを有効にするには、環境変数を使用してデフォルトを上書きできます。
バックエンドの設定は環境変数を介して提供され、./app/config/config.py に静的に設定できます。
ローカルで実行する場合、設定の優先順位は次のとおりです: システム環境変数 -> .env -> ./app/config/config.py。
Docker で実行する場合、設定の優先順位は次のとおりです: Docker 環境変数 -> システム環境変数 -> ./app/config/config.py。
環境変数の設定については ./app/example.env を参照してください。
以下は ./app/config/config.py の設定項目の詳細です。
| Field Name | Value | Required |
|---|---|---|
| STRELKA_HOST | Strelka hostname (e.g., 0.0.0.0) | Yes |
| STRELKA_PORT | Strelka port number (e.g., 57314) | Yes |
| STRELKA_CERT | Path to certificate for Strelka, if needed (e.g., /path/to/cert.pem) | No |
| CA_CERT_PATH | Path to CA certificates for LDAP, if needed (e.g., /path/to/ca_certs) | No |
| VIRUSTOTAL_API_KEY | API Key for VirusTotal Hash Lookup | Yes |
| VIRUSTOTAL_API_LIMIT | Limit how many files should be scanned by VirusTotal (Default: 30) | Yes |
| LDAP_URL | URL to LDAP server (e.g., ldaps://ldap.example.com:636) | No |
| LDAP_SEARCH_BASE | Search base for LDAP queries (e.g., DC=example,DC=com) | No |
| LDAP_USERNAME_ORGANIZATION | Username organization for LDAP queries (e.g., org//) | No |
| LDAP_ATTRIBUTE_ACCOUNT_NAME_FIELD | LDAP attribute for account name (e.g., sAMAccountName) | No |
| LDAP_ATTRIBUTE_FIRST_NAME_FIELD | LDAP attribute for first name (e.g., givenName) | No |
| LDAP_ATTRIBUTE_LAST_NAME_FIELD | LDAP attribute for last name (e.g., sn) | No |
| LDAP_ATTRIBUTE_MEMBER_OF_FIELD | LDAP attribute for member of (e.g., memberOf) | No |
| LDAP_ATTRIBUTE_MEMBER_REQUIREMENT_FIELD | LDAP attribute for member requirement (e.g., AD Attribute) | No |
| STATIC_ASSET_FOLDER | Build folder for UI (e.g., build) | Yes |
| MIGRATION_DIRECTORY | SQLAlchemy migrations directory (e.g., ./migrations) | Yes |
| DATABASE_USERNAME | Database username (e.g., admin) | Yes |
| DATABASE_PASSWORD | Database password (e.g., password123) | Yes |
| DATABASE_HOST | Database hostname (e.g., db.example.com) | Yes |
| DATABASE_PORT | Database port number (e.g., 5432) | Yes |
| DATABASE_DBNAME | Name of the database (e.g., mydb) | Yes |
| API_KEY_EXPIRATION | Duration in days of API key expiration (e.g., 30) | Yes |
UI の送信テーブルに参照を設定することで、ユーザーが request.id に基づいて外部サイトへ素早く移動できるようにすることもできます。./ui/src/config.js を変更し、次の表の SEARCH_URL の例に従うことで、ユーザーに外部サイト (例: SIEM / ロガー) へのリンクを提供できます。リンク内に文字列 <REPLACE> が含まれていることを確認してください。UI はその文字列を該当ファイルのリクエスト ID に置き換えます。
./ui/src/config.js でサポートされている変更フィールド:
| Field Name | Value | Example |
|---|---|---|
| SEARCH_URL | Search URL for the external application | Ex: https://search.com/?q=request.id= |
| SEARCH_NAME | Search name for the external application | Ex: Splunk |
| DEFAULT_EXCLUDED_SUBMITTERS | Default users to be exluded from Submission table view. Useful for hiding automations by default. | Ex: SearchBot |
ネットワーク環境でカスタム CA バンドル (例: 企業の TLS インスペクションプロキシ) が必要な場合は、証明書ファイルをリポジトリにコミットすることなく、ビルド時と実行時の両方で提供できます。
ビルド時 — docker compose build を実行する前に、CUSTOM_CA_CERT を介して CA バンドルへのパスを渡します。証明書は BuildKit シークレットを使用して一時的にマウントされ、イメージレイヤーには一切書き込まれません:
CUSTOM_CA_CERT=/path/to/your/ca-bundle.crt docker compose build
# or, combined with up:
CUSTOM_CA_CERT=/path/to/your/ca-bundle.crt docker compose up --build
カスタム CA が不要なオープンネットワークでは、変数を完全に省略してください — ビルドは正常にフォールバックします:
docker compose up --build
実行時 — プロジェクトのルートにある certs ディレクトリは、実行中のコンテナ内の /certs にマウントされます。CA バンドルをそこに配置し、./app/strelka_ui/.env または Docker 環境変数として REQUESTS_CA_BUNDLE (および任意で SSL_CERT_FILE) を設定します:
# ./app/strelka_ui/.env
REQUESTS_CA_BUNDLE=/certs/ca-bundle.crt
SSL_CERT_FILE=/certs/ca-bundle.crt
Strelka UI は、ユーザースクリプトベースのアクセス用の API ルートも提供します。詳細については以下のルートを参照してください:
Strelka UI API への認証、スキャン統計の取得、Python の requests を使用したファイル送信の例は ./misc/examples/api_examples.py にあります。