ぶうううん's Cafe

どうにかこうにか。備忘録に近い。

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

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

 「セキュリティ・キャンプ」は、学生に対して情報セキュリティに関する高度な技術教育を実施し、次代を担う情報セキュリティ人材を発掘・育成する事業です。2004年に開始され、現在は全国大会を首都圏で毎年1回、2013年に開始された地方大会を毎年各地で10回程度開催しています。 全国大会、地方大会とも、参加するには応募課題を提出し、書類審査に通過する必要があります。[1]
 全国大会参加者には、地方大会であるミニキャンプ経験者も多くおりましたが、私は参加しておりません。

応募課題について

 応募課題については別の記事に書きたいと思います。書いたらリンク貼ります。追記、8/26日に書きました。(本当は先に応募課題の記事書くんでしょうけども)   buuuuuuun3939.hatenablog.com

参加したコースについて

 私はBコース(開発と運用トラック)に参加しました。私自身、Webに興味を持って開発をしているので、こちらのコースを選択しました。今年のプログラムはこちら。[2] www.ipa.go.jp

事前課題について

 全国大会参加決定後、事前課題があります。こちらについても別の記事に書きたいと思います。追記、8/31日に書きました。

buuuuuuun3939.hatenablog.com

Day0

 人によっては前泊する為(遠方からの参加等)、Day0(前日)から参加の方もいるようでした。私は都内在住なので、Day1からの参加です。私のDay0は、キャリーケースに必要なものを詰めてベッドインした後、朝まで寝れず、The BeatlesのHelp!を聴いたりしながら不安と格闘した1日でした。

Day1

 初日です。会場であるクロス・ウェーブ府中に12:00~12:30に集合です。不安と不眠もあって具合が悪かったです。会場最寄り駅である北府中駅からGoogle マップ先生にお世話になったのですが、クロス・ウェーブ府中の隣に建っている建物を会場だと勘違いしてしまいました。入口の警備員さんに場所を尋ねたところ、「来たばかりで分からない」という返答。すぐ隣で良かったです。

f:id:buuuuuuun3939:20190820034307j:plain

 入口で受付した後、まずは昼食。

f:id:buuuuuuun3939:20190820041303j:plain

セキュリティ・キャンプはご飯が美味しいです。昼食と夕食は2,3種類から選べるのも嬉しかったですね。
 昼食後、開会式と全体講義が行われました。全体講義では、倫理に関する講義やセキュリティ基礎、コミュニティ活動に関する講義を受けました。私はIT系のコミュニティに属していないので、コミュニティ活動に関する講義は特に新鮮味がありました。

f:id:buuuuuuun3939:20190820042105j:plain

 夕食の後、交流の為のデザートタイム。デザートタイムは立食パーティーみたいな感じでした。名刺交換大事です。初日からもっと交換するべきでした。
 その後はLT大会とグループワーク。LT大会では、チューターや講師の方々の発表を見ることができます。大部屋で一度に複数のLTが行われるので、好きな発表を見ることができます。グループワークはキャンプ5日間を通して行われるプログラムで、今年度はキャンプ終了後に取り組むことを見つけることが目的でした。やりたいことが共通している人達でグループを組み、具体的な内容を詰めていきました。私はWeb開発をやりたかったので、Web開発したい人達とグループを組みました。

f:id:buuuuuuun3939:20190820224411j:plain

 参加者一人一人に個室が割り当てられます。ベッドはこんなかんじ。枕元に時計とラジオが埋め込まれていました。私はラジオを聴くことが多いので、ラジオがあるのは地味に嬉しかったですね。寝る前にちょっと聴いたり。ちなみに、キャンプでは毎日、水とスポーツドリンクが配布されます。食事ではパックジュースも。講義中も自由に飲んでいるのですが、日に日に部屋の冷蔵庫に貯まっていきます(笑)私はキャリーケースに何本か入れて帰ってきました。

Day2

 選択コースの私は、この日は専門講義です。とはいえまずは朝食。朝食はキャンプ中、ビュッフェです。朝はパン派なのでフレンチトーストやミニクロワッサンをメインに食べてました。クロス・ウェーブ府中のミニクロワッサンはめっちゃ美味しいので来年も同会場であれば、参加者の方には一度食べて頂きたい。
 そして講義。午前は座学、午後はハッカソン形式で「クラウド時代における大規模分散Webシステムの信頼性制御」について学びました。
 座学では最初にSREについて学んだのですが、直近の信頼性を重要視して変更をデプロイできなくなった結果、運用の負荷が大きくなるというのは、日本企業による開発運用では多いのではないかと思いました。確かに信頼性は重要ですが、100%というのはまず難しいですし、「一時的な信頼性低下を許容してSLOを過剰達成しない」ことはなるほどと思いました。こうすることでデプロイする頻度(速度)が最大化するわけですね。個人的にはDevOpsとSREの区別をまだ明確にできていないので、そこを詰めていきたいです。両者に共通する部分が多いですし。

f:id:buuuuuuun3939:20190820225738j:plain

 ここでお昼。炭水化物+炭水化物という組み合わせが度々存在するので、小食な方は回避すると良いかも。
 午後のハッカソンでは、Twitterのようなタイムラインアプリケーションのサンプルをグループごとに改良・実装していきました。大規模なユーザ数を想定し、どのように適切な情報取得を行うかなどといったことを議論しながら進め、最終的に発表しました。

f:id:buuuuuuun3939:20190820230017j:plain

 想像以上にハッカソンが難しい。というわけで夕食をさっさと切り上げて開発に戻りました。しかしながら、私はほとんど実装に貢献できなかったので、自らのコーディング力の無さを思い知りました。コーディング力が欲しい。
 この日はグループワークが無く、ホームルームの後は教室解放。教室解放では他トラックの教室に行って交流することができます。話しているとあっという間に時間が過ぎてしまうので、教室解放の時間はもう少し欲しかったですね。

Day3

 例年この日くらいから寝坊する方が増えるらしい。ちなみに寝坊すると看護師が飛んでくるらしい。朝のホットティーは美味い。
 この日、午前はE4「クラウドホスティングサービスのセキュリティと運用技術の研究 」、午後はB5「体系的に学ぶモダンWebセキュリティ」を受講しました。
  E4は座学でした。圧倒的スライド数。どのようにして高集積化とセキュリティを両立するかといったことや、Pod関連の話がメインでした。DockerやVMを使う機会も多いですが、Podについて私は詳しく調べたことがなく、新鮮でした。コンテナランタイムの違いなんて意識したことがなかった。

f:id:buuuuuuun3939:20190821010049j:plain

 お昼はカレー。このカレー、初日のカレーよりめっちゃ辛い。たまたまAコース(脆弱性マルウェア解析トラック)チューターの方々と一緒に食事しておりましたが、ひーひー言いながら食べてました。
 E5は座学でOrigin等の話を受けた後、ハンズオン形式でCSS Injectionやったりしました。ぶっちゃけ難しかったです。考え方は合っていたのに最終的な目標であるユーザIDを抜くことができなかった。残念。もっと手を動かさないといけない。

f:id:buuuuuuun3939:20190821012657j:plain

 夕食で気力回復。好物の珈琲も飲んで次に備える。
 Day3とDay4は夕食後、会員企業のお仕事紹介があります。定員に限りがあるので、人気のあるものは抽選となりました。幸いにも私は全て第一希望を聴くことができました。こういう場でないと企業様から直接お話を聴く機会は無いので、嬉しいですね。
 グループワークでは、ヒアリングにてフルボッコされた気がします。というのも、初日にオープンソースなCTFを作ろうという案が出たのですが、現状のCTFのレベルが高いことを知りました。私自身、CTFは高校生時代に個人で少し齧っていた程度なので、知識不足でした。

Day4

 夜中にスライドを読み込んだりPython書いたりしていたので少し遅い7:30に起きました。講義は8:30からなので私的には十分な時間です。朝がっつり食べる人じゃないので。
 この日、午前はA6「マルウェアの暗号処理を解析しよう 」、午後はA7「Pythonによるマルウェア検出の自動化 」を受講しました。お前本当にBコース受講者か?という気がしてくる。しかしながら、普段扱っていない領域を学べるのも、選択コースの良さだと思います。
 A6では、マルウェアの暗号処理とその特徴を学び、IDA上でその処理を見つけるということを行いました。IDA自体あまり触ったことがないので、この講義は苦戦しました。暗号化のプロセスを理解しても、それをIDA上でなかなか見つけられないという...。隣の方はバンバン見つけてました。

f:id:buuuuuuun3939:20190821021106j:plain

 お昼は冷しゃぶ。やっぱり夏はさっぱりしたものがいいですよね。うまいの一言に尽きます。
 A7は講義のタイトル通り、Pythonマルウェア検出の自動化を行いました。なかなか検出率が上がらない。アルゴリズムをよく理解して使わないといけませんね。数学的知識が不足していると実感しました。キャンプ中、Zコース(アンチウィルス実装トラック)にお邪魔したのですが、検出率が凄かったです。あとTP(True Positive)も。集中コースは精鋭揃いだと感じました。実際、Day5の成果報告も凄かった。

f:id:buuuuuuun3939:20190821022350j:plain

 最後の晩餐豪華。お肉美味しい。鯖に骨が無くて良い仕事しているな~と個人的に思いました。デザートを餡かけ豆腐的なものと勘違いして食べたのは内緒。
 夕食後、ラストナイトイベント。会員企業様や講師の方々から提供して頂いたグッズや本の配布会です。例年は若い順みたいですが、今年はグループワークのグループ名のハッシュ値順でした。こういうところもセキュキャンらしくて面白いですね。

f:id:buuuuuuun3939:20190821023137j:plain

私はシェル芸本などを頂きました。作者の方にTwitterで「(変態)シェル芸人になってよ!」と言われたのでシェル芸人目指します。
 本日も会員企業のお仕事紹介の後、グループワークです。グループワークでは、自分たちのグループが根本的に何をしたいのか、何を重要視しているのかを再度話し合いました。

Day5

 いよいよ最終日。あっという間です。朝からグループワークの後、写真撮影をして講義の成果報告です。集中コースの成果報告が凄かった。コンパイラ自作してセルフホストしてたり、前述の通り高精度なマルウェア検出の自動化やってたり。

f:id:buuuuuuun3939:20190821024528j:plain

 最後の最後までご飯が美味しい。4泊5日という日程において、ご飯の美味しさってやっぱり重要だと思います。
 昼食の後も成果報告をして、閉会式です。Bコース講師でいらっしゃる、仲山さんが前日からおっしゃっていた「アウトプットしないのは知的な便秘」という言葉が個人的に非常に刺さりました。

まとめ

 振り返ってみると、やはりあっという間なんですよね。まだまだ受けたい講義もありますし、他の参加者の方とも交流し足りない。いつも大学で過ごしている日常とは違う非日常。それだけに朝から夜まで刺激満載で、自分の実力不足を実感し、今後の活動の源にもなりました。また、何らかの形でセキュリティ・キャンプに関われればと思います。

引用

https://www.ipa.go.jp/jinzai/camp/index.html [1]
https://www.ipa.go.jp/jinzai/camp/2019/zenkoku2019_program_timetable.html [2]