セキュリティキャンプ2018全国大会に参加して来た話 「開発運用コースでの5日間」 3日目/4日目/5日目とまとめ

前回のセキュリティキャンプ2018 全国大会に参加して来た話 「開発運用コースでの5日間」 1日目/2日目とおまけの課題晒しを見てない人こちらから。

f:id:oukasakura3:20180820214144j:plain

3日目

3日目の講義

講義講師
ソースコード解析による検査自動化ツールの制作杉山俊春先生
ブラウザの拡張機能脆弱性を探そう白倉大河先生

朝食

フレンチトーストがおいしい朝が来た!
3日目は7時起きでした…が、人が少ない… f:id:oukasakura3:20180820000312j:plain

ソースコード解析による検査自動化ツールの制作

 この講義の講師は杉山俊春先生の講義でした。内容としては開発の際に行われるソースコード解析(ホワイトボックステスト)の自動化についてでした。

 前段階として、安全なサービス開発における段階的なセキュリティについてや、現状の開発フローにおける課題(主にテスト段階で大きな問題が発生した際のレフトシフトやセキュリティテストの外部委託によるリードタイムの辛さなど)、そしてアプリケーションの脆弱性の仕組みやその脆弱性機械的に判別がつけられつものなのか、それとも人間の判断が必要なのかという区分分けについてお話をいただきました。

 次にソースコードの解析自動化ツールを作ってみよう的なコーナーへ、この講義では正規表現や抽象構文木(AST)を利用して構文解析を行い、実装段階での脆弱性の発生箇所を発見するためのツールを制作しました。制作後、演習としてDEMOで制作された脆弱性を有無実装方法やCMSを利用した実際の演習をしました。

 今回初めてソースコードの解析ツールを制作したので、不慣れな部分もありましたが楽しく学べました。今後も自分の趣味程度にこのソースコードの解析自動化を進めていければなと思います。

昼食

f:id:oukasakura3:20180820111433j:plain うまい(うまい)

ブラウザの拡張機能脆弱性を探そう

 さて、ここからは講義上での折り返し地点を超えて後半戦へ

 この講義はこのキャンプの修了生である白倉大河先生からブラウザの拡張機能脆弱性について学びました。

 自分自身が普段何気なく使っているブラウザの拡張機能には数多くの特権を付与することができ、この特権を悪用して不正なデータの改ざんやアクセスログの収集など幅広い犯罪(?)が行えるのだとわかりました。他にもハンズオン形式でネタで有名な5000兆円ほしいextensionの脆弱性再現や先生自らが制作したextensionのクリックジャッキングの脆弱性などについて学べました。

 その後ストアにあるextensionにも脆弱性があるものは多いからぜひ探してみて!とのことだったのでストアへ。

 僕の見る目がなくその際には見つからなかったですが今後暇があったら探してみようかなと思います。

 この講義で心に残ったこととして、5000兆円extensionが暴れ出しXSSを含んだ検索履歴状などで誘発したりし、大量にalertが生成され心臓に悪い思いをしました。

夕飯

f:id:oukasakura3:20180820111512j:plain 麻婆はピリリと辛く牛の深い味わいが美味しかったです

食後、部屋に戻った後に企業紹介の教室に行く途中、Panasonicの森田さんとお会いし、CSIRTでの面白いお話や業務の内容についてお話を聞きました。

企業のお仕事紹介

 3日目からはこの時間は講義ではなく企業のお仕事紹介とグループワークになりました。

 僕はリクルートテクノロジーとLINEのお仕事紹介を聞きました。

 リクルートでは、リクルートの新人研修の内容とエンジニアの働き方、さらに入社後のエンジニアの成長の過程とDockerFileの書き方で教養があるか否かがわかるというお話を聞きました。

 LINEではLINEの通信の安全性や福利厚生についてのお話でした。

グループワーク

 この日のグループワークでは、将来の自分について見つけるために話を聞きまくるというものだったので、チューターさんや企業の方々から色々な話を聞き、社内での部門移動等から勉強の仕方など幅広い質問をして今後の自分の道のりについて糧になるようなネタを多く仕入れてきました。

ホームルーム

 ホームルームではなかなか同じトラックの人と話していなかったので話す機会かなと思いながら少し交流をして23時になり自室に帰宅。

4日目

4日目の講義

講義講師
認証の課題とID連携の実装倉林雅先生 / 林達也先生
サーバーレス時代のシステム設計ワークショップ仲山昌宏先生

朝食

もはや写真を撮ることを忘れるほど楽しくなっていた朝、この日も7時ごろに朝食会場へ、しかし人がいない…

認証の課題とID連携の実装

 この講義では倉林雅 / 林達也 両先生による認証と認可、そしてID連携の実装についての学びました。

 講義内容として、認証と認可の違いや認証の重要性、また現実世界の入試を認証と仮定してその認証をどのように回避することができるかについてグループワークを行いました。その後、OAuthの解説やOpenID Connectの解説を聞き、某社のOAuth認証OpenID Connectを利用した認証機構において発生した脆弱性に対する攻撃方法(Token置き換え攻撃)やCSRF攻撃の実習をしました。

 この実習で学んだことは、今後実装するOAuthによるソーシャルログイン において脆弱性が発生しかねない実装方法があるんだなと思い、できる限りそのような実装をしないようにしたいと思いました。

昼食

写真撮り忘れました…

サーバーレス時代のシステム設計ワークショップ

 この講義での講師は僕が選んだトラックのプロデューサーの仲山先生で、講義内容は先生の実務で行なっているサーバーレス時代におけるシステム設計の授業でした。

 この授業ではサービスが1時間止まるといくらの損害になるのか?そしてその運用における利益とコストについてのかについて話した後にIoTビジネスの運用や特徴についてお話を聞きました。

 他にサーバーレスとは何か?どんなことをするものなのか?その分類はといった順でサーバーレスの基礎概論のようなものを教えてもらい実際にAzureやWebHookでSlackBotを作りました。この講義で学んだことは、サービスを立ち上げる際はできる限り自分たちでのコード(独自実装)を減らし実装段階での脆弱性を減らすことができるのだなと思いました。

夕食

夕食前に集合写真をパシャリ。

f:id:oukasakura3:20180820111725j:plain うわぁ…突然豪勢なものが出てきたな…と思いながら食しました。

企業のお仕事紹介

 この日はPanasonicとGehirnのお話を聞きました。    初めにPanasonicのお話で、前日お会いしたCSIRTの森田さんのお話でした。
 お話の内容としてはPanasonic製品のセキュリティ診断や社内のセキュリティ向上のための施策、そしてセキュリティチームの技術向上のための研修などについてお話を聞かせていただきました。

 次にGehirnで、この企業の代表さんがキャンプの修了生で、かつ協賛企業の一員+セキュリティキャンプ協議会理事ということもあり今回代表さんがどのような人生を歩みどのようなことをしてここまで来たのかについてお話を聞きました。(有名な地震速報の流れるTwitterアカウントや自社サービスのお話とプロのお話を聞きました。)

 このほかに個別でソフトバンクテクノロジーにゃんたくさんにお話を

グループワーク

 この日は将来の自分を語る、またその将来への思いに磨きをかけるための日でした。    僕はこの日は上野宣先生や忠鉢洋輔先生といったセキュリティで有名な方々からお話を頂戴し自分の将来についてまとめました。

ホームルーム

 このメンバーで集まる最後の日、軽くお話をして今日は終了

その日の夜の話

 ホームルーム終了後外に出るといろんな人たちが集まっていた。

この問いかけにいろんな人が集まり話していたのだ。 キャンプ最後の夜、多くのキャンパーたちが夜遅くまで語り合い、去る日々を惜しみながらまた会おうと語り合った(ことにしておく)。

5日目

グループワーク

 最終日、自分の思う将来や今後やりたいこと、キャンパーやそれ以外の人たちを巻き込んでやりたいことなどをまとめる時間。1時間程度で終わってしまい書きたいことも書ききれぬまま終了してしまう…

成果報告

 集中コースの皆さんは化け物のような成果(コンパイラを作りたいといいキャンプに参加したのに0Dayで完成させる化け物や少しエラーがあると話を聞いただけでそのerror箇所がわかる化け物、ブラウザを作っていたのでそこでJSVMを作りたい化け物などなど)を選択コースではそこで学んだ事を成果として報告

閉会式

 この時はもはや感極まるほどこのイベントへの気持ちがこみ上げてきました。

 惜しい気持ちや楽しかった、またこのキャンプにかかわりたい。こんな気持ちがあふれんばかりで終わってしまうのが名残惜しい…

f:id:oukasakura3:20180820112724j:plain

そしてこの証書と経済産業大臣の激励文をいただきこのセキュリティキャンプというものは終わっていき、僕たちの歩みは始まっていったのです。

まとめ

5日間を通して変わった事/学んだ事

 この5日間で、僕自身の未熟さをさらに認識でき、今後の僕自身の技術学習への糧となる火付けができたこと、さらに僕自身の言葉で発信する重要性や言語化文章化の重要性、さらには継続して学ぶ姿勢などなど多くの今後への活力となることを学びました。

 変わったこととして、若干の僕自身の持つ技術への満足感を払拭しさらに僕自身を高めたいと思う気持ちが芽生えたことや、自分自身が知らない分野へ目を向けさわってみたい、そしてこの知識はもしかすると自分の分野に流用できるのではないかと思うようになりました。

キャンプの感想

 やっぱりいろんな意味で規模が違うイベントだなと思いました。

 僕はこのキャンプで一番思ったこととして、今まで僕の知らない分野の人たちと話せたり、先輩エンジニアの話を生で聞けたり、将来の僕たちと照らし合わせられるような大人たちが多くいてすごく希望溢れる世界が広がっているなと思いました。

 さらに、このキャンプに参加することによって僕も含めいろんな人とのモチベーションの高めあいが出てきたり、修了生という横のつながりやチューターさんや講師さんとのつながりなど幅広い人脈が築けよかったと思っています。

今後やっていきたいこと

 今後僕がやっていきたいこととして、今僕自身が好きなWebという分野を少しづつ深めながら、技術の突出のみではなく少しづつ全体の知識の底上げ(コンピュータサイエンスや軽めの機械学習等)を行い、今後のセキュリティ人材、そしてIT人材の一翼を担っていきたいと思っています。

締め

 応募した当初はこんな1年と少ししかやっていないエンジニアの卵が受かるのか不安でした。ですが受かってほっとして、そしてこうしてキャンプを修了しさらに学ぶことができたということはすごくいい経験になったのかなと思っています。

 もし2019年以降にこのブログを読んでここまでたどり着いた方がいて応募するか悩んでいたらその悩みはほっぽり出して応募したほうがいいと思います。

 そして技術的な問い以外で悩んでいる人は、熱い思いを書こう!

 それでは最後になりますが、このつたない記事を読んでいただきありがとうございます。今後も多くの記事を書けたらなと思っていますのでその時はよろしくお願いします。