OpenAEVインストール完全ガイド:徹底解説
OpenAEV(Open Adversarial Exposure Validation)は、実際のサイバー攻撃をシミュレートすることで、組織のセキュリティポスチャーを評価・強化するように設計された強力なプラットフォームです。モジュラーアーキテクチャを基盤として構築されたOpenAEVは、さまざまなコンポーネントと依存関係をシームレスに統合し、柔軟性とスケーラビリティを提供します。
OpenAEVはeXtended Threat Management(XTM)スイートの一部であり、OpenCTIとの組み込み統合を活用して、高品質なサイバー脅威インテリジェンス(CTI)を使用し、Adversarial Exposure Validationプログラムを強化できます。この統合により、組織は攻撃シミュレーションに脅威インテリジェンスを活用でき、セキュリティテストをより動的かつ実際の脅威に即したものにできます。
この記事は、OpenAEVのインストールを検討している方を対象としています。最低限の技術知識が推奨されます:
- Docker:コンテナ化を使用した迅速なデプロイメント
- Java/Spring:手動インストールとOpenAEVの内部コンポーネントのより深い理解
この記事はOpenAEV 1.12.2リリースに基づいています。依存関係のバージョンおよび環境変数/アプリケーションプロパティは、デプロイする予定のバージョンによって異なる場合があります。
OpenAEV技術アーキテクチャ

OpenAEVアーキテクチャ
OpenAEVプラットフォームは、以下の主要コンポーネントで構成されています:
コアプラットフォーム
OpenAEVの中核部分で、ビジネスロジック、Java/SpringベースのAPI、Reactベースのユーザーインターフェースを備えています。また、組み込みのインジェクターとサードパーティエージェントとの統合も含まれています。
OpenAEV Agent & Implant
Rustで開発されたこれらのコンポーネントは、ターゲットアセット上で技術的インジェクターを実行します:
- Agent:OpenAEVプラットフォームにアセットを登録し、実行するジョブを取得します。Agentはアンチウイルスに対して中立を保ち、攻撃シナリオの継続性を確保するため、直接的な攻撃は実行しません。
- Implant:Agentから受け取ったジョブを実行します。Implantは直接的な攻撃を実行するため、アンチウイルスソフトウェアに検出され、終了される可能性があります。
インジェクター
攻撃シナリオ、シミュレーション、アトミックテストをカスタマイズするためにさまざまなタイプのインジェクトを追加し、プラットフォームの機能を拡張する外部モジュールです。これらのインジェクターは独立して機能するか、サードパーティサービスと連携できます。
既存のインジェクターをクローンすることで、独自のインジェクターを作成できます。Filigranチームは、開発を加速するためのPythonライブラリを保守しています。
コレクター
さまざまな外部サービスから2つの目的でデータを取得するPythonモジュールです:
- SIEM、EDR、XDRなどのセキュリティシステムと統合して、技術的インジェクトが検出または防止されたかを検証し、組織のセキュリティポスチャーに関する重要な洞察を提供します。
- アセット、グループ、ID、ペイロードなどのリストなど、侵害および攻撃シミュレーションのスケジュール設定に役立つデータを収集します。
依存関係
OpenAEVは、いくつかの外部コンポーネントに依存しています:
- PostgreSQL(17):コアプラットフォームデータを保存するための主要データベースとして機能します。
- RabbitMQ(4):PythonインジェクターとOpenAEV間のメッセージングを管理し、非同期通信を可能にします。
- MinIO(>= RELEASE.2024):画像管理を含むオブジェクトストレージを処理します。
- Elasticsearch(8.x):プラットフォームデータのインデックス化と取得をサポートし、Kibanaと併用して可観測性を強化できます。
デプロイメント & 設定ガイド
Dockerを使用したOpenAEVのデプロイ
前提条件
OpenAEVをインストールする前に、Docker Composeがシステムにインストールされていることを確認してください。インストール方法は次のとおりです:
Linux向け
- 公式ドキュメントに基づいてDockerのリポジトリをセットアップします:
Ubuntu 24.04の例
Copied!
1 sudo apt-get update2 sudo apt-get install docker-compose-plugin
2. インストールを確認します:
Copied!
1docker compose version
Windows & macOS向け
- 公式ウェブサイトからDocker Desktopをダウンロードします。
- ウェブサイトで提供されているインストール手順に従います。
OpenAEVのインストール
- OpenAEV Dockerリポジトリをクローンします:
Copied!
2. 環境を設定します:
デフォルトでは、docker-compose.ymlファイルは.env.sampleファイルで指定された環境変数を使用します。.env.sampleを.envにコピーし、設定を反映するために必要な値を入力できます。
OpenAEVは、こちらで利用可能な公式Dockerイメージを提供しています:OpenAEV Docker Hub。
このプラットフォームの主な強みの1つは、そのモジュラーアーキテクチャです。複数のDockerイメージをデプロイして、特定のニーズやユースケースに最適に対応できます。軽量な開発環境をセットアップする場合でも、本格的なプロダクションシステムを構築する場合でも、Dockerの柔軟性によりシームレスな適応性が保証されます。
Docker Composeファイルの詳細
docker-compose.ymlと.envファイルを一緒に確認し、その構造を理解することで、ニーズに応じて変数を変更できるようにします。
⚠️ 重要:.envファイルは設定例です。セキュリティ上の理由から、デプロイする前に認証情報を必ず更新して、不正アクセスを防いでください。1. 依存関係
PostgreSQL
Copied!
docker-compose.yml
Copied!
1# PostgreSQL Configuration2POSTGRES_USER=postgres3POSTGRES_PASSWORD=admin
.env
MinIO
Copied!
1 minio:2 image: minio/minio:RELEASE.2024-05-28T17-19-04Z3 volumes:4 - s3data:/data5 ports:6 - "9000:9000"7 environment:8 MINIO_ROOT_USER: ${MINIO_ROOT_USER}9 MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}10 command: server /data11 restart: always12 healthcheck:13 test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]14 interval: 10s15 timeout: 5s16 retries: 5
docker-compose.yml
Copied!
1# MinIO Configuration2MINIO_ROOT_USER=minioadmin3MINIO_ROOT_PASSWORD=minioadmin
.env
RabbitMQ
Copied!
1 rabbitmq:2 image: rabbitmq:3.13-management3 environment:4 - RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER}5 - RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}6 - RABBITMQ_NODENAME=rabbit01@localhost7 volumes:8 - amqpdata:/var/lib/rabbitmq9 restart: always10 healthcheck:11 test: [ "CMD", "rabbitmq-diagnostics", "-q", "ping" ]12 interval: 10s13 timeout: 5s14 retries: 5
docker-compose.yml
Copied!
1# RabbitMQ Configuration2RABBITMQ_DEFAULT_USER=rabbitadmin3RABBITMQ_DEFAULT_PASS=rabbitadmin
.env
Elasticsearch
Copied!
1 elasticsearch:2 image: docker.elastic.co/elasticsearch/elasticsearch:8.17.43 volumes:4 - esdata:/usr/share/elasticsearch/data5 environment:6 # Comment-out the line below for a cluster of multiple nodes7 - discovery.type=single-node8 # Uncomment the line below below for a cluster of multiple nodes9 # - cluster.name=docker-cluster10 - xpack.ml.enabled=false11 - xpack.security.enabled=false12 - thread_pool.search.queue_size=500013 - logger.org.elasticsearch.discovery="ERROR"14 - "ES_JAVA_OPTS=-Xms${ELASTIC_MEMORY_SIZE} -Xmx${ELASTIC_MEMORY_SIZE}"15 restart: always16 ulimits:17 memlock:18 soft: -119 hard: -120 nofile:21 soft: 6553622 hard: 6553623 healthcheck:24 test: curl -s http://elasticsearch:9200 >/dev/null || exit 125 interval: 30s26 timeout: 10s27 retries: 50
docker-compose.yml
Copied!
1# ElasticSearch Configuration2ELASTIC_MEMORY_SIZE=4G
.env
2. OpenAEV プラットフォーム
Copied!
docker-compose.yml
Copied!
.env
3. カスタマイズ
使用法に応じていくつかのモジュールを追加できます。利用可能なものはこちらで確認できます → OpenAEV Ecosystem
Copied!
docker-compose.yml
Copied!
1COLLECTOR_MITRE_ATTACK_ID=00000000-0000-0000-0000-000000000000 # Should be a valid UUID
.env
OpenAEVの実行
設定が完了したら、Docker Composeを使用してOpenAEVを起動します:
Copied!
1sudo systemctl start docker.service2sudo docker compose up -d
OpenAEVへのアクセス
インストールが完了したら、Webブラウザを介してOpenAEVにアクセスできます:
Copied!
1http://localhost:8080
.envファイルで定義された管理者認証情報を使用してログインします。
OpenAEVの手動デプロイ
依存関係
OpenAEVをデプロイする前に、以下の依存関係がインストールされていることを確認してください:
- PostgreSQL:PostgreSQLドキュメント
- RabbitMQ:RabbitMQドキュメント
- MinIO:MinIO公式サイト
- ElasticSearch: ElasticSearch公式サイト
- Java:Javaドキュメント
openaev-devディレクトリにあるdocker-compose.ymlファイルを使用できます。
OpenAEVの手動インストール
- 最新リリースをダウンロードして展開します:
⚠️ リリース1.12.2の例です。ニーズに基づいてリリースバージョンを変更してください。
Copied!
2. アプリケーションを設定します:
application.propertiesファイル(展開されたリリースアーカイブのルートにあります)を要件に合わせて変更します。
設定可能なパラメータの完全なリストについては、次を参照してください:OpenAEV設定ガイド。
application.propertiesファイルの詳細
application.propertiesファイルを一緒に確認し、その構造を理解することで、ニーズに応じて変数を変更できるようにします。
1. 依存関係
PostgreSQL
Copied!
MinIO
Copied!
1# MinIO Configuration2minio.port=100003minio.access-key=minioadmin4minio.access-secret=minioadmin
RabbitMQ
Copied!
ElasticSearch
Copied!
2. OpenAEV プラットフォーム
Copied!
OpenAEVの実行
すべての依存関係が実行され、正常であることを確認してから、次のコマンドを実行します:
Copied!
OpenAEVへのアクセス
インストールが完了したら、Webブラウザを介してOpenAEVにアクセスできます:
Copied!
1http://localhost:8080
application.propertiesファイルで定義された管理者認証情報を使用してログインします。
OpenAEV Agentのデプロイ
このセクションには、アセットを介した技術的攻撃を実施するための有用な情報が含まれています。卓上シナリオやシミュレーションにOpenAEVを使用している場合は、このセクションをスキップできます。
技術的アセットに対して攻撃シミュレーションを実施するためにOpenAEVを使用している場合は、ターゲットアセットにエージェントをデプロイする必要があります。
OpenAEVは、CrowdStrike、Tanium、Calderaなど、いくつかの既存のエージェントとの統合を提供しています。ただし、独自の社内エージェントも提供しており、そのデプロイプロセスについて説明します。
他のエージェントの詳細については、公式ドキュメントを参照してください。
OSによっては、いくつかのインストール方法が利用可能です。OpenAEVで右上隅の青いアイコンをクリックすることで確認できます:

OSを選択した後、OpenAEVプラットフォームが提供する手順に従うだけです:
- スニペットをコピー
- アンチウイルスの除外を追加

エージェントがデプロイされると、専用リストに登録されたエンドポイントを取得し、技術的インジェクトで使用できます。

まとめ
OpenAEVは、高度な侵害および攻撃シミュレーションを通じて、組織がサイバーセキュリティの回復力を積極的に評価できるようにします。そのモジュラーアーキテクチャ、多様な統合機能、デプロイの容易さにより、防御戦略を強化することを目指すセキュリティ専門家にとってソリューションとなっています。
Dockerベースのデプロイメントを選択する場合でも、手動セットアップを選択する場合でも、OpenAEVは独自のセキュリティニーズに適応する柔軟性を提供します。
始める準備はできましたか?完全なドキュメントはOpenAEV Docsでご覧いただけます。
OpenAEVのコア機能と、それがContinuous Threat Exposure Management(CTEM)プログラムをどのように強化できるかについてさらに詳しく知りたいですか?この詳細な記事をチェックしてください!
続きを読む
関連トピックとインサイトをご覧ください

