セキュキャン2018に行くことになった

セキュキャン2018全国大会に応募して、どうにか選考を通過しました。

セキュキャンは去年から先輩にめちゃくちゃおすすめされていたんですが、去年は応募チャレンジに失敗してしまったので、今年こそはと思い応募開始後すぐにエントリーしたんですが、課題の方はかなり最後までやらずに残してしまい、応募IDはかなり若いのに課題を出したのは最終日という感じになってしまいました。

何はともあれ、来年の夏休みは就活か院試で忙しそうなので今年無事選考を通過してよかったです。

一緒に危機管理コンテストに参加していたメンバーと一緒に開発と運用トラックに参加します。

応募用紙

応募用紙を公開して来年以降の参考にしてもらうのが、通例のようなので公開したいと思います。
意識としては、

  • 嘘はつかないが、謙遜もしすぎない
  • セキュキャンを通して学んでいきたい姿勢をアピール

この2つを気をつけました。
特に2つ目の学びたい姿勢のアピールは、先輩もそこを全面に押し出していくといいと言っていたので結構重要だと思います。

開発と運用トラック 応募課題

共通問題

問1

ブログや、Twitter、GitHub、Slideshareなど公開している活動や資料があれば、URL等を記載してください。


ブログ: https://to-hutohu.com
Qiita: https://qiita.com/to-hutohu
GitHub: https://github.com/tohutohu
Twitter: https://twitter.com/to_hutohu

問2

セキュリティ・キャンプ地方大会などのイベントに参加していれば、それを記入してください。


第13回情報危機管理コンテスト 経済産業大臣賞

問3

自分のスキルについて、得意としている、あるいは得意としたい技術領域について、
なぜその技術領域が好きなのか、その技術領域でどんな世界を作っていきたいのか、
好きなだけ語ってください。


私が得意かつ好きで、今後も力をつけていきたいと思っている技術領域はウェブアプリケーション開発です。サーバーサイド・クライアントサイドともに得意としています。
ウェブアプリ開発が好きな理由は、自分の作ったものがすぐにダイレクトに利用者に届くという点です。ほんのちょっとの配置の変更や、余白の使い方によって大きく使い心地や利便性に影響するのが面白いと思います。また、Webの技術は新しいものがどんどん出てきており、現在主流になっている技術や考え方が数年後には時代遅れになっており、全く新しいものが出てきているかも知れない。それを学び続けるのも楽しい点です。最近はService Workerやそれを利用して可能となったPWAなどに注目しています。
アプリケーションを運用する上で、必要なインフラやネットワークについても勉強していきたいと思っています。実際、ICTSCや情報危機管理コンテストに参加してみてWebアプリなどの高レイヤーな問題はかなり得意なのですが、ルーターやスイッチなどのネットワーク問題がからっきしだったので、頑張っていきたいと思っています。

ブラウザの機能拡張と自分の技術によって、すべてのことがブラウザ上だけで完結し、アプリなどに振り回されないミニマルな世界が来るようにしたいと思います。

問4

あなたが今まで作ってきたソフトウェアにはどのようなものがありますか?
また、それらはどんな言語やライブラリを使って作ったのか、
どこにこだわって作ったのか、たくさん自慢してください。


Twitterクライアント「Shinobi Client」
言語: Node.js
環境: Electron
私はとてもTwitterが好きです。所属しているサークルのメンバーの多くがTwitterをこよなく愛しており、PCを開いているときは常にTwitterのTLを見ています。しかし、複数枚のディスプレイを用意できる自宅ならまだしも、基本的にラップトップの1枚のディスプレイしか使うことのできない外出先ではTweetdeck1カラム分でもディスプレイ内のかなりの部分を専有してしまいます。そこで、「Shinobi Client」を作りました。「Shinobi Client」は背景を透過させることができ、ツールバーなども設定画面以外には存在しないため画面専有がほとんどありません。また、常に最前面に表示される上、特定のキーを押している時以外はクリックなども透過するためウィンドウが存在することさえも気にすることなく画面を利用することができます。
しかしながら、Twitterクライアントとしての機能は十分で、ファボ・RT・リプライはもちろん画像の投稿や、ミュートしたユーザーのツイート非表示などにも対応しています。
ツイートする場合はショートカットキーでツイート画面を起動することができるので、ツイートしたいと思った時その瞬間にいつでもツイートすることができます。

AtCoder大会参加サポートツール「AtCoder-go」
言語:Golang

問5

あなたがこれまで利用したことがあるインターネットサービスの中で一番すごい!と思ったものについて、
技術的なのか、仕組み的なのか、ビジネス的なのか、
どんなところがすごいと思ったのかを説明してください。


Web Archive ( https://web.archive.org/ )
今まで自分が見ようと思ったすべてのページが保存されており、さらにバージョン別に複数の版を保存していることにとても驚きました。特に公開後数時間でページが非公開になってしまったページでも保存されていることが多いのも驚いた点の一つです。
それだけ多くのページの画像を含めたデータを保存しておくインフラと、ページをクロールする技術がすごいと思いました。

問6

今年のセキュリティ・キャンプ全国大会で受講したいと思っている講義は何ですか?
そこで、どのようなことを学びたいですか?なぜそれを学びたいのですか?
講義を担当する講師に響くようにアピールしてください(複数可)


2日目 B2 ビヨンドブロックチェーン
去年の11月末頃から仮想通貨に興味を持ち、実際に仮想通貨を扱ったり関連記事や本を読んでブロックチェーンやプルーフ・オブ・ワークについて勉強しました。コインチェックからのNEM流出事件の際には、実際に犯人のNEMの行方を追跡することのできるBotを作成しNHKへの出演や日本経済新聞への掲載もしていただきました。しかし、その後詳しく調べたり勉強会に参加することで、そこまでに得た知識はかなり浅い段階のもので更に多くの課題や未来の技術が存在することを知りました。ビヨンドブロックチェーンの講義では、それらの課題や技術について体系的に教えていただけると思っているのでぜひ受講したいと思っています。ブロックチェーン関連技術ではZCashなどで使われているゼロ知識証明や、新たな技術の試験的導入をしやすくなるというサイドチェーンに関する技術について学びたいです。

3日目 B5 ブラウザ拡張機能の脆弱性を探そう!!
PCを使っている中で、最も長く利用しているソフトの一つであるブラウザに関する講義なのでとても身近に感じました。特に私はブラウザの拡張機能を試すのが好きで、様々な拡張機能やアドオンを探して試したりしているのですが、調べている中で脆弱性があったり、悪質な拡張機能であるという紹介を見たりすることもありました。今までは、そのような脆弱性があるという情報を受けるだけでしたが、この講義を受けることで脆弱性があるという情報を提供することができるようになるかもしれないと思うと非常にワクワクします。最近のブラウザではWebExtensionという規格に沿うことでかなりセキュアになったという記事も読んだことがあるのですが、それでもなお存在する脆弱性というのはどのようなものがあるのか知りたいです。

4日目 B6 認証の課題とID連携の実装
現在部内向けに開発しているSlackライクなコミュニケーションサービスがあるのですが、他の部内インフラ(WikiやGit・クラウドストレージなど)の中枢として機能し、連携のためにOpenID Connectを実装しようということになっています。この講義では実習としてWebアプリケーション上にOpenID Connectを実装するとのことなので非常に実践的で、有益な講義になるだろうと思っています。

選択問題

以下の中から、2問以上を選んで回答してください。
二問しか答えてないです

問4

今までに起きたセキュリティ事故から一つ取り上げ、
その事故に対して、どのような仕組み・システムがあれば防ぐことができたかを考えてください。


コインチェックからのNEM流出事故
事件では半年前以上から、特定の社員をターゲットとして近づき、その社員に対してウィルス入のメールを送り開かせることで、管理権限を奪ったという。安易にメールに添付されているファイルを開いたり、ウィルスチェックに通すことは重要ではあるが、普通の感覚では半年も交流のある人物からのメールではそういった意識も多少は薄らいでしまうのも仕方ないとは思います。したがって、こういった事故は人間に対して注意を呼びかけたり気をつけるようにするだけでなく、強制的に事故が発生するような状況にならないような状態にしておくことが必要だと思います。
今回の事件で具体的に言えば、管理権限を持ったPCの物理的隔離を行うことによって通常業務で使うPCに攻撃があった場合でも影響を最小限にしたり、コールドウォレットやマルチシグを使うと行ったシステム的な防止策が考えられます。

問5

活動しているオープンソースコミュニティがあれば、
そこでどんな活躍をしているのか自己紹介してください。
参加の形態は開発だけには限りません。
もし今は活動しなくとも、貢献しようと思っているコミュニティがあれば、
どんな貢献をしていきたいと思っているかを書いてください。


Vue.js( https://jp.vuejs.org )というJSフロントエンドフレームワークコミュニティ
初めて本格的に利用したJSフレームワークであり、最も長く利用し続けているライブラリの一つでもあります。
2年ほど前から利用しており、1年ほど前からは大学で所属しているプログラミングサークルでハンズオンやVue.jsの良さを布教するLT会などを行ってきました。
更に、去年の末からは日本の公式ユーザーグループのSlackに入り、meetupに参加したり、ドキュメントの日本語への翻訳にコントリビュートしたりなどもしています。
Vue.jsを用いた開発をする中で、実際に内部のソースコードを読むことも多くなってきたので今後はライブラリ本体へのコントリビュートもしていきたいと思っています。また、Vue.jsは周辺ライブラリの開発も非常に盛んなので、それらへのコントリビュートや使い方などの解説などもしていけたらと思っています。

Echo ( https://echo.labstack.com )というGo言語のWebフレームワーク
現在所属しているサークル内向けに制作している、traQという部内コミュニケーションサービスのサーバーサイドで利用しているライブラリです。
つい3日前に開発中に見つけた、URLのパスからのデータが一定の条件で取得できないというバグがあり、それをissueをたてPRを出したいと思っています。