競技ルール
開催期間:2021.8.21 PM 9:00 ~ 2021.9.4 PM 9:00 (JST)
setodaNote CTF について
- setodaNote CTF はサイバーセキュリティに関する設問を解くことで得られるポイントを競う競技です
- 設問は9つあるカテゴリの中からそのテーマや解法などにより、最も関連するカテゴリに割り振られています
- すべての設問はある文字列が答えとなっており、この文字列のことをフラグと呼びます
- 各設問に設けてある解答欄に正しいフラグを入力することでポイントを獲得できます
- フラグは何度でも入力することができます
- 誤ったフラグを入力することによる減点はありません
- より早く、より多くのポイントを獲得したユーザがより上位となります
- 得られるポイントは設問ごとに異なり、難易度に応じて配点されています
- 設問にはヒントや CTF 初参加者向けの解説が掲載されている場合があります
- ヒントや解説は自由に見ることができ、何度閲覧しても減点等のペナルティはありません
- 設問には特定のツールや環境がないと解くことが難しいものがあります
- 設問を解くために必要なツールや環境を考え、見つけ、準備するところも含めて競技です
- なお、有償のツールや環境でしか解くことができない設問はありません
- 設問構成の都合から上記と異なる制限等がある場合は、必ず設問中で説明がなされます
- ユーザ登録は個人で登録する形をとっていますが、チームでの参加を制限するものではありません。
- ご友人と一緒に相談しながらという形でご参加いただいても構いません。
フラグ形式
- 特に指定がない限りフラグは
flag{}
という形式をとります
- 設問の解答欄には例えば
flag{This_is_a_FLAG!}
などと入力して答えます
- フラグの形式を正規表現で表すと
flag\{[a-zA-Z0-9!-/:-@\[-`|~ ]+\}
となります
- フラグは大文字と小文字を区別します
- 例えば
flag{Note}
が正しいフラグである場合に flag{note}
は N
と n
が異なるため不正解となります
- 設問構成の都合から上記と異なる形式をフラグとする場合は、必ず設問中でフラグ形式の説明がなされます
flag{}
という形式をとりますflag{This_is_a_FLAG!}
などと入力して答えますflag\{[a-zA-Z0-9!-/:-@\[-`|~ ]+\}
となりますflag{Note}
が正しいフラグである場合に flag{note}
は N
と n
が異なるため不正解となりますLinux ターミナルの提供について
- setodaNote CTF では Web ブラウザから利用可能な Linux ターミナルを提供しています
- 一部の設問を解く際に利用するためのもので、利用の必要がある場合は必ず設問中で説明がなされます
- 利用時に必要なユーザ名とパスワードは、本 CTF にご登録いただいているものと同じです
- ターミナルは隔離された環境であり、他のユーザとは共有されません
- ターミナルは利用の都度、初期化された環境が提供されます
- 利用中に作成したファイルはターミナルの終了時にすべて削除されます
- ターミナルを設問を解く以外の目的で使用することは固く禁止します
カテゴリ
- Pwn
- プログラムの脆弱性をついてサーバを掌握し隠されたフラグを見つける設問などが含まれます。コンピュータ上でプログラムが実行される仕組みや脆弱性の動作原理に関する知識、それら利用して目的を達成するプログラムを実装するスキルなど、解くために多くの前提知識やスキルを必要とする上級者向けのカテゴリです。CTF の花形分野でもあります。カテゴリ名はポーンやポウンなどと読みます。
- Rev
- 実行可能形式のファイルを解析して挙動を明らかにし、隠されたフラグを見つける設問などが含まれます。与えられたファイルの正体を突き止めるところから始まり、ファイル構造を紐解くためのデバッガやディスアセンブラを扱うスキル、ときにはマルウェアが利用するアンチアナリシステクニックに関する知識などが問われるカテゴリです。カテゴリ名はリバースエンジニアリングを省略したものです。このカテゴリの設問はバイナリ問題などとも呼ばれます。
- Programing
- 非常に多くの繰り返し処理や瞬時のレスポンスが求められる処理など、人間の手作業では到底対応できない設問に対してフラグを得るために必要な処理を見定めてプログラムとして実装するスキルなどが問われるカテゴリです。CTF によっては PPC (Professional Programming and Coding) というカテゴリ名で分類されることもあります。
- Crypto
- 暗号やエンコードされた文字列を解析することでフラグを得る設問などが含まれます。初期値や設定値により危殆化した暗号や既存の暗号アルゴリズムの変種を用いた暗号を解析しフラグを得る設問など、暗号アルゴリズムを理解しそれを解析するためのプログラムを実装するスキルなどが主に問われるカテゴリです。カテゴリ名はクリプトと読みます。
- Forensics
- コンピュータのディスクやメモリ上に残存しているファイルやユーザ操作によって生じる痕跡(アーティファクト)を調査して隠されたフラグを見つける設問などが含まれます。Windows や macOS、Linux、Android、iOS といった OS の挙動や仕組みについての知識や特殊なデータ構造の解析スキルなどが問われるカテゴリです。そのほか一見すると何の変哲もないファイルに情報を隠すステガノグラフィーに関する設問がこのカテゴリに含まれる場合もあります。カテゴリ名はフォレンジックまたはフォレンジクスと読みます。
- OSINT
- 与えられた断片的な情報に基づき公開情報を探して組み合わせることでフラグを得る設問などが含まれます。断片的な情報から関連する情報を探し出す検索スキル、収集した多くの情報の中から必要な情報を見出すための仮説検証スキル、誤謬や認知バイアスに陥らずそれらの情報を適切に組み合わせて行動や意思決定に寄与する意味を持つ情報(インテリジェンス)とする冷静さや洞察力などが問われるカテゴリです。普段は意識すらしない断片的で意味をなさなかった情報が、組み合わせられることで重要な意味を持つインテリジェンスへと変わる様はとてもドラマチックです。カテゴリ名は Open Source Intelligence の略称でオシントと読みます。
- Web
- Web サービスの脆弱性や設定不備をついて本来は外部からアクセスが想定されていない領域から情報を取得しフラグを得る設問などが含まれます。Web に関わる技術仕様に加えて、Web サービスを構成するアプリケーションやミドルウェアに関する挙動の理解、それらの脆弱性や対策手法に関する動作原理の知識、また実際に通信を行って問い合わせに対する応答の挙動などから内部構造を把握する洞察力などが問われるカテゴリです。フラグを得るためにプログラムを実装するスキルが求められる場合もあります。
- Network
- 通信データを解析することで隠されたフラグを得る設問などが含まれます。各種通信プロトコルの仕様や通信パケット構造に関する知識、通信データをファイルとして保存したパケットキャプチャデータの解析能力などが問われるカテゴリです。一般的な TCP/IP などだけでなく、組み込み機器で使われる特殊な通信を題材にした設問などもあり、必要に応じて通信仕様の調査や理解、解析するために必要なツールや環境を準備するなど通信データを解析するためのスキルが幅広く問われます。
- Misc
- 他の分野に馴染まない設問が含まれるカテゴリです。単純な知識問題や前提知識を求めないトリビアなど比較的やさしめの設問も含まれており、バラエティに富んだ設問で構成されるカテゴリです。カテゴリ名はミスクと読みます。
- Pwn
- プログラムの脆弱性をついてサーバを掌握し隠されたフラグを見つける設問などが含まれます。コンピュータ上でプログラムが実行される仕組みや脆弱性の動作原理に関する知識、それら利用して目的を達成するプログラムを実装するスキルなど、解くために多くの前提知識やスキルを必要とする上級者向けのカテゴリです。CTF の花形分野でもあります。カテゴリ名はポーンやポウンなどと読みます。
- Rev
- 実行可能形式のファイルを解析して挙動を明らかにし、隠されたフラグを見つける設問などが含まれます。与えられたファイルの正体を突き止めるところから始まり、ファイル構造を紐解くためのデバッガやディスアセンブラを扱うスキル、ときにはマルウェアが利用するアンチアナリシステクニックに関する知識などが問われるカテゴリです。カテゴリ名はリバースエンジニアリングを省略したものです。このカテゴリの設問はバイナリ問題などとも呼ばれます。
- Programing
- 非常に多くの繰り返し処理や瞬時のレスポンスが求められる処理など、人間の手作業では到底対応できない設問に対してフラグを得るために必要な処理を見定めてプログラムとして実装するスキルなどが問われるカテゴリです。CTF によっては PPC (Professional Programming and Coding) というカテゴリ名で分類されることもあります。
- Crypto
- 暗号やエンコードされた文字列を解析することでフラグを得る設問などが含まれます。初期値や設定値により危殆化した暗号や既存の暗号アルゴリズムの変種を用いた暗号を解析しフラグを得る設問など、暗号アルゴリズムを理解しそれを解析するためのプログラムを実装するスキルなどが主に問われるカテゴリです。カテゴリ名はクリプトと読みます。
- Forensics
- コンピュータのディスクやメモリ上に残存しているファイルやユーザ操作によって生じる痕跡(アーティファクト)を調査して隠されたフラグを見つける設問などが含まれます。Windows や macOS、Linux、Android、iOS といった OS の挙動や仕組みについての知識や特殊なデータ構造の解析スキルなどが問われるカテゴリです。そのほか一見すると何の変哲もないファイルに情報を隠すステガノグラフィーに関する設問がこのカテゴリに含まれる場合もあります。カテゴリ名はフォレンジックまたはフォレンジクスと読みます。
- OSINT
- 与えられた断片的な情報に基づき公開情報を探して組み合わせることでフラグを得る設問などが含まれます。断片的な情報から関連する情報を探し出す検索スキル、収集した多くの情報の中から必要な情報を見出すための仮説検証スキル、誤謬や認知バイアスに陥らずそれらの情報を適切に組み合わせて行動や意思決定に寄与する意味を持つ情報(インテリジェンス)とする冷静さや洞察力などが問われるカテゴリです。普段は意識すらしない断片的で意味をなさなかった情報が、組み合わせられることで重要な意味を持つインテリジェンスへと変わる様はとてもドラマチックです。カテゴリ名は Open Source Intelligence の略称でオシントと読みます。
- Web
- Web サービスの脆弱性や設定不備をついて本来は外部からアクセスが想定されていない領域から情報を取得しフラグを得る設問などが含まれます。Web に関わる技術仕様に加えて、Web サービスを構成するアプリケーションやミドルウェアに関する挙動の理解、それらの脆弱性や対策手法に関する動作原理の知識、また実際に通信を行って問い合わせに対する応答の挙動などから内部構造を把握する洞察力などが問われるカテゴリです。フラグを得るためにプログラムを実装するスキルが求められる場合もあります。
- Network
- 通信データを解析することで隠されたフラグを得る設問などが含まれます。各種通信プロトコルの仕様や通信パケット構造に関する知識、通信データをファイルとして保存したパケットキャプチャデータの解析能力などが問われるカテゴリです。一般的な TCP/IP などだけでなく、組み込み機器で使われる特殊な通信を題材にした設問などもあり、必要に応じて通信仕様の調査や理解、解析するために必要なツールや環境を準備するなど通信データを解析するためのスキルが幅広く問われます。
- Misc
- 他の分野に馴染まない設問が含まれるカテゴリです。単純な知識問題や前提知識を求めないトリビアなど比較的やさしめの設問も含まれており、バラエティに富んだ設問で構成されるカテゴリです。カテゴリ名はミスクと読みます。
禁止事項
- 他ユーザへの嫌がらせ行為や競技を妨害する行為
- スコアサーバ(このページや設問の一覧、スコアボードなどが掲載されているサーバ)への攻撃行為
- 本 CTF のネットワークやサーバに過度の負荷を与える行為
(解くためにリモートから総当たりをしなければならない設問はありません)
- 設問によって攻撃が許可されているサーバ、ネットワーク以外への攻撃行為
- 本 CTF の開催期間中にフラグに関する情報を公開する行為
- その他、本 CTF の運営を妨げ、または本 CTF の提供に支障をきたすおそれのある行為
(解くためにリモートから総当たりをしなければならない設問はありません)