博士論文

シナリオランダム化を備えた高性能コンテナ型サイバーレンジの研究

Ryotaro NAKATA
中田亮太郎

情報セキュリティ大学院大学
情報セキュリティ研究科
情報セキュリティ研究専攻

2021 年 9 月

目次

1 序論

1

1.1

セキュリティ人材の不足 . . . . . . . . . . . . . . . . . . . .

1

1.2

セキュリティ教育の現状 . . . . . . . . . . . . . . . . . . . .

2

1.3

研究の目的

. . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.4

研究対象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.5

論文の構成

7

. . . . . . . . . . . . . . . . . . . . . . . . . . .

2 サイバーレンジに関する調査
2.1

2.2

既存の研究の調査 . . . . . . . . . . . . . . . . . . . . . . . .

8

2.1.1

CTF . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.1.2

Lab Work . . . . . . . . . . . . . . . . . . . . . . . .

12

2.1.3

サイバーレンジ . . . . . . . . . . . . . . . . . . . . .

15

2.1.4

演習環境の開発 . . . . . . . . . . . . . . . . . . . . .

17

2.1.5

既存研究の調査のまとめ . . . . . . . . . . . . . . . .

18

演習の実態調査 . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.2.1

情報セキュリティ大学院大学 実践サイバーレンジ演習 19

2.2.2

私立大学情報教育協会

2.2.3

情報通信研究機構 CYDER（実践的サイバー防御演習） 24

2.2.4

CKA（サイバーナレッジアカデミー）K-SEC 向け教

2.2.5
2.3

2.4

8

情報セキュリティ研究講習会

21

員養成講座 . . . . . . . . . . . . . . . . . . . . . . .

25

演習の実態調査のまとめ . . . . . . . . . . . . . . . .

26

サイバーレンジと仮想化技術. . . . . . . . . . . . . . . . .

27

2.3.1

仮想化方式の種類 . . . . . . . . . . . . . . . . . . . .

27

2.3.2

各仮想化技術の特徴 . . . . . . . . . . . . . . . . . .

28

2.3.3

各仮想化方式によるサイバーレンジの動作の比較 . .

29

サイバーレンジに関する調査のまとめ. . . . . . . . . . . .

3 コンテナ型サイバーレンジの優位性の検証

32
35

3.1

実験方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

3.2

実験環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

3.3

実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

ii

3.4

考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 コンテナ型サイバーレンジの脆弱性の再現性評価

40
43

4.1

実験内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

4.2

実験環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

4.3

実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

4.3.1

OpenVAS . . . . . . . . . . . . . . . . . . . . . . . .

48

4.3.2

Nmap . . . . . . . . . . . . . . . . . . . . . . . . . .

50

4.3.3

Owasp ZAP . . . . . . . . . . . . . . . . . . . . . . .

52

4.3.4

InsightVM . . . . . . . . . . . . . . . . . . . . . . . .

54

4.3.5

SkipFish . . . . . . . . . . . . . . . . . . . . . . . . .

58

4.3.6

Nikto . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

4.3.7

DeepExploit . . . . . . . . . . . . . . . . . . . . . . .

60

考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

4.4

5 シナリオランダム化と環境構築

66

5.1

シナリオの課題 . . . . . . . . . . . . . . . . . . . . . . . . .

66

5.2

シナリオのランダム化 . . . . . . . . . . . . . . . . . . . . .

67

5.3

DAG ベースのシナリオ生成 . . . . . . . . . . . . . . . . . .

68

5.4

ランダム化要素の検討 . . . . . . . . . . . . . . . . . . . . .

70

5.5

実装方法の検討 . . . . . . . . . . . . . . . . . . . . . . . . .

71

5.6

開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

∗

5.7

CyExec によるランダム性の検証 . . . . . . . . . . . . . . .

76

5.8

演習シナリオランダム化のまとめ . . . . . . . . . . . . . . .

79

6 CyExec∗ のサイバーレンジ機能と性能
∗

80

6.1

CyExec のサイバーレンジ機能 . . . . . . . . . . . . . . . .

80

6.2

CyExec∗ 性能確認 . . . . . . . . . . . . . . . . . . . . . . . .

82

6.2.1

実験環境 . . . . . . . . . . . . . . . . . . . . . . . . .

82

6.2.2

実験結果 . . . . . . . . . . . . . . . . . . . . . . . . .

83

考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

6.3
7 結論

89

謝辞

92

参考文献

93

付録

98

研究業績一覧

108

iii

第1章
序論

はじめに，研究の背景を述べ，目的と対象を示した後，論文の構成について述べる．

1.1

セキュリティ人材の不足

ICT 技術の発展やインターネットの普及に伴い，サイバー攻撃の脅威が増加している．それに伴い，国や自治体・企業活動のみならず，一般の方々の生活に直結する脅威やリスクも増加しており，世界中でセキュリティイ
ンシデントに対応する人材の不足に対する認識が高まっている．
地域別に調査した，世界のサイバーセキュリティ人材の不足状況を図 1.1に示す [1]．

図 1.1: 地域別セキュリティ人材の不足状況
出典：(ISC)2 ， cybersecurity professionals focus on developing new skills as

workforce gap widens，p.4
2018 年にサイバーセキュリティ担当者を対象に行われた (ISC)2 による調査では，サイバーセキュリティの人材は世界的に 290 万人以上不足しているという結果であった．特にアジア太平洋地域はこの時期サイバーセキュ

1

リティ関連法の施行が相次ぎ，他の地域より人材不足の認識が高まっていたと見られている．セキュリティ人材の不足は世界中で喫緊の課題となっており，日本でも質的・量的な不足が指摘されている．
日本におけるセキュリティ人材の不足状況を図 1.2 に示す [2]．

図 1.2: 日本におけるセキュリティ人材の不足状況
出典：日本ネットワークセキュリティ協会，セキュリティ人材育成は新たなステージへ！，p.6

2018 年の経済産業省の調査では，2020 年に国内で 19 万人のセキュリティ
人材が不足するとの予想が発表され，その後，セキュリティ人材不足の解消のためにさまざまな人材育成の取り組みが行われてきたが，サイバー攻撃の巧妙化・複雑化もあり，人材不足の状況は改善されておらず，教育の充実や，セキュリティ人材が将来にわたって活躍できる社会環境の整備，リカレント教育の必要性など多くの課題がある [3]．

1.2

セキュリティ教育の現状
セキュリティ人材の不足に対応するため，専門家の育成だけでなく，一般のユーザへのセキュリティ意識の向上のための教育や，次世代を担うセキュリティ人材の育成のため，高等教育機関のカリキュラムへの情報セキュ
リティ分野の組み込みなど，様々な目的やレベルでセキュリティ教育の取り組みが行われている．
図 1.3 に，現在一般的に行われているセキュリティ教育の対象やレベルを示す．
セキュリティ教育は，セキュリティの専門知識や技術を持つ専任のエンジ
ニア向けのトレーニングや，セキュリティインシデントへの対応や人材育成2図 1.3: セキュリティ教育の対象とレベルを専門とする組織や企業などが行う高度なトップ技術者の育成から，一般企業や地方自治体など，専任の担当者がいない組織でセキュリティを担当した
り，担当窓口となってインシデント対応を行う CSIRT（Computer Security

Incident Response Team）担当者，および今後そのような人材への登用や成長が期待される高等教育機関の学生への教育を行う中級レベル，そして，
直接的にインシデント対応に関係せずとも，普段から様々なシステム・サー
ビスの利用者となっている一般のユーザ，および情報技術を専門としない
学生への基礎知識・技術の教育や情報リテラシー教育などの基礎教育まで，
様々な目的やレベルで行われている．
これらのセキュリティ教育は，従来は座学による講義形式で知識を学ぶ教育が中心であったが，情報技術の発達やインターネットの普及に伴う脅
威やリスクの拡大により教育の対象も拡大し，近年ではゲームや演習形式
による体験学習を通して，セキュリティに関する様々な知識や，実践的な技術を効率的に学ぶ取り組みが積極的に実施されている．その中でも，サ
イバーレンジを用いた実践的な演習による効率的な教育が，様々な目的やレベルに対して高い教育効果が期待できると注目されている [4]．
サイバーレンジは，現実のシステムやネットワーク環境を再現した仮想環境上で，現実に起こるセキュリティインシデント（セキュリティ上の問題として捉えられる事象）を擬似的に再現し，エンジニアによるフォレンジック（インシデント発生の際の，残された証拠の調査や確保）や，担当者による内外との連絡，情報公開など，組織内での役割に応じた各種対応手法
を実際に体験することで，知識や技術を効率的に学ぶことができる演習シ
ステムである [5]．
しかし，現在主に使われている商用のサイバーレンジ製品は，高額な導入・維持管理費用が必要で，演習の実施や運用にもセキュリティの専門家や

3

専門の運用管理スタッフの力が必要となる．短期のトレーニングコースの受講にも高額な費用が必要であるなど，演習の環境を整えるのは容易では無く，特にコスト的な制約の大きい高等教育機関でのサイバーレンジの導入は，独力では困難である．
表 1.1 に高等教育機関でのサイバーレンジ演習を伴うセキュリティ教育の取り組みの例を示す．
表 1.1: 高等教育機関のセキュリティ教育の取り組み例
名称
東京工業大学内容

備考

サイバーセキュリティ特別

野村総研，楽天，NTT，専門学修プログラムとして， 産総研など外部の協力で院生向け講座を設置

講座や演習を実施

東京電気大学

上級エンジニアを目指す

学内教員の他外部企業等のSySec

社会人や院生向けコース

講師によるオムニバス形式

情報セキュリティ
大学院大学
会津大学

在学生を対象とした講義と企業支援による演習の実施
社会人向けの高度な知識・

ネットワン，シマンテック等技術習得のための企業による企画・運営およびサイバー攻撃対策演習

演習の実施

学部生および院生向け

enPiT

コースを複数大学で展開．
社会人向けコースも設置．

国立高専機構K-SEC

DNP が展開するセキュリティ
教育事業と協業による
サイバーレンジ演習を実施

学内教員の他外部企業等の講師による講義や演習の実施

学生向けカリキュラムの企業や大学，自治体等と協業で作成や教員養成など様々な講座やカリキュラムの策定や人材育成活動を展開

教材作り等を実施

セキュリティ人材の不足を解消するために，さまざまな大学や高等専門学校などでサイバーレンジを用いたセキュリティ教育の取り組みが行われているが，セキュリティを専門とする教員の不足やコスト面の制約などさ
まざまな課題があり，独力のサイバーレンジの導入・維持管理は難しく，専門機関や企業との協業によって実施されている．サイバーレンジによる演習の教育効果の高さは認識されているものの，普及は一部にとどまっているのが現状である．

1.3

研究の目的
本研究は，セキュリティ人材の不足に対応するため，特に独力でサイバーレンジ演習を伴うセキュリティ教育が困難である高等教育機関に対して，広く普及が可能なサイバーレンジを提案して普及を促す．これにより，効率的なセキュリティ教育の実施を可能とし，不足するセキュリティ人材の育成

4

機会を増加することを目的とする．
サイバーレンジは，シナリオ（演習で取り扱う攻撃・防御・検知などの流れや，その実施環境）の内容により受講者の目的やレベルに合わせた演習が実施でき，多くの対象に効率的で教育効果の高いセキュリティ教育の機会を提供できる．ただし，現在利用されているサイバーレンジは，ハイレベルなセキュリティ専門のエンジニア養成を主なターゲットとした商用製品であり，高性能なハードウェアを必要とするため，非常に高額な導入・維持管理の費用を要する．また，シナリオ開発も専門的な知識や技術を必要とするため，別途開発の費用が必要であったり，専門家の協力が必要である．そのため，それらを容易に準備できない高等教育機関ではサイバーレンジの導入・利用が進んでおらず，基礎および中級レベルの人材育成を行うセキュリティ教育が十分に行われず，社会全体のセキュリティ人材の不足が解消していない．
不足するセキュリティ人材の育成を考えると，情報系・工学系など専門の学部学科以外も含め，多くの高等教育機関でサイバーレンジを導入し，基礎から中級レベルまでのセキュリティ人材育成を効率的に実施できることが求められる．そのため，人的・経済的負担の大きい商用のサイバーレン
ジ製品をそのまま利用するのではなく，高等教育機関でも独力で導入・維持管理が可能なサイバーレンジシステムを検討して提案することで，多くの学生へセキュリティ教育の機会の提供する．

1.4

研究対象
現在主に使われている商用のサイバーレンジ製品では，セキュリティの専門家の育成や，CSIRT など企業のセキュリティ担当となる人員のインシデント対応訓練による高度な人材の育成を想定した演習が行われる．そのため，高等教育機関で想定される主な演習の目的や，対象とするレベルとは内容が異なる．
表 1.2 に，商用のサイバーレンジ製品による演習環境と高等教育機関で行われている情報セキュリティ演習環境の違いを示す．
表 1.2: 商用サイバーレンジと高等教育機関向け情報セキュリティ演習環境
の違い

ハード
ウェア

商用サイバーレンジ製品

高等教育機関向け環境

サイバーレンジ専用の限られた性能のハードウェアや高性能ハードウェアと演習室等の既存機器との共存，

仮想化プラットフォーム

個人 PC 上での環境構築

5

MS Windows/Oﬃce など有償
ソフトや実際のセキュリティ
製品の利用で忠実な再現

Linux/UNIX や OSS の無償
ツール，仮想化ソフト等により攻撃や脆弱性を再現した環境

セキュリティの専門家・

セキュリティを専門に学ぶ学生や

高度エンジニアの育成や情報系・工学系学部の専門教育，

SOC/CSIRT 要員の訓練

および幅広い対象への基礎教育

演習

実際のインシデントを再現し，攻撃手法や脆弱性を再現した

内容

役割に応じたリアルな対応演習

個別および複数の体験演習

演習
環境

対象

商用のサイバーレンジ製品では，多くの仮想インスタンスが動作可能な
高性能なハードウェアやセキュリティアプライアンスを用いて，実際の企業や組織で使われているシステム環境を忠実に再現し，シミュレーション
形式によるリアルなセキュリティインシデント対応演習が可能である．エンジニアが実際に使うツールやセキュリティ機器の操作により技術を向上させたり，担当者が外部との連絡や公表などのプロセスを体験することで，実業務に直結する知識や技術を身につけることを目的としている．
一方，高等教育機関向けの情報セキュリティ演習は，一定の予算内でのハードウェアの導入や，既に導入済みの既存システムとの共存などのほか，演習を受講する学生の個人の PC 上での環境構築など，限られた性能の中で演習環境を準備する．実社会で実際に使われているような有償のツール・
ソフトウェアやセキュリティ製品を利用して，その手順や操作方法を学習することが目的ではなく，無償の OS や各種 OSS（オープンソース製品）などを利用し，さまざまな攻撃手法や脆弱性を個別もしくは複数組み合わせて再現することで，体験を通してその原理や仕組みを理解し，あらゆるセ
キュリティインシデントに広く対応できる能力の育成を目的とする．
一部の高等教育機関でサイバーレンジが導入されている例では，担当の教員や外部のセキュリティ専門家などにより専用の演習シナリオを開発し，目的やレベルを調整するなどして，学生に向けた演習を実施している．そのため，ハードウェアや演習環境が用意できても，シナリオ開発の困難さ
や，同じシナリオの使い回し，シナリオの漏洩や知識・技術の悪用への対策など，多くの課題がある．
また，サイバーレンジには，演習の効果や運用の利便性を向上させるた
めのさまざまな機能が備わっており，それらは高等教育機関向けの演習でも有効に活用されるべきであるが，商用のサイバーレンジ製品をそのまま利用し普及させるのは困難であるため，高等教育機関でも広く普及可能で，教育効果を高めることが可能なサイバーレンジが必要である．
本研究では，これらの課題に対応した上で，教育効果が高く広く普及が可能な高等教育機関向けのサイバーレンジを研究対象とする．

6

1.5

論文の構成
本論文では，まず第 2 章においてサイバーレンジに関する調査について述べる．高等教育機関でセキュリティ教育に使われている既存の演習環境に関する調査と，実際に行われているさまざまなサイバーレンジ演習について調査することで，高等教育機関のサイバーレンジに必要な内容を整理し，さらにサイバーレンジに必須となる仮想化技術について調査した上で，高等教育機関向けのサイバーレンジに必要な機能と課題を確認する．
第 3 章および第 4 章では，第 2 章で確認した課題を解決するため，コンテナ型仮想化を使ったサイバーレンジが，高等教育機関で広く普及が可能なシステムであることを検証する．
まず第 3 章では，コンテナ型のサイバーレンジが，他の仮想化方式によるサイバーレンジと比較してどの程度性能面の優位性を発揮できるかを定
量的に確認するために，各仮想化方式で構築したサイバーレンジ実験環境において，実際の演習を想定した比較実験を行う．
次に第 4 章では，コンテナ型のサイバーレンジが，他の仮想化方式と遜色なく脆弱性を再現でき，さまざまなセキュリティインシデントを再現した演習が実行可能であることを，網羅的な実験により確認する．
第 5 章では，サイバーレンジの中心的な機能となるシナリオ面の課題に対応するために検討した，DAG ベースのランダムシナリオ開発手法について述べる．また，それを基に，第 3 章や第 4 章で確認したコンテナ型仮想化の性能を活用し，ランダムシナリオの演習環境を自動構築する CyExec∗（サイゼック・スター）の開発について述べる．
第 6 章では，開発した CyExec∗ が，高等教育機関で広く普及が可能であることを確認するため，第 2 章で確認した高等教育機関に向けたサイバー
レンジに必要な機能について，既存の演習環境と比較しつつ有効性を確認する．また，コンテナ型仮想化の性能を正しく発揮できる高性能なシステ
ムであることを確認するため，シナリオランダム化機能を搭載した他の仮想化方式によるシステムとの性能比較を行う．
最後に第 7 章で，結論および今後の展望について述べる．

7

第2章
サイバーレンジに関する調査

本章では，既存の情報セキュリティ演習環境に関する研究事例の調査と，実際に行われているサイバーレンジ演習に関する調査，および，演習環境構築に必須となる仮想化技術に関する調査について述べる．情報セキュリ
ティ演習環境や演習における教育効果，求められる事項を整理し，教育機
関向けサイバーレンジで確認・検討すべき内容を明確にする．

2.1

既存の研究の調査
現在高等教育機関での情報セキュリティ教育に使われている演習システ

ムは，ゲーム形式で楽しみながら情報セキュリティの知識を学ぶものや，教育・訓練目的で用意した環境で実践的な内容を学ぶものがある [6, 7]．
図 2.1 に，演習形式の種類と，既存の研究事例や公開されている演習環境の例を示す．

図 2.1: 演習形式の種類と研究例

CTF（Capture the Flag）は，用意された演習環境に対して，暗号やバイナリ解析などセキュリティに関する知識や技術を用いて得ることができ8

る回答（フラグ）を得るクイズ形式の演習で，初心者から楽しめる問題も多く作られているため，情報セキュリティ教育の入門的に使われることが多い演習システムである．上級者向けに高難易度の問題も作られており，世界中で大会が開催されるなど，競技としても人気を集めている．

Lab work（脆弱性体験演習）は，特定の攻撃手法や脆弱性を再現できる演習環境を構築し，実際に体験することで知識や技術を効率的に学習する演習形式である．主に個人のクライアント PC 上で個別の攻撃手法や脆弱性を再現し，その発生原理や仕組みを学習する．
サイバーレンジは，現実のシステム環境を模して再現された仮想環境上で，サイバー空間における攻撃や防御の手法を，実際の操作を伴って学ぶことができるシステムの総称として使われ，個人学習からチームに分かれた大規模な演習環境までを構築・運用できるシステムであり，セキュリティ
インシデントの体験を通して知識や技術，対応手法を学ぶ統合演習環境である [5]．
表 2.1 に，各演習環境の特徴を示す．
表 2.1: 各情報セキュリティ演習環境の特徴と例
演習形式

主な内容

Flag を仕込んだ環境でCTF

クイズ・ゲーム形式で基礎知識を学習する
個別の攻撃や脆弱性を

Lab work 体験して学習できる

例

対象

・PicoCTF

個人 PC

・SecGen

クラウド

・SEEDs Lab
・Labtainers
・Webgoat

ハンズオン環境

個人 PC

・Appgoat

現実の環境を再現した
サイバー

セキュリティインシデント ・CyTrONE

個人 PC

レンジ

体験や，演習の管理・運用 ・CyExec

専用サーバのためのさまざまな機能
現在高等教育機関で利用されている情報セキュリティの演習環境は，主に Lab work を利用した個人での学習を目的としており，個別の PC 上に演習環境を構築し，演習を実施する．サイバーレンジは．Lab work のような個人学習だけでなく，授業等で集団で行うチーム演習も想定した大規模演
習環境の再現が可能で，サーバ上で構築された環境に各自が接続し，役割に応じた操作や行動を伴うインシデント対応演習を行う．そのため，攻撃や脆弱性の再現のみではなく，演習環境の複製や一斉起動，演習の進捗管理やチーム内での情報共有など，演習の管理や運用に関するさまざまな機
能がある．

9

CTF や Lab work として研究されている環境は，公開され自由に利用できるものが多いが，サイバーレンジの研究で公開されているものは少なく，専門の企業等による商用製品の利用が一般的となっている．

2.1.1

CTF

picoCTF
picoCTF は，ゲーム感覚で利用が可能な CTF プラットフォームで，主に中高生向けのコンテストが毎年開催されるなど，世界中にユーザを持つ教育コンテンツとして利用されている．様々なセキュリティに関する知識を駆使して課題を解決し，フラグを獲得することを通して，セキュリティの知識や技術を学ぶことができる．
大会等の実施の場合は，クラウド上に作られた環境にアクセスして行われているが，過去の問題は公開されローカル PC の環境上に構築することも可能で，Vagrant，Virtualbox，Ansible 等により環境を自動構築し，課題に取り組むことが可能である [8]．

picoCTF の動作画面を図 2.2 に示す．

図 2.2: picoCTF の画面例

picoCTF は，難易度は低めに設定されているが設問数が多く，セキュリ
ティに関する知識を段階的に使って問題を解き進めていけるため，セキュリ
ティ技術習得の入門や基礎確認として利用することができる．ただし，課題は固定されたものであり，独自に変更や追加を行うことは難しい．そのため，繰り返しの利用には向かないほか，ネット上の書き込みなどによる解法の流出も多数あり，高等教育機関での教育用途よりは，趣味や自主的な学習目的で使われている．

10

SecGen
SecGen（Security Scenario Generator）は，ランダム化されたシナリオに基づいて仮想マシン環境を構築することができる CTF 環境構築システム
である．動的に課題を生成することができるアーキテクチャや，初心者のセキュリティ学習者が複雑な課題に取り組む際のヒント生成システムを備え，CTF イベントだけでなく高等教育機関のカリキュラムでも使用されている例もある [9]．

SecGen のアーキテクチャを図 2.3 に示す．

図 2.3: SecGen のアーキテクチャ

SecGen は，シナリオのランダム化により多くの演習用環境を生成できるため，シナリオ開発の難しさを解消し，多くのシナリオを容易に提供できるシステムとして利用することができる．同じ学習目的のシナリオでも，ネットワーク構成や OS の種類，一部で使われている脆弱性が変更されるなど，異なるアプローチが必要な別の環境を提供でき，演習を手順として覚えるのではなく本質的な原因の理解や対応手法を学ぶ高等教育機関向けの演習システムとして利用できる．
ただし，環境構築の際は ruby で作られたモジュールと Vagrant を用いて Virtualbox の仮想マシンを自動生成するため，ruby の利用ライブラリのバージョンや Vagrant の環境設定の不整合などにより，マニュアル通りにインストールができないなどの問題があり，導入や運用のハードルが高い．
ソースも公開されているためシナリオの変更や追加も可能だが，独自仕様の設定を理解した上で，ruby や Vagrant なども含めた総合的な環境のメ
ンテナンスが必要で，動作するクライアント PC ごとの個別の対応が必要になるなど，管理も煩雑になるため，高等教育機関で統一した演習プラット
フォームとして利用することは難しい．

11

2.1.2Lab Work

SEED Labs
SEED Labs は，セキュリティの様々な攻撃手法や脆弱性を再現可能なラボ環境を教育用に公開しており，教育機関のカリキュラムとしても利用可
能なように講師用コンテンツや動画なども用意され，セキュリティ教育用のプラットフォームとして利用できる [10]．
図 2.4 に，SEED Labs の演習画面を示す．

図 2.4: SEED Labs の演習画面

SEED Labs は，ソフトウェア・セキュリティ，システム・セキュリティ，ネットワーク・セキュリティ，Web セキュリティ，アクセス制御，認証，暗号などのトピック毎に，あらかじめ用意された Ubuntu や Minix ベースのVirtualbox 仮想マシンを，学習者が自身の PC 上にインポートして演習環境を準備する．内容を解説した動画やドキュメントも充実しているため，完成度が高いコンテンツとして教育用途でも使われている．
ただし，コンテンツごとに仮想マシンを手動で入れ替えて利用するなど．
都度環境の移植・展開を実施する必要があり，仮想マシンも大きなもので数

GB の容量を持つため，環境の移植性に課題がある．
最近では仮想マシンの容量の大きさやホスト機器への負荷の高さを考慮し，Docker によるコンテナ型仮想化を利用した演習環境のバージョンも公開されたため，コピーやダウンロードの負担が一部軽減された．

Labtainers
Labtainers は，SEEDs Labs と同様に，個人の PC で使用することを目的としたスタンドアロン型のサイバーセキュリティ実習の作成，展開，評12

価を簡素化するフレームワークで，Docker によるコンテナ型仮想化を使って実装されている [11]．
図 2.5 に Labtainers の演習画面を示す．

図 2.5: Labtainers の演習画面
個別の学習結果を講師が評価できる仕組みも備えているなど，演習や学習者の進捗管理を重視しており，教育機関での集合型の演習も想定したプ
ラットフォームとして公開されている．ただし，用意されている演習内容は基本的に CLI の操作が必須で，攻撃手法・脆弱性に関する知識の他，Linux
コマンドなど一定の知識を要する．管理者用の構築・運用管理マニュアルも公開されており，Docker コンテナの変更や独自の設定項目を操作することにより，一部で内容の変更や追加も可能である．

WebGoat
WebGoat は，OWASP（Open Web Application Security Project）が提供する体験型セキュリティ教育システムであり，わざと脆弱に作られたウェ
ブアプリケーションとそのウェブアプリケーションを使って脆弱性を学ぶための問題で構成されている．問題に沿って脆弱なウェブアプリケーション
を擬似攻撃することで，ウェブアプリケーションの脆弱性を学ぶことを目的としている [12]．
図 2.6 に WebGoat の演習画面を示す．

WebGoat は JAVA アプリケーションの他，最新バージョンでは Docker
コンテナでも提供されている．また，攻撃体験用の WebWolf も提供され，Web アプリケーションの脆弱性を学ぶ統合的環境として利用できる．ただし，開発は OWASP により行われるため，システムの更新や新たなコンテ
ンツの追加には OWASP によるバージョンの更新を待たねばならず，時間がかかる場合がある．

13

図 2.6: WebGoat の演習画面

AppGoat
AppGoat は，情報処理推進機構（IPA）が提供する，脆弱性の概要や対策方法等の脆弱性に関する基礎的な知識を実習形式で体系的に学べる脆弱性体験学習ツールである．学習テーマ毎に用意された演習問題に対して，埋め込まれた脆弱性の発見やプログラミング上の問題点の把握，対策手法の学習を対話的に実施できる [13]．
図 2.7 に Appgoat の概要を示す．

図 2.7: AppGoat の概要

AppGoat には，各脆弱性毎に複数の学習テーマがあり，各学習テーマを順に学習することで脆弱性に対する理解を深めることができる．集合学習
用のコンテンツや，授業で利用できるドキュメント類も用意され，高等教育機関での講義や組織の社内教育向けセミナー等でも利用できるが，コンテンツの開発・更新は IPA が管理しているため，独自のコンテンツの追加はできない．

14

2.1.3

サイバーレンジ

CyTrONE
CyTrONE は，サイバーレンジの演習環境を自動生成し，LMS（Learning
Management System）との連携も可能な統合演習環境プラットフォームとして研究・開発が進められている [5]．
図 2.8 に CyTrONE のアーキテクチャを示す．

図 2.8: CyTrONE のアーキテクチャ

CyTrONE は構築手順書も公開されており，特別な知識がなくても複数人が学べる演習環境を構築できるが，受講者が増えるほど多くの仮想マシンが動作するため，高等教育機関等で多くの受講者が対象となる演習環境を構築するには，高性能な専用サーバが必要である．
図 2.9 に，CyTrONE の構成を示す．

図 2.9: CyTrONE の構成図
専用サーバ上への演習環境の準備や，学習管理用の仮想マシンの動作，その他にネットワーク隔離用のゲートウェイ用機器などを準備し，それぞれに必要なソフトウェアや専用モジュールをインストールして演習環境を動作させる．また，サンプルの演習シナリオが用意されているが，個別学習用にコマンドベースで学ぶコンテンツであり，シナリオの追加や変更は別途開発が必要である．

15

CyExec
CyExec は，Docker によるコンテナ型仮想化をベースにした，軽量で移植性が高く容易に導入可能な演習環境を目指したプラットフォームである．
図 2.10 に CyExec の演習画面を示す．

図 2.10: CyExec の演習画面
基礎演習コンテンツとして，WebGoat を演習コンテンツに導入するな
ど，Lab work 形式の個別演習環境としても利用できる．また，企業ネット
ワークを再現した応用演習コンテンツも用意し，サイバーレンジ演習の機能を汎用的に利用できる他，中小企業や教育機関などによる共同開発・共同利用をコンセプトにしたエコシステムとしての普及を目指している．
図 2.11 に，CyExec のアーキテクチャを示す．

図 2.11: CyExec のアーキテクチャ
攻撃や防御の演習プログラムをコンテナで実装し，演習環境の基盤は個人 PC 上への移植を容易にできるように Virtualbox の仮想マシンで実装さ16れているが，コンテナのプラットフォームとして利用している Docker のマ
ルチプラットフォーム化も進んでおり，コンテナのみでより軽量な実行環
境を利用することも可能である．
副教材となるドキュメント類も用意するなど，高等教育機関のカリキュラムの中で使いやすい環境を意識してコンテンツを整えている．また，大規模ネットワーク環境を想定した応用演習のサンプルシナリオもあるが，その他のシナリオ開発が進まず，教育効果の検証を兼ねて一部で演習を実施した他，一部の高等教育機関での利用に留まっている．

2.1.4

演習環境の開発

演習用に公開されたシステムの利用だけではなく，その他の様々なコン
テンツ，テスト用の環境などを利用し，独自に情報セキュリティ演習用の環境を作成した教育・研究が行われている [14]．
表 2.2 に，演習環境構築に広く使われているツール・コンテンツ等の例を示す．
表 2.2: 演習環境開発に利用されるツール・コンテンツの例
名称概要
ホスト OS 上で別の OS を実行できる

仮想化

Virtualbox

仮想化ソフトウェア． 対応フォーマット
が多く，広く使われている．
多くの組織や企業でも使われる統合仮想化

VMWareプラットフォーム．個人・教育用途で無償利用可能な VMWare Player がある．
ペネトレーションテストにKali linux

利用可能な多くのツール・ソフト
が組み込まれた OS．

OS
Metasploitable
OwaspBWA

わざと脆弱性を持たせたサーバ．
複数のバージョンが存在する．
脆弱な Web アプリケーションが複数利用可能な OS．
侵入検知やネットワーク監視，

SecurityOnion

ログ管理など様々なモニタリング
ツールが組み込まれた OS．

OpenVAS
各種ツール

脆弱性のスキャンや管理が可能な検査ツール．
脆弱性を検出し，リスクの数値化やInsightVM

可視化による総合的管理が可能な
ツール．

17

OWASP ZAP

BurpSuite

Metasploit
Webgoat
脆弱 Web

DVWA
BadStoregoogle gruyere

Web アプリケーションの脆弱性診断や対応方法の確認が可能な診断ツール．
Web アプリケーションのセキュリティテストが可能な
統合プラットフォーム．
exploit コードの作成や実行を行うためのフレームワーク．
Web アプリケーションの脆弱性を段階的に学べる教育システム．
わざと多くの脆弱性を含んだWeb アプリケーション．
脆弱性診断練習用の Web アプリ．
BurpSuite の拡張コンテンツとして利用．
脆弱性の発見や対応方法の学習サイト．
ローカルにインストールして利用も可能．

攻撃や検査のためのツールを多く含んだり，わざと多くの脆弱性を含むOS として動作するイメージの他，脆弱性検査など特定の用途のためにインストールして利用可能なツール，単体でも Lab work として利用可能な，脆弱な Web アプリケーションや Web アプリ群など，演習環境の構築に利用可
能な様々なコンテンツが公開されている．
この他にも多くの脆弱なイメージやコンテンツなどが公開されており，一定の知識・技術が必要となるが自由に演習環境を構築し，シナリオを開発して演習コンテンツを準備できるため，多くの研究や授業等で利用され
ている．

2.1.5

既存研究の調査のまとめ

現在高等教育機関で利用されている CTF や Lab work による演習は，多くが仮想マシン上に構築済みの演習環境を個人 PC 上に移植して行われている．公開されている仮想マシンイメージは演習の内容により数 GB〜数十

GB の容量を持つため，コピーや入れ替えなどに時間を要し，授業など限られた時間内で演習を行わなければならない高等教育機関では，運用面の負担が大きい．
また，一部の演習環境の構築には，仮想化プラットフォームだけではな
く Vagrant などの環境自動構築ツールや，それらを動作させる様々なソフ
トウェア等を利用している．これらの自動化環境は，動作に問題がなければ容易に演習環境を構築できるが，PC の OS のバージョンや各ツール間のバージョンの整合性，利用モジュールの有無など様々な条件に左右されやすく，環境構築が容易ではない．

18

さまざまな演習システムの公開や，これらを用いた教育効果の研究などが行われており，サイバーレンジ環境として必要な機能や参考となるコン
テンツもあるが，攻撃手法や脆弱性を個別に再現して体験するシナリオが中心であり，実際の攻撃をリアルに再現したセキュリティインシデントのように，連続して複数の状態を想定したり，チームで演習を実施し，検知や対応手法を学べるコンテンツは少ない．そのため，独自に演習環境を構築したり，公開されている演習システムを一部拡張して利用している例もあるが，サイバーレンジ製品のように演習を便利に行う機能や教育効果を向上させる機能が不足し，準備や運用，評価などあらゆる作業に手間がかかるため，教員や担当者の負担が大きい．
演習の実態調査

2.2

実際にサイバーレンジを使って行われた演習に関して調査を行い，その機能や教育効果について確認する．また，それらを踏まえて高等教育機関
で効果的な演習を実施するために必要な内容を確認する．

2.2.1

情報セキュリティ大学院大学 実践サイバーレンジ演習

情報セキュリティ大学院大学で行われた実践サイバーレンジ演習は，社会人向けのサイバーセキュリティ人材育成コース（enPiT ProSec）の一環として行われた．参加者は，実際に情報セキュリティを業務とする専門家で構成されたチームや，情報セキュリティ大学院大学でセキュリティに関する知識を学んでいる学生などである．

DNP 子会社であるサイバーナレッジアカデミーの協力の下，3 日間 15units（1unit=90 分）の演習コースで行われ，イスラエル IAI 社開発のサイバーレ
ンジシステム TAME Range で再現された演習用仮想環境にリモートで接続
し，演習で利用するツールおよびセキュリティ機器の操作説明の後に，実例に基づく攻撃シナリオを再現したリアルなサイバー防御演習が実施された．
図 2.12 に，演習後に学生を対象に行われたアンケートの結果を示す．

図 2.12: 実践サイバーレンジ演習の内容に関するアンケート結果

19特に興味，実践に役立つ有益さの項目についての評価の高さが確認できた．実践的でリアリティの高いサイバーレンジ演習の効果が発揮されている．
表 2.3 に，自由記述による回答の要約を示す．
表 2.3: 実践サイバーレンジ演習のアンケート結果• 実際に使われるツールの操作
身についた
内容

• 調査の手順や根拠となる事項• 講義ではわからない実際の動き• セキュリティ製品の操作• ログ分析の方法• メンバーの役割の徹底• 前提知識の明確化

改善すべき• 受講者のレベルの統一

事項• 演習環境の処理の重さ• 他チームの状況の漏洩• Windows 以外の環境が必要

追加すべき
シナリオ

• 繰り返し実施できるシナリオ• 復習可能なシナリオ• 複数の攻撃の複合• リアルな体験が非常に有意義• リアルタイムの対応が緊張感があり有効

感想• 時間が全く足りない• 一連の流れが体験できたのが良い• 振り返りの後にも演習環境で確認したい• 他のチームより早く解明したくなる

実践的な知識や技術が身についた他，さらなる受講を希望する感想もあり，有意義な演習になったことが窺える．
改善すべき事項として，演習環境の処理の重さが挙げられていた．今回の演習環境は，クライアントやサーバ，セキュリティ機器などを再現したシナリオで，1 チーム約 15 台の仮想マシンで構成された環境を 5 チームが利用しており，VPN でインターネット越しに演習環境へ接続していた．特にセキュリティ機器は商用のファイアウォール製品が使われるなど，リア
リティは高いが仮想環境への負荷が高いものが多く，受講者が操作するク
ライアント PC へのリソースの割り当てが低くならざるを得ず，体感するほどの遅延となったと思われる．
また，他チームの情報・状況の漏洩も注目すべき事項である．メンバーの役割の徹底や前提知識の明確化，受講者レベルの統一といった点は，演習の運用面で回避できる可能性もあるが，演習の場所などの実施環境は変20

えるのが困難な場合が多く，集合して演習を行う場合は他チームの進行がわかってしまい，教育効果が低下するリスクが発生する．特に高等教育機
関で演習を実施する場合は，特定の教室や機器設備を利用して集合演習を行う可能性が高く，複数回の演習を実施する可能性もあるため，目的にあった演習シナリオを用意し，演習実施の際の内容の漏洩にも気を付けるなど，
シナリオ面の課題を考慮しなければならない．
全体的には，リアルな攻撃を体験できる貴重なインシデント対応演習の機会として，サイバーレンジが高い教育効果が得られる有効な演習システ
ムであることを確認できる貴重な機会となった．

2.2.2

私立大学情報教育協会

情報セキュリティ研究講習会

私立大学情報教育協会（JUCE）は，全国の私立大学向けに毎年セキュリティに関する講習会を実施しており，その中でサイバーレンジシステム

CyExec を使ったインシデント対応演習を実施した．
図 2.13 に演習の様子を示す．

図 2.13: 講習会の様子
演習は，会場となった大学のコンピュータ演習室の環境を借りて実施した．実施前日にネットブートシステムのマスタイメージを作成し，演習環境を全ての PC に配布して起動した．
構築した演習環境を図 2.14 に示す．

CyExec のサンプルシナリオとして用意されている「Web サーバへの不正アクセス」を用いて，攻撃の実施から防御の一連の流れを，ペアワークも交えて体験することで，インシデント対応方法を学習した．仮想インス
タンス（コンテナ）が 6 つの，比較的多くのネットワーク構成を再現した環境である．高等教育機関でよく使われている VirtualBox などによるホス21

図 2.14: CyExec 演習環境の構成
ト型仮想化の仮想マシンで演習環境を構築する方法もあるが，容量が増えてしまうため環境の配布に時間がかかるほか，マスタイメージ作成の際のサーバ容量への負担も考えられる．また，仮想マシンの増加はホスト機への負担も大きく，快適な演習環境を提供するのが難しい．CyExec はコンテ
ナを使うことで移植性が高く軽量な実行環境を実現しており，前日からの準備でも滞りなく快適な演習環境を提供することができた．
演習の受講者は，全国の私立大学の情報部門の担当者や関係する教員な
ど，約 30 名である．
表 2.4 に演習後に実施したアンケートの内容を示す．
表 2.4: 講習会アンケートの内容

No

設問内容

回答方法

Q1

目的・目標が示されていた

0〜10 で評価

Q2

難易度は適切であった

同上

Q3

学習量が適切であった

同上

Q4

学習範囲は適切であった

同上

Q5

目的を達成できる内容であった

同上

Q6

説明は簡潔でわかりやすかった

同上

Q7

講師の話は適切であった

同上

Q8

演習の時間管理は適切であった

同上

Q9

教材は内容理解に役立った

同上

Q10 周囲の方々へ受講を勧めたい
-

その他

同上
自由記述

22

演習の効果を検証するための内容や教材に関する設問の他，CyExec の普及や継続利用の可能性を確認するため，マーケティングで用いられる手法である NPS（Net Promoter Score）の算出方法を参考にし，周囲へ勧める可能性を問う設問を含めた 11 段階の評価と自由記述への回答を求めた．
図 2.15 にアンケートの結果を示す．

図 2.15: アンケートの結果
全体でかなり高い評価を得た．特に，Q10 の回答から求めた NPS（回答ごとに，9・10 を推奨者，7・8 を中立者，6 以下を批判者とし，推奨者-批判者の割合で算出）は 61.9 と高いスコアを示した．多くの受講者が，今回の演習の効果を高く評価し，他の人にも受講を進めたいと考えたことがわ
かった．
また，自由記述への回答内容を以下に示す．

• 実際の攻撃とその痕跡を見ることができ，大変参考になった．
• 実践的で臨場感があり，特に攻撃側の体験は貴重で効果があったと思う．防御側の演習ももっと体験してみたい．

• ツールと基本的なコマンドだけで情報漏えいに繋がる可能性があることに恐怖を覚えた．

• 講師の進行が分かりやすく，トピックの入れ方も良かった．
• セキュリティ人材育成での演習システムの重要性を感じた．
• 演習を部署のメンバにも体験してもらい，スキルアップや意識の向上にも役立てたい．
臨場感でリアリティの高い内容が体験できたことが，高い評価に繋がったことが伺える．また，演習システムの重要性も伝わり，システムの導入に関わる方々の視点からも高い評価が得られた．

23

今回はトータルで 4 時間程度の演習であり，サイバーレンジ演習としてはかなり短いコンテンツであったが，演習規模を柔軟に設定し，うまく演習室の環境を利用できたことで滞りなく演習を実施できた．特に，新たなサーバ機器やその他ハードウェアを準備せず，演習室の環境で既に稼働している PC やサーバを活用して演習が実施できたことで，教育機関での普及の可能性を強く確認できた．

CyExec を利用した演習は他の高等教育機関でも数回実施され，有効性の確認や，Windows 環境だけでなく MacOS 上でも動作を確認するなど，汎用性が確認できた．演習コンテンツの開発や共同利用を進めるため，複数の高等教育機関での利用コミュニティの拡大を目指しているが，演習コン
テンツの開発が進んでおらず，CyTrONE と同様にサンプルシナリオのみの提供となっている．

2.2.3

情報通信研究機構 CYDER（実践的サイバー防御演習）

CYDER は，情報通信研究機構（NICT）のナショナルサイバートレー
ニングセンターによって開発・実施されている実践的サイバー防御演習で，国や政府機関・自治体および重要インフラ事業者を対象に実施されていたが，現在は対象を拡大し，一般企業や教育機関などを対象にしたコースも実施されている [15]．
図 2.16 に cyder の実施環境の概要を示す．

図 2.16: CYDER の演習実施環境の概要
演習内容はいくつかのレベルに分かれているが内容は固定されており，受講者は大規模・高性能なデータセンタに構築された仮想の演習環境に，VPNを使ってインターネット経由でリモートで接続した状態で端末を操作し，インシデント対応を体験して学習する．また，専門のチューターやファシリテーターによるサポートによって演習が実施されている．
演習内容はさまざまな実際のインシデントをリアルに反映して作られて24

おり，年度ごとに違った内容のシナリオを開発しているため，常に高い教育効果を得ることができる．また，演習は 3〜4 人のチームで行われ，シナ
リオ上でいくつかのポイントとなる箇所をマイルストーンとしており，到達すると次の状況に進むことができるようになっている．進捗状況が全体で共有されるため，チーム競技的な状況を作り出し，演習意欲を向上する工夫がされている．

CYDER のように毎年新たなシナリオを開発し，さまざまな対象やレベルに対してサイバーレンジ演習が行える環境は高い教育効果をもたらしているが，これらの内容を教育機関などが独力で運用できる環境として広く普及させるには，演習環境の準備やシナリオの開発が安価で容易にできる必要がある．

2.2.4

CKA（サイバーナレッジアカデミー）K-SEC 向け教員養成講座

CKA（サイバーナレッジアカデミー）は，大日本印刷が運営する実践的
サイバー攻撃対策要員の育成アカデミーで，イスラエル IAI 社のサイバー
レンジシステム TAME Range を使った演習コースを開講している．本来は社会人のセキュリティ専門家や担当者向けの講座であるが，K-SEC（国立高等専門学校機構サイバーセキュリティ人材育成事業）の一環として，高専の学生向けに演習を実施するための教員養成のための特別コースを設定
し，演習を実施した．
図 2.17 に，演習の概要を示す．

図 2.17: CKA K-SEC 教員養成向け特別講座の概要
演習内容は，産業制御システムを模した演習環境を利用して，工場で稼25

働するシステムの停止や再起動などを伴う攻撃を体験し，原因や復旧方法，
対応手法を学ぶものである．
有償の PLC（Programmable Logic Controller：工場などで用いられる制御装置）ソフトウェアも使われているため，そのまま学生向けの演習に使うことは難しいが，一部のツールは OSS のソフトウェアや，有償ソフトでも試用版ライセンスを使って演習が実施されており，教育機関向け演習コンテンツの検討にも有意義な内容となった．
演習時には特に，視覚的な変化を伴った演習の内容が注目された．現在公開されている情報セキュリティ演習では，多くが CLI でのコマンド操作を伴うもので，設定状況やログから情報を読み取る力や，コマンド操作な
ど一定の前提知識が必要となるものが多い．しかし，高等教育機関での演習を考慮すると，必ずしも必要な前提知識が備わっていない場合もあり，同じ演習コンテンツを共有して広く利用するには，GUI での直感的な操作や視覚的な体験による効果も重視する必要がある．

2.2.5

演習の実態調査のまとめ

サイバーレンジによる演習は，現在高等教育機関で行われている演習よりも，リアルで複雑なセキュリティインシデントの体験が可能で，効率的で効果の高い演習の実施が可能である．普段体験できないリアリティの高い演習への評価が高く，満足度の高い演習が行われている．
一方で，チームごとに分かれての演習の際など，他のチームの会話や行動などからシナリオの内容が漏洩し，教育効果の低下を招くことも見られた．シナリオ開発は，負担の大きさだけで無く権利問題も発生するなど，多くのシナリオを用意できないことが多いため，同じシナリオの使い回しや漏洩などの課題があり，これらは高等教育機関での演習ではより大きな課
題となる．
ただし，サイバーレンジには環境の準備や実施に関する機能が備わっているため，運用・管理面で講師の負担の軽減や，より教育効果の高い演習を実施できるメリットがある．シナリオ面，および管理面の機能は，サイバーレンジでも特に中心的な機能として活用されている．
なお，一定以上の人数の演習ではサーバの負荷が高くなり，受講者に体感できるほど動作の遅延が発生することもあった．サイバーレンジ用に高性能のサーバが用意されているが，稼働する仮想インスタンスの多さやシナリオの内容によっては高負荷な状況が発生し，演習環境全体へ影響している．
また，サイバーレンジによる演習は，十分な時間を取って行われることが多く，1 日単位など長い時間で利用する演習環境を準備して実施される．
そのため，連続した授業時間の際に別の演習環境を構築するなど，教育機26

関特有の状況は想定されておらず，運用を考慮した対応が必要である．
サイバーレンジと仮想化技術

2.3

サイバーレンジ演習のためにセキュリティインシデントを再現する場合，コストや安全性の問題から，実機を使った環境で行うことは現実的ではな
い．仮想化技術の種類やそれぞれの特徴，既存の研究で使われている仮想化方式などを調査し，高等教育機関向けのサイバーレンジ環境に適切な仮想化方式を検討する．

2.3.1

仮想化方式の種類

サイバーレンジでは仮想化技術による演習環境の再現の他，環境の複製やリセット，入替など，スムーズに演習環境を準備するなど，演習の準備や実施を円滑にするためにも活用する．商用のサイバーレンジや既存の研究による演習システムでは，大きく分けて 3 つの仮想化方式が使われており，それぞれで特徴が異なる．
図 2.18 に，既存のサイバーレンジ製品や研究で使われている仮想化技術の種類と概要を示す．

図 2.18: 物理環境および各仮想化方式の概要
仮想化方式は，ハイパーバイザ型，ホスト型，コンテナ型の 3 つに分けられる．物理環境と異なり，ハードウェア上で直接 OS（オペレーティングシステム）を起動するのではなく，仮想的なコンピュータを構築できるソ27

フトウェア（ハイパーバイザ）がハードウェアを仮想的に割り当て，独立したコンピュータ（仮想インスタンス）として実行することができる．
高等教育機関向けのサイバーレンジでも仮想化技術を用いて演習環境を構築するため，これらの各仮想化方式の特徴を考慮し，適切な方式を検討する必要がある．

2.3.2

各仮想化技術の特徴

ハイパーバイザ型
ハイパーバイザ型の仮想化は，専用に用意したハードウェア上でハイパーバイザと呼ばれるプログラムを動作させ，このハイパーバイザがメモリやCPU リソースを割り当てることで仮想マシンを構築する．ハイパーバイザ
は仮想マシンを動作させることに特化したプログラムであり，ハードウェア
へのアクセスも含め，最も安定した仮想マシンの動作を提供できる．
主なハイパーバイザソフトウェアには，VMWare ESXi や Microsoft Hyper-

V があるが，ライセンスやサポート費用が高額で，大規模な演習環境を構築するためにハードウェア性能を高くするほど，コストも増加する傾向がある．しかし，商用のサイバーレンジ製品では，安定した動作が可能で，環境の複製や展開に関する機能も豊富なハイパーバイザ型の仮想化製品が多く使われている．
ホスト型
ホスト型の仮想化は，ハードウェア上で既に稼働中のオペレーションシ
ステム（ホスト OS）上に，ハイパーバイザの役割を担う専用ソフトウェア
を動作させ，このソフトウェアがメモリや CPU などのハードウェアリソー
スを使用して仮想マシンを動作させる．
ホスト型の仮想化では，ハイパーバイザ型のように専用のプログラムのみが動作しているわけではないので、仮想マシンの動作に別の仮想マシンの動作やホスト OS の動作が影響を与える場合がある．
主なホスト型仮想化ソフトウェアに，Oracle Virtualbox や，VMware

Player がある．無償で導入が可能で手軽に利用できるため，特に研究や教育の場面で使われることが多い．
コンテナ型
コンテナ型の仮想化は他の仮想化方式と異なり，稼働中のホスト OS 上
で，利用する機能に必要なプロセスのみを提供する，コンテナと呼ばれる分離された空間を作り出して動作させる．
図 2.19 に一般的なコンテナの構造を示す．

28

図 2.19: コンテナの構造
コンテナは，ゲスト OS や不必要なプロセスを起動させず，カーネルやその他のプロセスをホスト OS と共有して起動する．そのため，例えば Web
サーバや DB サーバなど，他の仮想化方式による仮想マシンと同等の機能を持つコンテナを構築しても，動作するプロセスは最小限で済むため，ハードウェアリソースの消費を劇的に抑えられる．
通常は 1 つのコンテナに 1 つのプロセスを動作させることが多いが，必要なプロセスを追加して動作させるシステムコンテナと呼ばれる運用も可能である．
なお，仮想マシンのように OS が起動してからサービスが起動するなど，一連の起動プロセスは必要ないため，瞬時に必要な機能が動作する．
ただし，コンテナはホスト OS への依存度が高く，ホスト OS や他のコンテナの動作の影響を受けやすい．また，ゲスト OS が動作しないなど最低限のファイル構成しか持たず，実環境と異なる環境であることが多い．

2.3.3

各仮想化方式によるサイバーレンジの動作の比較

表 2.5 に各仮想化方式の特徴を示す．
表 2.5: 各仮想化方式の特徴
仮想化方式

分離

オーバー

レベル

ヘッド

ゲスト OS

製品/ソフト例

ハイパーバイザ最大大独立して利用• VMware ESXi
• Citrix XenServer• MS Hyper-V

ホスト

大

最大

独立して利用• Virtualbox• Vmware player

コンテナ

小

ホスト OS に小依存• Docker• LXD• OpenVZ

分離レベルは，同じハードウェア上で動作するホスト OS や他の仮想マ

29

シンおよびコンテナからの独立性を表す． 仮想マシンやコンテナ上で負荷の高い処理やトラブルが発生した際に，分離レベルが低いと他の仮想マシンやコンテナへ影響が及ぶ可能性が高い [16]．
オーバーヘッドは，仮想環境上で発生する処理性能の劣化を表す． 仮想マシンを動作させるための仕組みを介してハードウェアへアクセスするため，実機環境と比較した場合に処理性能の劣化が発生する．
それぞれの特徴を踏まえて最適な方式を検討するために，各仮想化方式
でサイバーレンジを構築した際の動作を比較した．
図 2.20 に，ハイパーバイザ型サイバーレンジの動作イメージを示す．

図 2.20: ハイパーバイザ型サイバーレンジの動作イメージ
ハイパーバイザ型のサイバーレンジでは，ハイパーバイザが各仮想マシンを適切に制御し，ハードウェアの安定した演習環境を提供できる．ただし，サイバーレンジ環境では通常，Web サーバや DB サーバ等の役割毎に仮想マシンを動作させる．リアルなインシデントを再現するためには仮想マシンの数が多くなり，ゲスト OS 上の未使用のプロセスなど，必要のない動作も多く発生してしまうため，必要以上にハードウェアリソースを多く消費する [17]．
そのため，ハイパーバイザ型のサイバーレンジは，リアルな環境の再現と高い安定性を誇るが，高性能なハードウェアを必要とし，高コストな環境を招く．
図 2.21 に，ホスト型サイバーレンジの動作イメージを示す．
ホスト型もハイパーバイザ型と同様に，仮想化を制御するソフトウェア
が仮想マシンを動作させ，安定した演習環境を提供できる．ただしホスト型の場合，ハイパーバイザの役割を担うソフトウェアはホスト OS 上のプロ
セスとして動作する．そのため，仮想環境の全てのプロセスは，ホスト OS
を経由してハードウェアのリソースを消費することになり，仮想化ソフト
やホスト OS への負荷は非常に高くなるため，ハイパーバイザ型よりも処理30

図 2.21: ホスト型サイバーレンジの動作イメージが集中し，不安定な状態を招く．
ホスト型仮想化は既に稼働中の OS に環境を構築できるため，既存の環境に影響を与えず手軽に演習環境を構築できる．ただし，サイバーレンジのように多くの仮想マシンを必要とする場合は，ホスト OS や他の仮想マシンを含んで高負荷な状態になり，演習の実施に支障を来たす可能性が高い．
図 2.22 に，コンテナ型サイバーレンジの動作イメージを示す．

図 2.22: コンテナ型サイバーレンジの動作イメージ
コンテナは他の仮想化方式と異なり，必ずしもゲスト OS は必要無く，利用する機能に最低限必要なプロセスをホスト OS から分離させ動作させるため，ゲスト OS の動作が必要な他の方式に比べ必要なプロセス数が大幅に少ない．
ハードウェアへのアクセスはホスト OS 上のカーネルで直接処理されるためオーバーヘッドが少なく，OS の起動・終了プロセスも必要ないなど，

31

軽量で迅速な動作が期待できる [18]．
しかし，コンテナはハイパーバイザ型やホスト型の仮想マシンと異なり，ホスト OS と共有する部分が多いため分離レベルが低く，ホスト OS や他のコンテナの影響を受けやすい．また，コンテナは仮想マシンと大きく構成が異なるため，特定の目的の環境を作ることはできるが，リアルなインシ
デント環境の再現に支障が無いかは明らかではない．
ただし，コンテナの迅速で軽量な動作環境は，多くの仮想インスタンスを必要とするサイバーレンジの環境ではハードウェアリソースを効率的に利用することができ，他の仮想化方式よりも安価なハードウェアでの動作や，既存のサーバ環境との共存など，コストを抑制した環境構築が期待できる．
これまでの多くのサイバーレンジ製品や研究では，主にハイパーバイザ型やホスト型の仮想化ソフトウェアを用い，クライアント端末やサーバ機
器，セキュリティ機器等のシステム環境を再現した仮想環境を構築している [19]． 実機とほぼ変わらない環境が構築できるため，脆弱性や攻撃の再現性が高いが，高性能のハードウェアが必要となり，高コストの一因となっている． また，教育機関や規模の小さな組織・企業等で導入する際は，専用のハードウェアを用意できない場合もあり，サイバーレンジ普及の妨げとなっている．

2.4

サイバーレンジに関する調査のまとめ
各調査の結果から，サイバーレンジの機能として必要となる主な機能を確認した．以下に，各機能とその概要を示す．

• シナリオ：演習で取り扱う攻撃や脆弱性，およびその検知や対応などの一連の流れ，もしくはそれらを再現する環境またはその両方．

• モニタリング：FW（ファイアウォール）や IPS/IDS（不正侵入防止/
検知システム）など，状態監視を行うための機器，およびそれらによるログやアラートなどの情報提供手段．

• チーム・役割：攻撃・防御・管理者などの役割ごとの区分．もしくは
複数人で演習を実施する単位およびその中での役割分担．

• 学習：演習の実施状況や成績、進捗などの把握．
• 管理：演習環境の複製・変更・追加など構築面や，状況の把握・学習者との連絡など，演習を円滑に実施するための様々な機能．

• セキュリティ：演習の実行環境の外部からの隔離など，安全面の配慮
や機能．
これらの内容について，商用のサイバーレンジ製品と，教育機関向けの既存の演習環境での対応状況を比較した内容を表 2.6 に示す．

32

表 2.6: 商用製品と教育機関向けサイバーレンジの機能と対応
商用製品

教育・研究機関向け

高等教育機関向け

ビジネス利用アカデミック利用

サイバーレンジの対応

専門家育成のため，目的やレベルに応じ使い回しや漏洩にシナ

リアルなセキュリ

個別演習のシナリオ

対応する多数のシナリ

リオ

ティインシデントが中心．公開されオを容易に提供するの再現（非公開）追加や変更も可．

手法の検討．

実際に使われている

オープンソースのシナリオを意識してセキュリティ製品．

モニタリングツール

オープンソースの

機能

モニタ
リング
チーム
・役割

FW/IPS/SIEM/EP． を利用．

ツールで対応．

実際のインシデント

複数チームやレスポンスに準じた，
さまざまな役割．
学習目的が重視され学習ており，学習管理は必要とされない．

管理

セキュ
リティ

攻撃・防御の
個人演習中心．

LMS との連携や体系的カリキュラムの検討など学習管理機能が考慮される．

様々な便利機能を仮想化ソフトや有する．運用面やツールに依存．

講師向けの機能も独自の管理機能が多数用意．

ある場合も．

大規模演習に対応できる演習環境構築．
汎用的に利用できる
学習管理機能や進捗管理機能の検討．
大規模な演習や連続した授業にも対応
できる機能が必要．

仮想化ソフトや，

ネットワーク分離やネットワークの分離

各種ツールの管理

別途教育など、商用や演習時の誓約書が必要．学生のサイバーレンジとなどで徹底する．

法的・倫理的教育

変わらない対応が

も必須．

必要．

サイバーレンジは，演習環境の構築やその上で動作する攻撃・防御の演習プログラムを使った演習シナリオが機能の中心となる．商用製品では専門家の育成のためのリアリティの高い演習環境を再現するため，主にハイパーバイザ型の仮想化ソフトを利用して安定した演習環境を構築する．モ
ニタリングやチーム，管理，セキュリティなども仮想化ソフトの機能で一定の機能を補い，さらに独自の機能を追加するなどして演習を円滑に行えるようにしている．
一方高等教育機関向けで行われている演習では，実際のセキュリティ機器を用意したり，様々な役割に応じて操作手順や動きを確認するなどの訓練要素よりも，多くの攻撃手法や脆弱性の体験を通してその仕組みや原理を学習することを目的とする個人学習の演習環境が中心である．シナリオ
やモニタリングなど各種機能は，有償のソフトを使った実現は難しく，無償の仮想化ソフトや，OSS のツール等を用いて環境構築が行われている．
高等教育機関で広く利用が可能なサイバーレンジを実現するためには，

33サイバーレンジに必要な機能を，商用のサイバーレンジと同等にするだけ
ではなく，高等教育機関向けに対応した形で実現・向上させることが必要である．そこで，これまでの調査の結果から，以下の内容を検証・検討することにした．

• コンテナ型サイバーレンジの性能面の優位性• コンテナ型サイバーレンジの脆弱性の再現性• 多くのシナリオを容易に提供できる手法
一部でコンテナ型仮想化を使ったサイバーレンジが研究されているように，コンテナは他の仮想化方式に比べ演習環境のリソース消費の抑制が期待されている．多数のシナリオを同時に実行できる環境や，大人数・大規
模演習の実施に有効であり，迅速な起動や複製・入替も可能となるため，シ
ナリオ面や管理面の機能などへの対応が期待できる．
ただし，コンテナ型仮想化はサイバーレンジ環境で使った場合に具体的にどの程度軽量な演習環境を構築でき，他の仮想化方式に比べて優位性があるのかが明確に示されていない．また，コンテナは他の仮想化方式と大きく特徴が異なるため，仮想マシンと同じように攻撃や脆弱性の再現が可能であるかが不明であり，導入事例やノウハウも仮想マシンに比べて少な
いため，利用の障壁となっている．
また，高い教育効果を得るには環境構築面だけではなく，多くの演習シ
ナリオが必要となる．シナリオの開発は高等教育機関が独力で行うのは困難であり，サイバーレンジを利用できる場合も，限られたシナリオの使い回しや，演習中の漏洩などによる教育効果の低下が課題となっている．
高等教育機関向けに広く普及可能なサイバーレンジを実現するため，コ
ンテナ型仮想化を使ったサイバーレンジの性能面の優位性を定量的に確認し，適切なスケーラビリティを可能にした上で，脆弱性の再現性を明確にし，他の仮想化方式に遜色ないシナリオが実行可能であることを示すことが必要である．さらに，サイバーレンジの機能で特に重要となるシナリオの不足や多くのシナリオを容易に提供できる手法を検討し，高い教育効果が期待できる汎用性の高いサイバーレンジシステムとして提案する．
なお，本論文ではこれ以降，特に説明のない限り「シナリオ」は演習における攻撃や脆弱性，およびその検知や対応などの一連の流れを指し，それらを演習で実行するために仮想化技術を用いて構築する環境とは区別し
て述べる．

34

第3章
コンテナ型サイバーレンジの優位性の検証

本章では，コンテナ型仮想化を使って構築したサイバーレンジ環境が，他の仮想化方式を使った場合と比較してどの程度性能面の優位性があるのかを，実験を通して検証する．これにより，コンテナ型仮想化がサイバーレンジ演習の環境構築において，どの程度効率的にハードウェアを利用可能であるかを明確にでき，かつ，演習の実施に支障なく安定した動作が可能かを示すことができる [20, 21]．

3.1

実験方法
ハイパーバイザ型，ホスト型，コンテナ型の各仮想化方式でサイバーレ

ンジ環境を想定して構築した，同等のシナリオが遂行できる演習環境を，実際に演習を実施する状況を想定して複数動作させ，その際の CPU やメモリ，
ストレージなど，演習環境動作時に必要となるハードウェアリソースの消費量を比較する．
実験環境の概要を図 3.1 に示す．

図 3.1: 実験用サイバーレンジ環境35

少ないハードウェアリソースで演習環境が動作するほうが，性能面で低いハードウェアでも十分な演習が可能であり，コスト面でも優位に演習環境を準備することができる．また，それぞれの環境で起動に要する時間の比較も行う．起動が早いほうが，実際に演習を実施する際にシナリオの準備に時間がかからず，環境の複製や入替などを行った場合にも滞りなく演習が行うことができる． 高等教育機関は決められた授業時間内での演習の実
施や，授業間の少ない時間での環境の入れ替えやリセットなどの準備が必要であり，大規模な演習であるほど，起動の速さは特に重要な要素となる．
実験は，サイバーレンジ演習環境を想定して構築した環境上で，攻撃用端末から負荷の高い脆弱性検査ツールを動作させ，複数の演習環境が同時に高負荷で動作する状況を意図的に生成する．これにより，実際の演習時のように多くの仮想インスタンスが同時に起動し，各サイバーレンジ環境
で多くのプロセスやサービスが動作する状況を再現する．

3.2

実験環境
表 3.1 に，今回の実験に用いたハードウェア，およびソフトウェアの環

境を示す．
表 3.1: サイバーレンジ性能比較実験環境の詳細
方式

プラットフォーム

ハイパー

VMware vSphere

バイザ

Hypervisor 7.0

ホスト

OracleVirtualbox6.1.14

実験用サイバーレンジ環境・調査用端末：Ubuntu18.04
・脆弱サーバ：Metasploitable2
・攻撃端末：Kali linux2019.1
・調査用端末：Ubuntu18.04-デスクトップ GUI の追加
Docker version
コンテナ

19.03.13-ce
build 4484c46-リモート接続設定-ネットワークツールの追加
・脆弱サーバ：tleemcjr/metasploitable2
・攻撃端末：kalilinux/kali-rolling-デスクトップ GUI の追加-リモート接続設定
環境構築に用いた仮想化プラットフォームは，ハイパーバイザ型は VMWare，
ホスト型は Virtualbox，コンテナ型は Docker を用いた． VMWare はハイ
パーバイザ型仮想化ソフトウェアで高いシェアを誇り，市販のサイバーレ
ンジでも多く採用されている．Virtualbox は無償で利用できるホスト型仮想化ソフトウェアで，サイバーレンジをはじめ情報セキュリティ演習環境

36

の研究用途でも広く利用されている．Docker はコンテナ型仮想化プラット
フォームとして，事実上のスタンダードとしてクラウド環境や検証用途などで急速に利用が拡大している．
実験に用いるサイバーレンジ環境は，教育機関での演習を考慮した構成とした．商用のサイバーレンジの場合，有償の OS やセキュリティ機器，各
種ソフトウェア等を用いて，操作や行動も含めたリアリティの高い訓練を想定した環境を構築するが，教育機関攻撃や脆弱性の再現を重視し，Windows
や商用ファイアウォール製品，オフィスソフトなどの高額な製品を用いずにサイバーレンジ環境を実現することで，広く普及が可能な演習環境が実現できる．
実験では，最小限の演習が行えるサイバーレンジ環境を想定し，受講者の操作用端末として Ubuntu が動作する端末と，わざと脆弱性を持たせたテ
スト用環境である Metasploitable2 サーバに加え，攻撃や調査に利用できる
様々なツールがインストールされた kali linux を用意した．これらは全て無償で利用でき，また，ペネトレーションテスト用の環境としても広く知られ，既存の研究でも多く使われている．これら 3 つの OS を動作させた仮想インスタンスの集合を，1 つのサイバーレンジ環境とした．
なお，コンテナで構築した各端末は，デスクトップパッケージやネット
ワークツールをインストールし，ハイパーバイザ型，ホスト型と同様に GUI
操作やネットワークコマンドの実行が可能な環境を用意した．コンテナの動作には必ずしも必要ではないが，他の仮想化方式と同等の操作による比較を実施するためには必須であり，また，実際の演習では GUI 環境を用いることで汎用性が増し，広く普及が可能な環境として利用できるため，実験環境でも同じ条件で比較できるようにした．
これらの各仮想化方式で構築した同等の演習環境を同時に複数動作させ，高負荷な脆弱性検査が可能なツールを利用してわざと高い負荷をかけ，問
題なく安定した動作が可能であることを確認しつつ．起動に要する時間と，全体のハードウェアリソース消費量を計測した．

3.3

実験結果
図 3.2 に，各仮想化方式で演習環境の起動に要した時間の比較結果を示す．
起動時間の計測は，起動指示を出した時間を起点とし，各端末が起動後に，調査用端末にログインが完了してデスクトップ GUI が操作可能になるまでの時間とした．最も起動に時間がかかったのはホスト型の環境であった．
一つ目の環境の起動は 58 秒と早かったが，環境の数が増えるにつれ起動時間も増加し，10 個目の環境では 34 分 42 秒と，非常に長い時間を要した．
ハイパーバイザ型の環境は，一つ目の環境の起動では 1 分 53 秒と最も時間がかかったが，演習環境の数が増えても大幅に起動時間が増えること

37

図 3.2: 演習環境の起動時間比較はなく少しずつの増加にとどまり，10 個目の演習環境が起動する際は 6 分

11 秒であった．
コンテナ型の環境は，OS の起動プロセスが無いため使い始められるまでが非常に早く，一つ目の環境の起動は 6 秒であった．2 つ目の環境以降も大幅に増えることはなく，10 個目の環境で 1 分 27 秒と，他の仮想化方式に比べて圧倒的に早い起動時間となった．
次に，ハードウェアリソースの消費についての比較結果を示す．演習環
境を 10 個まで起動した際の，メモリの消費量，ストレージの消費量，CPUの使用率を計測した．ハイパーバイザ型はVMWare ESXi の管理コンソー

ルに表示される数値でリソース消費量を確認し，ホスト型とコンテナ型は
ホスト OS 上で動作するシステムモニターの観測や，sar コマンドで取得した数値を計測した． それぞれ，環境を起動してツールを動作させ始めてから 10 分経過後の数値で比較した．
メモリ消費量の比較を図 3.3 に示す．

図 3.3: 各仮想化方式ごとのメモリ消費量の比較

38

どの仮想化方式でも，メモリの使用量は環境の数とほぼ比例して増加した．ハイパーバイザ型とホスト型は，起動するサイバーレンジ環境の数が増えても，それぞれほぼ同じメモリ消費量で，1 つの環境ごとに 7〜8GB を消費した． コンテナ型は 1 つの環境ごとに 4GB 弱程度の消費量であり，他の仮想化方式に比べて約半分の消費で済んでいる．コンテナ型の環境では，メモリ消費が大幅に抑えられることがわかった．
次に，ストレージ消費量の比較を図 3.4 に示す．

図 3.4: 各仮想化方式ごとのストレージ消費量の比較
ストレージ容量の消費はハイパーバイザ型とホスト型はほぼ同じだが，コンテナ型はそれらの 1/60 以下に抑えられている．ハイパーバイザ型とホスト型は，仮想マシン上で動いているゲスト OS のイメージは同じであり消費容量も同等であるが，コンテナは必要最小限のファイル構成であるため，大幅にストレージの使用を抑制できることがわかった．
最後に，CPU 使用率の比較を図 3.5 に，示す．

図 3.5: 各仮想化方式ごとの CPU 使用率の比較

CPU の消費は，ハイパーバイザ型が最も少なくホスト型が最も多いが，
39

各仮想化方式で消費量に大きな差は見られなかった． しかし，実際の動作状況は仮想化方式ごとに大きく差が発生しており，ハイパーバイザ型やコンテナ型では演習環境の数が増えても各仮想マシンの起動の遅れや操作の遅延などの影響があまり感じられなかったのに対し，ホスト型では起動の大幅な遅れや起動後の動作の遅延など，演習が正常に操作できないほどの影響が発生した．

3.4

考察
実験の結果，コンテナ型仮想化で構築したサイバーレンジ環境が，他の仮想化方式で構築した同等のサイバーレンジ環境と比較して性能面でどの程度優位であるかを確認できた．
まず起動時間の比較については，コンテナ型では通常の OS 起動プロセスが無いため，非常に短時間で環境が起動して操作が可能になった．また，演習環境の数が増えるごとに少しずつ起動時間は増えたが，他の仮想化タ
イプに比べ増加量は少ない．
したがって，さらに仮想インスタンスの数が増える大規模な演習環境になるほど，コンテナ型の環境は他の仮想化方式よりも早く起動し，演習の環境を準備することが可能である．これはコンテナを停止する際も同様で，他の仮想化方式では OS の終了プロセスを経て仮想マシンを停止する必要があるが，コンテナは動作しているプロセスを停止させるのみで，OS の終了
プロセスは必要ない．
そのため，演習シナリオの変更のために環境を入れ替える場合や，連続した時間割で別の学生へ演習を実施する場合など，少ない時間で環境のリセットや入替が可能であるため，コンテナ型の利用が最も適していると言える．
また，ハードウェアリソース消費の比較でも，コンテナ型の優位性が確認できた．コンテナ型は他の仮想化方式と同等の環境を動作させても，最低限のプロセスしか動作しておらず，OS の動作に必要なプロセスなどが不要となるため大幅に軽量な実行環境が実現でき，メモリ消費も大幅な節約ができた．
実験ではコンテナ型が他の仮想化方式の半分程度のメモリ消費量で済んでおり，より大規模な環境で，1 つの演習環境ごとの仮想インスタンスが増えた場合には，仮想インスタンスの数に比例してさらに大きな差が出ると思われる．
ストレージ消費は，実験の環境ではコンテナ型が他の仮想化方式に比べ1/60 の使用量であり，圧倒的に優位な結果であった．Docker をはじめ，コ
ンテナ型仮想化で多く採用されている UFS(Union File System) は，同じコンテナイメージを使ってコンテナを起動する際は，ハイパーバイザ型やホ40

スト型のようにそれぞれディスクイメージを複製して利用するわけではな
く，マシンの起動時は共通のイメージを使用しており，それぞれのコンテナ
で追加や変更があった場合は元のイメージからの差分で管理する．
図 3.6 にコンテナのファイル管理について示す．

図 3.6: コンテナのイメージ利用構造
コンテナは，他の仮想化方式のようにそれぞれで独立して仮想ストレー
ジを動作させるのではなく，同じコンテナイメージを使って起動したコン
テナは，変更や追加をそれぞれのコンテナでレイヤで管理する．そのため，
仮想マシンの複製時のように倍の容量が必要になることは無い．さらに，コンテナイメージは元々必要なファイルしか持たず，完全な OS が動作する他の仮想化方式よりもイメージの容量が小さい．そのため，コンテナ型仮想化で構築したサイバーレンジ環境は，大幅にストレージの消費量を抑えて環境を準備することができる．
なお，どの仮想化方式でも負荷がかかった場合の CPU の使用率はあまり変わらなかった． これは，仮想環境の種類に関係なく，演習として実施される動作の内容は同一であり，全体で動作しているプロセスの CPU 使用
状況には大きな差が発生しなかったためだと考えられる．ただし，実際の動作ではホスト OS を含めて大きく負荷がかかるホスト型は起動や操作に大きく影響するほどの動作遅延が発生しており，大規模な演習環境の動作には向いていない．
ハイパーバイザ型は，CPU の使用率が増えた場合も，各仮想マシンの挙動をハイパーバイザが管理し，互いに影響しないように安定した仮想環境を提供できている．ただし，コンテナ型と比較してメモリやストレージの消費は大きくなる．そのため，演習の規模が大きく仮想マシンの数が多くなる場合にはメモリに余裕を持った構成が必要である．また，ストレー
ジ容量も，仮想マシンの数に比例して消費量が増加する．ストレージ容量

41

は，動作していない分の演習シナリオの分も確保する必要があり，仮想マ
シンとして動作する場合には消費量も大幅に増加する．
これらの結果から，コンテナ型サイバーレンジは，他の仮想化方式と比較して演習の実行環境として優れたパフォーマンスを発揮できることが確認できた． 演習環境の規模にもよるが，特に大規模な演習環境で優位性を発揮できることが確認でき，高負荷な動作でも安定した演習環境が提供できた．メモリ消費やストレージ使用量で他の仮想化方式よりも効率的にハードウェアを使用できるため，これらのスペックを抑えても快適な演習環境を実現できる．
この結果は，サイバーレンジ導入のためにオンプレミスでハードウェアを導入する際だけでなく，クラウド環境でハードウェアリソースを選択する際にも重要であり，様々な形態でサイバーレンジを利用して演習を実施するための指標となる．

42

第4章
コンテナ型サイバーレンジの脆弱性の再現性評価

本章では，コンテナ型仮想化で懸念される脆弱性の再現性について確認する．これにより，コンテナ型サイバーレンジの環境でも他の仮想化方式と同等の環境が再現可能であり，懸念となっているさまざまな目的やレベ
ルのシナリオの遂行が可能あることが確認できる [20, 21]．

4.1

実験内容
コンテナ型サイバーレンジにおける脆弱性の再現性を評価するために，

サイバーレンジ上で実行されるあらゆる動作をプログラムとみなし，物理
環境や各仮想化方式で構築したサイバーレンジ環境で，あらゆるプログラ
ムの実行結果の比較を考慮する実験を行う．
サイバーレンジ上の処理を行うプログラムをオラクル O とし，ある実行プログラム A によって呼び出されたシステムコールをすべてオラクル O に送る OS/ハードウェア環境をモデル化した．Real（実機），HV（ハイパーバイザ型仮想化），Host（ホスト型仮想化），Container（コンテナ型仮想化）で作られたそれぞれの環境でプログラムを実行した場合の出力を，それぞれ AOReal ，AOHV ，AOHost ，AOContainer と書くことにする，ここで，Realとは，仮想化技術を使用しない物理環境を示す．
全てのプログラムの実行結果が同一であれば，あらゆる演習シナリオの遂行に問題は無く，コンテナ型仮想化によるサイバーレンジの懸念を払拭できる． これは理論的には，すべての識別アルゴリズム ϕ が，実行プログ
ラム A の結果がどの環境で実行されたものかを識別できないことである．
各環境でプログラムを実行した結果の集合を，それぞれ AReal ，AHV ，

AHost ，AContainer と書くことにすると，以下のように定義できる．

{()}
AReal = A | ϕ AOReal = 1{()}
AHV = A | ϕ AOVM = 1
43

{
(
)
}
AHost = A | ϕ AOVM = 1{()}
AContainer = A | ϕ AOContainer = 1
これらの集合の類似性を測定することで，コンテナベースのサイバーレ
ンジにおける脆弱性の再現性を確認する．これらの各集合の関係を図 4.1 に示す．

図 4.1: 各仮想化方式の再現性比較イメージと類似度

AReal と AHV ，AHost ，AContainer とのジャッカード係数 J(AReal , AContainer ) =，J(AHV , AContainer )，J(AHost , AContainer ) を求める．ジャッカード係数は異な
る 2 つの集合の類似度を求める求めるものであり，これを確認することで，コンテナ型仮想化の脆弱性の再現性がどの程度であるのかを確認でき，コ
ンテナ型サイバーレンジを活用する際の指標となる．

4.2

実験環境

Real，HV，Host，Container それぞれの方式で，わざと脆弱性を持たせた同等の演習用環境を構築し，それぞれの環境でサイバーレンジ演習でも使われる脆弱性検査ツールによるスキャンや，その脆弱性に対する攻撃実験を網羅的に実施し，その結果を比較する．それぞれの仮想化方式に用いるプ
ラットフォームは，優位性の検証と同様に VMWare Vsphere，Virtualbox，Docker を用いて環境を構築し，物理環境で構築した環境を加えて実験を行う．
脆弱性を再現する環境には，Metasploitable2，Metasploitable3，OwaspBWAの 3 つの脆弱 OS を利用する．これらは，攻撃や防御手法の検証および学習44

などのためにわざと多くの脆弱性を持たせた無償の公開 OS で，サイバーレ
ンジ演習でも利用可能な脆弱性を多く含んでおり，セキュリティの演習でも広く利用されている [22, 23, 24]．
今回の実験では，仮想化方式ごとの違いをできる限り無くすため，各仮想化方式で全て同じイメージから環境を構築した．ファイルシステム全体をバックアップ・リストア可能なソフトである clonezilla を使用して，公式イ
メージから作成できる環境上でバックアップを取得し，実験用マスタイメージとした．そこから改めて clonezilla のクローン機能で Real，HV，Host の環境を作成した [25]．また，そのイメージを使って作成した Real 環境を基に，コンテナイメージを作成した．
各仮想化方式の環境構築方法を図 4.2 に示す．

図 4.2: 同じイメージからの物理・仮想・コンテナ環境の作成
コンテナイメージは，物理環境で動作している各 OS 上で，コンテナの動作に不要な/boot，/dev，/mnt，/proc，/sys，/tmp 以下のファイルを除いた全てのファイルをアーカイブして取得し，ファイルシステムからイメージを作成できる docker import コマンドを使って，同等の環境を再現できるコンテナを作成する．
コンテナ起動後に他の環境で動作している各種サービスを確認し，それらを手動で動作させることで，起動プロセスは異なるが同等のサービスが全て動作する環境を作成できた．通常，コンテナは不要なファイルや目的外のサービスの稼働を避け，できるだけ軽量で迅速な実行環境を構築するが，今回の実験は脆弱性の再現を想定しあらゆるプログラムの動作を比較するものであるため，できる限り各方式で同等の環境を構築して比較する．
また，ネットワーク構成についても各環境で違いが出ないようにする．

45

各方式で構築した環境へは，別の物理マシン上からの脆弱性検査や攻撃テストを行う．物理環境や HV，Host の環境は，物理ネットワースイッチや仮
想ネットワークスイッチを用いて，同セグメント上の端末同士として通信を行うことができる．
しかし Docker による Container の環境は，Docker が独自に作る仮想ブ
リッジを介して，ポートフォワーディングにより外部やホスト OS との通信を行う．
．この状態では，他の環境と通信環境が大幅に異なり，コンテナ自身の再現性以外の部分で影響を受ける可能性があるため，図 4.3 に示すようにネットワーク構成を変更する．

図 4.3: Docker ネットワーク構成の変更

Docker のブリッジを独自のネットワークではなくホスト OS と同じセグ
メントに配置し，物理ポートの一つに接続して占有することで，外部からの通信がコンテナに対して制限無く，周囲のネットワークと同様のセグメ
ント内で届く状態を構築する．
以下に，コンテナ型のネットワーク環境構築時のホスト OS 上で実行したコマンド操作の内容を示す．

> sudo nmcli connection modify <docker_nw_name>ipv4.method manual ipv4.addresses "192.168.0.0/24"> sudo nmcli connection modify <docker_nw_name>46

connection.autoconnect yes> sudo nmcli connection modify <docker_nw_name>ipv4.never-default yes> sudo nmcli connection modify <docker_nw_name>ipv4.may-fail no> sudo nmcli connection add type bridge-slave ifname<if_name> master <docker_nw_name>> sudo nmcli connection delete "<connection name>"> sudo systemctl restart NetworkManager

実際にサイバーレンジ環境を docker によるコンテナ型仮想化を使って構築する場合も，標準ネットワークをそのまま利用するだけでなく別のネッ
トワークを用意し，コンテナが標準でそちらのネットワークを利用するよ
うにしておくなど，現実の環境を再現するための柔軟なネットワーク構成を考慮した環境構築が可能で，他の仮想化とネットワーク面でも同等の環境が構築できる．
これらの手法で作成した各仮想化方式のサイバーレンジ実験環境へ，各種ツールによる検査や攻撃を行い，結果を比較する．
実験に使用するツールを表 4.1 に示す．
表 4.1: 実験に使用するツールと検査対象範囲

Name
OpenVAS
Nmap
InsightVM
Owasp ZAP
SkipFish
Nikto2
Deep Exploit

WebAppTargetMiddleware
◦

OS
◦

◦

◦

Network
◦
◦
◦

◦
◦

◦

◦

◦
◦
◦
◦

検査対象領域を「Web アプリケーション」「ミドルウェア」「OS」「ネット
ワーク」の 4 つの領域に分け，それぞれの領域へ検査やエクスプロイト（脆弱性を突いた動作）が可能なツールを使うことで，網羅的な実験を行えるようにした．なお，各ツールで検出した脆弱性を CVE(Common Vulnerabilities

and Exposures:共通脆弱性識別子) [26] に基づいて分類し，その数を比較する． ただし，CVE での検出は数が非常に多いため，脆弱性を種類別に分類
した CWE(Common Weakness Enumeration:共通脆弱性タイプ)[27] ごとに
集計する．

47

実験結果

4.3
4.3.1

OpenVAS

OpenVAS(Open Vulnerability Assessment Scanner) は豊富な検査項目を持つオープンソースの脆弱性検査ツールであり，Greenbone Networks 社により開発支援が続けられている．
図 4.4 は OpenVAS のダッシュボード画面である．

図 4.4: OpenVAS のダッシュボード
ソフトウェアのバグや使用上の欠陥，設定など幅広く脆弱性を検出でき，対応する CVE を最新のデータベースを用いて確認できる．検査結果を可視化してさまざまな分析も可能であり，企業や組織でも実際にペネトレーショ
ンテストで使われている．

OpenVAS での検査結果を表 4.2 に示す．
表 4.2: OpenVAS による脆弱性検査の結果

CWE

Name

Real

Type
Hyper
Host
Visor

Cont
ainer

16

Conﬁguration

4

4

4

4

18

DEPRECATED: Source Code

2

2

2

2

19

Data Processing Errors

1

1

1

1

20

Improper Input Validation

121

121

121

114

22

Path Traversal

12

12

12

12

59

Link Following

6

6

6

6

79

Cross-site Scripting

97

97

97

94

89

SQL Injection

16

16

16

16

93

CRLF Injection

3

3

3

3

94

Code Injection

15

15

15

14

119

Buﬀer Overﬂow

75

75

75

74

48

表 4.2: OpenVAS による脆弱性検査の結果
Type
Hyper
Host
Visor

CWE

Name

125

Out-of-bounds Read

21

21

21

21

134

Use of Externally-Controlled
Format String

6

6

6

6

189

Numeric Errors

38

38

38

34

190

Integer Overﬂow or Wraparound

4

4

4

4

199

Information Management Errors

1

1

1

1

200

Exposure of Sensitive Information

71

71

71

67

254

7PK - Security Features

14

14

14

12

255

Credentials Management Errors

2

2

2

2

264

Permissions，Privileges，and Access Controls

85

85

85

83

269

Improper Privilege Management

1

1

1

1

275

Permission Issues

3

3

3

3

284

Improper Access Control

9

9

9

9

287

Improper Authentication

12

12

12

12

290

Authentication Bypass by Spooﬁng

1

1

1

1

300

Channel Accessible
by Non-Endpoint

1

1

1

1

310

Cryptographic Issues

31

31

31

30

345

Insuﬃcient Veriﬁcation of
Data Authenticity

1

1

1

1

352

Cross-Site Request Forgery

12

12

12

11

362

Race Condition

8

8

8

6

384

Session Fixation

1

1

1

1

399

Resource Management Errors

70

70

70

64

415

Double Free

1

1

1

1

416

Use After Free

3

3

3

3

428

Unquoted Search Path or Element

1

1

1

1

476

NULL Pointer Dereference

12

12

12

12

502

Deserialization of Untrusted Data

5

5

5

5

522

Insuﬃciently Protected Credentials

3

3

3

3

552

Files or Directories Accessible
to External Parties

1

1

1

1

601

Open Redirect

4

4

4

4

640

Weak Password Recovery Mechanism
for Forgotten Password

1

1

1

1

732

Incorrect Permission Assignment
for Critical Resource

2

2

2

2

Real

49

Cont
ainer

表 4.2: OpenVAS による脆弱性検査の結果
Type
Hyper
Host
Visor

CWE

Name

787

Out-of-bounds Write

1

1

1

1

835

Inﬁnite Loop

4

4

4

4

Real

Cont
ainer

OpenVAS での実験は，Real，HV，Host，Container それぞれで構築した Metasploitable2，Metasploitable3，OwaspBWA の環境に，別途用意した
物理端末上にインストールした OpenVAS から，ネットワーク経由で実施した．OpenVAS では CVE ベースの検出を行い，対応する CWE ごとに集計
した．全部で 782 の脆弱性が検出でき，コンテナの環境ではそのうち 748 の脆弱性が検出された．

OpenVAS での検査では，多くの項目で検出内容が一致した． 検出数で確認すると，物理環境と HV および Host の環境では完全に一致したが，COntainer は一部の項目で検出数が少ない結果となった． OpenVAS の検査結果のみで確認したコンテナ型仮想化と他の方式との類似度は，J = 0.9565であった．CWE 項目で見ると検出されなかったものは無く，高い再現性が確認できた．

4.3.2

Nmap

Nmap（Network Mapper）はオープンソースのポートスキャナで，OSやサービスのバージョン検出など豊富な機能を持つ [28]． その反面，悪意のある者が攻撃対象のホストの状態を調査するなど，攻撃行為にも頻繁に利用されている．
図 4.5 は，Nmap を使ってポートスキャンをした画面の例である．

図 4.5: Nmap によるポートスキャンの例
検査対象のポートや表示する内容，結果を保存するなどさまざまなオプ
ションを用いて検査を実施できる．

50

なお，Nmap によるスキャンはインターネット上でも攻撃行為として捉えられる場合がある．サイバーレンジ演習においても，ポートスキャン行
為の発見をきっかけにインシデント対応を実施するなど，演習シナリオの初期段階でよく利用されているが，学習した内容を外部サーバへ利用するなどの行為により犯罪とならないようにするなど，法や倫理的な教育も必要となる．Nmap を使ったインシデント事例は多く，それらをリアルに再現したサイバーレンジの演習シナリオでも多く使われており，Nmap の検査結果の比較は重要である．

Nmap での検査結果を表 4.3 に示す．
表 4.3: Nmap によるポートスキャンの結果

Type
CWE

Port

Service

Real

Hyper

Host

Visor

Cont
ainer

189,339 21

ftp

◦

◦

◦

◦

119,200 22

ssh

◦

◦

◦

◦

254,416 53

domain◦◦◦◦79,287

80

http

◦

◦

◦

◦

399

111

rpcbind

◦

◦

◦

◦

22,275139

netbios-ssn

◦

◦

◦

◦

287

143

imap

◦

◦

◦

◦

269,400 445

netbios-ssn

◦

◦

◦

◦

264,290 631

ipp

◦

◦

◦

◦

94,1191099

java-rmi

◦

◦

◦

◦

264

2049

nfs

◦

◦

◦

◦

22

2121

ftp

◦

◦

◦

◦

399

3306

mysql

◦

◦

◦

◦

134,189 3632

distccd

◦

◦

◦

◦

264,284 5432

postgresql

◦

◦

◦

◦

20,189

6667

irc

◦

◦

◦

◦

20,189

6697

irc

◦

◦

◦

◦

16

8009

ajp13

◦

◦

◦

◦

119,254 8080

http

◦

◦

◦

◦

22

8081

http

◦

◦

◦

◦

20,119

8180

http

◦

◦

◦

◦

51

表 4.3: Nmap によるポートスキャンの結果

Type
CWE

Port

Service

Real

Hyper

Host

Visor
399

8787

◦

drb

◦

Cont
ainer

◦

◦

OpenVAS と同様に，Real，HV，Host，Container それぞれで構築した
Metasploitable2，Metasploitable3,OwaspBWA の環境に，別途用意した物
理端末から Nmap によるポートスキャンを実施した．
ポートの状態や動作するサービス，およびバージョンの検出ができるよ
うにオプションを設定し，各検出結果において，検出したソフトウェアのバージョンから考えられる脆弱性を確認した．

Nmap による実験結果は，全ての環境で完全に一致する結果が得られた．
コンテナ型の環境はサービスを手動で立ち上げているため，初回のポート
スキャン実施時にはサービスがうまく立ち上がっておらず，検出できない
サービスもあったが，不足するサービスを確認し，適切な設定でサービスを起動することにより，完全に一致する結果を得ることができた．
したがって，Nmap によるポートスキャンでは，対象の環境が物理環境であるか仮想環境であるかの見分けはつかず，また，HV や Host と Containerの仮想化方式の違いも見られなかったため，それぞれの環境での再現性の違いは無いと言える．

4.3.3

Owasp ZAP

ZAP（Zed Attack Proxy）は，OWASP（Open Web Application Security
Project）が提供するオープソースの Web アプリケーション脆弱性検査ツー
ルで，多くの脆弱性の検出やその対処法の確認などに利用できる．
図 4.6 に ZAP のスキャン画面を示す．

ZAP はターゲットとなる Web サイトから，リンクを辿ってページを検出し，それぞれに大量のリクエストを流すことで脆弱なページや項目が無いかを検出したり，プロキシとして動作して悪意のある通信が無いかを確認するなど，さまざまな機能で攻撃や脆弱性を検知できる．並行して検出する数や，検出対象とするリンクの深さなどを設定でき，簡易的なスキャ
ンから隅々までじっくりと検査する動的スキャンが可能であるが，ターゲッ
トのページ数などにより非常に高負荷の通信が長い時間続くこともあるため，Nmap と同様に検知自体が攻撃と捉えられる場合もあり，演習での取り扱いの際も注意が必要である．

52

図 4.6: ZAP の動的スキャン画面
脆弱な環境として用意したサーバには，それぞれ Web アプリケーション
環境も用意されており，様々な脆弱性を持つ Web ページが確認できる．
表 4.4 に ZAP による実験結果を示す．
表 4.4: ZAP による脆弱性検査の結果

Type
CWE Category

Real

16

X-Flame-Options Header Not Set

16

Cookie No HttpOnlyFlag

16
16

Cookie Without
SameSite Attribute
X-Content-Type-Options
Header Missing

Hyper
Visor

Host

Cont
ainer

4930

4881

4828

4791

44

60

60

27

118

124

124

69

5585

5087

5087

5170

22

Path Traversal

31

31

31

31

78

Remote OS Command Injection

337

359

355

360

79

Cross Site Scripting(Persistent)

4

6

5

7

79

Cross Site Scripting(Reﬂected)

1143

1143

1143

1143

79

Cross Site Scripting(DOM)

60

12

13

12

89

SQL Injection

337

276

276

258

97

Server Side Include

1

1

1

1

98

Remote File Incrusion

211

211

211

208

200

Application Error Disclosure

266

266

266

250

290

290

290

288

200

Information Disclosure Debug Error Messages53

表 4.4: ZAP による脆弱性検査の結果

Type
CWE Category
200

Real

Private IP Disclosure

Hyper
Visor

Host

Cont
ainer

142

135

135

135

512

525

525

444

5

5

5

5

6639

6489

6489

6519

Server Leaks Information
200

via ”X-Powerd-By”
Http Response Header Field

215.htaccess Information Reak

352

Absence of Anti-CSRF Tokens

472

Parameter Tempering

14

14

14

14

548

Directory Browsing

70

70

70

70

601

External Redirect

211

212

212

208

829

Vulnerable JS Library

17

17

17

17

ZAP による検査では，ネットワークの環境の違いにより結果に細かな変化が発生したため，検査する側の環境が別の物理端末からの場合のみではなく，他の仮想マシンやホスト OS からの場合など，様々なネットワーク環
境で検査を行った．それぞれの検出結果で最大の検出数となったものを確認し，対応する CWE 項目ごとに集計を行った．
検出結果は全体的に各検出項目で同じような検出数の傾向を示したが，X-

Content-Type-Options Header Missing や，Remote OS Command Injectionなどのように，物理環境より仮想環境のほうが検出数が多くなるものが発生した．特に検出数の多くなるものについては結果にばらつきが見られたが，中には Container の環境のほうが多く検出されるような場合もあった．
ただし，ZAP は一部で誤検知の発生も指摘されており，全ての原因を特定することが難しいため，ここでは単純に検出数の違いによる再現性の比較とした．

ZAP の検査結果のみで確認したコンテナ型仮想化と物理環境との類似度
は，J(AReal , AContainer ) = 0.9540 であった．他の仮想環境と比較しても，J(AHV , AContainer ) = 0.9851，J(AHost , AContainer ) = 0.9877 となり，十分に高い値となった．

4.3.4

InsightVM

InsightVM は，脆弱性の検査だけでなく検出した脆弱性へ対処するための支援機能も充実したツールである [29]．
図 4.7 に InsightVM の管理画面を示す．

54

図 4.7: InsightVM の脆弱性管理画面

InsightVM は Rapid7 社が開発しており，同社が開発する Metasploit framework に攻撃モジュールが存在するかを確認することも可能で，ペネトレー
ションテストも含めた企業や組織の総合的な脆弱性管理ツールとして利用できる．

InsightVM による実験結果を表 4.5 に示す．
表 4.5: InsightVM による脆弱性検査の結果

CWE

Name

Real

Type
Hyper
Host
Visor

Cont
ainer

16

Conﬁguration

4

4

4

4

17

DEPRECATED: Code

2

2

2

2

18

DEPRECATED: Source Code

1

1

1

1

19

Data Processing Errors

9

9

9

9

20

Improper Input Validation

101

101

101

101

22

Path Traversal

16

16

16

16

59

Link Following

7

7

7

7

74

Injection

3

3

3

3

77

Command Injection

2

2

2

2

78

OS Command Injection

4

4

4

4

79

Cross-site Scripting

80

80

80

80

89

SQL Injection

10

10

10

10

93

CRLF Injection

2

2

2

2

94

Code Injection

10

10

10

10

119

Buﬀer Overﬂow

96

96

96

96

125

Out-of-bounds Read

18

18

18

18

134

Use of Externally-Controlled
Format String

4

4

4

4

55

表 4.5: InsightVM による脆弱性検査の結果
Type
Hyper
Host
Visor

Cont
ainer

CWE

Name

189

Numeric Errors

48

48

48

48

190

Integer Overﬂow or Wraparound

11

11

11

11

199

Information Management Errors

1

1

1

1

200

Exposure of Sensitive Information

55

55

55

55

254

7PK - Security Features

2

2

2

2

255

Credentials Management Errors

4

4

4

4

264

Permissions，Privileges，and Access Controls

58

58

58

58

269

Improper Privilege Management

2

2

2

2

284

Improper Access Control

9

9

9

9

285

Improper Authorization

1

1

1

1

287

Improper Authentication

9

9

9

9

310

Cryptographic Issues

44

44

44

44

326

Inadequate Encryption Strength

1

1

1

1

327

Use of a Broken or
Risky Cryptographic Algorithm

2

2

2

2

330

Use of Insuﬃciently Random Values

1

1

1

1

338

PRNG

1

1

1

1

352

Cross-Site Request Forgery

18

18

18

18

362

Race Condition

8

8

8

8

379

Creation of Temporary File in
Directory with Insecure Permissions

1

1

1

1

399

Resource Management Errors

60

60

60

60

400

Uncontrolled Resource Consumption

3

3

3

3

415

Double Free

2

2

2

2

416

Use After Free

12

12

12

12

434

Unrestricted Upload of Filewith Dangerous Type

1

1

1

1

476

NULL Pointer Dereference

11

11

11

11

502

Deserialization of Untrusted Data

4

4

4

4

601

Open Redirect

3

3

3

3

640

Weak Password Recovery Mechanism
for Forgotten Password

2

2

2

2

681

Incorrect Conversion
between Numeric Types

1

1

1

1

732

Incorrect Permission Assignment
for Critical Resource

1

1

1

1

Real

56

表 4.5: InsightVM による脆弱性検査の結果
Type
Hyper
Host
Visor

CWE

Name

754

Improper Check for Unusual
or Exceptional Conditions

1

1

1

1

787

Out-of-bounds Write

4

4

4

4

863

Incorrect Authorization

1

1

1

1

918

SSRF

1

1

1

1

1188

Insecure Default Initializationof Resource

1

1

1

1

Real

Cont
ainer

InsightVM による実験では，全ての環境で完全に一致する結果が得られた． OpenVAS と同様に多くの脆弱性が検出されたが，検出された全ての脆弱性の内容が一致し，同ツールが独自の基準で点ける脆弱性スコアも同
じ結果となった．
また，図 4.8 に示すように，InsightVM は検査対象のホストタイプを識別する検査項目がある．

図 4.8: InsightVM によるホストタイプの検出
物理環境では Bare Metal と表示されたが，その他コンテナ型を含む全ての仮想化方式は Virtual Machine と表示され，コンテナ型仮想化の環境が他の仮想化方式と全く違いがない環境を構築でき，同等の脆弱性の再現性を有することが確認できた．

InsightVM による検出では，物理環境か仮想環境かの見分けはつけられるものの，仮想化方式による検出結果の違いはなく，コンテナ型仮想化は他の仮想化方式と全く同一の環境として識別されていると言える．

57

4.3.5

SkipFishSkipﬁsh は Google が提供する Web アプリケーションの脆弱性検査ツール
である [30, 31]．あらかじめ用意された辞書やサイトから抽出したキーワー
ドから URL を生成してスキャンを行い，脆弱性を確認できる．
図 4.9 は，Skipﬁs の動作画面や検出結果を表示するレポート Web ページの例である．

図 4.9: Skipﬁsh の動作画面・レポート画面例

Skipﬁsh では，再帰的な探索と辞書ベースの検査を実行することで，対象サイトのインタラクティブな脆弱性サイトマップを作成できる． Skipﬁsh
は特に，スクリプティング攻撃やインジェクション攻撃に対して脆弱であるかどうかを判断する際に有効である [32]．
表 4.6 に skipﬁsh による脆弱性検査の結果を示す．
表 4.6: Skipﬁsh による脆弱性検査の結果

CWE

Issue Types

Real

Type
Hyper
Host
Visor

Cont
ainer

89

Query injection vector

23

23

23

23

78

Shell injection vector

15

15

15

15

19

Server-side XML injection vector

1

1

1

1

Signature match detected
Directory traversal /ﬁle inclusion possible

10

10

10

10

6

6

6

6

Interesting server message

565

565

565

565

Incorrect or missing charset

73

73

73

73

22

20

58

79

352

Generic MIME type

55

55

55

55

External content embedded on a page

14

14

14

14

XSS vector in document body

1043

1043

1043

1043

Incorrect caching directives

551

551

551

551

HTML form with no apparent
XSRF protection

1060

1060

1060

1060

Directory listing restrictions bypassed

5

5

5

5

Node should be a directory，
detection error?

33

33

33

33

Response varies randomly，
skipping checks

22

22

22

22

Limits exceeded，fetch suppressed
Resource fetch failed

241
144

241
144

241
144

241
144

Skipﬁsh では，キーワードを生成して検査を行うと存在しない膨大な URLに対してのアクセスを行うことになり，非常に長い時間の検査になるため，
今回はキーワード抽出を行わない設定で各サイトへの検査を行った．

skipﬁsh による検査では全ての方式の環境で同じ結果となり，物理環境，
仮想環境のタイプを問わず同じ再現性を示した．なお，検出された Issue

types の内容には具体的な CVE や CWE の記載が無いが，内容から該当す
る CWE が推測できるものについて確認し，集計した．

4.3.6

Nikto

Nikto は，Netspark 社がスポンサーを務める Perl ベースの無料 Web ア
プリケーションセキュリティスキャナーである．
図 4.10 に，Nikto のスキャン画面を示す．

図 4.10: Nikto によるスキャンの画面例

Nikto は，ウェブサーバやミドルウェアに対して危険なファイルやプロ
59

グラムを含む複数の項目に対する脆弱性スキャンを行い，ソフトウェアのバージョンチェック設定ミス，およびそれらによって引き起こされる可能性のある脆弱性をチェックできる [33]．

Nikto による実験結果を表 4.7 に示す．
表 4.7: Nikto による脆弱性検査の結果

CWE

284

693

119

Type
Hyper
Host
Visor

OSV
DB

Example of detection

48

The /doc directory is browsable

1

1

1

1

119

CWE-1999-069

4

4

4

4

576

Vulnerbility of weblogic

2

2

2

2

630

The web server may reveal
its internal or real IP
in the Location header

1

1

1

1

877

HTTP TRACE method is active,
suggesting the host isvulnerable to XST

1

1

1

1

3092

phpMyAdmin is for managing
MySQL databases， and should
be protected or limited toauthorized hosts

12

12

12

12

3233

pache default ﬁle found

5

5

5

5

3268

Directory indexing found

19

19

19

19

3288

Vulnerbility of Abyss 1.03

1

1

1

1

12184

PHP reveals potentially sensitive
information viacertain HTTP
requests that contain speciﬁc
QUERY strings

1

1

1

1

39272

favicon.ico ﬁle identiﬁes
this app/server as: owasp.org

1

1

1

1

Real

Cont
ainer

Nikto は，独自の基準や OSVDB[34](Open Source Vulnerability Database) に基づき辞書ベースで脆弱性の検出を行うが，OSVDB は現在既に運用されていない
ため，可能な範囲で検出結果を CWE に対応させて集計した．Nikto による検査では，検出項目は多くはなかったが，全ての環境で完全に一致する結果を得ることが
できた．

4.3.7

DeepExploit

DeepExploit は，深層強化学習を用いた完全自動のペネトレーションテストツー
ルである [35]．学習したデータを基に，ポートスキャンの結果から最適な攻撃を試みるという，実際のサイバー攻撃にも似た行動を自動的に実施することができ，実60

験環境への攻撃のテストとして利用できる．
図 4.11 に，DeepExploit の動作画面を示す．

図 4.11: DeepExploit の実行画面とレポート画面
DeepExploit は，学習モードでターゲットのポートの状態を識別し，開いている
ポートに対して Metasploit のモジュールを使ったエクスプロイト結果を学習する．
攻撃モードでは学習結果を基に，ピンポイントで対応する Metasploit のモジュー
ルによる攻撃として実行し，成功したものをレポートとして出力する．
サイバーレンジの各環境へ DeepExploit を用いて実際に攻撃が成功するかを確認できれば，各仮想化環境による脆弱性やインシデントの再現性を確認でき，かつ，演習シナリオの遂行に問題がないことを確認できる．
DeepExploit による実験結果を表 4.8 に示す．

表 4.8: Deep Exploit で攻撃が成功したエクスプロイトモジュール

CWE

Exploit - Payload

Real

Type
Hyper
Host
Visor

Cont
ainer

78

exploit/unix/ftp/vsftpd 234 backdoor- payload/cmd/unix/interact

◦

◦

◦

◦

77

exploit/linux/ssh/solarwinds lem exec
- payload/python/meterpreter bind tcp

◦

◦

◦

◦

94

exploit/solaris/telnet/fuser- payload/cmd/unix/bind perl

◦

◦

◦

◦

exploit/linux/misc/gld post
- payload/linux/x86/shell/bind
ipv6 tcp uuid

◦

◦

◦

◦

119

exploit/windows/antivirus/trendmicro
serverprotect createbinding- payload/generic/shell bind tcp

◦

◦

◦

◦

119

exploit/aix/rpc cmsd opcode21

◦

◦

◦

◦

exploit/unix/ftp/proftpd 133c backdoor- payload/cmd/unix/bind perl

◦

◦

◦

◦

61

119

119

exploit/linux/mysql/mysql yassl getname- payload/linux/x86/shell/bind
ipv6 tcp uuid

◦

◦

◦

◦

exploit/multi/vnc/vnc keyboard exec
- payload/cmd/unix/bind perl

◦

◦

◦

◦

exploit/multi/misc/legend bot exec
- payload/cmd/unix/bind perl

◦

◦

◦

◦

exploit/aix/rpc cmsd opcode21- payload/aix/ppc/shell bind tcp

◦

◦

◦

◦

DeepExploit による実験では，各環境で 1 回ずつの学習ののち，ぞれぞれに 1 回の攻撃テストを行い，これを１セットとした．特に学習初期はラン
ダム性が高くなるため，10 セット繰り返し，出力されたレポートに表示された攻撃内容により比較を行った． その結果，全ての環境で同じ脆弱性に対して同じエクスプロイトモジュールによる攻撃が成功した．

DeepExploit による実験により，コンテナ型仮想化が脆弱性の検出だけでなく，攻撃の実行やシナリオの遂行に問題のない高い再現性を持つことが確認できた．

4.4

考察
各ツールを使った実験では，コンテナ型仮想化の環境はかなりの項目で他の方式と一致する結果となった．各ツールによる実験結果から，脆弱性の検出項目を CWE 分類ごとに集計し，検出数の多いものから物理環境と各仮想環境との類似度を計算した．
集計結果（Top10）を図 4.12 に示す．

図 4.12: CWE 項目ごとの脆弱性検出数と，物理環境との類似度
一部の項目で，ジャッカード係数で計測した類似度の低下が見られるが，62

もっとも低い値でも物理環境と 8 割程度の類似度は見られている．また，他の仮想化方式でも同じ項目では低下が見られるため，それらとの類似度を比較すると，高い再現性が得られたと言える．
表 4.9 に，CWE ごとのすべての検出項目数と物理環境との類似度を示す．
表 4.9: 脆弱性検出数と物理環境との類似度
検出数

CWE

Real とのジャッカード係数

No

Real

HV

Host

Container

16

10685

10160

10107

352

7729

7579

79

2427

200

Host

Container

10065

0.9509 0.9459

0.94207579

7608

0.9806 0.9806

0.9843

2381

2381

2379

0.9810 0.9810

0.9802

1336

1342

1342

1239

0.9955 0.9955

0.9274

89

386

325

325

307

0.8420 0.8420

0.7953

78

357

379

375

380

0.9420 0.9520

0.9395

20

295

295

295

288

1.0000 1.0000

0.9763

601

218

219

219

215

0.9954 0.9954

0.9862

119

176

176

176

175

1.0000 1.0000

0.9943

264

143

143

143

141

1.0000 1.0000

0.9860

399

130

130

130

124

1.0000 1.0000

0.9538

189

86

86

86

82

1.0000 1.0000

0.9535

310

75

75

75

74

1.0000 1.0000

0.9867

22

65

65

65

65

1.0000 1.0000

1.0000

125

39

39

39

39

1.0000 1.0000

1.0000

94

26

26

26

25

1.0000 1.0000

0.9615

476

23

23

23

23

1.0000 1.0000

1.0000

287

21

21

21

21

1.0000 1.0000

1.0000

284

20

20

20

20

1.0000 1.0000

1.0000

254

16

16

16

14

1.0000 1.0000

0.8750

362

16

16

16

14

1.0000 1.0000

0.8750

190

15

15

15

15

1.0000 1.0000

1.0000

416

15

15

15

15

1.0000 1.0000

1.0000

59

13

13

13

13

1.0000 1.0000

1.0000

19

11

11

11

11

1.0000 1.0000

1.0000

134

10

10

10

10

1.0000 1.0000

1.0000

502

9

9

9

9

1.0000 1.0000

1.0000

255

6

6

6

6

1.0000 1.0000

1.0000

93

5

5

5

5

1.0000 1.0000

1.000063

HV表 4.9: 脆弱性検出数と物理環境との類似度
検出数

CWE

Real とのジャッカード係数

No

Real

HV

Host

Container

787

5

5

5

835

4

4

18

3

74

Host

Container

5

1.0000 1.0000

1.0000441.0000 1.0000

1.00003331.0000 1.0000

1.000033331.0000 1.0000

1.0000

77

3

3

3

3

1.0000 1.0000

1.0000

269

3

3

3

3

1.0000 1.0000

1.0000

275

3

3

3

3

1.0000 1.0000

1.0000

400

3

3

3

3

1.0000 1.0000

1.0000

415

3

3

3

3

1.0000 1.0000

1.0000

522

3

3

3

3

1.0000 1.0000

1.0000

640

3

3

3

3

1.0000 1.0000

1.0000

732

3

3

3

3

1.0000 1.0000

1.0000

17

2

2

2

2

1.0000 1.0000

1.0000

199

2

2

2

2

1.0000 1.0000

1.0000

327

2

2

2

2

1.0000 1.0000

1.0000

113

1

1

1

1

1.0000 1.0000

1.0000

285

1

1

1

1

1.0000 1.0000

1.0000

290

1

1

1

1

1.0000 1.0000

1.0000

300

1

1

1

1

1.0000 1.0000

1.0000

326

1

1

1

1

1.0000 1.0000

1.0000

330

1

1

1

1

1.0000 1.0000

1.0000

338

1

1

1

1

1.0000 1.0000

1.0000

345

1

1

1

1

1.0000 1.0000

1.0000

379

1

1

1

1

1.0000 1.0000

1.0000

384

1

1

1

1

1.0000 1.0000

1.0000

428

1

1

1

1

1.0000 1.0000

1.0000

434

1

1

1

1

1.0000 1.0000

1.0000

552

1

1

1

1

1.0000 1.0000

1.0000

681

1

1

1

1

1.0000 1.0000

1.0000

693

1

1

1

1

1.0000 1.0000

1.0000

681

1

1

1

1

1.0000 1.0000

1.0000

754

1

1

1

1

1.0000 1.0000

1.0000

863

1

1

1

1

1.0000 1.0000

1.0000

918

1

1

1

1

1.0000 1.0000

1.000064

HV表 4.9: 脆弱性検出数と物理環境との類似度
検出数

CWE

Real とのジャッカード係数

No

Real

HV

Host

Container

1188

1

1

1

24418 23665

23608

全体

HV

Host

Container

11.0000 1.0000

1.000023447

0.9692 0.9668

0.9602

AReal と AContainer では，他の仮想化方式と同様に多くの検出項目が一致した．全体の検出内容によるジャッカード係数を計算すると J(AReal , AContainer ) =0.9602 と非常に高い値を示した． また，他の仮想化方式との類似度を計算す
ると，AHV とは J(AHV , AContainer ) = 0.9907，AHost とは J(AHost , AContainer ) =0.9931 となった．
コンテナ型の環境は，他の環境と比較してファイル構成が違うなど大きく特徴が異なり，同一の脆弱性やインシデントの再現が難しいものが多いと考えていたが，実験で得られた結果の類似度はいずれも予想以上に非常に高い値であり，コンテナ型仮想化が他の仮想化と遜色なく高い脆弱性の再現性があることを確認できた．
コンテナの環境は他の環境と比較して，全てのサービスが他の環境と完全に同じ状態では動作していないことが考えられるため，一部ではそれらを対象とした脆弱性の検出ができなかったものもあると考えられる．
これらは検出対象のファイルやサービスの状態を確認し，意図的に同じ同じ状態を作り出すことで再現可能となる可能性が高い．なお，一部の CWE
項目では物理環境よりも仮想環境のほうが多く検出されている項目もある
ことから，ネットワーク構成やドライバ等，環境の本質的な違いに起因して結果に差が出た項目もあると思われる．
また，CWE 項目ごとで見た場合，他の方式で検出された項目はコンテ
ナ型でも必ず検出されており，全く検出できなかった脆弱性は無い． したがって，それぞれの環境で検出された脆弱性について，同じ CWE に分類される脆弱性が再現できないことは無いと言える．
実験により，コンテナ型サイバーレンジの脆弱性の再現性への懸念が高いレベルで払拭できた．コンテナ型サイバーレンジが，他の仮想化方式と遜色なく攻撃やインシデントの再現が可能であり，様々な演習シナリオを遂行することができることが確認できた．

65

第5章
シナリオランダム化と環境構築

本章では，高等教育機関向けのサイバーレンジにおけるシナリオ面の課題へ対応するために検討した，DAG ベースのランダムシナリオ開発手法と，そのシナリオを実行するための演習環境を自動構築するコンテナ型サイバー
レンジシステム CyExec∗ の開発について述べる [20, 36]．

5.1

シナリオの課題
サイバーレンジで演習を実施するには，様々な攻撃手法や脆弱性を用いたセキュリティインシデントの一連の流れを仮想環境に再現するシナリオを開発する必要がある．高等教育機関でこれまで多く行われている演習では，個別の攻撃手法や脆弱性を再現するシナリオを何度も使い回していた
り，集合演習中に動作や行動が漏洩することによる教育効果の低下が課題となっている．サイバーレンジを用いて，検知や対応を組み込んだ複合的なシナリオや役割別のチーム演習を行う場合も，シナリオ開発は人的・経済的コストを必要とするためシナリオが不足し，同様の課題を招いている．
サイバーレンジシナリオの開発イメージを図 5.1 に示す．

図 5.1: サイバーレンジシナリオの開発イメージ

66

例として，サイバーキルチェーンによる標的型攻撃の流れを再現するシナリオ開発を示す．サイバーレンジのシナリオは，目的を達成するための偵察・武装・配送などの攻撃の流れを検討し，ポートスキャンやフィッシン
グなど攻撃に用いる手段の検討と，それに対する防御・検知・対策などの行動から，目的やレベルに応じて必要なものを選択し，全体のシナリオを開発する．
これらの開発を高等教育機関が行うには，多くの知識や技術を必要とし，多大な時間や費用も必要であるため，独力で行うことは困難である．そのため，高等教育機関で広く普及が可能なサイバーレンジを実現するためには，多くの教育機関が汎用的に利用できる多数のシナリオを提供可能な手法を検討し，それらを実行するための演習環境の構築が可能なサイバーレ
ンジシステムを開発する必要がある [37]．

5.2

シナリオのランダム化
固定されたシナリオの提供だけでは，効率的に多くの演習シナリオを提供することは困難であるため，演習環境をランダムに生成できるシステム
として公開されている SecGen を参考にした．SecGen の主なコンセプトは
以下の通りである [9]．

• CTF やセキュリティラボの演習やシミュレーションで使用される，セキュリティ教育のための，ランダム化可能で柔軟性のある汎用的な方法を提供する．

• サーバ，クライアント，ネットワーク構成，ソフトウェア，構成の脆弱性を含む VM のセットを出力し，それらの様々な要素をランダム化
して，よりリッチなシナリオを作成する．

• シナリオをランダムに生成するための仕様を設計し，実装する．
これらのコンセプトは，サイバーレンジのシナリオでも流用することができる．サイバーレンジ演習でも，シナリオにランダムな要素を取り入れることで，多くのシナリオを提供し，学習機会を増加して教育効果を向上
させることができる．
ただし，SecGen はシナリオのランダム化をコンセプトとしているが，これは Virtualbox の仮想マシン環境を自動構築する Vagrant を利用した環境構築をランダム化するのが主であり，より多くの仮想インスタンスを必要とするサイバーレンジ環境では消費リソースの増大や起動・動作の大幅な遅延を招く可能性が高い [38]． 高等教育機関で広く利用が可能で教育効果が高いサイバーレンジを実現するには，シナリオのランダム化により攻撃や防御の一連の動作の流れの組み合わせを多数提供する手法と，それらの67

シナリオを実行する環境を自動構築し，多数の仮想インスタンスが同時に動作しても問題なく動作する高性能なシステムが必要となる．

5.3

DAG ベースのシナリオ生成
サイバーレンジシナリオのランダム化を検討するにあたり，一般的なサイバーレンジシナリオを分析した．図 5.2 は典型的なサイバーレンジのシナリオの例である [39, 40]．

図 5.2: サイバーレンジシナリオの例
サイバーレンジのシナリオは，全体シナリオの中にいくつかのマイルス
トーンとなるポイントを持ち，各マイルストーンへ到達する操作や行動は，CTF や Lab work と同様に，個別の攻撃手法を扱う最小単位のシナリオと言える． 全体のシナリオは，各マイルストーンが個別のシナリオを介して繋がり，最終的にインシデント全体を形成する複合シナリオと考えることができる．
それぞれのマイルストーンに到達するシナリオは，複数の内容が考えられる． 例えば，悪意のあるファイルやマルウェアが電子メールで送信されるか，不正なウェブサイトからダウンロードされるよう誘導するかという違いや，攻撃者が管理者権限を奪おうとするときに，オペレーティングシ
ステムの設定の問題を突くものなのか，もしくは特定のソフトウェアの脆弱性を悪用するかどうかの違いなどである．
これらのシナリオの中には，異なる攻撃手法や脆弱性を用いても同じマイルストーンに到達し，同等の状態を形成するものがある．例えば，ター68ゲットとなる端末を特定し，侵入して特権を奪った場合，そこに至るために利用した攻撃手法や悪用した脆弱性が違っても，全く同じ状態にたどり着くことができる．全体のシナリオ中に存在する各マイルストーンを固定し，そこに至るまでのシナリオをランダムに変更することができれば，サイバーレンジ全体のシナリオをランダム化できる． 図 5.3 は，ランダム化を取り入れたサイバーレンジシナリオのイメージである．

図 5.3: ランダム化を取り入れたサイバーレンジシナリオ例
この手法でランダム化されたサイバーレンジシナリオは，各マイルス
トーンを頂点とし，次のマイルストーンに向かうシナリオをエッジとする
グラフの形を取る， 攻撃は最終的な目的に向かって進むため，演習時には前のマイルストーンへのパスを辿ったり，同じ場所にループする可能性は考慮しない． したがって，ランダム性を考慮したサイバーレンジシナリオは
有向非周期グラフ（DAG：Directed Acyclic Graph）の形式となる [40, 41]．
図 5.4 に，ランダム化したサイバーレンジシナリオのグラフ化と，シナリオ開発による経路の追加イメージを示す．

図 5.4: DAG ベースシナリオのグラフとシナリオ開発
ランダムシナリオ開発の際は，全体のシナリオが DAG 形式となるように構成し，図 5.4 の A や B のように同等の状態になる各マイルストーンに69

向かう経路を追加する．この方法であれば，DAG グラフの経路の総数分のシナリオパターンが提供でき，効率的なシナリオ開発が可能である． 複数のランダムシナリオを提供することで，受講者は様々なシチュエーション
でセキュリティインシデントを体験し，教育効果の高い演習が実現できる．

5.4

ランダム化要素の検討

DAG を用いたランダムシナリオ開発方法は，攻撃手法や脆弱性など，全体のシナリオの流れをランダム化する方法であるが，その他にも SecGen を参考に，環境や設定などランダム化できる要素を検討する．これらを実装することにより，全体が同じシナリオであっても、検知や対応で行う操作や対象となる端末が異なるなど，内容理解していなければ回答できない類似シナリオとして使用でき，シナリオの使い回しによる教育効果の低下を防
ぐなど，ランダム化の効果を向上させる演習環境を用意することができる．
表 5.1 に，SecGen で用いられているランダム化要素を確認し，サイバー
レンジ環境でもランダム化可能な要素を検討した結果を示す．
表 5.1: SecGen を参考にしたランダム化要素の検討
ランダム化要素

SecGenコンテナ型サイバーレンジ

OS・仮想インスタンス

一つの仮想マシン内に複数の ディストリビューション

複数のサービスの実行（ホスト OS に依存）

仮想マシンとホストのセグメントの変更など

1:1 のネットワーク

複合ネットワークの変更

サービス

FTP，HTTP，NFS など
個別のサービスの変更

モニタリングやチームのシステム設定OS およびインストール
されたソフトの設定

コンテナ起動時の設定やソフトウェアの
個別の脆弱性DAG ベースのシナリオで全体の流れを変更

上記の各種問題への対処

個別の問題ではなく脆弱性への攻撃

標的型攻撃やインシデント

暗号化手法など

対応など複合的な問題が対象

ネットワーク脆弱性

CTF スタイルの問題機能も含む複数のサービス
柔軟な設定変更

SecGen の内容から，コンテナ型のサイバーレンジ環境にも組み込むことができるものを検討した．これらの内容は，DAG ベースのシナリオの進行を妨げない範囲でランダムに設定することができる．
通常、高等教育機関でこれらの内容を反映してサイバーレンジの演習環境を構築するには，演習を担当する教員や担当の技術者が演習環境の構築や設定を行い，それらを複製して別の演習環境として設定などを変更して新たな演習環境として整えるなど，手動で複数の演習環境を整えなければ
ならない．

70

これらのランダム化を実現し，高等教育機関で普及が可能なサイバーレ
ンジとするには，DAG ベースのシナリオやその他の検討したランダム化可能な要素が自動で反映され，多くのランダムシナリオが自動で生成される
新たなサイバーレンジシステムが必要である．

5.5

実装方法の検討
検討した DAG ベースのランダム化サイバーレンジシナリオを実装するために，コンテナベースのサイバーレンジとしての普及を目指している CyExec
での実装を検討した．CyExec は，Docker によるコンテナ型仮想化を利用して演習環境を実装しているため高い性能を発揮でき，ランダム化により多くの仮想インスタンスを動作させる必要がある環境の構築にも適している．また，Docker は，Dockerﬁle や Docker compose と呼ばれる自動構成の仕組みを標準で備えており，コンテナイメージやネットワークの構成管理を自動で行うことが可能である．
図 5.5 に，Dockerﬁle と Docker compose の動作イメージを示す．

図 5.5: Dockerﬁle と Docker compose の動作

Dockerﬁle は，コンテナのベースとなるイメージに対し，必要な設定や実行コマンドなどを記述して，容易に独自の設定や動作が可能なコンテナを作成できる自動化ツールである．演習で利用する場合，各マイルストー
ンに到達するための個別のシナリオを Dockerﬁle で生成し，様々な攻撃や防御のシナリオを遂行することができる [42, 43]．

Docker compose は，Docker コンテナ群の起動や停止を指定した設定や構成で自動化できるオーケストレーションツールである．Docker compose
を利用することで，複数の Docker コンテナを利用した複雑なネットワーク
環境を簡単に構築でき，環境の入れ替えや停止，リセットなどサイバーレ
ンジ演習の準備に必要な動作も実行可能である [44, 45]．
また，Docker compose は，利用する Dockerﬁle の変更があった場合には変更部分のみ再構築を実行できるなど，ランダムなシナリオ環境を構築す
るために最小限の変更で対応が可能である．部分的な変更が多くなる DAG
ベースのランダムシナリオ環境では，有効に活用が可能である．

71

CyExec の環境で Dockerﬁle と Docker compose を使ってシナリオのラン
ダム化を実現できるよう拡張できる環境を実現し，CyExec∗ として開発する．個別のシナリオを実行できる複数の Dockerﬁle で作られるコンテナをDocker compose でランダムに選ぶようにすることで，DAG ベースのランダム化したサイバーレンジシナリオを実行する演習環境の構築が実現可能である．

SecGen は，Ruby，Vagrant，Puppet，Virtualbox など多くのプラットフォームを利用して演習用仮想マシンを構築している． これらの環境は一般的に利用可能で，かつ無償で利用できるが，多くのプラットフォームが関係することにより，バージョンやモジュールの違いによる互換性など，様々な要因で正常に動作しない場合がある．既存の研究でも，Vagrant をはじめとした自動構成ツールの利用は多いが，手順通りに導入を行っても動作せず，細かな設定の確認や手動での設定変更が必要になるなど，個別の対応が必要となる場合がよく見られる．

dockerﬁle や docker-compose は，Docker の提供する標準的機能として利用でき，それ以外のプラットフォームやサードパーティ製のソフトなどの利用を最小限で抑えられるため，環境に依存せず，容易な導入や拡張の簡素化が実現できる．CyExec のコンセプトでもある共同開発・共同利用によるエコシステムとして，高等教育機関で広く普及が可能なサイバーレンジ
システムとしての利用が期待できる．

5.6

開発
図 5.6 に，CyExec∗ の動作イメージを示す．

図 5.6: CyExec∗ の動作イメージ

CyExec∗ は SecGen と同様に 2 つのステージで構成する． ステージ 1 は
デフォルトシナリオと呼ぶ標準の演習環境をベースに，生成する環境の数，学習する学生の数など環境面の要素を定義する．ここでは，5.4 で検討した設定やネットワークなど，DAG ベースのシナリオ以外のランダム化要素を手動もしくは自動で設定し，ステージ 2 でコンテナを構築するために必要な Docker compose の設定ファイルを生成する．

72

ステージ 2 では，ステージ 1 で作られた Docker compose の設定ファイルを基に，複数の攻撃手法や脆弱性などを用いた異なるシナリオを生成するコンテナを Dockerﬁle を使って起動し，全体のシナリオを形成する演習環境となる．
ステージ 1 と 2 に分けることで，演習環境のランダム化要素と、DAG
ベースのランダム化要素を明確に分ける．DAG ベースのシナリオで独自の開発や変更を行う場合には，Dockerﬁle の追加や変更で新たなシナリオが開発可能である．
デフォルトシナリオは，演習の基本となるシステム構成を持つ演習環境であり，デフォルトシナリオの環境に必要なコンテナの追加や変更することで，シナリオの変更や，モニタリング・チームなど他の機能を考慮した拡張も可能である．
図 5.7 にデフォルトシナリオの構成を示す．

図 5.7: デフォルトシナリオの概要
すべての仮想インスタンスをコンテナで実装し，HV 型やホスト型の仮想マシンと同じように動作する GUI 環境（デスクトップ環境）を利用できるようにした．クライアント PC を再現するコンテナを追加することで，演73

習環境の規模や接続する人数を増やすなど，チーム・役割の機能を増やしたシナリオも検討できる．また，モニタリングの機能を利用できるよう，オー
プンソースの IDS である Snort を実装するなど，サイバーレンジに必要な機能を実現できる環境として構築している．
以下に，デフォルトシナリオを構成するクライアントの Dockerﬁle の例
を示す．

FROM ubuntu:18.04
LABEL maintainer="Ryotaro Nakata"
ARG host_name="cyexec*_client01"
ENV DEBIAN_FRONTEND=noninteractive HOSTNAME=$host_name#Locale and Language setting
RUN apt-get update && apt-get install -y ibus-mozc#User setting
ARG root_password="root"
ARG user_name="ubuntu"
ARG user_password="password"
RUN echo root:$root_password | chpasswd && apt-get update && \apt-get install -y openssl sudo && \useradd -m -G sudo $user_name -p \$(openssl passwd -1 $user_password) --shell /bin/bash#RDP setting
RUN apt-get update && apt-get install -y xfce4 xfce4-terminal \xfce4-goodies xrdp && adduser xrdp \ssl-cert && update-alternatives --set x-terminal-emulator \/usr/bin/xfce4-terminal.wrapper
COPY ./config/xrdp/sesman.ini /etc/xrdp/sesman.ini
COPY ./config/xrdp/xrdp.ini /etc/xrdp/xrdp.ini
COPY ./config/xrdp/default.pa /etc/xrdp/pulse/default.pa
EXPOSE 3389
#Startup setting
RUN apt-get update && apt-get install -y supervisor
ADD ./config/supervisord/* /etc/supervisor/conf.d/74

#Install Preferred package
RUN apt-get update && apt-get install -y \git tig gedit nano wget curl net-tools firefox\
build-essential software-properties-common#Install Network tools
RUN apt-get update && apt-get install -y \iputils-ping inetutils-traceroute net-tools# Clean up
RUN apt-get clean && apt-get autoremove \&& rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*
CMD ["bash", "-c", "/usr/bin/supervisord \-c /etc/supervisor/supervisord.conf"]

このクライアントは，参加者がインシデントを調査・検討するためのデバイスとして，あらゆるシナリオで利用できる．また同様に，DockerHUBで公開されているコンテナイメージを使って，Kali linux，Metasploitable2，

Snort を構築した．これらのコンテナは，Dockerﬁle の記述に基づいたシナ
リオで起動・実行することができ，容易にシナリオの変更や機能の追加が可能である．
図 5.8 に，デフォルトシナリオの環境に接続した画面の例を示す．

図 5.8: デフォルトシナリオの操作画面

75

Web サーバへのアクセスやネットワークの確認など，一般的な端末操作と変わらない環境を実現しつつ，コンテナの迅速な起動と軽量な動作が期待できる．必要に応じてツールを追加し，様々な用途に利用することができ，意図的に脆弱性を持たせたり，他のコンテナを攻撃するプログラムを実行したりすることで，シナリオを自由に開発することができる．

5.7

CyExec∗ によるランダム性の検証
ランダム性を持たせた演習環境が自動的に構築され，演習が実施できるかをテストをするために，最小限の構成で DAG ベースのランダムシナリオを検討した． デフォルトシナリオの Metasploitable2 上に存在する脆弱性に対する複数の攻撃手法による攻撃結果が，DAG の形式を取り同じマイルス
トーンに到達するものである場合，ランダム化したシナリオを開発することができる．
表 5.2 に，Metasploitable2 上で動作する脆弱性のあるアプリケーションと，同じマイルストーンにつながるエクスプロイトモジュールの例を示す．
表 5.2: 脆弱なアプリケーションと，同等の動作が可能なエクスプロイトモ
ジュール

Vulnerable

exploit on Metasploit

Applications
vsftpdexploit/unix/ftp/vsftpd 234 backdoor

php

exploit/multi/http/php arg injection

Samba

exploit/multi/samba/usermap script

PostgreSQL

exploit/linux/postgres/postgres payload

UnrealIRCD

exploit/unix/irc/unreal ircd 3281 backdoor

distccd

exploit/unix/misc/distcc exec

Ruby DRb RMI

exploit/linux/misc/drb remote codeexec

これらのエクスプロイトモジュールを利用すると，攻撃対象のサーバ上で動作するソフトウェアの脆弱性を悪用し，正規の認証を経ずに任意のコマンドがリモートで実行できる． root 権限でコマンドを実行できるため，
本来アクセス権の無い情報を取得したり，ファイルを改ざんしたりと，様々なアクションを行って次のシナリオに繋げられる [46, 47]．
また，DAG ベースのシナリオ開発や追加・変更を容易にするために，

Dockerﬁle をシナリオの分岐と同様に配置するよう検討した．
図 5.9 にディレクトリ構造の例を示す．

76

図 5.9: CyExec∗ のディレクトリ構造例

Docker compose を制御する Docker-compose.yml ファイルをトップディ
レクトリに配置し，サブディレクトリにある Dockerﬁle を使って環境が構築される．シナリオの分岐点はシンボリックリンクとして，ディレクトリ構造
そのものが DAG の形式を取るように配置する，これにより，シナリオの構
造とディレクトリの構造が一致し，全体の構造がわかりやすい配置となる．
この構成でランダムシナリオを実行できることを検証するために，デフォ
ルトシナリオにマルウェアを送る exploit を追加し，図 5.10 に示すようなランダムシナリオを実行できる環境が自動で構築できることを検証した．

Kali linux コンテナにそれぞれ別のエクスプロイトモジュールを実行するように指定し，Metasploitable2 コンテナには，root 権限で任意のコマンドを実行できるようにする．その後，Dockerﬁle に記述したコマンドにより，マルウェアを模倣したファイルを，1 つは別のサーバーから HTTP でダウ
ンロードし，もう 1 つは FTP で送信するように指定する．

77

図 5.10: 検証したランダムシナリオ
以下に、シナリオの選択に使用する際の Docker-compose.yml ファイルの例を示す．

version: ’3’
services:client01:
build:
context: .
dockerfile: > ./scenario01-A/Dockerfile_client01
client02:
build:
context: .
dockerfile: > ./scenario01-A/Dockerfile_client02
vulnerable_server:
build:
context: .
Dockerfiles: > ./scenario01-A/Dockerfile_metasploitable2
IDS:
Build: .
context: .
Dockerfiles: > ./scenario01-A/Dockerfile_snort
scenario_A:
build:
context: .
Dockerfiles: > ${SCENARIO_01_A:-"./scenario01_A1"}
scenario_B:
build:
context: .
78

Dockerfiles: > ${SCENARIO_01_B:-"./scenario01_B1"}

このシナリオで演習を行う際には，どのようにして侵入したのか，どのようにマルウェアを送り込まれたかなどを調査する． つまり，DAG ベースのシナリオの経路を辿って調査を行うことが演習の内容となる．
今回は疑似マルウェアを使った単純なシナリオにより，2 × 2 の経路をとった計 4 本のシナリオを実行する環境が同時に生成できた．実際にマルウェアの動きをするプログラムを使用したり，別の機器へ攻撃を伝搬させるなど，様々な経路でより多くのシナリオを追加することも可能である．

5.8

演習シナリオランダム化のまとめ
サイバーレンジのシナリオは開発が困難であり，高等教育機関ではシナリオ不足による使い回しや漏洩など，教育効果に影響を及ぼす課題がある．
そのため，多くのシナリオの提供が可能な DAG ベースのランダムシナリオ
開発手法を検討した．

DAG ベースのシナリオは，複数の経路を取るシナリオが特定のマイルストーンを経由して全体のシナリオを構成する．そのため，同じマイルス
トーンに集約が可能な攻撃手法や脆弱性の利用などのシナリオを途中に追加することで，ランダムに多くの経路を取る複数のシナリオを効率的に開発できる．
また，DAG ベースで開発した多くのシナリオを使った演習を実現する
ため，コンテナ型仮想化の高い性能を発揮できるサイバーレンジシステム

CyExec∗ を開発した．Docker の標準機能を中心とした拡張性の高い演習環
境が自動で構築可能で，高等教育機関への普及や，共同利用・共同開発による発展も意識した汎用性の高いシステムとして利用できる．
ただし，今回開発した CyExec∗ は，ランダム化したサイバーレンジシナ
リオの演習環境構築を自動化するシステムとして開発したものである．DAG
ベースのシナリオ開発は，効率的に多くのシナリオを開発する手法であるが，同等の状態に集約する攻撃手法や脆弱性は手動で検討する必要がある．
より多くのシナリオを効率的に提供し，高等教育機関で広く普及が可能なサイバーレンジシステムとして利用するためには，DAG ベースのシナリ
オを自動生成し，シナリオの提供と演習環境の構築が全て自動化されるシステムの開発が望ましく，今後の課題である．

79

第6章

CyExec∗ のサイバーレンジ機能と性能
本章では，開発した CyExec∗ がサイバーレンジに必要な機能を有し，高等教育機関での利用に適していることを既存研究と比較して確認する．また，優位性の検証の通り正しくコンテナ型仮想化の性能を発揮できていることを確認するため，リソースの消費や起動時間など，実際の演習環境を想定した比較を行う [20]．

CyExec∗ のサイバーレンジ機能

6.1

CyExec∗ は，高等教育機関での普及を考慮したサイバーレンジシステム
であるため，表 2.6 で確認した教育機関向けのサイバーレンジ機能について
既存の研究と比較してどの程度対応できているかを確認する．
表 6.1 に確認した内容を示す．
表 6.1: 既存研究とのサイバーレンジ機能比較

シナ
リオ

CyExec*CyTrONE

SecGenLabtainers

○

△

○

○

DAG ベースのランダム化
演習シナリオ

固定サンプル

設定や脆弱性

シナリオ構築

シナリオやのランダム化

済みの VMCTF 問題

演習シナリオ

イメージ公開○△××

モニタリングモニタリング

目的のシナ

目的のシナ

リオは無し

リオは無し

×

△

モニタ

デフォルトシナリング

リオで実装，
追加・拡張可能チーム

学習

独自仕様の開発
により実装可能○△クライアント

開発によりコンテナ追加でチーム演習環境チーム演習可能

が可能

×

○

×

△

学習管理機能Moodle 連携の学習管理

学習管理機能

独自仕様の

は未搭載

学習管理機能は未搭載

80

個別学習想定の演習環境

複数ユーザの
シナリオを
一部提供

管理

セキュ
リティ

○

△

×

△

一斉起動や環境

一斉起動や終了

演習環境は入替，リセットが可能．追加で等の演習環境の起動やリセッ

管理が可能

トは手動

Vagrant や
Virtualbox を
手動で操作
して管理

○

○

×

○

演習環境と外部

演習環境と外部

ホスト OS の演習環境と外NW の隔離NW の隔離NW も演習利用

部 NW の隔離

手動での管理．
一部環境作成機能を搭載

サイバーレンジで最も重要となるシナリオ面では，CyExec∗ は DAG ベースのランダム化したサイバーレンジの演習シナリオの実行環境の自動構築が可能である．新たなコンテナの追加や変更したシナリオ開発も柔軟に対応できるため，効率よく多くのシナリオを利用できる教育効果の高い演習環境が実現できる．既存の演習システムでも演習環境の開発は可能だが，それぞれの教育機関が独自に開発しなければならず，専門知識や技術が必要であったり，システム独自の仕様で開発しなければならなず，難易度が高い．
モニタリングやチームの機能などサイバーレンジに特有の機能は，CTF
やラボ演習など個別の攻撃手法や脆弱性を学ぶ演習環境の場合にはあまり想定されていないが，CyExec∗ ではデフォルトシナリオによる演習環境に組み込んだ IDS によるモニタリングの機能や，クライアント機器に外部から接続して演習を行う形式を想定しており，必要なコンテナの追加による追加や拡張も可能である．
学習管理機能は本論文の研究内容では未実装であるため，今後の研究で考慮する必要があるが，演習の準備や実施に必要となる管理面では，Docker

compose の機能をそのまま使うことが可能であり，迅速な一斉操作や環境の入れ替えといった，教育機関での演習の実施に必要な機能が利用できる．
既存の演習環境では，統一した演習環境を迅速に準備したり，連続した授業のために入れ替えたりなどは個別に対応する必要があるため容易ではな
く，時間もかかる．セキュリティ機能は，脆弱性の再現性の検証の際の実験
環境のように，ネットワーク環境を変更することで外部ネットワークとの隔離を想定しているが，高等教育機関での情報セキュリティ演習におけるセキュリティ面は，単にシステムの安全性のみではなく，法や倫理に関する教育なども含め総合的に考慮する必要があるため，シナリオの内容や学習，管理の機能も含めた総合的な課題として今後検討する必要がある．
なお，サイバーレンジでは，多くのシナリオで学習を可能にすることで，使い回しや漏洩への対応や，目的・レベルに応じたより高い教育効果を得られるため，開発や変更・追加などの拡張が容易に行えるかが普及のために重要となる．CyExec∗ では，開発の簡素化を意識し，Docker の標準機能のみ
で拡張を行えるようにした．教員や開発者は，独自の仕様や別のプラット81フォームの知識を必要とせず，攻撃や脆弱性を再現できる Docker コンテナを追加や変更することで，演習環境を柔軟に拡張させることが可能である．

CyExec∗ 性能確認

6.2

前節で，CyExec∗ が高等教育機関向けのサイバーレンジとして一定の機能を有することが確認できた．さらに，コンテナ型仮想化を活用したサイバーレンジとして，性能面の優位性の検証を行った通り正しく性能を発揮できるかを確認するため，同じシナリオランダム化の機能を有する演習環境である SecGen との比較を行った．
ただし，CyExec∗ と SecGen では構成が大きく異なる． CyExec∗ のデフォ
ルトシナリオは 6 つの仮想インスタンスを含み，Kali linux など容量の大きなイメージを利用しているのに対し，SecGen は Web サーバなどを含んだ 1
つの仮想マシンイメージがデフォルトシナリオを構成している． CyExec∗は汎用的な演習に利用可能な環境であり，デフォルトの SecGen シナリオの内容をカバーできるため，同等の性能を持つ環境を再現できるとみなし，不利な条件ではあるがコンテナ型サイバーレンジの優位性を確認できるもの
として，そのままの条件で比較を行った．
比較内容は，デフォルトシナリオを起動した際のメモリや CPU，スト
レージの消費量によるパフォーマンス比較と，デフォルトシナリオ，およびそこから派生して生成できるランダムシナリオにおいて，それぞれの起動時間の比較を行い，演習の際の状況を想定した動作状況を確認する．
よりリアルな演習環境を再現するため，初回のデフォルトシナリオは各
リポジトリからの基本イメージのダウンロード時間も含めて計測した．ランダムシナリオはデフォルトシナリオから派生するシナリオを利用しているため，基本イメージの再ダウンロードや，新たなイメージのダウンロードの必要がない環境での純粋な性能面での比較とした．

6.2.1

実験環境

表 6.2 に，実験に用いた環境を示す．

SecGen は，github 上で開発が受け継がれておりインストール方法も記載されているが，Ubnutu 上でインストールドキュメント通りに実施すると，

ruby の追加モジュールのバージョンが対応していないなどそのままでは利用できなかったため，不足している内容を調査し，手動での追加や設定変更を行い，動作確認を行った．

82

表 6.2: ランダムシナリオ比較環境
CyExec*ホスト OS

Ubnutu18.04

ネットワーク

環境・
利用ソフト等

6.2.2

SecGen

備考
日本語版

Dockerブリッジ経由Virtualbox
NAT/
ホストオンリー

標準構成

Docker-CE
Docker compose

Virtualbox
Vagrant
ruby

ruby のモジュール等
設定やバージョン調整

実験結果

以下に，CyExec∗ と SecGen の動作を比較した結果を示す．初めに，同じ環境上でそれぞれ複数のデフォルトシナリオを起動した際のリソースの消費状況を確認した．どちらもホスト OS とした Ubuntu 上で，システムモ
ニターや sar コマンド，df コマンドなどにより確認を行った．
なお，起動を確認して演習準備ができた時点での各ハードウェアリソー
スの消費量を確認し，演習環境へのログインなどその後の動作は行っていない状態で確認している．
図 6.1 に，メモリ消費量の比較結果を示す．

図 6.1: CyExec∗ と SecGen のメモリ消費量比較
どちらも演習環境の数にほぼ比例してメモリ消費が増加した．10 個の環境を起動した際の CyExec∗ のメモリ消費量は 5.1GB であったのに対し，SecGen は 14.8GB とおよそ 3 倍の消費量であった．CyExec∗ のほうが動作する仮想インスタンスは多いが，コンテナを使うことで大幅に消費リソー
スを抑えられている．
図 6.2 に，CPU 使用率の比較結果を示す．
メモリ消費量と同様に，ほぼ環境の数に比例して使用率が増えている．

83

図 6.2: CyExec∗ と SecGen の CPU 使用率比較

10 個の環境を起動した際の CyExec∗ の CPU 使用率は 23.05%であったのに対し，SecGen は 88.11%と，約 4 倍弱の使用率となった．CPU は実際の演習で行う動作によっても消費状況が大きく変化するため，単純な性能比較は難しいが，少なくとも演習環境の起動の状態では，CyExec∗ の環境が大幅に CPU 使用率を抑えられている．
図 6.3 に，ストレージ消費量の比較結果を示す．

図 6.3: CyExec∗ と SecGen のストレージ消費量比較

CyExec∗ はデフォルトイメージにデスクトップ環境を用意した Ubuntu
や，Kali Linux など，容量の大きなコンテナイメージを複数使って構築しているため，1 つ目の環境を起動した際のストレージ消費量は 3GB 以上と，かなり大きくなった．しかし，2 つ目以降の環境を起動した際は，コンテナの特徴である UFS の仕様により，同じイメージを使って起動が可能である
ため，環境の数が増えてもストレージ消費量はほとんど増加しない．

SecGen のデフォルトシナリオで使われている仮想マシンイメージは，容量は 1GB 少々とさほど大きなものではないが，Virtualbox で作られている

84

ホスト型仮想化による演習環境を増やすには，仮想マシンそのものを新たに作る必要があり，同様のストレージ容量を消費するため，環境の数が増えるほど大幅にストレージ容量を消費する．10 個目の環境を起動した際には，ストレージの増加量は CyExec∗ のストレージ消費量は SecGen の 1/10となり，大幅に抑えられることが確認できた．
次に，起動時間の比較結果を示す．デフォルトシナリオと，デフォルト
シナリオから派生して起動できるランダムシナリオの環境を用いて，ストレージの消費状況とともに比較を行った．
図 6.4 に，デフォルトシナリオを起動した場合の起動時間とストレージ消費量の比較を示す．

図 6.4: CyExec∗ と SecGen のデフォルトシナリオ起動時間とストレージ消費の比較

CyExec∗ も SecGen も，初回の実行時に必要なイメージをダウンロード
する．SecGen はダウンロード完了後も様々な設定が進行したため，最終的に利用できるようになるまで 39 分 25 秒を要した．CyExec∗ は使用したイメージの容量が多く，ダウンロードには時間がかかったが，環境が起動して使えるようになるまでに 31 分 28 秒と，最終的には SecGen を上回り，起動までにかかる時間の速さが確認できた．
初回起動時の環境を終了した後にもう一度同じ環境を起動した．この場
合，イメージのダウンロードが必要ないため，CyExec∗ はすぐに環境の起動が始まり，22 秒という非常に短い時間で使用可能になった．SecGen も

Vagrant の機能により box と呼ばれる基本イメージをローカルに持つためイメージのダウンロードは必要ないが，vagrant の設定動作は初回と同様に必要であり，起動までに 6 分 19 秒を要した．
その後再度同様のシナリオを起動して確認したが，ほぼ同様の結果となり，コンテナを利用した CyExec∗ の性能の高さが確認できた．

85

図 6.5 に，ランダムシナリオを起動した場合の起動時間とストレージ消費量の比較を示す．

図 6.5: CyExec∗ と SecGen のランダムシナリオ起動時間とストレージ消費の比較
デフォルトシナリオの一部を変更して起動できるランダムシナリオを起動させた．CyExec∗ は変更部分に必要なコンテナのみを Dockerﬁle による記述に従って生成して起動し，2 分 13 秒で利用可能な状態となった．変更した分のストレージ容量は増加したが，それ以外はデフォルトシナリオと共通のイメージを利用するため，少ない容量の消費で済んでいる．

SecGen も，仮想マシン数が変わらない構成のランダムな環境を起動したところ，13 分 19 秒で起動した．SecGen の場合，起動する仮想マシンの数が変わらない環境であれば，ほぼ同じ容量を使う仮想マシンが新規に作成され，設定時にランダム化による必要な変更が行われた．
その後，新たに 3 パターンのランダムシナリオを派生させて起動したが，いずれの場合も CyExec∗ の性能が上回る結果となった．

6.3

考察
コンテナ型仮想化を使ったサイバーレンジ環境に，ランダム化シナリオの演習環境構築機能を追加して開発した CyExec∗ が，教育機関で広く普及可能なサイバーレンジとして利用できることを確認するため，必要な機能について既存研究との比較を行った．

CyExec∗ は既存の研究による演習システムと比較して，教育機関で有効に活用できるサイバーレンジに関する機能を有している．シナリオ面ではDAG ベースのシナリオランダム化手法により開発した演習シナリオを実行できる環境の自動構築機能を実装し，通常のシナリオ開発よりも多くのシ

86

ナリオを効率的に提供できる．また，開発のベースとした CyExec は，コンテナの軽量さやリポジトリの活用による移植性の高さを有効に利用することで，共同開発・共同利用による多くの教育機関への普及を目指したものであり，独自にシナリオ開発を行うことが困難な教育機関でも，他の教育機関が開発・拡張したシナリオを利用することが可能である．
学習管理の機能は，コンテナの機能や性能に直接関係しないため，コンテンツの作り込みや外部システム・サービスとの連携など，今後の課題として検討する必要がある．また，高等教育機関での利用の場合，演習による教育効果を測定する方法など，成績評価に繋がる機能も重要であるため，シナリオの内容と併せ，検討する必要がある．セキュリティ面では，機能で制限するだけではなく，法や倫理面の教育をセットで実施するなど，対象が学生であることを考慮した対応も必要であるが，CyExec で用意されているドキュメント類を利用するなど，システム以外の教材を共有することで，多くの教育機関で有効に活用できるセキュリティ教育コンテンツとして普及を促すことが可能である．
また，管理面に関係する内容として，CyExec∗ がコンテナ型仮想化の性能を正しく発揮できるかを確認するため，ホスト型仮想化ベースの CTF ラ
ンダムシナリオジェネレーターである SecGen との性能比較を行った．今回の比較ではシナリオの内容が異なるため，単純な性能比較とはならないが，

CyExec∗ の方が多くの仮想インスタンスを利用する複雑な内容になっているにもかかわらず，デフォルトシナリオの繰り返しの起動だけでなく，デフォルトシナリオから派生したランダムなシナリオの起動でも大幅に優位な結果となり，コンテナ型仮想化のパフォーマンスを最大限活用したシステムとして高い性能を確認できた．
実際に演習を行う際は，DAG ベースで開発したランダムシナリオを実施できる環境を自動構築することで，同じ場所で複数チームでの演習を行っても，他チームの進行や状況によるシナリオ漏洩を気にせず，高い教育効果が発揮できる．また，その環境を用意する際も，従来の演習環境に比べ大幅に準備にかかる時間も短く，ハードウェアリソースの消費も大幅に抑えて準備することが可能である．今回の検証では，最小限の構成でランダムシ
ナリオの演習環境を CyExec∗ により自動構築する動作確認を行った．これ
らの確認を行うためにも，今後は CyExec∗ を用いた演習を実際に行い，大規模な環境での動作確認や，演習による教育効果の測定が必要である．ただし，サイバーレンジ演習による教育効果の測定手法は有効的な手法が確立されておらず，アンケートによる調査にとどまっている．
ランダムシナリオによる複数の演習が実施できれば，一つのシナリオ体験後に他のシナリオの回答率や時間を調査するなど，演習の効果や知識・技術の習得割合なども確認できる可能性があり，教員が成績を判断する材料

87

としても利用できるなど，学習管理面の機能としてもより良い効果を期待できる．

CyExec∗ は，コンテナ型仮想化による高い性能を誇り，様々な機能を実現，向上できるシステムとして利用できる．今後も高等教育機関向けのサイバーレンジとして研究・開発を継続し，普及を促す．

88

第7章
結論

本論文では，不足する情報セキュリティ人材の育成を促すことを目的とし，効率的で教育効果が高いセキュリティインシデント対応演習が実施できるサイバーレンジに着目した．
サイバーレンジは，仮想化技術を用いて現実のシステム環境を再現し，実際に起こるセキュリティインシデントを扱った演習シナリオによる，リアリティの高いインシデント対応の体験を通してセキュリティの知識や技術・対応手法を学ぶことができる演習システムである．
サイバーレンジの教育効果の高さは，専門家の育成だけでなく，一般のシステム利用者や高等教育機関での教育カリキュラムへの導入など，幅広いニーズがあるが，高い導入・維持管理コストや，シナリオ開発の困難さ，
内容の漏洩による教育効果の低下などの課題がある．特に教育機関では独力で導入・維持管理が難しく，企業や専門機関の協力が得られる一部の大学を除き，普及が進んでいない．
そこで本論文では，既存の情報セキュリティ教育・演習の研究事例や，サイバーレンジ演習の実例，およびサイバーレンジで使われる仮想化技術の調査から，教育機関に必要なサイバーレンジの機能や現状の課題を明らかにした上で，軽量な実行環境が実現できるコンテナ型仮想化を使った演
習環境を構築するコンテナ型サイバーレンジの利用による普及拡大を提案した．コンテナ型仮想化の技術と軽量な実行環境は，サイバーレンジのス
ケーラビリティを容易にし，低コスト化が期待できるだけでなく，高等教育機関向けのサイバーレンジに必要な様々な機能の実現が期待できる．
しかし，コンテナ型仮想化によるサイバーレンジ環境構築の事例が少な
く，性能面での優位性や脆弱性の再現性能が明確ではなかったため，サイバーレンジとして十分に性能が発揮でき，かつ他の仮想化方式と同等のシナリオが再現できるかという懸念があり，利用が進んでいない．そのため，
サイバーレンジ環境を想定した網羅的な実験により，他の仮想化方式と比較した場合のコンテナの性能面の優位性と，脆弱性の再現性を検証した．
その結果，実験用のサーバーレンジ環境でメモリ消費は約 1/2，ストレー

89ジ消費は約 1/60 に抑えられることを確認した．また，CPU 使用率で大きな差は見られなかったが，環境の起動や実際の操作には大きな差が発生し，コンテナ型仮想化の特徴である起動の速さや最小限のプロセスによる動作による優位性を確認できた．
また，コンテナ型サイバーレンジの脆弱性の再現性を，様々な脆弱性検査
ツールや，攻撃テストによる検出結果の比較により検証した結果，物理環境とのジャッカード係数による類似性は J(AReal , AContainer ) = 0.9602 という高い値を示した．他の仮想化方式との比較でも，HV 型とは J(AHV , AContainer ) =0.9907，ホスト型とは J(AHost , AContainer ) = 0.9931 であり，いずれも非常に高い値を示した．これは，他の仮想化方式と大きく異なる特徴を持つコ
ンテナ型仮想化の環境では予想を大きく上回る結果であり，コンテナ型仮想化が他の仮想化と遜色なく脆弱性やインシデントを再現可能であることが確認できた．
これらの結果を有効に活用するため，多数のシナリオを効率的に開発できる DAG ベースのシナリオランダム化手法を検討し，そのシナリオによる演習環境を自動構築できるコンテナ型サイバーレンジシステムとして，高等教育機関で広く普及が可能な新たな演習システムである CyExec∗ を開発した．既存の演習システムでの課題となっていたシナリオの不足による使い回しや漏洩などの課題に対応し，コンテナを活用することで，モニタリ
ングやチーム・役割，管理などの機能にも対応して高い教育効果を得ることができる新たなサイバーレンジシステムである．

CyExec∗ は Docker によるコンテナ型仮想化の性能を最大限活用しているため，効率的に演習環境の構築が可能であり，演習環境や仮想インスタ
ンスの増加によりシステムの負荷が高くなる懸念も払拭でき，大規模な演習環境や，繰り返しの演習も想定した高等教育機関向けのサイバーレンジ
システムとして有効に利用できる．
既存の研究による演習システムとの比較により，サイバーレンジに必要な機能であるシナリオ面や管理面の機能の向上と，モニタリング面やチー
ム・役割といった機能の追加への対応も可能であることを確認した．また，ホスト型仮想化を使った CTF ランダムシナリオジェネレーターである SecGenとの比較では，メモリ消費で 1/3，CPU で 1/4，そしてストレージ消費では1/10 という高いパフォーマンス示した． これは少なくとも，従来の仮想マ
シンベースのサイバーレンジ環境よりも，3 倍以上のシナリオ実行環境の再現能力を有していることを示している．
サイバーレンジはこれまで，高性能なハードウェアが導入可能で，維持管理コストも潤沢な組織や企業を中心に利用されてきた．しかし，不足する
セキュリティ人材の不足に対応するためには，専門家の育成だけではなく，独力でサイバーレンジの導入・維持管理が困難な高等教育機関でも普及を促

90

し，教育できる機会を広げる必要がある．コンテナ型仮想化の性能を最大限に活用し，DAG ベースのシナリオランダム化の機能を搭載した CyExec∗
は，高等教育機関でのサイバーレンジの導入を推進し，現実的な情報セキュ
リティ教育の手段として利用できる．
今後，CyExec∗ を利用することで，多くの高等教育機関でサイバーレン
ジの共同開発・共同利用を推進し，サイバーレンジのエコシステムとして発展させることを目指す．CyExec∗ による導入の容易さや性能の高さ，演習機能の充実だけではなく，新たなシナリオの追加・変更も容易であることを強く意識して開発している．また，DAG ベースのシナリオ開発手法を発展させることによるシナリオ開発の自動化や，クラウドサービス上での環境構築による演習のオンライン化など，高等教育機関で有効な機能の向上，追加を進め，広く利用可能なサイバーレンジとして普及を目指す．
本論文による研究では，サイバーレンジの学習機能に関しては直接触れていないが，高等教育機関で広く利用可能なサイバーレンジを検討する上では，教育効果の測定や演習の進捗管理など，学習内容を把握し成績に反映するための機能のニーズは高い．例えば DAG ベースのシナリオの達成度の把握や，特定の経路のシナリオの体験後に，その知識・技術を活用できる別経路のシナリオによる理解度のテストなど，多数のシナリオをランダムに提供できることを有効に活用した効果測定手法の確立が考えられるため，シナリオの機能面の向上とともに研究を進める．
この論文による研究内容が，これまで独力で高額な演習システムの導入や柔軟なセキュリティ教育の実施が難しかった高等教育機関にも，サイバー
レンジによる効率的で教育効果の高い演習による教育を可能とし，セキュリティ人材育成の礎を築くことを期待する．

91

謝辞

本研究を進めるにあたり，指導教官である大塚玲教授より多大なご指導・ご鞭撻を賜りました．心より感謝申し上げます．博士課程へ進学するきっかけから，経験が乏しい私に根気強くご指導をいただき，研究の着想から本論文の執筆に至るまで長きに渡り大変お世話になりました．
また，情報セキュリティ大学院大学の後藤厚宏学長，土井洋教授，橋本正樹准教授より，中間審査および最終審査，ならびに博士演習など，多くの機会で貴重なご指導とご助言をいただきました．また，情報セキュリティ大学院大学への進学をきっかけとして，多くの経験をさせていただくことができ，新たな道へ向かう貴重な経験となりました．その他関係者の方々を含め，感謝申し上げます．
東京都立産業技術大学院大学の名誉教授（旧公立大学法人産業技術大学院大学，

PBL 指導教授）の瀬戸洋一先生には，本研究に繋がるさまざまなご指導・ご鞭撻を賜りました．また，研究や論文作成の経験が無かった私を，研究者として第一歩から現在に至るまで見守っていただき，研究・その他様々な場面でお世話になり，心より感謝申し上げます．
関係する瀬戸 PBL のメンバーにも感謝申し上げます．特に，日本 IBM の山川
吉雄さん，情報科学専門学校の長谷川久美さんとは，同年の PBL メンバーとして多くの議論や様々な活動を通してご協力いただきました．また，後輩となる笠井信
輔さん，豊田真一さんにも，研究活動や論文作成などを通してお世話になりました．
私立大学キャンパスシステム研究会，私立大学情報教育協会，国立高専機構のセキュリティ人材育成事業 K-SEC に関係する皆様にも，研究に関連する貴重な機会をいただきました．皆様の協力なく，本論文を完成させられることはありません
でした．
そして，私の研究生活の中で多くの協力，助言，支援，励ましをいただきました大塚研究室のメンバーの皆様にも感謝申し上げます．研究に関することから，互いの趣味や仕事に関することまで，大変に貴重で刺激的で興味が尽きない毎日を送ることができました．
最後に，常に支えていただいた家族に，心より感謝します．特に，進学や転職など生活にかかわる重要なことでもいつも勝手に決めてしまう私を，呆れつつも見守り応援してくれた妻は，私以上に私を理解し，常に支えてくれました．
全ての方々に改めて感謝の気持ちを申し上げ，本論文の謝辞とさせていただき
ます．

参考文献

[1] (ISC)2 .

Cybersecurity professionals focus on developing new skills

as workforce gap widens.

https://www.isc2.org/-/media/ISC2/

Research/2018-ISC2-Cybersecurity-Workforce-Study.ashx?la=en&hash=4E09681D0FB51698D9BA6BF13EEABFA48BD17DB0. (Accessedon 06/04/2021).
[2] 日本ネットワークセキュリティ協会. セキュリティ人材育成は，新たなステージへ！https://www.jnsa.org/seminar/2019/0612/data/a1-2_

edu.pdf. (Accessed on 06/04/2021).
[3] 大久保英樹. 情報セキュリティ人材の育成に関する研究-人的規模・育成コスト・リカレント教育の観点から-. http://lab.iisec.ac.jp/

degrees/d/theses/iisec_d42_thesis.pdf, 3 2020.

(Accessed on

06/18/2021).
[4] 八代哲, 高橋和司, 渡辺亮平, 角田裕太, 田邉一寿, 横山雅展, 齋藤祐太,
齋藤孝道. 体験型サイバーセキュリティ学習システムの提案と構築. コ
ンピュータセキュリティシンポジウム 2017 論文集, 第 2017 巻, oct 2017.

[5] Razvan Beuran, Dat Tang, Cuong Pham, Ken-ichi Chinen, Yasuo Tan,and Yoichi Shinoda. Integrated framework for hands-on cybersecurity
training: Cytrone. Computers & Security, Vol. 78, , 06 2018.
[6] Wenliang Du, Karthick Jayaraman, and Noreen B. Gaubatz. Enhancing security education with hands-on laboratory exercises.
[7] 江連三香. 増加する社会インフラを標的としたサイバー攻撃：5．サイバー攻撃に備えた実践的演習. 情報処理, Vol. 55, No. 7, pp. 666–672,

jun 2014.
[8] Peter Chapman, Jonathan Burket, and David Brumley. Picoctf: A
game-based computer security competition for high school students.
In 2014 USENIX Summit on Gaming, Games, and Gamiﬁcation in
Security Education (3GSE 14), San Diego, CA, August 2014. USENIX
Association.
93

[9] Z. Cliﬀe Schreuders, Thomas Shaw, Mohammad Shan-A-Khuda,
Gajendra Ravichandran, Jason Keighley, and Mihai Ordean. Security scenario generator (secgen): A framework for generating randomly
vulnerable rich-scenario vms for learning computer security and hosting CTF events. In 2017 USENIX Workshop on Advances in Security
Education (ASE 17), Vancouver, BC, August 2017. USENIX Association.
[10] Wenliang Du. Seed: Hands-on lab exercises for computer security education. IEEE Security Privacy, Vol. 9, No. 5, pp. 70–73, 2011.
[11] Cynthia-E. Irvine, Michael-F. Thompson, and Jean Khosalim. Labtainers: a framework for parameterized cybersecurity labs using containers,
2017.
[12] 竹下数明, 小林偉昭, 佐々木良一. 脆弱性対策教育のための e ラーニング
システムの開発と評価. コンピュータセキュリティシンポジウム 2009

(CSS2009) 論文集, 第 2009 巻, pp. 1–6, oct 2011.
[13] 脆弱性体験学習ツール appgoat：ipa 独立行政法人 情報処理推進機
構. https://www.ipa.go.jp/security/vuln/appgoat/. (Accessedon 06/15/2021).
[14] Chengcheng Li. Penetration testing curriculum development in practice. Journal of Information Technology Education: Innovations inPractice, Vol. 14, No. 1, pp. 85–99, January 2015.
[15] Cyder — cyder について — ナショナルサイバートレーニングセン
ター — nict-情報通信研究機構. https://cyder.nict.go.jp/about/index.html. (Accessed on 06/15/2021).
[16] Muhammad Ali Babar and Ben Ramsey. Understanding container isolation mechanisms for building security-sensitive private cloud, 01 2017.
[17] J. Horalek, J. Matyska, and V. Sobeslav. Performance comparisonof selected virtualization platforms. In 2013 IEEE 14th International
Symposium on Computational Intelligence and Informatics (CINTI),
pp. 327–332, 2013.
[18] Gaku Nakagawa and Shuichi Oikawa.

Behavior-based memory re-source management for container-based virtualization. In 2016 4thIntl Conf on Applied Computing and Information Technology/3rd Intl94

Conf on Computational Science/Intelligence and Applied Informatics/1st Intl Conf on Big Data, Cloud Computing, Data Science Engineering (ACIT-CSII-BCD), pp. 213–217, 2016.
[19] Muhammad Mudassar Yamin, Basel Katt, and Vasileios Gkioulos. Cyber ranges and security testbeds: Scenarios, functions, tools and architecture. Computers & Security, Vol. 88, p. 101636, 2020.
[20] Ryotaro Nakata and Akira Otsuka. Cyexec*: A high-performancecontainer-based cyber range with scenario randomization. IEEE Access, Vol. 9, pp. 109095–109114, 2021.
[21] Ryotaro Nakata. and Akira Otsuka. Evaluation of vulnerability reproducibility in container-based cyber range. In Proceedings of the 7thInternational Conference on Information Systems Security and Privacy- ICISSP,, pp. 635–642. INSTICC, SciTePress, 2021.
[22] Metasploitable2—

metasploit

documentation.

https://docs.rapid7.com/metasploit/metasploitable-2/. (Accessed on
04/30/2021).
[23] Github - rapid7/metasploitable3: Metasploitable3 is a vm that isbuilt from the ground up with a large amount of security vulnerabilities. https://github.com/rapid7/metasploitable3. (Accessedon 04/30/2021).
[24] Owasp

brokenweb

applications.

https://owasp.org/

www-project-broken-web-applications/.

(Accessed

on04/30/2021).
[25] Clonezilla - about.

https://clonezilla.org/.

(Accessed on

04/30/2021).
[26] Cve - documents and guidance.

https://cve.mitre.org/about/

documents.html. (Accessed on 04/30/2021).
[27] Cwe - about - cwe overview. https://cwe.mitre.org/about/index.
html. (Accessed on 04/30/2021).
[28] Nmap: the network mapper - free security scanner. https://nmap.
org/. (Accessed on 04/30/2021).
[29] Vulnerability management tools — insightvm — rapid7. https://www.
rapid7.com/products/insightvm/. (Accessed on 04/30/2021).
95

[30] Rawaa Mohammed. Assessment of web scanner tools. In International
Journal of Computer Applications Volume 133 – No.5, January 2016,2016.
[31] Yuma makino. and Vitaly Klyuev. Evaluation of web vulnerability
scanners. 2015.
[32] Joseph Muniz. Aamir Lakhani. Web Penetration Testing with Kali
Linux. Packt Publishing, 2013.
[33] Nikto:

a

ner.

practical

websitevulnerability

scan-

https://securitytrails.com/blog/

nikto-website-vulnerability-scanner. (Accessed on 04/30/2021).
[34] Jake Kouns. Open source vulnerability database project. Open Source
Business Resource, 06/2008 2008.
[35] machine learning security/deepexploit

atbbq/machine learning security · github.

master·13o-bbr-https://github.com/

13o-bbr-bbq/machine\_learning\_security/tree/master/
DeepExploit. (Accessed on 05/01/2021).
[36] Ryotaro Nakata. and Akira Otsuka. Cyexec*: Automatic generationof randomized cyber range scenarios. In Proceedings of the 7th International Conference on Information Systems Security and Privacy ICISSP,, pp. 226–236. INSTICC, SciTePress, 2021.
[37] Tamamichi Saito, Satoshi Yashiro, Kazuhisa Tanabe, and Yuta Saito.
A proposal and the evaluation of a hands-on training system for cyber security. In Leonard Barolli, Fang-Yie Leu, Tomoya Enokido,
and Hsing-Chung Chen, editors, Advances on Broadband and Wireless Computing, Communication and Applications, pp. 339–349, Cham,
2019. Springer International Publishing.
[38] Viktor Zenk and Martin Malmström. A comparative study of docker
and vagrant regarding performance on machine level provisioning, 2020.
[39] Victor-Valeriu Patriciu and Adrian Constantin Furtuna. Guide fordesigning cyber security exercises. In Proceedings of the 8th WSEAS
International Conference on E-Activities and Information Security andPrivacy, E-ACTIVITIES’09/ISP’09, p. 172–177, Stevens Point, Wisconsin, USA, 2009. World Scientiﬁc and Engineering Academy andSociety (WSEAS).
96[40] Woogeun Ahn, Manhyun Chung, Byung-Gil Min, and Jungtaek Seo.
Development of cyber-attack scenarios for nuclear power plants using
scenario graphs. International Journal of Distributed Sensor Networks,
Vol. 11, No. 9, p. 836258, 2015.
[41] Zequn Huang, C. Shen, S. Doshi, Nimmi Thomas, and Ha Duong.
Diﬃculty-level metric for cyber security training. 2015 IEEE International Multi-Disciplinary Conference on Cognitive Methods in Situation
Awareness and Decision, pp. 172–178, 2015.
[42] Daniel Nüst, Vanessa Sochat, Ben Marwick, Stephen J. Eglen, Tim
Head, Tony Hirst, and Benjamin D. Evans. Ten simple rules for writing
dockerﬁles for reproducible data science. PLOS Computational Biology,
Vol. 16, No. 11, pp. 1–24, 11 2020.
[43] I Emsley and D De Roure. A framework for the preservation of a docker
container. Digital Curation Centre, 2017.
[44] Lubos Mercl and Jakub Pavlik. The comparison of container orchestrators. In Xin-She Yang, Simon Sherratt, Nilanjan Dey, and Amit Joshi,
editors, Third International Congress on Information and Communication Technology, pp. 677–685, Singapore, 2019. Springer Singapore.
[45] Adam Freeman. Docker Compose, pp. 97–117. Apress, Berkeley, CA,
2017.
[46] Filip Holik, Josef Horalek, Ondrej Marik, Sona Neradova, and Stanislav
Zitta. Eﬀective penetration testing with metasploit framework andmethodologies. In 2014 IEEE 15th International Symposium on Computational Intelligence and Informatics (CINTI), pp. 237–242, 2014.
[47] Sudhanshu Raj and Navpreet Kaur Walia. A study on metasploit
framework: A pen-testing tool. In 2020 International Conference on
Computational Performance Evaluation (ComPE), pp. 296–302, 2020.

97

付録

付録 A:脆弱性の再現性調査の詳細結果

OpenVAS での脆弱性検査詳細
Metasploitable2

CWE 内容

Real

Hyper
Visor

Host

Container

Metasploitable3
Real

Hyper
Visor

Host

Container

OwaspBWA
Real

Hyper
Visor

Host

Container

16

Conﬁguration

2

2

2

2

2

2

2

2

18

DEPRECATED:
Source Code

1

1

1

1

1

1

1

1

19

Data Processing Errors

20

Improper
Input Validation

53 53 53

22

Path Traversal

7

7

59

Link Following

1

1

79

1

1

1

50

26 26 2624

42 42 42 40

7

7

1

1

1

1

4

4

4

4

1

1

3

3

3

3

2

2

2

2

Cross-site Scripting

28 28 2828

22 22 222147 47 47 45

89

SQL Injection

5

5

5

5

2

2

2

2

9

9

9

9

93

CRLF Injection

1

1

1

1

1

1

1

1

1

1

1

1

94

Code Injection

8

8

8

8

2

2

2

2

5

5

5

4

119 Buﬀer Overﬂow

31 31 3131

17 17 1717

27 27 27 26

125 Out-of-bounds Read

7

7

7

7

7

7

7

7

7

7

Use of Externally134 Controlled
Format String

4

4

4

4

2

2

2

2

189 Numeric Errors

21 21 21

20

4

4

4

3

13 13 13 11

1

1

1

1

1

1

2

2

2

2

1

1

1

1

190

Integer Overﬂow
or Wraparound

199

Information Management Errors

200

Exposure of Sensitive
25 25 25
Information

1

1

16

29 29 29 26

3

3

5

5

5

4

1

1

1

1

6

5

Credentials Management Errors

1

1

1

98

7

17 17 17

6

1

7

25

254 7PK-Security Features 6
255

1

3

3

OpenVAS での脆弱性検査詳細
Metasploitable2

CWE 内容

Real

Hyper
Visor

Host

Permissions, Privileges,
264
30 30 30
and Access Controls

Container

30

Metasploitable3
Real

Hyper
Visor

Host

Container

OwaspBWA
Real

Hyper
Visor

Host

Container

21 21 2120

34 34 34 33

Improper Privilege
Management

1

1

1

1

275 Permission Issues

1

1

1

1

1

1

1

1

1

1

1

1

284

ImproperAccess Control

2

2

2

2

5

5

5

5

2

2

2

2

287

ImproperAuthentication

5

5

5

5

1

1

1

1

6

6

6

6

290

Authentication Bypass
by Spooﬁng

1

1

1

1

300

Channel Accessible
by Non-Endpoint

1

1

1

1

269

310 Cryptographic Issues
345

Insuﬃcient Veriﬁcationof Data Authenticity

352

Cross-Site Request
Forgery

362 Race Condition

7

7

7

7

3

3

1

1

1

1

21 21 21 20

2

2

2

3

3

3

3

7

7

7

6

3

3

3

3

1

1

1

1

4

4

4

2

1

1

1

1

11 11 11

10

1

1

1

1

2

2

2

2

Resource Management
25 25 25
Errors24

415 Double Free
416 Use After Free

3

2

384 Session Fixation
399

3

34 34 34 30

1

1

1

1

428

Unquoted Search Path
1or Element

1

1

1

476

NULL PointerDereference

4

4

4

4

4

4

4

4

4

4

4

4

502

Deserialization of
Untrusted Data

1

1

1

1

2

2

2

2

2

2

2

2

522

Insuﬃciently Protected1
Credentials

1

1

1

1

1

1

1

1

1

1

1

Files or Directories
552 Accessible toExternal Parties

1

1

1

1

601 Open Redirect

4

4

4

4

99

OpenVAS での脆弱性検査詳細
Metasploitable2

CWE 内容

Real

Hyper
Visor

Host

Container

Metasploitable3
Real

Hyper
Visor

Host

Container

Weak Password
640 Recovery Mechanism
for Forgotten Password
Incorrect Permission
732 Assignment for
Critical Resource

2

2

2

2

787 Out-of-bounds Write

1

1

1

1

2

2

2

2

835 Inﬁnite Loop

1

1

1

1

OwaspBWA
Real

Hyper
Visor

Host

Container

1

1

1

1

1

1

1

1

Owasp ZAP での脆弱性検査詳細

CWE

Vulnerability

Metasploitable2
Real

X-Flame-Options
16
Header Not Set

Hyper
Visor

Host

Container

Metasploitable3
Real

Hyper
Visor

Host

4572456545214496 69 47 55

Real

Hyper
Visor

Host

Container

47

289 269 252 248

33

33

5

2

2

23 25 25 20

Cookie Without
SameSite Attribute

44

44

16 29 18 18

18

59 62 62 35

X-Content-Type-Options

16

Header Missing

22 Path Traversal

30

2

ainer

OwaspBWA

16 Cookie No HttpOnlyFlag 19
16

2

Cont-

4658423442344356 186 112 112 112 741 741 741 702
22

22

22

22

9

9

9

9

1

2

2

2

2

1

1

78

Remote OS
Command Injection

336 357 353 358

79

Cross Site Scripting（Persistent）

4

79

Cross Site Scripting（Reﬂected）

1037103710371037 1

1

1

1

105 105 105 105

79

Cross Site Scripting（DOM Based）

2

1

2

1

58 11 11 1189 SQL Injection

235 189 189 183 58 53 53

46

44 34 34 29

97 Server Side Include

1

4

1

4

1

6

1

98 Remote File Incrusion 206 206 206 203

5

5

5

5

200

Application Error
Disclosure

240 240 240 224 1

1

1

1

25 25 25 25

200

Information Disclosure 286 286 286 284 1
Debug Error Messages

1

1

1

3

100

3

3

3

Owasp ZAP での脆弱性検査詳細

CWE

Metasploitable2

Vulnerability

Real

Hyper
Visor

Host

Container

Metasploitable3
Real

200 Private IP Disclosure 138 131 131 131 1

Hyper
Visor

1

Host

Container

OwaspBWA
Real

Hyper
Visor

3

Host

3

Container

1

1

3

3

200 via ”X-Powerd-By” Http 117 130 130 130 139 67 67

67

256 328 328 247

Server Leaks Information
Response Header Field

215.htaccess Information
Reak

352

Absence of Anti-CSRF
6131599359936014 145 138 138 142 363 358 358 363
Tokens555

5472 Parameter Tempering 14

14

14

14

548 Directory Browsing

14

14

14

14 21 21 21

601 External Redirect

207 207 207 203

829 Vulnerable JS Library 1

1

1

1

21

35 35 35 35
4

3

3

3

5

5

5

3

13 13 13 13

Metasploitable3

OwaspBWA

InsightVM での脆弱性検査詳細

CWE

Name

Metasploitable2
Real

16 Conﬁguration

2

Hyper
Visor

2

Host

Container

2

Real

Hyper
Visor

Host

Container

2

Real

Hyper
Visor

Host

Container

2

2

2

2

17 DEPRECATED: Code

2

2

2

2

18 DEPRECATED: Source Code

1

1

1

1

6

6

6

19 Data Processing Errors 2

2

2

2

1

1

1

1

6

20 Improper Input Validation 31

31

31

31

8

8

8

8

62 62 62 62

22 Path Traversal

5

5

5

5

11 11 11 1159 Link Following

5

5

5

5

2

2

2

2

74 Injection

1

1

1

1

2

2

2

2

2

2

2

2

77 Command Injection
78 OS Command Injection 4

4

4

4

79 Cross-site Scripting

1

1

1

1

79 79 79 79

89 SQL Injection

1

1

1

1

9

9

9

9

1

1

1

1

6

6

6

6

93 CRLF Injection

1

94 Code Injection

4

4

4

4

119 Buﬀer Overﬂow

32

32

32

32

125 Out-of-bounds Read134

Use of Externally-Cont2
rolled Format String

189 Numeric Errors

27

1

1

1

2

2

2

2

62 62 62 62

1

1

1

1

17 17 17 17

2

2

2

2

27

27

27

21 21 21 21

101

2

2

2

InsightVM での脆弱性検査詳細

CWE

Metasploitable2

Name

Real

Hyper
Visor

Host

Container

Metasploitable3
Real

Hyper
Visor

Host

Container

Integer Overﬂow
190
or Wraparound
199

Information
Management Errors

200

Exposure of Sensitive
Information

OwaspBWA
Real

Hyper
Visor

Host

Container

11 11 11 11
1
9

9

9

9

4

4

4

4

254 7PK - Security Features
255

Credentials Management
2
Errors

2

2

2

264

Permissions, Privileges,
21
and Access Controls

21

21

21

269

Improper Privilege
Management284 Improper Access Control1

1

1

1

3

2

3

2

3

2

3

2

285 Improper Authorization

1

1

1

42 42 42 42
2

2

2

2

2

2

2

2

34 34 34 34
2

2

2

2

6

6

6

6

1

1

1

1

5

5

5

287 Improper Authentication
2

2

2

2

2

2

2

2

5

310 Cryptographic Issues 15

15

15

15

2

2

2

2

27 27 27 27

326

Inadequate Encryption
StrengthUse of a Broken or
327 Risky Cryptographic
Algorithm
330

2

2

2

338 PRNG
11

1

362 Race Condition

2

2

2

2

Creation of Temporary
379 File in Directory with 1
Insecure Permissions

1

1

1

399

Resource Management
19
Errors

19

19

19

400

Uncontrolled Resource
Consumption
2

2

2

102

2

1

1

1

1

1

1

1

1

1

1

17 17 17 17
2

2

2

2

4

4

4

4

4

37 37 37 37

415 Double Free
416 Use After Free1

2

Use of Insuﬃciently
Random Values

352 Cross-Site Request Forgery 1

1

1

1

1

1

4

4

4

3

3

3

3

2

2

2

2

9

9

9

9

InsightVM での脆弱性検査詳細

CWE

Metasploitable2

Name

Real

Hyper
Visor

Host

Container

Metasploitable3
Real

Hyper
Visor

Host

Container

Unrestricted Upload of434
File with Dangerous Type

OwaspBWA
Real

Hyper
Visor

Host

Container

1

1

1

1

8

8

8

8

4

4

4

4

2

2

2

2

Weak Password Recovery
640 Mechanism for
Forgotten Password

2

2

2

2

Incorrect Conversion
between Numeric Types

1

1

1

1

Incorrect Permission
732 Assignment for
Critical Resource

1

1

1

1

Improper Check for
754 Unusual or
Exceptional Conditions

1

1

1

1

3

3

3

3

863 Incorrect Authorization

1

1

1

1

918 SSRF

1

1

1

1

Insecure Default Initiali1188
zation of Resource

1

1

1

1

476 NULL Pointer Dereference 2
502

2

2

2

1

1

1

Deserialization of
Untrusted Data

601 Open Redirect

681

1

1

787 Out-of-bounds Write

1

1

1

1

1

1

1

Skipﬁsh での脆弱性検査詳細

CWE

Issue Types

Metasploitable2
Real

Hyper
Visor

Host

Container

89 Query injection vector 20

20

20

20

78 Shell injection vector 15

15

15

15

1

1

1

Signature match detected
10 10

10

10

Directory traversal /ﬁle inclusion possible

6

6

19

22

Server-side XML
injection vector

1

6

6

Interesting server message 546 546 546 546

103

Metasploitable3
Real

2

Hyper
Visor

2

Host

Container

OwaspBWA
Real

Hyper
Visor

Host

Container

2

2

1

1

1

1

12 12 12

12

7

7

7

7

Skipﬁsh での脆弱性検査詳細

CWE

Metasploitable2

Issue Types

Real

Incorrect or20
missing charset

Hyper
Visor

Host

Container

59

59

59

Generic MIME type

55

55

55

55

External content
embedded on a page

6

6

6

6

Real

Hyper
Visor

Host

Container

OwaspBWA
Real

Hyper
Visor

Host

Container

6

6

6

6

8

8

8

8

5

5

5

5

3

3

3

3

XSS vector
in document body

1024102410241024 9

9

9

9

10 10 10 10

Incorrect cachingdirectives

539 539 539 539 7

7

7

7

5

HTML form with
352 no apparent XSRF
protection

1024102410241024 8

8

8

8

28 28 28 28

79

59

Metasploitable3

Directory listing
restrictions bypassed

5

5

5

4

4

4

4

1

1

1

1

Node should be a direc32
tory, detection error?

32

32

32

1

1

1

1

21

21

21

1

1

1

1

Response varies randomly,
skipping checks

Limits exceeded,fetch suppressed21

202 202 202 202

39 39 39 39

Resource fetch failed 102 102 102 102

42 42 42 42

Nikto での脆弱性検査詳細

CWE

Issue Types

Metasploitable2
Real

Hyper
Visor

Host

Container

Metasploitable3
Real

Hyper
Visor

Host

Container

The /doc directoryis browsable

1

1

1

1

CWE-1999-069

2

2

2

2

2

2

2

2

284 Vulnerbility of weblogic1

1

1

1

1

1

1

1

OwaspBWA
Real

Hyper
Visor

Host

Container

The web server may reveal1

its internal or real IP
in the Location header

HTTP TRACE method
is active,suggesting693
1
the host isvulnerable to XST

1

1

104

1

1

1

1

Nikto での脆弱性検査詳細

CWE

Issue Types

Metasploitable2
Real

Hyper
Visor

Host

Container

Metasploitable3
Real

Hyper
Visor

Host

Container

OwaspBWA
Real

Hyper
Visor

Host

Container

phpMyAdmin is for managing MySQL databases,

7

7

7

7

3

3

3

3

2

2

2

2

pache default ﬁle found 3

3

3

3

1

1

1

1

1

1

1

1

9
Directory indexing found

9

9

9

6

6

6

6

4

4

4

4

119 Vulnerbility of Abyss 1.03 1

1

1

1

1

1

1

1

1

1

1

and should be protected orlimited toauthorized hosts

PHP reveals potentiallysensitive information
viacertain HTTP requests

1that contain speciﬁc
QUERY strings

favicon.ico ﬁle identiﬁes
this app/server as:
owasp.org

105

付録 B:脆弱性の再現性評価で検出された脆弱性検出された脆弱性タイプの一覧

CWE No

Type

Name

16

Category

環境設定

17

Category

コード18

Category

ソースコード19

Category

データ操作

20

Class

不適切な入力の妥当性確認

22

Class

バストラバーサル

59

Base

リンク解釈の問題

74

Class

インジェクション

77

Class

コマンドインジェクション

78

Base

OS コマンドインジェクション

79

Base

クロスサイトスクリプティング

89

Base

SQL インジェクション

93

Base

CrLf インジェクション

94

Class

コードインジェクション

113

Base

HTTP レスポンススプリッティング

119

Class

バッファエラー125

Base

アウト・オブ・バウンズ リード

134

Base

無管理な書式文字列

189

Category

数値処理の問題190

Base

整数オーバーフローやラップアラウンド

199

Category

情報管理の問題

200

Class

情報漏洩

254

Category

セキュリティ機能

255

Category

クレデンシャル（信用情報）の管理

264

Category

パーミッション・権限・アクセス制御

269

Base

誤った権限の管理

275

Category

パーミッションの問題

284

Class

不適切なアクセス制御

285

Class

不適切な認可287

Class

不適切な認証

290

Base

認証を回避する―スプーフィング

300

Class

Man-in-the-Middle 攻撃

310

Category

暗号の問題

326

Class

不十分な暗号強度

327

Base

解読済みもしくは危険な暗号理論を用いる

330

Class

乱数としては不十分な値を用いる

338

Base

PRNG（擬似乱数生成器）が貧弱

106

検出された脆弱性タイプの一覧

CWE No

Type

Name

345

Class

データの信頼性の不十分な検証

352

Composite

クロスサイトリクエストフォージェリ（CSRF）

362

Class

競合状態

379

Base

384

Composite

セッションの固定化

399

Category

リソース管理の問題

400

Base

無管理なリソース消費（リソース枯渇）

415

Variant

同一メモリの複数回解放

416

Base

メモリの解放後の参照（Use-After-Free）

428

Base

引用符で囲われていないサーチパスや要素

434

Base

危険なファイル形式のアップロードが無制限

476

Base

NULL ポインタを参照する

502

Variant

信頼できないデータの直列化

522

Base

クレデンシャル（信用情報）の保護が不完全

552

Base

関係者以外にアクセスできるファイルやディレクトリ

601

Variant

オープンリダイレクト

640

Base

681

Base

数値型の変換誤り

693

Class

防御メカニズムの不具合

732

Class

重要な資源への誤ったパーミッションの割当て

754

Class

例外条件の確認が不適切

787

Base

アウト・オブ・バウンズ ライト

835

Base

終了条件に至らないループ（無限ループ）

863

Class

誤った認証

918

Base

サーバサイドリクエストフォージェリ（SSRF）

1188

Base

リソースの安全でないデフォルトの初期化

誤ったパーミッションでディレクトリに一時ファイルを作成

パスワードを忘れた時のための復元メカニズムが脆弱

107

研究業績一覧

学術論文• Ryotaro Nakata，Akira Otsuka：A High-Performance Container-Based Cyber Range With Scenario Randomization，IEEE Access，2021，Vol.9，
pp.109095-109114• Ryotaro Nakata，Akira Otsuka：CyExec*: Automatic Generation of Randomized Cyber Range Scenarios，ICISSP2021，February 2021
• Ryotaro Nakata，Akira Otsuka：Evaluation of Vulnerability Reproducibility
in Container-based Cyber Range，ICISSP2021，February 2021
• 中田亮太郎，慎祥揆，笠井洋輔，豊田真一，瀬戸洋一：エコシステムを実現するサイバーセキュリティ演習システム CyExec の開発，情報処理学会デジ
タルプラクティス 11(2) 2020 年 4 月 15 日
研究発表

• 中田亮太郎，大塚玲：コンテナ型仮想化のサイバーレンジにおける脆弱性の再現性評価，暗号と情報セキュリティシンポジウム，2020 年 1 月 29 日
• 中田亮太郎，大塚玲：情報セキュリティ演習環境サイバーレンジへのコンテ
ナ型仮想化活用の提案，情報教育シンポジウム，2019 年 8 月 18 日
• Sanggyu Shin，Yoichi Seto，Kumi Hasegawa，Ryotaro Nakata：Propose
of open source base cyber range for learning environment on cyber-attackand defense ICSSI2018 & ICServ2018，November 13 2018
その他関連論文• Nobuaki Maki，Ryotaro Nakata，Shinichi Toyoda，Yosuke Kasai，Sanggyu Shin，and Yoichi Seto：An Eﬀective Cybersecurity Exercises Platform
CyExec and its Training Contents，AEIT 2020 & ICHSS 2020，International Journal of Information and Education Technology，Vol. 10，No. 3，
March 2020著書

• 瀬戸洋一，永野学，長谷川久美，中田亮太郎，豊田真一：サイバー攻撃と防御技術の実践演習テキスト，2019 年 9 月, 日本工業出版【2 章・8 章担当】
• 瀬戸洋一，佐藤尚宜，越前功，中田亮太郎，織茂昌之，長谷川久美，渡辺慎太郎，小檜山智久，村上康二郎：改訂版 情報セキュリティ概論,2019 年 3 月,
日本工業出版【8 章担当】

108