技術的な机上訓練シミュレーションフレームワーク
T3SFは、マスターシナリオイベントリスト(MSEL)と、各エクササイズ用に定義された一連のルール(オプション)、および対応するプラットフォームのパラメータを定義できる設定に基づいて、イベントのオーケストレーションを行うためのモジュール構造を提供するフレームワークです。メインモジュールは、特定のモジュール(Discord、Slack、Telegramなど)との通信を実行し、各プラットフォームの入力チャネルにインジェクトとしてイベントを提示できるようにします。さらに、このフレームワークは、「単一組織・複数領域」、「複数組織・単一領域」、「複数組織・複数領域」といった異なるユースケースをサポートしています。
SlackやDiscordなど、ご希望のプラットフォームでフレームワークを使用するには、そのプラットフォームに必要なモジュールをインストールする必要があります。ただし、これらのモジュールのインストールは簡単かつ明確です。
これを行うには、以下のシンプルなステップバイステップガイドに従うか、すでにpipでのパッケージインストールに慣れている場合は、最後のステップにスキップしてください!
# Python 3.6+ required
python -m venv .venv # We will create a python virtual environment
source .venv/bin/activate # Let's get inside it
pip install -U pip # Upgrade pip
Python仮想環境を作成して有効にしたら、以下のコマンドを実行して、ご希望のプラットフォーム用のT3SFフレームワークをインストールできます。
pip install "T3SF[Discord]" # Install the framework to work with Discord
または
pip install "T3SF[Slack]" # Install the framework to work with Slack
これにより、選択したプラットフォームに必要な依存関係とともにT3SFフレームワークがインストールされます。インストールが完了すると、選択したプラットフォームでフレームワークを使い始めることができます。
プラットフォーム固有のガイダンスについては、Read The Docs内の該当ページに従うことを強くお勧めします! 以下のリンクをご覧ください。
このフレームワークは、すべての作業を簡素化するために作成されました!
$ docker run --rm -t --env-file .env -v $(pwd)/MSEL.json:/app/MSEL.json base4sec/t3sf:slack
.envファイル内に、SLACK_BOT_TOKENとSLACK_APP_TOKENトークンを指定する必要があります。詳細はこちらをお読みください。
設定すべき別の環境変数としてMSEL_PATHがあります。この変数は、MSELが配置されているパスをフレームワークに伝えます。デフォルトでは、コンテナパスは/app/MSEL.jsonです。ボリュームのマウント場所を変更した場合は、それに応じて変数も変更してください。
$ docker run --rm -t --env-file .env -v $(pwd)/MSEL.json:/app/MSEL.json base4sec/t3sf:discord
.envファイル内に、トークンを指定する必要があります。詳細はをお読みください。
すべての準備が整ったら、main.pyのテンプレートを使用するか、以下のコードを修正してください。
DiscordボットとGUIでフレームワークを実行する場合の例は次のとおりです。
from T3SF import T3SF
import asyncio
async def main():
await T3SF.start(MSEL="MSEL_TTX.json", platform="Discord", gui=True)
if __name__ == '__main__':
asyncio.run(main())
または、GUIなしでSlackを使用してフレームワークを実行したい場合は、引数を変更するだけで完了です。
はい、これほどシンプルです!
await T3SF.start(MSEL="MSEL_TTX.json", platform="Slack", gui=False)
さらにヘルプが必要な場合は、いつでもこちらのドキュメントをご確認いただけます!
DISCORD_TOKEN設定すべき別の環境変数としてMSEL_PATHがあります。この変数は、MSELが配置されているパスをフレームワークに伝えます。デフォルトでは、コンテナパスは/app/MSEL.jsonです。ボリュームのマウント場所を変更した場合は、それに応じて変数も変更してください。