swampの忘備録

エンジニアが、情報系のイベント行ったときとかプログラミングなどの情報工学について忘備録として書くつもりです。

セキュリティ・キャンプ全国大会2019に参加した話

 2019年8月13日~2019年8月17日にかけてセキュリティ・キャンプ 全国大会2019に参加してきました。 
 自分の備忘録も兼ねているので、かなり長い記事になりますが許してください。

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

セキュリティ・キャンプとは、日本における将来の高度IT人材となり得る優れた人材の発掘と育成を目的とした独立行政法人情報処理推進機構(IPA)の事業の一つです。

現代においては、情報セキュリティの脅威は高まる一方です。
本事業では、セキュリティ分野に興味を持ち、将来同分野で活躍したいという意志をもった若者に対して、高度な情報セキュリティ技術の習得機会を提供しています。また、モラルや法律遵守の意識、セキュリティ意識、職業意識、自立的な学習意識についても向上のための機会を提供しています。

本事業は、2004年度のスタート以来、2018年度のセキュリティ・キャンプまでで計748名の将来が有望なIT・情報セキュリティ人材を輩出しています。セキュリティ業界はもとより各方面から、高度な情報人材育成に有益なイベントとして高く評価されています。

https://www.ipa.go.jp/jinzai/camp/2019/zenkoku2019_about.html

 つまり、セキュリティに関するとってもとっても濃い講義を税金で無料で受けられるとても楽しいキャンプということです。
 周りにすごい講師、チューター、受講者がたくさんいて、とても刺激を受けることができました。

会場入り

 遠方なので、なんと前泊が許可されました。とてもありがたい限りです。
 ということで、一足早く会場入りをさせていただきました。


1日目

開会式

 えらい大人の方がたくさんお話をしてくださいました。

特別講演(倫理)「転ばぬ先の法律入門(サイバー空間編)」

 自らが犯罪を犯さないためにも倫理って大切だよね。というお話でした。
 様々な事例の具体例が示されていたため非常に分かりやすくためになりました。
 倫理観を鍛えて善い人生を送れるように気を付けていきたいです。

セキュリティ基礎

 良いパスワードとは?という問いから始まり、パスワードに関するあれこれを講義してくださいました。
 GPUでパスワード全解析していったら、1秒間に327,000,000,000個というパスワードを解析できるというデータには非常に驚きました。
 参考ページ No password is safe from this new 25-GPU computer cluster - CNET
 GPUすげーーという感じです。破られないパスワードはもう作れないのか?と思ったりもしました。
 また、生体認証ならある程度は安全が担保されるだろうと思っていましたが、
 いろいろと代替された事例を見て、一概に安全とは言えないとはいう印象がとても強くなりました。
 初めの問いの現実解としては、経路が異なる認証を複数個ということでした。
 今まで、「パスワード」を主眼に考えてみたことはなかったので、非常に興味深かったです。
 また、「パスワード」を信頼するという行為は非常に危険であると感じました。
 パスワードについて考える良い機会になったので、自分自身のパスワードに対する考えも変えていきたいと思いました。

特別講演(一般)「ITの話ができる仲間を作ろう~IT業界とコミュニティ活動~」

 コミュニティ活動について講師の法林さんの経験をもとに講義をしてくださいました。

www.slideshare.net
 僕もCoderDojoのメンターなどいくつかのコミュニティに参加していますが、非常に共感できるところも多かったです。
 ある人も言っていましたが、コミュニティの運営というのは本当に貢献でなりたっていると思います。(僕の実体験からも)
 自分もコミュニティに貢献できるように、様々な活動をしていきたいなと思いました。
 また、会社に入っても「外の物差し」を知れると聞いたので、積極的にこれからもコミュニティ活動はしたいと思いました。

LT大会

 LT大会では、僭越ながら秘密計算の簡単な概要についてお話させていただきました。

www.slideshare.net
 周りが強い方ばかりでこんな内容で戦々恐々としましたが、興味を持ってくださる方もいたようなので発表してよかったなあと思いました。
 LTは頑張って挑戦してみましょう!

2日目

C1~3 制御システムのセキュリティとShinoBOTによる攻防演習

 この講義では、工場にあるような制御システムを模した環境を用いて、制御システムに対する攻撃と防御を学びました。
 以下のような実際にありそうなロボットアームのセキュリティについて考えていきました。

 午前は、制御システムと概要と防御について学びました。
 Wiresharkで、実際の通信をキャプチャして解析し、どんなプロトコルのどんなデータが来ているのか見てみました。
 また、snortを使って、そのデータを検出したりしました。
 午後は、制御システムに対する攻撃について学びました。
 最初に遠隔操作マルウェアシミュレータであるShinoBotについて学び、簡単なCTF形式で使い方を学びました。
 実際にCTF形式でやってみるととても楽しかったです。また遠隔操作の怖さを知ることもできました。
 その後は、実際の制御システムに対する攻撃スクリプトを書いていきます。
 なんと言語はPowerShell! C言語とかを使うのかと思っていたので意外でした。
 使ってみると確かに便利な関数たくさんあるし、使いやすいなあと感じました。
 夜は、攻防戦です。チームで攻撃と防御に分かれて習ったことを駆使しながら対決しました。
 攻撃の仕方、防御の仕方にもいろいろな視点があることを感じました。
 どの試合も、とても盛り上がって楽しかったです。
 この講義では、なかなか触れることのない制御システムのセキュリティにふれ、貴重な経験になりました。
 これからもっと制御システムに対するセキュリティは必要になってくると思います。
 そのセキュリティには、「情報システム」とは違う視点も必要です。
 今回学んだことをもとに、制御システムのセキュリティにも興味をもっていきたいです。

3日目

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


 認証やID連携についての基礎的な知識を学びました。
 前半は、実際の事例から問題点を考察し、その後パスワード、ID、認証と認可とは何かを教わりました。
 某社の事例を見て、情報公開や報道のリテラシーというのも大切だと学びました。
 また、IDといってもいろいろな意味があり、それぞれ使い分けが必要なのは初めて知りました。(Identify、Identification、Identifierとか)
 Discussionなども通して、改めて認証やIDを扱う際に私たちはどんなことを意識しなければならないのか考える良い機会になりました。
 後半は、まず、FIDOやOpenID Connectの仕組みについて、非常に分かりやすく説明してくださいました。
 なぜトークン置換攻撃やCSRFリプレイ攻撃などが起きるのかとその対策についてもフロー図で分かりやすく理解できました。
 また、ID tokenなどを書き換えて他人の情報を盗めることもハンズオンを通して体感しました。
 今まであやふやだった認証やID連携について、詳細に理解することができ非常に勉強になりました。
 また、定められた規約通りに実装することは、攻撃を防ぐという意味でも重要だと感じました。
 もう少し勉強して、OpenID connectを実際に使用したアプリケーションも作ってみたいと感じました。
 

B5 体系的に学ぶモダン Web セキュリティ


 Webセキュリティについて様々な要素を学びました。講義資料は以下です。

speakerdeck.com

 事前学習から、知らないことが多くWebセキュリティの基礎的な知識を文字通り体系的に身に着けることができました。
 難しいところもありましたが、分かりやすく構成されていたと思います。
 CSP、XSSCSS Injectionあたりを中心に学びました。
 当日は、ハンズオンが多くあり、実際に攻撃をしてみて理解を深めることができました。
 1つ1つの攻撃に対してハンズオンがあり、それぞれで理解を深めることができました。
 Webセキュリティを考えるうえで大事なことばかりだったので、この知識を忘れないようにしたいです。
 「攻撃と防御は裏表」という言葉は印象に残りました。そのために歴史を学んで、実践し、いかに防御していくかを考えていく癖をつけていきたいなと感じました。

4日目

B6 つくって学ぶ、インターネットのアーキテクチャと運用


 ネットワークのアーキテクチャについて実際に構築しながら学んでいきました。
 IPアドレスDNS、BGPあたりを中心にその動向やセキュリティ、運用方法が詳しく理解できました。
 特にBGPあたりの話では実際にどう運用されているのかが解説され、非常に興味深かったです。
 このあたりの知識は知っていると思っていても、まだまだ知らない知識が多かったので勉強になりました。
 ハンズオンでは、IPアドレスの設定やルーティングの設定などを行いました。
 普段、仮想環境を3つも立ててネットワークを構築してみるといった経験は中々できないので、実際にIPアドレスをふったり、ルーティング設定を通してネットワークの仕組みをより理解できたと思います。
 ハンズオンの時間が十分にとれず、少ししか進められなかったことは少し残念でした。
 自分でも資料を見ながらトライしてみたいなと思いました。

C7 車載LANの仕組みとメッセージの取得・解析

 自動車のセキュリティや車載LANについての講義を受けた後、演習用CANネットワークに対して解析や攻撃を行いました。
 自動車セキュリティに関しては以前から興味を持っていたので、その概要や最新の状況について知れて、非常に有意義な時間でした。
 演習では、CANメッセージを解析して、パケットの情報を読んだり、CANネットワークにメッセージを送ったり、スピードなどの任意のデータを出力させるスクリプトを書いたりと盛りだくさんな内容でした。
 途中には、実車(ポルシェ)を見にいったりもしました。実際にOBD-II端子にツールをつないでモータ回転数などが見えることが体感できました。
 家の車にもOBD-II端子はあるはずなので試してみたいなと感じました。
 いとも簡単に情報をとることや情報を書き換えることができていたので、セキュリティについて強く考えさせられました。
 車だけでなくIoT機器のセキュリティは、何でもインターネットにつながりつつある現代の社会では非常に重要な事項であると感じました。
 そのためにも、ハードウェア、OS、通信など幅広い知識を身につけていきたいと思います。

5日目

 グループワーク、講義の成果報告、閉会式と進みました。
 集中トラックや他のトラックに関する詳細について聞くことができて、どのトラックのお話も興味深かったです。
 リバースエンジニアリングゼミは特に面白く興味深かったです。
 無事に修了書もいただき、名残惜しいながらも無事に全過程を終えることができました。


グループワーク

 グループワークでは、「セキュリティ・キャンプ修了後にあなたが取り組むこと」というテーマでグループを作り、取り組みました。
 僕は、プログラミング初心者のためのコミュニティを作ろうということでグループで話し合いをしました。
 自分自身地方にいて、IT関係の勉強会は非常に少ないというのが現状です。
 そんな状態を少しでも変えたいなというのが、僕の大きな願いです。自分の地元でも勉強会を増やしていきたいという気持ちがあります。
 1人では、できることは少ないですが、今回の縁を大切にして色々と考えていきたいです。

戦利品

 初日にノベルティをたくさんいただきました。
 ラノベもあってビックリしました。
 協賛企業の方々ありがとうございます。


 また、4日目のラストナイトイベントでは本を頂きました。
 協賛企業の方々ありがとうございます!

食事

 全部は撮ってないですが、食事はこんな感じでした。どれもおいしかったです。

f:id:swamptk:20190821001200j:plainf:id:swamptk:20190821001203j:plainf:id:swamptk:20190821001212j:plainf:id:swamptk:20190821001227j:plain

その他

 宿泊部屋も1人部屋で非常に過ごしやすかったです。
 朝は油断すると寝坊するので、キャンプ前から規則正しい生活を送ることは大切です(僕は大丈夫でしたが、寝坊した人をn人見ました)
 名刺は、今回60~70枚ぐらいは配ることができました。
 初対面の人に話しかけるのは苦手ですが、頑張ったほうだと思います。個人的にはもっと交換したかったです。
 名刺交換の機会はいつあるか分からないので、常に持っておきましょう。帰りの電車の中でも交換することはあります。
 あと、パケットを読む機会が案外多かったので、Wiresharkの使い方とかパケットの読み方とか覚えておくといいかもしれません。

まとめ

 セキュリティに関して、素晴らしい講師から良質な講義を無料で受けられるセキュリティキャンプは最高でした。
 受講者の方とも色々なお話をさせていただき楽しかったです。
 同時に全く分からないことも多く、自分の勉強不足も痛感しました。
 今回受けた刺激を大切にして、これからも精進していきたいと強く思いました。
 色々な方とお話させていただき、たくさんアウトプットすることは大切だと感じたので、積極的に様々なことに挑戦していきたいです。
 このような機会は中々ないので、是非皆さんも挑戦してみてください。
 そして、今回のセキュリティキャンプに関わってくださった皆さん、本当にありがとうございました!