
オープンソースのフレームワークで、攻撃/防御CTF競技のホスティングを自動化。自動ゲームボット、スクリプト実行、VPNルーティング、教育者やトレーナー向けのクラウドベースインフラ管理を提供します。
これはShellphishがiCTFを開催するために使用するフレームワークです。
iCTFフレームワークは、2014年のUsenix 3GSEワークショップで発表された論文で説明されています。
私たちは、教育者やトレーナーが自身のA/D CTFを開催できるようにするため、これを公開しました。このフレームワークは商用利用無料ですが、提供できるサポートは限られています。
将来的には各コンポーネントに関するより詳細な技術文書を公開する予定ですが、現時点ではゲームの作成方法についてはこちらで説明を見つけることができます。
質問がある場合は、[email protected] までメールをお送りください。
免責事項: このフレームワークはまだ開発中であり、このリリースはベータ版とみなされるべきです。新しいプルリクエストや問題の報告は歓迎します :)
これはゲームの状態を追跡する中央データベースです。Database VM上で動作し、RESTful APIを公開します。このデータベースはチームが直接アクセスすべきではなく、代わりにチームサービスコンポーネントを経由する必要があることに注意してください。
Gamebotは競技を進行させるコンポーネントです。競技はティックに分割されています。各ティックの開始時に、gamebotはscriptbotによって実行されるスクリプト(例:フラグを設定する、フラグを取得する、サービスをテストするスクリプト)を決定し、スケジュールを中央データベースに書き込みます。次に、データベースから前のティックに関するデータ(例:提出されたフラグやサービスチェックのステータス)を抽出し、各チームに割り当てるポイントを計算します。新しいスコアはデータベースに保存され、ダッシュボードコンポーネントによって表示できるようになります。
Scriptbotはgamebotによってスケジュールされたスクリプトの実行を担当します。Scriptbotは中央データベースから実行予定のスクリプトを取得し、それらを実行します。例えば、スクリプトは前のティックで設定されたフラグを取得したり、サービスが稼働して機能しているかを確認したりします。
Routerコンポーネントは、競技中のチーム間のトラフィックをルーティングする責任があります。このコンポーネントはOpenVPNサービスを実装しています。各チームには、そのチームのルーターとして機能するVMが与えられます。チーム間のトラフィックは匿名化されなければならず、チームがscriptbotが生成したトラフィックとチームのトラフィックを区別できないようにする必要があります。
詳細については、クラスCTFの運営に関するwikiページをご覧ください。