Slide 1

Slide 1 text

OSINT CTFを支える技術 xryuseix  @ryusei_ishika ネクストチューター #seccamp

Slide 2

Slide 2 text

TsukuCTF vs. DIVER OSINT CTF 2 TsukuCTF DIVER OSINT CTF 開催回数 / 最終開催日 3回 / 2023年12月 1回 / 2024年6月 直近の参加人数 701人 873人 運営人数 18人 6人 直近の問題数 38問 35問 直近の問題ミスの数 ※ 6問 0問 ※user-friendlyな対応(表記揺れ対応・問題文をわかりやすくなど )は除く #seccamp

Slide 3

Slide 3 text

TsukuCTF vs. DIVER OSINT CTF 3 TsukuCTF DIVER OSINT CTF 開催回数 / 最終開催日 3回 / 2023年12月 1回 / 2024年6月 直近の参加人数 701人 873人 運営人数 18人 6人 直近の問題数 38問 35問 直近の問題ミスの数 ※ 6問 0問 このLTでは何をしたのかについて説明します #seccamp

Slide 4

Slide 4 text

4 https://github.com/CTFd/ctfcli ● 設定ファイルからCTFdのスコアサーバに デプロイするツール ● 設定を全てテキストで記載するので、 Git, CI, CDとの相性も◎ ● WebのUIで設定する必要がなく、 設定ミスを防げる ○ TsukuCTFでは結構ミスした ● CTF問題の最新の状態を 1つに定義できる ○ GitHubにあるものが最新? スコアサーバ上のものが最新?にならない 設定ファイルの例 #seccamp

Slide 5

Slide 5 text

5 https://github.com/diver-osint-ctf/ctfd-config-generator ● ctfcliの設定ファイルや、 作問に必要なファイルを自動生成 するツール ● 元seccamp修了生のtask4233さんが作成し、 DIVER OSINT CTF用にカスタマイズ ● やや複雑なctfcliのデプロイコマンドの ラッパーも兼ねている 生成結果 #seccamp

Slide 6

Slide 6 text

6 https://github.com/xryuseix/ctfcli-unit-test ● ctfcliの設定ファイルのフラグをテスト するツール ● TsukuCTFではフラグの設定にミスが多かった ○ 特に正規表現のミスが多 く、本番まで残った ● そこで、設定ファイルのフラグをユニットテスト のよう にテストするツールを導入した ● ついでにyaml形式のチェックもしてくれる 実行例 #seccamp

Slide 7

Slide 7 text

[ 作問期間 ] [ 本番直前 ] [ 本番 ] 作問レビューフロー 7 作問者が問題PRを作成 レビュアーがレビュー レビュアーがレビュー2 xryuseixが最終確認&merge スコアサーバ上で確認 作問者を中心となって修正 xryuseixが確認&deploy これくらいやってやっと十分に #seccamp

Slide 8

Slide 8 text

[ 作問期間 ] [ 本番直前 ] 作問レビューフロー 8 作問者が問題PRを作成 レビュアーがレビュー レビュアーがレビュー2 xryuseixが最終確認&merge スコアサーバ上で確認 作問者を中心となって修正 xryuseixが確認&deploy これくらいやってやっと十分に  ちなみにここまで ↙ミスは結構あった [ 本番 ] #seccamp

Slide 9

Slide 9 text

その他の技術・テクニック 9 ● スコアサーバはAWS CloudFormationで管理した ○ NFLabs.さんのブログ※を参考にさせていただきました ● スコアサーバは2台構成で冗長化したし、キャッシングもした ○ しかし、低スペック2台だったのでどっちも落ちた ● adminへの質問にチケット制度を導入した ● 問題を解くために必要なWebサイトの鯖落ちは監視 ○ 実際に当日1つがメンテナンスとなり、 チケットで対応 #seccamp ※ https://blog.nflabs.jp/entry/2023/11/10/093000

Slide 10

Slide 10 text

次回の開催もご期待ください! (両方とも次回開催に向けて準備中です) 10 おわり。 #seccamp