オンライン「セキュリティ実習」の実施報告

Takamichi Saito
19 min readJun 30, 2020

--

先日、2020年4月に実施した研究室内での発表会「謎研究室「春課題」オンライン発表会の報告」という記事(研究室のブログ)を公開し、さらに、自分の担当のオンライン授業の実施を「オンライン授業」という記事(齋藤個人のブログ)として2020年5月に公開したところ、たくさんのアクセスを頂きました。

気分を良くしたので、今回は、授業時間中に学生の作業を伴う、オンラインでの「セキュリティ実習」の実施をまとめてみたいと思います。

背景

明治大学でも、GW明け(2020/05/07)からオンラインでの授業がスタートしました。すでに、自分の受け持つ講義(学部:「情報セキュリティ」、大学院:「分散システム特論」)はオンライン(ライブ配信)で行っています。

その一方、理工系学部では必須である「実習・演習」については、通常物理的に集合して授業時間中に教員からの指示や学生による作業を伴うので、オンラインでの実施というのも容易ではありません。よって、「キャンパス封鎖」が解かれるはずの6月以降、キャンパスに物理的に集まって実施を開始するという予定でした。

しかしながら、COVID-19を取り巻く状況は芳しくなく、結局、6月になってもキャンパス封鎖も解かれませんでした(7月1日以降条件付きで封鎖解除)。そこで、自分の担当する「セキュリティ演習」をオンライン化するべく、我々の研究室内に「セキュリティ演習オンライン化委員会」を立ち上げ、2020年6月8日より、オンラインで実施することにしました。

今回オンライン化する「セキュリティ演習」は、私の所属する明治大学理工学部情報科学科の学部3年生を対象した実習(選択必修科目)の一つで、年間80〜100名以上が受講する情報科学科でもとても人気のある実習科目です。

この科目では、後述のサイバーレンジシステムを用いて、4週間と言う限られた期間でサイバーセキュリティの技術的知識を習得することを目的としています。昨年度までは、当然、明治大学生田キャンパス内の教室に集まって実施していました。今回、それをオンラインで実施しましたので、そのレポートです。

なお、こちらのサイバーレンジを用いたセキュリティ演習については、2016年4月から4年間実施しており、ブログ記事や研究会での資料を公開しています。

よろしければ、併せてご笑覧ください。

セキュリティトレーニングシステムの概要

我々が開発したセキュリティトレーニングシステムは、「Linux等のシステム操作を行う実習環境(=サイバーレンジ、図1参照)と、「教材や確認テスト用の学習支援システム(Webアプリケーション)」の2つから構成されています。

実際のネットワークシステム環境とほぼ変わらない「サイバーレンジ」を、基本的には2人1組(ペア)で1セットを占有して利用し、「学習支援システム」の教材を用いた演習を行います。

その他、学習項目、「サイバーレンジ」や「学習支援システム」について箇条書きします:

  • 実習の題材ストーリー:「標的型攻撃編」(図1参照)と「SQLインジェクション攻撃編」(図2参照)という2つのストーリーでのインシデントレスポンスの演習。これらはストーリーごとに10時間、トータルで20時間の実習で行うことを想定
  • 実習の設計:「ストーリー型インシデントレスポンス実習」と、それに先立ち学習できる「ツール・システム利用の実習」がある。課題は「学習支援システム」の教材を読めばわかるようになっている(図3–1参照)。「ツール・システム利用の実習」の問題は何度も間違えても減点なし。「ストーリー型インシデントレスポンス実習」の問題は間違えるごとに減点。(つまり、理解度が低いとスコアが下がるか、時間が掛かるということになる。)いずれも全ての問題を正解で終えたら完了
  • サイバーレンジ:1セットで14ノード(図3–2参照)、クローズドなクラウド上で稼働。プロビジョニングシステムを通して、ペアのうちの一人が起動する。起動後、RDPを通して接続
  • 実習では扱うテーマが多岐にわたるので基本的に2人1組(ペア)を想定しているが、1人でも実習可能。その場合は、ディスプレイが2つあると良い
  • 利用環境:Windows 10以降、日本語キーボード、大きいディスプレイ(可能であれば2つ)
図1 標的型攻撃編で学習する項目
図2 SQLインジェクション編で学習する項目
図3–1「学習支援システム」の基礎学習と演習問題のページ(一部マスク)
図3-2 サイバーレンジのイメージ

オンラインでの実習の実施

我々が開発したセキュリティトレーニングシステムは、元々オンラインでの「自習」は可能なものです。

上の「セキュリティトレーニングシステムの概要」にあるように、実習の際、実習用に用意してある「学習支援システム」で提供される教材に従い、2人1組(ペア)ごとに1セット提供されるサイバーレンジにアクセスして操作し、個別に実習します。

基本的には、教員による説明がなくても自習が可能ではありますが、大学での実習授業の際には、授業の最初の全体説明、個別の技術解説や操作のサポートなどを実施していました。いわゆる集合研修のような形です。

今回のオンライン化でも、実習に先立ち、セキュリティ に関する基本的な説明をした後、ツールを組み合わせてサイバーレンジ内で実際にシステムの操作をしながら実習をすると言う、物理的な集合研修と同じような環境を用意しました(図4参照)

図4 オンラインでのセキュリティ実習のイメージ

概念をイメージ図にすると割とシンプルな話に見えますが、このオンライン化にあたって、以下のようないくつかの準備・工夫をしています。

  • 事前の打ち合わせ:教員、TAと、受講する学生役(研究室の学生)の9名で、事前の準備、段取りの確認などをオンラインで打ち合わせ。当日の実際の実習をイメージしながら、オンラインでシミュレーションをして確認。Zoom、slackやサイバーレンジのシステム的な準備
  • 事前準備:実習用にZoomのミーティングルーム、slack、ペア分け用にGoogle Formsに事前の(各ペアのスキルが均等分け用の)オンラインテストを用意して、学内LMSを通じて学生に通知
  • 事前準備:能力が均等になるように事前のオンラインテストの結果によるペア分け。実習時、Zoom、slackでの表示名の前に、ペア番号を記載してもらった
  • 事前準備:サイバーレンジシステムではRDPを利用するので、Macの場合、マイクロソフトのリモートデスクトップ(ソフトウェア)を事前にインストールして貰うなどの操作環境の確認をしてもらった
  • 事前準備:サイバーレンジを一斉に21セット(294ノード)を同時に立ち上げるための準備(図5参照)
図5 一斉立ち上げ試験の様子(写真は10セット)
  • 事前準備:オンライン実習の手順書作り
  • 当日:実習に先立ち、Zoomを使って「学習支援システム」の画面を共有しながら受講者全体に、実習の全体説明、実習の進め方、セキュリティの技術解説、サイバーレンジの操作の説明などを説明。また、今回Zoomとslackを使うので、授業中の質問の仕方のルールなども説明
  • 当日:教員及びTA全員を共同ホストに設定し、教員及びTA全員が各ペアのブレークアウトルームを回ることを可能とにした
  • 個別実習中:Zoomのブレークアウトセッション機能を使って、ペアでの作業。ペア同士でのやり取りが必須なので、適宜、ペア同士で音声・画面共有をしながら、実習課題に取り組む
  • 個別実習中:教員及びTA全員だけが入るスタッフルームも用意。共同ホストの教員・TAは、各部屋に移動しながら様子を見たり、質問に答えたりする
  • 個別実習中:Zoomではブレイクアウトルームを跨いだ通信ができないので、質問などがある場合、slackにて具体的な質問を書いてもらいTAを呼び出してもらう。TAは、質問のあるペアのブレークアウトセッションの小部屋に一時的に入って、該当ペアにアドバイスをする
  • 個別実習中:ペアごとに適宜進捗をslackに報告してもらった
  • 個別実習中:ディスプレイが一つしかない場合、スマホなどで「学習支援システム」にアクセスしてもらった

実施概況

  • 実施期間:2020年6月8日〜2020年6月29日(毎週月曜、4日間)
  • 実施時間:月曜午後1:30〜17:50(3限〜5限)
  • 参加学生人数:43名(通常、これまで一回の実習では最大20人程度でサイバーレンジを10セット程度の同時稼働だったが、今回はその倍の規模での実施となった)
  • 学生は事前にテストを受けて能力別にペアに分かれる(今回、1グループだけ3人)。ペアごとに1つのサイバーレンジと学習支援システムのアカウントを提供
  • 利用したサイバーレンジセット:21セット(同時稼働数:294ノード)
  • 運営側スタッフ:教員1名、TA2名、支援の院生1名、支援の学部生2名
  • Zoomアカウント:有償のZoom(ミーティング)のアカウントを1つ
  • 初日の説明:最初にオンライン演習の進め方を説明→サイバーレンジの起動→サイバーレンジ演習の概要→セキュリティ全体の説明→(高度)標的型攻撃の説明→個別演習
  • オンラインでのコミュニケーション自体も演習とみなした
  • 第3週目に外部からの見学者を受け入れた
  • 実習中の進捗状況の画面(図6)
図6 グループごとの進捗状況の様子(初日の課題(赤線)を早々と終えたペアもいた)
  • 演習中のslackのやり取りとZoomの参加者画面(図7)
図7 slackのやり取りとZoomの参加者画面
  • CPU使用率・通信トラフィックの状況:

数名の端末での計測(ZoomやRDPを同時稼働)をみたところ、CPU使用率は概ね30%前後、通信トラフィックは、送信350Kbps、受信130Kbpsであったようだ。図8にCPU使用率、図9に通信トラフィックの状況を示す。

図8 PC端末のCPU使用率の状況(受講者提供)
図9 PC端末の通信トラフィックの状況(受講者提供)

学生からの感想

  • 標的型攻撃について学ぶうちに標的型攻撃に関わる様々なことについて学べてとて も良かった。とくにプロキシについては今までなんとなくしか分かっていなかった が、今回の実習で多く登場するものだったのでより理解が深まった。また仮想環境とはいえ、実際の記録に近いものに触れることによって楽しみながら学ぶことができた。
  • 2 つの実習について違う方法での攻撃を体験したが、いずれも重要な問題となってしまうため気をつけてい きたいと思った。水飲み場攻撃に関しては OS やソフトウェアのアップデートで改善できそうだが、SQL イ ンジェクションなどについてはサイトの設計をする段階で対策する必要があるため。様々な攻撃手法について 知る必要があると感じた。
  • 仮想環境で手を動かしながらセキュリティを学ぶことで、座学では得る
    ことのできない具体的な手法を学ぶ事ができて良かった。
  • zoom 上でペアワークを行うことは初めてであったが、画面共有をすることでお互いに助言しあうような形が作れたので、どちらの役割でも有益な時間であった。
  • ツールの勉強で、SQL インジェクションが発覚された時、どのような対処をすれば脆弱性の原因と攻撃者の手段を特定できるのが分かった。ログを検査する方法であるため、普段ウェブサーバでログを正しく残すことの大切さが分かった。
  • 今回の演習ではログ、ファイル、プロセスの特定が難しいと感じた。特にアーカイブにある圧縮ファイルの残り先が分からないまま名前や拡張子だけで search すると他のファイルが大量出てきてしまう。
  • セキュリティの欠陥につけこんで悪事を働くユーザーを完全に止めることはできないので、 あらかじめ攻撃された際の対応策を講じておくことが大切だとわかった。
  • 実際にサイバー攻撃をしてみたり検出してみたりすることができてよい経験 になった。また、実際に体験することでより理解度が深まった。

アンケート結果

最終日の実習終了後にアンケートを取りました。対象者43名中で、38名から回答がありました。

  • (質問1)セキュリティの実習以外も含めた、コロナ渦の状況での大学の授業への質問です。オンライン授業真面目に出席していますか?

—(回答) —
オンラインになってからの方が出席している 14名
以前と変わらずよく出席している 24名
以前と変わらなずあまり出席していない 0名
オンラインになって出席ができていない 0名

  • (質問2)あなたは現在1週間にどの程度の時間を履修しているオンライン授業に関連した学業に費やしていますか?(双方向の授業時間や動画の視聴時間も含む)

— (回答) —
平均28.78時間
中央値30時間

  • (質問3)セキュリティの実習の難易度はどうでしたか?

— (回答) —
難しかった 4名
少し難しかった 19名
適切だった 14名
簡単だった 4名
判断できない 1名

  • (質問4)セキュリティの実習は楽しかったですか?

— (回答) —
楽しかった 24名
まぁまぁ 12名
楽しくなかった 1名
判断できない 1名

  • (質問5)セキュリティの実習は総じて有益だったと言えますか?

— (回答) —
有益だったと言える 29名
まぁまぁ 8名
有益とは言えない 0名
判断できない 1名

課題・トラブル等

物理的に集合しての実習はすでに5年目であったので慣れていたはずでしたが、オンラインでの実施ではいくつか課題が発生しました。その辺りを備忘録として示しておきます。

  • サイバーレンジの操作手順書を事前に配布したので、それを読んで勝手に(実習開始前にはして欲しくない)操作を進めてしまった学生がいた
  • 遅れてきた人に対し、途中まで説明した内容を個別に説明することが難しい(遅刻しないでね)
  • 段取りやTAの役割分担を事前にしっかり決めておかないと、授業をうまく回せない。また、ツールでの質問の仕方などのコミュケーションのルールをしっかり決めておかないと混乱する。(学生には、slackの特定チャネルから、ある程度具体的に質問をしてもらうことにした)
  • 全体で一斉に作業させて、学生側の作業ステップを同期させるのが意外に難しい、特に初回。特に、学習支援システムへのログイン、サイバーレンジセットの起動、サイバーレンジへのアクセスなど
  • 学生のネット接続が落ちると、再度Zoomに入っても自分のペアのブレークアウトセッションルームに自力で入れない
  • ブレークアウトセッションにしてしまうと、教員・TAは全体的な雰囲気を見ることができずで、ブレークアウトセッションルームに行かないといけない
  • ブレークアウトセッションルームでは、学生間の音声通話を前提としたが、学生の端末にマイクがない(まさかの)ケースがあった。初日は、文字でのやりとりにしてもらった。(受講環境は厳密に事前通知しないといけない)
  • slackで質問があったときに、TAの誰かが対応中なのか、また、すでに対応が完了したのかがわからない(なので、対応中と完了後のスタンプをつけるようにした)
  • 回線トラブル等でZoomが落ちてしまうケースはほとんどなかったようだが、端末の負荷はそれなりにあったようだ
  • 遠隔での説明が難しいこともあった:例えば、RDPで複数接続した際の画面の切り替えなど口頭で説明することが難しい・伝わりにくい操作は、最後、TAがZoomの遠隔操作機能を用いて直接やって見せてあげた。口頭だけでは厳しいこともある
  • 参加者のPC端末環境の問題:RDPのキーバインドの問題が若干出た。USキーボード、中国キーボードは対応が難しいので、コピーペーストでなんとかしてもらった
  • ペア内でのコミュケーションがオンライン(Zoom、slack)だけなので、ツールでのコミュニケーションに慣れていないペア、Linuxの操作に慣れていないペアは、協働しながら課題を解くことが難しいようだった
  • 学生ペア間での雑談が一切できないので、質問が全てTAのところに集まってしまう。通常であれば、横でのペア同士でのやりとりや声の漏れがヒントになっていたのだと思う
  • 学生同士でZoomの画面共有をする際、慣れていないペアはお互いに画面共有してしまい両方が何も見えない状況になったペアもいた。「画面共有をお互いにできる」と言う言葉の意味するところが難しかったようだ
  • ペア内でお互いの操作があまり見えていないので、例えば、タイプミスなど、隣り合っていれば指摘できるようなことも指摘できないようで、戸惑っているケースがあった(Zoomでの協働作業に慣れていない)
  • 初日終了後、教員・TA側もどっと疲れた

まとめ

今回の「セキュリティ実習」は、上述の通り、元々クラウド上に用意されたサイバーレンジというネットワークシステム上での実習でした。また、教材も全て、「学習支援システム」(Webアプリケーション)で提供されていました。

よって、今回、「セキュリティ実習」におけるオンライン化の課題は以下でした。

  • 物理集合での教室で実施していた全体説明等をどうするのか
  • 「2人1組(ペア)という閉鎖空間での情報共有」をどのように実現するか
  • 物理集合での教室で実施していた「TAの個別サポートと同じこと」ができるのか

これらはいずれも、Zoomの提供するブレークアウトセッション機能や、slackを活用することでなんとか解決できました。

ビバ!テクノロジーというところでしょう。良い時代になったものです。「時代はもうクラウド」(←6/11の国会での名言)ですね。

もちろん、技術だけではなく、(43名オンライン同時参加という無茶な私の思いつきのために)教員やTAの動線などを含めた実施プランを用意し、システムの準備をし、それを実行してくれた研究室の院生・学部生たちの働きの良さが成功の最大の要因です。

ところで、今回の実習(2020年6月29日)を終えた時点で、我々が開発したセキュリティトレーニングシステムの受講者数は502名(うち43名は学外)となりました!!

「セキュリティ実習」はまだ手作り感がありますが、ブランディングされた舶来品を持ってきて派手にやるばかりがIT教育ではないと思いますし、コンピュータサイエンスのカリキュラムの一環としての我々の試みは上手くいっていると確信しております。

ただ、今回に関して少しだけ意外だったのは、オンラインでの実習の際、学生同士のコミュケーションがうまく行かないと、慣れていない操作であったこともあり、結構手間取ってしまったペアがいたことです。確かに、一方が画面を共有した端末でLinuxの操作をしならがら他方と連携作業すると言うのは簡単な話ではないかもしれません。しかし、「ポストCOVID-19の時代では、オンラインでの協働作業も当たり前になっていくと思われるので、それも含めた実習」と言うことで頑張ってもらいました。

さて、今回のオンライン実習の実施をもって、以下に示す大学における私の「教育活動」は、ほぼすべてオンライン化できたと言えます。

  • オンライン講義(学部、大学院)
  • オンライン実習(学部)
  • オンラインでの研究指導(研究室ゼミ、個別ミーティング)
  • オンライン面接(研究室配属、公的な面接試験)

元々ほとんどの教育コンテンツをデジタル化してあったことと、受講する学生のITリテラシーや通信環境が整っていたこともあり、うまくオンライン化・その実施ができたような気がします。

COVID-19の社会的影響は大きく、教育の継続に苦慮している話や、大学の存在意義すら問われる声もちらちらと聞きます。また、オンライン授業への否定的な声もちらほらと聞きます。

そのような状況であっても、できることから実施し、我が国の未来を担う若者への教育活動は継続することが求められていることと考えております。

2020/06/30

明治大学情報セキュリティ研・セキュリティ実習オンライン化委員会のメンバー

  • 齋藤孝道
  • 程(D1)
  • 北條(M2)
  • 利光(M1)
  • 藤井(B4)
  • 嶋田(B4)
  • その他研究室のメンバー(同時稼働実験の際など)

宣伝

  • サイバーレンジを用いた実習システムは、現在レンジフォース株式会社を通して販売しております
  • 情報セキュリティ研究室ではメンバーを募集しています
  • 情報セキュリティ研究室では企業様からの委託研究も募集しております

--

--

Takamichi Saito
Takamichi Saito

Written by Takamichi Saito

明治大学理工学部、博士(工学)、明治大学サイバーセキュリティ研究所所長。専門は、ブラウザーフィンガープリント技術、サイバーアトリビューション技術、サイバーセキュリティ全般。人工知能技術の実践活用。著書:マスタリングTCP/IP情報セキュリティ編(第二版)、監訳:プロフェッショナルSSL/TLS