かてなぶろぐ

かをるのはてなぶろぐだから、かてなぶろぐ

セキュリティ・ミニキャンプ in 福岡 2019 秋にて講師をつとめました。特に準備についての備忘録。

はじめに

こんにちは、かをるです。ちゃんとした(?)テーマでプライベートのブログを書くのは学生のとき以来です。今回は表題のイベントにて講師をつとめさせていただいたことを記事にしました。個人的な印象ですが「こういう準備をしたよ」という記事は意外と少ないかも??と思ったので、忘れないうちに自身の振り返りも兼ねて書いてみようと思いました。

もくじ

当日の様子

当日はこんな感じだったようです。講義に夢中でカメラに気づかなかったのですが、広報さんすてきな写真をありがとうございます。

セキュリティ・キャンプとは?

私の言葉で表すなら「セキュリティに興味のある学生さんを育てましょう!な催しや、それらをとりまとめている組織」のお名前のことです。 一週間くらい研修施設で合宿形式で勉強する「全国大会」と、一両日くらい地方都市で開催される「ミニキャンプ」があって 私が講師をつとめたのは後者です。詳しくは公式のページセキュリティ・キャンプ協議会をご参照ください。

準備開始!テーマ決め

「テーマはお任せます!」とのことでしたので、まずは過去のキャンプの講義の調査をしようと思いました。 今勤務してるのはWebセキュリティの会社なのでWebセキュリティを題材にするところまでは自然に決めて、 次は過去のセキュリティ・ミニキャンプの公式ページから講義でWebっぽいものをピックアップしてきました。

f:id:kaworu-san:20190916124533p:plainf:id:kaworu-san:20190916124552p:plainf:id:kaworu-san:20190916124603p:plain

できるだけ網羅するようにとってきてますが、いかんせん手動で自分用メモですので抜け漏れなどご容赦ください。 また、それぞれ担当された方のお名前は省略しています。

さて、こうやって一覧にしてみると、ひとことにWeb系といってもいろいろあり、「基本からやってみる」系も少なくはないことに気づきました。 そのほかいろんな要素をかんがみた結果…「基本から学ぶWebセキュリティ」のテーマとしました。

講義の軸設計

さて、テーマが決まったらなにを軸にするかの設計です。 汎用的なテーマになればなるほど「結局何が言いいたいの」となりがちだと思いますので、とても大切にしました。

結構肩に力が入っていた私に運営の方から「まずはかをるさんが楽しい講義を」と声かけをいただいたのもあり、私が楽しいって…どんなだったけなと掘り下げてみました。

埋め込みツイートにもあるように、私自身がセキュリティ・キャンプの修了生です。(もう5年も前&現行の制度と異なりクラス制度でした。) こういった勉強会に参加したのはキャンプの全国大会がはじめてでとても緊張し、さらに人が多いところに慣れてなく、講義は難しいしで 最終日に廊下で泣いてしまって…運営の方や看護師さんに話を聞いてもらったのを今でも覚えています。 それでもキャンプは本当に楽しかった思い出で、その理由は矛盾しているようですが「いろんな人と交流できた」からです。

私本人ではディスカッションなどでいたって真面目に発言してるのですが、 伝え方が悪いのか…笑われておしまいなことが多い人生を歩んでました。

キャンプでは「その考えはおもしろいね」って言ってもらえて 私の意見でチームでの議論が活性化するという、人生初レベルの体験をしました。(当時の参加ブログ消さなければよかった) また、その当時に出会った仲間のうち数人は今でもとても親しくしています。

こういった経験から単になにかを学ぶのではなく「仲間と交流しながら」を軸にすることにしました。 もっというなら「独学では学べない視点や考え方をみにつけよう!」ということで、私なりの講義の軸は、講義資料にこういう感じで反映してみました。

f:id:kaworu-san:20190916163048p:plainf:id:kaworu-san:20190916163054p:plain

講義内容の詳細

講義の流れは以下のとおりです。

  1. Web基本のき
  2. Webセキュリティ基本のき
  3. 脆弱性診断つまみぐい
  4. 講義のまとめ

1. Web基本のき

資料抜粋

f:id:kaworu-san:20190916164524p:plainf:id:kaworu-san:20190916164544p:plainf:id:kaworu-san:20190916164600p:plain

演習テーマ

  • 1-1: 身近なWebについてディスカッション(好きなサービスなどを話してアイスブレイク続き)
  • 1-2: リクエストとレスポンスを取得!(Webローカルプロキシを経由して確認)
  • 1-3: セッションを体感する(セッションIDの役目を体感)

ここでは、Webの基本となる用語「リクエスト」「レスポンス」「セッション」を実感してもらえればクリアとラインおいてました。 また、ローカルプロキシのセットアップの確認も兼ねています。 やはりツール類のセットアップはどれだけ簡単にしても沼があるというか…私も初めてみるエラーに出会いました笑 チューター(キャンプの修了生、講義サポートをしてくれるTAさん)のお二人が大活躍してくださいました、ありがとうございますー!

2. Webセキュリティ基本のき

資料抜粋

f:id:kaworu-san:20190916165309p:plainf:id:kaworu-san:20190916165253p:plainf:id:kaworu-san:20190916165302p:plainf:id:kaworu-san:20190916165309p:plain

演習テーマ

  • 2: 開発経験のあるor好きなWebサービスについてチームに説明&全体に発表(どういうサービスなのか、どういう脅威が考えられるか)

ここではWebセキュリティの基本…というよりセキュリティの考え方の説明を行いました。

3. 脆弱性診断つまみぐい

資料抜粋

f:id:kaworu-san:20190916165414p:plainf:id:kaworu-san:20190916165419p:plain

演習テーマ

  • 3-1: 事前調査(まずは攻撃せずにサイトの機能を確認して、何が脅威か考える)
  • 3-2: 事前調査結果発表(チーム内でシェア)
  • 3-3: 脆弱性診断つまみぐい(実際に擬似攻撃を行う)
  • 3-4: ミニ報告書作成・発表(見つけた脆弱性について報告を行ってもらう)

おまちかね!手をたくさん動かしていただいて、チームでたくさん話して脆弱性を探していただきました。 演習環境については、利用規約を読んでセキュリティテストしても大丈夫なクラウドサービス上にVMを置いて そこでLaravelで構築した画像投稿Webアプリを用意しました。

わかりやすく仕込んだ脆弱性としては、タピ活をしてる私の写真が非公開(鍵垢)なのに誰からでも見えてしまうってやつです。 個人的にお気に入りの仕込みは、写真のコメント機能は本来本人のみ使えるものですが(フォームが表示されない)リクエスト送ると誰でもコメント上書きできるようにしてました。ネタバレはする時間なくてできなかったんですけど、気づいてくださった方いたら嬉しいな。

ここでもチューターさんがずっと見回ってくれてました!最後の最後まできめ細かい対応をありがとうございますー!

そして最後に、チームで一つ抜粋してミニ報告書を作成していただくのですが、ここに最後の工夫 「具体的な脆弱性名を述べさせる場所は一箇所も出てこない」です。   講義全体を通して、視点や考え方を学びましょうという設計にしたので、 発見した脆弱性が何の名前かというような知識を求める名前について述べる場所はなくすことにしました。 発生箇所とどういう脅威があるのか(見えてはいけないデータが見えるとか)、再現方法の詳細を書いていただくことにしました。

4. 講義のまとめ

あらためて講義の軸を確認して、クロージングとしました。

また、今回の講義で引用・参考にした書籍を紹介しました。

  • この一冊で全部わかる Web技術の基本(小林恭平・坂本陽 著、佐々木拓郎 監修)
  • 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践(徳丸浩著)

特にこの一冊で〜Web技術の基本は特に参考にさせていただきました。 (Webについて、セキュリティ3要素、リスク・脅威・脆弱性の部分は引用させていただいた箇所があります) 講義資料を作成しながらシンプルにまとめるのって難しいと思っていたので、わかりやすくまとまっていて、私自身の学習にも非常に役立ちました。

おまけ

講義時間は9:30 - 12:00、人前でこんなに話したのは人生初の経験です。 講義終了時に「ありがとうございました!」と礼をして、時計を見たら12:00ジャスト! 自分でもびっくりの定時終了でおどろきました。

もはや本人もわからない字ですが…演習の時間配分メモです。 f:id:kaworu-san:20190916231719j:plain

参加者さんの理解を第一にしたかったので、時間はおまけだったのですが ここまでぴったりだとなんだかちょっとうれしいです。

おわりに・振り返って

普段は会社員としてお仕事しているだけですので、こういった機会をいただけたことをとても嬉しく思っています。 平日お仕事終わって家に帰って(残業ある日は結構遅い時間から作業開始してました) コード書いたり資料作ったりして、楽しいんですけど… 興が乗って深夜2時とか3時とかまでやってしまい、もれなく翌日遅刻連絡を飛ばす羽目になったことだけはここに懺悔します。 自己管理苦手なので、今色々模索中ですー…。 また、徹夜でレポート仕上げるのがデフォでも何も問題なかった学生時代とちがい、肌荒れも相当するみたいで、大好きなコスメブランドのBAさんに 「お肌のためには24時までに寝ましょう」「5分でいいので湯船につかって」「マッサージがよいです」とアドバイスもらったので書いときます。

今回講義をしていて個人的に一番嬉しかったことは、 最初の演習のころは遠慮がちに話していたチームでも、後半発言量が「自然に」すごく増えていたことです。 参加者さんたち集中されていてご自身では気づいていなさそうでしたが、傍目から見ていて盛り上がっていたのでほっとしました。 それぞれにとって楽しい時間になってくれていたらいいなぁと思います。

そのほかTips

会場にはこういった場に慣れているレジェンドがたくさんいましたので、いろいろTipsを教えてもらいました。

  • プロジェクターをつないだ状態でスライドを確認する
  • 壁紙は大丈夫?
    • ※ ちなみに壁紙は大丈夫だったのですが、間違えてブックマークを晒しました。主に推しのアイドル関係…道重さゆみさんが大好きです!
  • 体調管理を万全に(かぜをひかない、ねぼうしない)
  • Myショートカット集
  • 緊張しない朝の過ごし方
    • 資料チェック
    • (時間余れば)参加者さんと対話

以上です〜ありがとうございました!