• セキュリティ

社内CTFイベント MiniCTF2025 開催レポート

F.Yuga
F.Yuga
  • セキュリティ
  • カルチャー
社内CTFイベント MiniCTF2025 開催レポート

~EXEOCTF主催 組織横断型のセキュリティイベント~

はじめに

おはようございます。エクシオグループ4年目エンジニアの二木です。
本ブログでは、2025年8月28日に開催された社内CTFイベント:EXEOCTF Minimum Edition(通称、MiniCTF2025)の開催レポートをお届けします。
今回の社内CTFイベントは、CTF初心者/初学者の方々を対象とした体験型イベントとして企画され、エクシオグループ各社から多くの方にご参加いただきました。

本施策の背景・目的

MiniCTF2025は、2025年度4Qに予定されている社内CTFコンテスト "EXEOCTF" への円滑な実施に向けた事前施策として立ち上げられました。
社内におけるCTF活動の認知度向上、参加意欲の醸成、そして運営体制や技術的課題の早期把握・対応力強化を目的としています。
段階的な取り組みにより、全社的な理解促進と知見の蓄積を目指しております。

CTFとは?

CTF(Capture the Flag)とは、サイバーセキュリティのスキルを競う競技形式のイベントです。名前の由来は、もともと軍事訓練やゲームで使われる「旗取りゲーム」から来ていますが、CTFでは「旗(Flag)」は特定の課題を解いたときに得られる文字列を指します。

CTFでは大きく分けて2つの形式があります:

  • Jeopardy形式
    • クイズ番組のように、複数カテゴリ(例:Web, Crypto, Pwn, Forensicsなどなど)に分かれた問題が用意されており、好きな問題を選んで解いていきます
    • 問題を解くと「flag(例:flag{this_is_a_flag})」が得られ、それを提出して得点します
  • Attack & Defense形式
    • チーム同士が仮想環境でサーバーを守りながら、他チームのサーバーを攻撃します
    • 守りながら攻撃するという、より実践的なスキルが求められます

ここでは、一般的なJeopardy形式のCTFで出題される代表的な分野について、簡単にご紹介します。

代表的なカテゴリ内容の例
Web脆弱なWebアプリの解析や攻撃(SQLi, XSSなど)
Crypto暗号アルゴリズムの解析や破り方
Pwnバイナリ解析やバッファオーバーフローなどの脆弱性攻撃
Forensicsメモリダンプ、ディスクイメージ、ログ解析、パケットキャプチャなどから情報を抽出
Reversing実行ファイルの逆アセンブルして動作を解析
Misc/OSINTその他トリビア、OSINTやプログラミング問題など

MiniCTF2025の概要

以下にMiniCTF2025の概要を記載します。

イベント名EXEOCTF Minimum Edition - MiniCTF2025 -
開催日2025年8月28日(木) 13:10 JST ~ 17:30 JST
参加形式チーム戦(各部署・担当ごとにチーム編成/最低2人)
想定難易度CTF初級(初心者・初学者も楽しめる <- ここ重要)
開催方式完全リモート
競技時間約2時間

参加チーム一覧

EXEOCTF運営メンバの協力により、以下の企業から参加者が集いました。参加者数は計31名、参加者側の窓口(参加者側の上長)も含めると、総勢40名以上です!(小規模とは。。。)
ご協力ありがとうございます \(' A ')/ ~~ FLAG

参加企業参加者数
エクシオグループ株式会社4名
エクシオ・システムマネジメント株式会社2名
エクシオデジタルソリューションズ株式会社2名
大和電設工業株式会社12名
日本電通株式会社3名
西部電気工業株式会社3名
株式会社エクシオテック3名
株式会社エスエーティ2名

※なお、個人情報の観点から参加者氏名等は控えさせていただきます。

問題構成・出題方針

参加ハードルを下げるため、外部CTFの問題をより簡単にアレンジしたものを中心に構成し、CTFが初めての方でも十分に楽しめる構成としています。

出題分野は:Web, Crypto, Forensics, Reverse Engineering, Pwn/BInary Exploit, Misc/OSINT などなど、
CTFにおける代表的な分野を網羅しています。
特にMisc/OSINT, Web, Forensicsは問題数多めです。問題作成は主に二木が担当しました。


得点についてですが、すべて100ポイントとしています。開発当初は、難易度毎に100、200、300~みたいな感じで分けるかぁと思ってましたが、作っていくうちに「あれ、難易度の定義って難しくね?」「CTFやったことない人でも楽しめる難易度だと、どの問題も一緒じゃないか?」という考えに至りって感じですね。

以下に、実際に出題した問題の概要を記載します。

問題名カテゴリ求められるスキル想定ツール
DevTools_TrainingWebブラウザ開発者ツールの基本的な使い方ブラウザ開発者ツール
Cookie_MonsterWebCookieの書き換えブラウザ開発者ツール
Insecure_LoginWeb単純なSQLi攻撃ブラウザ
Climb_the_DirectoryWeb単純なディレクトリトラバーサル攻撃

HTTP GETパラメータ
ブラウザ
Trusted_Referer_OnlyWebHTTPヘッダの改ざん

Referer偽装によるセキュリティバイパス
BurpSuite等のWebプロキシツール
Hidden_MessageCryptoBase64エンコード/デコードCyberChef
Ancient_LetterCryptoシーザー暗号の解読CyberChef
Password_Crack_01CryptoMD5ハッシュ値のクラックCrackStation

John the Ripper
Prime_HunterCryptoRSA暗号に用いられる公開鍵の知識

素因数分解ツールの使い方
Msieve

FactorDB
Suspicious_IPForensicsSSHアクセスログの解析grep等の文字列検索
Captured_CredentialsForensicsBasic認証時のパケット解析wireshark
Log_Injection_DetectionForensicsWebアクセスログの解析

単純なOSコマンドインジェクション攻撃
grep等の文字列検索

CWE番号検索ツール
Lost_HomepageForensicswiresharkを用いた通信オブジェクトの復元wireshark
Easy_StringsReverse Engineeringstringsコマンドの使い方stringsコマンド
Wrong_ExtensionReverse Engineeringファイル実態の簡易調査

ファイルヘッダからの実態調査
fileコマンド

Bzバイナリエディタ
Static_License_CheckReverse EngineeringPythonの基本的な構文

条件分岐構文のトレース
VSCode等のエディタ

Python3.x 実行環境
Welcome_to_the_PwnPwn/Binary Exploitncコマンドの使い方

N進数の計算
ncコマンド

N進数の計算ができる電卓等
Segfault_PracticePwn/Binary Exploitバッファオーバーフローによる関数コールスタックの破壊ncコマンド
Become_AdminPwn/Binary Exploitバッファオーバーフローによるローカル変数の改ざんncコマンド
Wayback_DendaiMisc/OSINTwasyback machineを用いたWeb Archive検索wayback machine
Where_was_this_taken?Misc/OSINTexiftoolを用いてファイルメタ情報からGPSを取得exiftool
What_is_this_Place?Misc/OSINT写真の建物から撮影場所を特定Google Lens

Google Maps
Puzzle_QRMisc/OSINTQRコードフォーマットに関する知識

アライメントパターン

タイミングパターン
画像編集ソフト

後ほどですが、違う記事にていくつか問題の解説を書きます。CTFで云うところのwriteupってやつですね~

結果

先ずはトップ10チーム

続いて、全チームのスコアおよび順位

順位チーム名会社スコア
team_exeogroupエクシオグループ2400
team_satエスエーティ2400
team_eds_04エクシオデジタルソリューションズ2400
team_esmエクシオシステムマネジメント2400
team_eds_02エクシオデジタルソリューションズ2400
team_techエクシオテック2400
team_eds_01エクシオデジタルソリューションズ2400
team_eds_05エクシオデジタルソリューションズ2400
team_ndk日本電通2300
10team_seibu_d西部電気工業2300
11team_ddk大和電設工業2100
12team_eds_03エクシオデジタルソリューションズ1800

ちなみにですが、全問題を解くと2400ポイントになります。

どのチームもほとんどの問題を解いていることがわかります。競技時間中、何チームかのブレークアウトルームに参加して感想などを聞いていたのですが、「Google検索を駆使すれば何とか解けた」という話が多かった印象です。
本施策の目的は、技術力の向上というよりかは、CTFイベントそのものを体感して知ってもらうという要素が強めなので、問題設計なども丁度よかったんじゃないかなぁと個人的に思いました。(次回以降はもう少し難しく設計しよう。。。)

参加者アンケート

CTFイベント終了後に参加者向けのアンケートを実施しました。
現時点では、全員の回答は終えていませんが、共有できる範囲で公開いたします。

CTFイベントへの参加形式ですが、意外にもオンサイト希望者が多いみたいです。

理由としては、人事交流や問題解決までの速度などなど、主にコミュニケーション関連が多かったです。
次回以降は、オンサイト開催も視野に入れないとかもしれませんね~

最後に

ながーい記事になってしまいました。。。 
二木の個人的な感想としては、本施策(MiniCTF2025)を通じて、様々なメンバーとの交流、そしてCTFというハッキングコンテストの理解につながったのではないのかなと感じています。これも、運営メンバー含む多くの参加者様のおかげです!

このような小規模CTFは単発で終わらせずに、定期的に継続して取り組むのが重要だと考えております。
このブログを読んだ、そこのあなた 次回は是非参加を申し出てくださいね。

新着記事一覧へ