アーカイブ

セキュリティ・キャンプ 2015に参加しました #seccamp

タイトルの通りです。これまで経験したことない濃い5日間でした。

応募書類

実は私は、2013年にネットワークセキュリティコースに応募して一度落ちています。今思えば当然かもしれません。当時の私は”インターネットで用語を検索して、意味を調べて分かったふりをしていただけ”だったのです。 もちろん今もその状況を脱出できたとは思っていません。しかし、当時と比べて実際に手を動かすようにはなりましたし、技術の捉え方や焦点も結構変わりました。それは不合格への悔しさだったり、イベントでのコミュニティの皆さんとの出会いだったり、様々な経験によって影響されていると思います。

さて自分の中でキャンプの不合格は結構ショックで、お恥ずかしい話ですが、それ以降キャンプの参加申し込みをためらっていました。若干、意地のようなものが働いていました。一度落とされてちょっと拗ねてしまう気持ち、そして再度落とされる事への恐怖、そんなところです。
2014年は応募用紙に見向きもせず、Twitterでキャンプ合格者を見ては「良いなー」と思ってしまったり。実は2015年もいろいろとお誘いの言葉をいただいたにも関わらず、応募しないでいました。

ただよく考えてみると来年は大学院入試もありますし、「応募できる機会ってもう今回が最後のようなものなのかな」とふと思うと、何かものすごい虚無感に襲われました。それが応募締め切り前日の夜のことです。その時、ようやく今年のキャンプへの応募を決意しました。 (それに「前日から書き始めたなら、通らなくても自分への言い訳にできるか」なんていう汚い感情もありました…)

キャンプに応募すると決めてからは、応募用紙は割とスムーズに埋まりました。キャンプの応募用紙を書きながら意識した事は「自分はこんな事を疑問に思った、ちょっと実際にやってみた」みたいな感じです。別にキャンプに受かるには、的なことを書きたいわけではないです。 ただキャンプの応募用紙にはいろんな技術へのきっかけが詰まっていて、「私が知らない技術の側面」を実際に試してみたくなるような雰囲気がすごく感じられました。応募用紙を書くのは全然苦痛ではなく、むしろかなり楽しかったです。

合格発表・事前学習

受かってました。すごく嬉しかったです。ただ同時に周りのレベルが高いことにも気付き、これからついていけるのか、すごく不安になりました。強がったりもしました。参加者用のグループでの挨拶も、かなり悩みました。 しかしチューターの皆さん、参加者の皆さんがフレンドリーに接してくださったおかげで、徐々に打ち解けることができました。
また事前課題も出されました。参加者の皆さんとSNSで進捗の煽り合いをしつつ、キャンプの応募用紙と同じ感覚で楽しく取り組むことが出来ました。キャンプが近づくにつれて、キャンプへ参加することの恐怖が期待へと変わっていきました。

キャンプ当日

受講した講義一覧です。

  • 専門講義1-Aバグハンティング入門
  • 専門講義2・3-Bツール自作で知るパケットとネットワークの仕組み
  • 専門講義4・5-C遠隔操作マルウェアの検知および検知回避
  • 専門講義6-Cネットワーク通信から不審なものを見つけてみよう
  • 専門講義7・8-AHTTPプロキシ入門
  • 専門講義9・10-C脆弱性検出実践(ファジングによる検出と脆弱性報告)
  • 専門講義11・12出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ
  • 専門講義13・14-Cフォレンジック技術を用いたインシデントレスポンス
  • 専門講義15・16-Cハードウェアセキュリティ(サイドチャネル攻撃の仕組みと対策)

どこまで書いてよいか分からないので、概要と感想を少しだけ書いておきます。

専門講義1-A.バグハンティング入門

Masato Kinugawaさんの講義です。実際に発見した脆弱性の例、その発見に至るまでのプロセス・ノウハウを教えていただきました。後半はXSSフィルターのバイパスについて実習を行いました。資料はこちらで公開されています。http://masatokinugawa.l0.cm/2015/08/securitycamp2015.html
日頃からXSSをプレイしていないので、CSSのブラックリストやXSSフィルターあたりの話の多くは、この講義を通して初めて知りました。講義後半で行われたXSS Challengeでは、講義中に答えは見つけることはできませんでしたが、講義後も参加者との話のネタとして、楽しく取り組むことができました。

専門講義2・3-B.ツール自作で知るパケットとネットワークの仕組み

坂井さんの講義です。簡易的なパケットキャプチャを自作し、ヘッダーファイルを見ながら、流れているパケットを読み解きました。後半ではバイナリエディタでパケットを書き、ネットワークに流してうまく通信できるかを競い合いました。
実は今までにパケットを1から書いたことがなかったので、特に後半はかなり面白かったです。パケットを自作すると、今まで学んだネットワークに関する様々な知識が繋がって納得できるので、すごくオススメです!

専門講義4・5-C.遠隔操作マルウェアの検知および検知回避

凌さんの講義です。ShinoBOTを実際に操作して攻撃したり、実際にC&Cサーバーと通信して動作するRATを作成して、実際に演習用のPCからフラグを盗む実習などがありました。
実際にどのような攻撃が可能であるのか、ということを実習を通して学ぶことが出来ました。Yaraシグネチャによる検知までを講義中に出来なかったのが残念ですが、検知と検知回避の手法について、非常に良い学習のきっかけをいただくことが出来ました。(いろいろと資料をいただいたので勉強します)

専門講義6-C.ネットワーク通信から不審なものを見つけてみよう

川口さんの講義です。あるネットワークの通信をキャプチャしたものが渡されるので、そのファイルを解析して何が起きていたか、どんな被害があったか、などを推測していきます。
演習として渡されたファイルが非常に面白い・貴重なものだったので、解析すればするほどいろんな事がわかりました。チームごとに解析を行い、私達の班は正解に近いところまで辿りつくことが出来ました。坂井さんと川口さんの講義を通して、暇な時とかにパケットを眺めるのが趣味になりつつあります。

専門講義7・8-A.HTTPプロキシ入門

廣田さん、国分さんの講義です。HTTPの基礎とプロキシツールを活用した脆弱性診断を、実際にWebアプリケーションとスマートフォンアプリの通信を解析しながら学びました。
隔離されたネットワークでプロキシツールをいじりながら、WebアプリケーションとAndroidアプリケーションの通信を改変して、用意されたサービスの脆弱性を探しました。実際に個人情報をHTTPで通信しているアプリケーションは多くあると思いますし、講義を通して、特にスマートフォンの通信に対する意識が大きく変わりました。

専門講義9・10-C.脆弱性検出実践(ファジングによる検出と脆弱性報告)

山下さん、篠原さんの講義です。ファジングツールを操作して、隔離されたネットワークに接続されたデバイスにファジングを行い、脆弱性の発見に挑戦しました。
今回ファジング対象として利用したものは、すべて製品として販売されているものでした。実習を通して、普段何気なく使っているデバイスにも、結構多くの脆弱性が残っているかもしれないということを強く実感しました。(偶然にも担当していたデバイスでおかしな挙動を見つけてしまったので、キャンプ中に脆弱性報告を行いました)

専門講義11・12.出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ

CTF for ビギナーズの皆さんによるCTFが開催されました。時間は2時間半程度で、問題は30問近くありました。
偶然にも、Wiresharkを見ていたらフラグが降ってくる問題(200pt)に正解してしまったため、得点は450pt、順位は総合8位(キャンプ参加者では5位)でした。実際に会場でCTFに参加したのは初めてだったので、会場の雰囲気だったり妨害コンテンツだったり、会場ならではの要素も楽しむことが出来ました。

専門講義13・14-C.フォレンジック技術を用いたインシデントレスポンス

関さんの講義です。マルウェアに感染した際の正しいファーストレスポンスの実践と、攻撃されたVMを解析するとどのような痕跡が残っているのか、などを実習を通して学びました。
日頃使っているLinuxやWindowsの機構から、どのようなログが残ってしまうのかなどを、実際にフォレンジック技術を通して体験しました。私達が想像している以上に、何を行ったか、どのようなデータを扱ったか、という痕跡は 残ってしまうものなんだ、ということを強く実感しました。

専門講義15・16-C.ハードウェアセキュリティ(サイドチャネル攻撃の仕組みと対策)

猪俣さんの講義です。オシロスコープを用いて、FPGA回路上に構築された暗号回路のサイドチャネル信号を観測して鍵を推定したり、ICカードの鍵の推定などを、演習を通して学びました。
実際にヨーロッパの方では既にサイドチャネル攻撃を使って色々と被害が発生しているようですし、実はかなり身近な話題という印象を受けました。前半の暗号理論の説明は私にとってはかなり難しかったですが、後半の実習を通してサイドチャネル攻撃の仕組みや流れをなんとなく理解することが出来ました。

グループワーク

「情報収集」というテーマでグループワークを行いました。資料はぱろっくさんが公開しています。

私はインタビューしたり、インタビューして集められた意見をまとめたり、情報収集サイトまとめに集められたURLから、Webサイトのタイトルを自動収集して更新するスクリプトを書いて回したりなど、雑用をやっておりました。ナイスファイト賞をいただきました。ありがとうございました。

その他

ちなみに組み込みOS本には坂井さんからサインも頂きました。大切にします。ありがとうございます。

キャンプ後

チューターである、れいささんの家に遊びに行ったりしつつ、仙台へ帰りました。

キャンプで仲良くなった人とは、今も時々交流しています。この前も友利奈緒友利奈緒を見に行ったら、偶然にも友利奈緒と出くわしました。夏ですね。

最後に

キャンプを通して、技術的にも様々なきっかけをいただくことが出来ましたし、何より普段何気なく生活しているだけでは絶対に知り合うことのできないような、ものすごく濃い方々と出会うことが出来ました。そしてキャンプを通して友達として仲良くなることも出来ました。
キャンプでの濃い5日間は今後忘れることはないですし、キャンプを通して出来た大切な仲間とは、今後もSNSなどを通してお互い刺激しあい、交流できればと思います。

キャンプの参加を迷っている方、応募用紙で挫折した方、まずは応募しましょう。応募しないと受かるかどうかもわかりません。思っていること・疑問に思ったことを素直にぶつければ良いと思います。
そして私のような、よくわからない意地を張っている方、キャンプは思っていた以上に楽しいですよ。多分、キャンプの参加前後で考え方や捉え方が結構変わると思います。(私が影響されやすいだけ?)

セキュリティ・キャンプでは、本だけでは絶対に得ることの出来ない、かけがえのないものを手に入れることができると思います。
是非、来年も再来年も開催して、より多くの方に参加できる機会を与えて欲しいです。

運営の皆さん、講師の皆さん、チューターの皆さん、そして参加者の皆さん、本当にありがとうございました!


Visual Studio Code 1st Step Guideを書きました

報告するのが大変遅くなりましたが、Visual Studio 2015 RTM リリースに合わせてドキュメントを執筆しました。

Visual Studio Codeの概要からインストール/カスタマイズ方法、そしてNode.js/ASP.NET 5/TypeScript/Gitなど、各種テクノロジーとの連携方法についてざっくりと書きました。
大部分がチュートリアルとなっておりますので、ドキュメントを通して一通り開発の流れを体験できるのではないかなと思います。Macをお使いの方、Visual Studio Codeに興味のある方、是非ドキュメントを通してVSCodeを用いた開発を体験してみてください。

以下のページからPDFでダウンロードすることができます。
Visual Studio Community – Visual Studio
VSCodeリンク先

ドキュメントを執筆するにあたり、Microsoftの井上さん相澤さんには本当にお世話になりました。ありがとうございました。

そしてVisual Studio 2015の1st Step Guideも公開されています。こちらは、しばやん(@shibayan)さんが執筆されています。
クロスプラットフォーム開発を含む、Visual Studio 2015の新機能に関して非常に分かりやすくまとめられています!是非こちらもご覧ください。

ダウンロードは以下のページから可能です。
Visual Studio 2015 – Visual Studio
VS2015リンク先

おまけ

7月21日にSGTで行われたVS2015のローンチイベントで、鏡割りをしました!いきなり言われた&初めての鏡割りだったので非常に緊張しました。
多くの皆様とお話しすることができて本当に楽しかったです。

動画を撮影してくださったのは元うなぎ屋さん。
リリースイベントに関する記事も執筆されています。
『Visual Studio 2015 リリース記念イベント ~ Every Developer, Every App ~』が、日本マイクロソフト品川本社で開催されました! #vsjp