ctf for beginners - jnsa.org · ctf for beginners を始めるまで 最初は “ctf for girls”...

30
CTF for Beginners ~今日までそして明日から~ 1

Upload: others

Post on 05-Sep-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

CTF for Beginners ~今日までそして明日から~

1

Page 2: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

話者プロフィール

保要 隆明 (@takahoyo)

講習ではネットワーク解析を担当。ムードメーカー。

普段はネットワークセキュリティの研究をしてます。

三村 聡志 (@mimura1133)

講習ではバイナリ解析を担当。代表。

普段は Windows なソフト開発と解析をしてます。

2

Page 3: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

CTF for Beginners を 始めるまで

3

Page 4: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

CTF for Beginners を始めるまで

最初は “CTF for Girls” の “Boys 版” の話から

“CTF for Boys” ではなく 誰でも参加できる勉強会ということで “CTF for Beginners” に

4

Page 5: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

CTF for Beginners を始めるまで

開始するまでに必要なこと

運営メンバー集め

講習形式をどうするか

会場をどうするか

どうやって受講者を集めるか

講習内容の構成の検討

教材作り

5

Page 6: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

講義の内容

6

Page 7: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

講義の内容

ソフトウェア開発時や障害発生時の原因調査などでも 幅広く活かすことができる内容

実行ファイルの解析 → デバッグ

通信の解析 → ネットワーク構築, 障害対応

Web アプリの脆弱性とその原因 → 開発時に気づけるようにする

特にCTF だけに絞った内容にはなっていない

7

Page 8: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

講義の内容

CTFの説明

バイナリファイル解析

ネットワーク通信解析

ウェブアプリの脆弱性

簡易CTF

8

Page 9: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

CTF の説明

CTF とはどのようなものか 出題形式にはどのような物があるかを説明

許可されたサーバ と 自身で管理するサーバ 以外に攻撃しないように釘を刺す

不正アクセス禁止法や法律の考え方などの説明

9

Page 10: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

バイナリファイル解析

File コマンドによる種類の判定

拡張子なしのファイルを判定して開く

String コマンドによる文字列の抽出

IDA Pro を使用した実行ファイルの解析

実行先を変更するだけで答えが出るもの

コードを読んで難読化された文字を読む

10

Page 11: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

ネットワーク通信解析

ネットワーク解析の方法

キャプチャファイルとは何か

Wiresharkの使い方

Network Minerの使い方

その他、ネットワークツールの紹介

ネットワークパケットを見るポイント

そのために何が必要なのかなど

11

Page 12: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

ウェブアプリの脆弱性

XSS や CSRF, SQL Injection を取り扱う

脆弱性はなぜ作り込まれるのかを その原因から説明する

攻撃方法とその対策方法を 一緒に説明

開発時に「気づける」ように

12

Page 13: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

申し込み速度から見える注目度 アンケートから見えること

13

Page 14: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

申し込み速度から見える注目度 (東京1)

6

4

2

0

3

1

3 4

7

9

17

6

3

7

4

7 7 8

2

4 4 4 3

2 2 1

0 0 0 0 1

0 0 1 1

0 1 1

0

2

4

6

8

10

12

14

16

18

第一回 CTF4b 申し込み (06/13 0:00 - 06/14 15:00)

Page 15: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

申し込み速度から見える注目度 (東京2)

5

20 19

16

13

5

2 2

0 0 0

2 1

4

1 2

0

4 3

4

1 0

5

10

15

20

25

06/20

19:00

20:00 21:00 22:00 23:00 06/21

00:00

1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00

第二回 CTF4b 申し込み (6/20 19:00 - 6/21 16:00)

Page 16: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

申し込み速度から見える注目度(福岡)

0

26

0

2

0

2

0

3 2

0

2

4

1 1 1 1 0 1

0 0 0 0 0 0 0 0 0

4

2

5

0

2

0 1

2

0 0 0 0

2

0 1

0 1

0 0

2

0 0 1

0 1 1

0 0 0 0

3

1 1 0 0 0

5

10

15

20

25

30

第三回 CTF4b 申し込み (10/01 0:00 - 11/01 0:00)

Page 17: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

申し込み速度から見える注目度

関東エリアでの注目度は高い

東京(1回目): 125名

東京(2回目): 104名

福岡(3回目): 76名

東京エリアでは2回とも 会場の定員に達したため募集を中断した

福岡開催にも関東からの参加者が存在した

17

Page 18: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

事前アンケートから見える 「情報セキュリティ」に対するイメージ

アンケートから見えること

18

Page 19: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

「情報セキュリティ」に対するイメージ

集計方法

申込時に 「情報セキュリティと聞いて どのようなイメージを思い浮かべますか(自由記述) 」 という自由記述欄を設置

回答を mecab (ipadic) により形態素解析した後、 「名詞」と「形容詞」の出現頻度を算出 意味をなす単語のうち上位5つを抽出した

19

Page 20: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

「情報セキュリティ」に対するイメージ

名詞

脆弱性 (脆弱性の発見, 脆弱性を突く etc..)

情報 (情報を守る, 情報漏洩, 情報の管理 etc..)

攻撃 (攻撃への対抗, 攻撃を防ぐ etc..)

知識 (知識のハードルが高い, 深い知識 etc..)

人 (人的リスク, 個人情報, 怖い人たち etc..)

20

Page 21: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

「情報セキュリティ」に対するイメージ

形容詞

難しい (理解が難しい, 曖昧で小難しい, 難しいもの etc..)

ない (わからない, 知らない, 守れない, 漏れない etc..)

こわい (怖い人たち, 怖い etc..)

広い (分野が広い, 広い範囲の知識 etc..)

深い (深い知識, 広く深い知識が要求される etc..)

21

Page 22: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

「情報セキュリティ」に対するイメージ

「怖いもの」としてのイメージが強い

「情報セキュリティ」を扱うために必要な知識が とても幅広いという印象も持たれている。

「体系立っていない」というコメントもあった

22

Page 23: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

事後アンケートから見える 想定との乖離 アンケートから見えること

23

Page 24: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

参加者の想定との差

7 9 3

26

37

24

27

17 25

2 3 0

0%

20%

40%

60%

80%

100%

第1回 第2回 第3回

想定されていた内容と比べてどうか

簡単だった

想定通りだった

難しかった

とても難しかった

24

Page 25: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

感想からみる想定との乖離

時間が短かった

環境が重かった

本当の初心者にとっては少し難しかった

会場のネットワークが混んでてつらかった

答え合わせがもっと欲しかった

etc..

25

Page 26: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

感想と満足度 アンケートから見えること

26

Page 27: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

感想

意見・感想においては次のような単語が多かった*:

良かった、良い

楽しかった、楽しい、楽しく

面白かった、面白い

etc..

ポジティブな感想が多い

*事後アンケートにおいて回収した 意見及び感想を mecab (ipadic) により形態素解析し、 上位の「形容詞」を列挙したもの 27

Page 28: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

セッションの満足度

70 71 77

107 92

14

87 61

78

49 57

32

13

31

14 12 19 6

CTFとは バイナリ講習 ネットワーク講習 Web講習 簡易CTF 答え合わせ

0%

20%

40%

60%

80%

100%

第1~3回満足度

とても良かった 良かった どちらとも言えない 良くなかった とても良くなかった

28

Page 29: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

要望

もっと長い時間にして欲しい

もっと地方でも開催して欲しい

情報収集の仕方を含めて教えて欲しい

最初の一歩になるように今後も続けて欲しい

Beginner向けの大会を開いて欲しい

etc..

29

Page 30: CTF for Beginners - jnsa.org · CTF for Beginners を始めるまで 最初は “CTF for Girls” の “Boys 版” の話から “CTF for Boys” ではなく 誰でも参加できる勉強会ということで

今後の課題

30