HOME未踏/セキュリティ・キャンプセキュリティ・キャンプ事業講義内容

本文を印刷する

未踏/セキュリティ・キャンプ

講義内容

セキュリティ・キャンプ全国大会2014

セキュリティ・キャンプ全国大会2014

講義内容の説明

ソフトウェア・セキュリティ・クラス

【概要 - 本クラスの目指すところ】
本クラスでは、社会問題化している標的型攻撃等へのインシデントレスポンスを教材として、脆弱性攻撃対策やマルウェア解析、フォレンジック等の分野において、攻撃者の思考や意図を先回りした対策を導き出せる人材を発掘・育成することを目的としています。

【詳細 - 本クラスでの実施内容】
マルウェアに感染したディスクイメージの解析やマルウェアそのものの解析、さらにはソフトウェアの脆弱性に対する攻撃手法等を理解していただきます。またこうして得た知識を元に、実際にインシデントが発生したことを想定した演習を通じ、マルウェアの感染経路や被害状況を考察、今後の対策等の提案を行っていただきます。

【補足 - 具体的な講義/演習】
•逆アセンブラやデバッガを用いたマルウェア解析手法
•脆弱性に対する攻撃手法の理解
•ディスクイメージ解析等のフォレンジック技術
•インシデントレスポンス演習

ページトップへ

Web・セキュリティ・クラス

【概要 - 本クラスの目指すところ】
現在のWebアプリケーションやスマートフォンアプリケーションには、HTMLやJavaScriptが基礎技術として使われています。
これらの技術には付随する脆弱性や未解決の課題があり、多くの研究および発展の余地がまだまだ残っていると考えられます。
本クラスでは、これらの技術に対する、新たな攻撃技術の開発や対応技術の進化をできる人材の、発掘と加速度的な成長を目指します。

【詳細 - 本クラスでの実施内容】
HTML5によるブラウザの高機能化や表現力の向上により、Webアプリケーション開発におけるクライアントサイドへのシフトが進むとともに、Webという枠を超えスマートフォンなどでもHTMLとJavaScriptを用いてのアプリケーション構築が進んでいます。そのような中で、JavaScriptを中心とした開発において発生し得る脆弱性やスマートフォンにおけるセキュリティ上の注意点などについて、演習形式で調査・解析を行うとともに、そのような脆弱性を本質的に作りこまない、もしくは作り込めないようにするための考察や開発上の提案・試行を、演習を通じて行っていただきます。また、HTML5とJavaScriptによる技術の応用であるスマートフォンプラットフォームとしてFirefox OSを取り上げた講義も予定しています。

【補足 - 具体的な講義/演習】
•Webブラウザと同一オリジンポリシー
•クロスオリジンリソースシェアリング
•スマートフォンアプリケーションにおけるセキュリティ上の注意点
•HTML5とJavaScript API
◦XMLHttpRequest
◦Web Storage、indexedDB
◦Video、Audio、Fullscreen API

•脆弱性の原因と対策
◦クロスサイトスクリプティング
◦CSRF
◦オープンリダイレクタ
◦Content Security Policy

ページトップへ

ネットワーク・セキュリティ・クラス

【概要 - 本クラスの目指すところ】
実際のネットワークにおける攻撃の検知や、適切な防御策を講じられるとともに、今後出現するであろう新しい攻撃やその対応技術について提案・実装を行えるレベルの人材発掘及び、当該人材の成長に資する気づきの促進を目指します。

【詳細 - 本クラスでの実施内容】
ネットワークの基礎知識をさらに深堀りし、さまざまな攻撃内容を含むパケットキャプチャファイルをはじめとする解析対象を用いた演習を行います。また、ネットワークセキュリティを考える上で欠かせないインターネットプロトコルの詳細を、攻撃者の視点から説明したり、攻撃側/防御側の観点から見た通信偽装、攻撃通信を機械学習を用いて検知する方法に関しても本クラスで扱う範囲とします。さらに講義の後半にはネットワークに接続されている機器に対して、様々なパケットを送信することで機器の特定を行います。その上で、ネットワークでこのような問題が発生した場合の回避策、検知策について検討してもらいます。

なお、基本的な知識やツールの操作方法については選考合格後、オンライン上で資料や課題を配布します。キャンプ本番までに積極的に取り組んでくれることを期待しています。

【補足 - 具体的な講義/演習】
•パケット解析
•侵入検知とその回避
•攻撃の機械学習を用いた検知
•偽装通信の攻撃的/防御的応用
•各種パケット送信と対処方法の実施および発表

ページトップへ

セキュアなシステムを作ろうクラス

【概要 - 本クラスの目指すところ】

このクラスは何らかのシステムの開発を通じて、セキュリティについて学ぼうというクラスです。2012年まではOSに関する開発に限定していましたが、2013年からはOSに限定せずに少し幅を広げています。
システムの開発にはたくさんの分野あり、それぞれによって開発手法や指導方法も変えたほうが効果的だろうという考えに基づき、クラスを複数のゼミに分割しています。どのゼミでセキュリティについて勉強したいかを選んでください。
選べるゼミは一つだけで、第二希望などは取りません。その代わりよい学生が多く集まったゼミは担当講師を増やしてたくさんの学生をとってもらいますので、迷わず希望するゼミに応募してください。
一部、同じようなテーマが複数のゼミにあります。そういうテーマの場合に、どう選べばいいのか迷うかもしれませんが、そのときはそのゼミが他にどんなテーマで募集しているかを見てください。そうすればどんな学生が集まるゼミなのかを想像できるはずです。
ゼミごとに応募用紙が用意されていますので、間違えないように注意してください。

<ゼミの一覧>
(1)「OSECPU-VMゼミ」(ゼミ長:川合秀実)
(2)「組込みのセキュリティを考えるゼミ」(ゼミ長:坂井弘亮)
(3)「OSの見える化を考えるゼミ」(ゼミ長:半田哲夫)
(4)「システムソフトウェアゼミ」(ゼミ長:忠鉢洋輔)
(5)「ルーター自作ゼミ」(ゼミ長:竹迫良範)
 


【詳細 - 本クラスでの実施内容】
各ゼミの概要、テーマその他詳細につきましては「セキュアなシステムをつくろうクラス説明」を参照してください。

(1)「OSECPU-VMゼミ」(ゼミ長:川合秀実)

セキュリティを意識したVM・OS・言語処理系を設計・開発してみようというゼミです。この作業を通じてセキュリティについて学びます。
このゼミでは、どのテーマを選ぶ場合でも、自宅にWindowsもしくはLinuxのPC(MacOSでも可)があって、それを使って自力でプログラムを作れることが必要です。
このゼミではテーマは一つしかないのでテーマ選択はありません。OSECPU-VMというのは、2013年のセキュリティキャンプで作ったセキュアなシステムです。今年もこれを学生のみなさんと一緒に作りたいと思います。OSECPU-VMについて詳しいことは http://osecpu.osask.jp/wiki/ を見てください。
一緒に作るとは言っても、何か役割分担で作業を押し付けられるというわけではなく、基本的には各自の好きなことをマイペースでやってもらおうと思っています。コアとなる処理系の開発を手伝ってくれるのはもちろん歓迎ですが、OSECPU-VM用のアプリを作って遊んだり、ドキュメントの不備を見つけて書き足してもらったり、OSECPU-VMを移植したり、独自拡張してみたり、OSECPU-VM上で動くシェルを作ったり、セキュリティーホール探しをしたり、できることはたくさんあります!・・・どんなことを通じてでも、セキュリティについて十分に学ぶことができます。

 
 

(2)「組込みのセキュリティを考えるゼミ」(ゼミ長:坂井弘亮)

本ゼミではマイコンボードなどの「組込みシステムでのセキュリティ」を扱います。また本年度よりテーマの幅を広げ、CPUなどの「コンピュータ・アーキテクチャ」を主眼に置いたセキュリティについても考えます。
よって「組込み関連のテーマ」と「アーキテクチャ関連のテーマ」があります。
組込み関連のテーマは、とにかくマイコンボードをいじりたおす感じです。
アーキテクチャ関連のテーマは、様々なコードを書いてエミュレータなどでいろいろ試す感じです。アセンブラも多く扱います。
組込みシステムで考えられるセキュリティ対策はPCとは異なった、独自性の強いものになります。組込みシステムではどのようなセキュリティが考えられるのか、実際にソフトウェア開発を行うことで、ものづくりを通して考えてみましょう。
またセキュリティの本質を理解するためには、コンピュータ・アーキテクチャを知ることがとても大切です.アーキテクチャを知ることで、コンピュータの動作原理から見直した根本的なセキュリティ対策をとることができます。
本ゼミでは各自で開発テーマを決めて,セキュリティに関する組込みやアーキテクチャ関連のソフトウェア開発を行います。キャンプ前から当日にかけてオンラインで相談をしながら開発を進め、キャンプ中になんらかの成果物を出してデモができるようにすることを目標とします。
なんだか文章が固くて難しそうですが,オンラインでの事前学習からじっくり時間をかけて進めますので大丈夫ですし,組込みにせよアーキテクチャにせよ,きっとすごく面白いし勉強になります。
開発テーマは選択テーマの中から選ぶか,持ち込みテーマを提示するかになります。
持ち込みテーマの場合には、自身でテーマ内容を提案することになります。
PCとは異なり、組込みは多種多様・住み分けの世界です。このためゼミの内容に多様性を持たせたいと考えて、選択テーマには多数の候補を上げてあります。しかし、すべてのテーマに一人ずつを割り当てるわけではありません。ただしやりたいことが複数あれば、複数のテーマを組み合わせて選択しても構いません。テーマを自分なりにアレンジしても構いません。
また応募状況によって,同一のテーマに2人以上を割り当てることもあり得ます。さらに実施テーマは完全に固定にするわけではなく流動的です。例えばあるテーマの次段階として別テーマに移るなど,進度や興味の変化に応じて柔軟に、臨機応変に進めます。
また設計や実現の方法については講師側から提案もしますが、自身のアイディアがあれば歓迎します。ぜひ積極的に提案してください。

•テーマ#01「マイコンボードでの不正実行の検出機能を作ってみよう」(組込み)
•テーマ#02「セキュリティソフトを作ってみよう」(アーキテクチャ)
•テーマ#03「アプリケーションの挙動を見える化してみよう」(アーキテクチャ)
•テーマ#04「セキュアな組込みOSを自作してみよう」(組込み)
•テーマ#05「アーキテクチャの違いを検証してみよう」(アーキテクチャ)
•テーマ#06「エミュレータでの不正実行の検出機能を作ってみよう」(組込み)
•テーマ#07「組込みシステムをセーフティに設計してみよう」(組込み)
•テーマ#08「プロセッサのセキュリティアシスト機能を設計してみよう」(組込み)
•テーマ#09「セキュアなインターフェースを設計してみよう」(アーキテクチャ)
•テーマ#10「低レイヤー学習のための教材を作ってみよう」(アーキテクチャ)

 
 

(3)「OSの見える化を考えるゼミ」(ゼミ長:半田哲夫)

セキュリティ侵害の脅威にさらされる領域が拡大し、実際に侵害される事例も多発しているかと思います。そして、領域が拡大し事例が多発する理由の一つとして、システムをブラックボックスのまま利用していることが挙げられるかと思います。システムを安全かつ有効に活用するためには、何でも専門家や有識者に丸投げすればよいという姿勢ではなく、自分で内容を理解しようとする姿勢が必要だと考えます。
このゼミを担当する熊猫さくらは、 Linux カーネル向けアクセス制御機構の開発を通じて、OSレイヤで行われていることを理解してもらうための試行錯誤を続けてきました。現在は Linux システムのトラブルシューティングを業務として行っており、システム障害やセキュリティ侵害を予防するために、まずはOSレイヤで何が行われているのかを理解してもらうことが必要であると考えています。そこで、熊猫ゼミでは、OSレイヤで行われていることを少しでも見えるようにする方法を一緒に考えていきたいと思います。

•テーマ#01「Linux システムの運用監視プログラムを作ろう」
•テーマ#02「Linux に関するトラブルへの対処手順と予防策を考えよう」
•テーマ#03「持ち込みテーマ」

 
 

(4)「システムソフトウェアゼミ」(ゼミ長:忠鉢洋輔)

システムソフトウェアというと、あまり皆さんに馴染みがないかもしれません。ですが実際、皆さんが普段使っているPCやスマートフォンのアプリケーションは、システムソフトウェアの深い層(レイヤー)に支えられて動いています。アプリケーションを作る人は世界にたくさんいますが、このレイヤーは縁の下の力持ち的な存在であり、あまり目立たないこともあって、システムソフトウェアを作ったり、そのセキュリティを考える人はあまり多くありません。
 ですが、大変楽しい分野なのでこの楽しさをシェアしたい、また、これがキッカケでこの分野に貢献しうるエンジニアになってくれたらいいなぁ、というのがこのゼミを開講する目的です。
  
 このゼミでは、システムソフトウェアという、いわゆるオペレーティングシステム(OS)のカーネルプログラミングやシステムプログラミング、ハイパーバイザの実装を中心に扱います。各レイヤーでのセキュリティ機能の実装や、マルウェア検知やCTFサーバの監視運用のためのシステム開発などを通じ、OSやVM、そしてそのセキュリティ技術を深掘りするキッカケにしてもらおうと思っています。
  
 セキュリティはあまり関心が無いけどOSカーネルやハイパーバイザを開発したい人、セキュリティに関心があるし低レイヤーな技術に憧れもあるけどちょっと難しそう・・・というような人も、是非応募して欲しいです。実装を中心に進めますが、基本的にやる気とプログラミングについてある程度経験があれば問題ありません。もちろん、元々この低いレイヤーとセキュリティに興味があり、バリバリと実装出来る人がいれば歓迎します。とても歓迎します。

 本ゼミでは、基本的にオープンソースソフトウェアをベースに、事前準備期間とキャンプ期間を合わせて、ある程度の規模のセキュリティシステムを実装することを目標とします。取り組む課題については、参加者の選抜後に参加決定者の興味/趣味やスキルを考慮し、テーマの詳細や規模を調整します。最終的には、成果を勉強会で発表したり、コードを公開することを推奨します。

•テーマ#01「サンドボックス化によるセキュアなプログラミング」
•テーマ#02「軽量rubyを使ったセキュアなアプリケーション拡張」
•テーマ#03「クラウド向けOS "OSv" のセキュリティ向上」
•テーマ#04「僕、私が考えた最強のセキュアOSの開発」
•テーマ#05「仮想化技術を用いた、ストレージベース侵入検知システムの開発」
•テーマ#06「CTFサーバの自動監視運用システムの開発」

 
 

(5)「ルーター自作ゼミ」(ゼミ長:竹迫良範)

最近話題になっているDNSサーバーの脆弱性や、偽装通信の手法を理解するためには、まずインターネットでやりとりされている通信パケットの仕組みについて理解しておく必要があります。

ルーター自作ゼミでは、ルーターのプログラムをC言語で自作することによって、インターネットの通信の仕組みについて理解を深めます。発展的な内容として、一本足ルーターや自作の暗号化方式を使ったVPN通信プログラムを作成します。 

•テーマ#01「Raspberry Pi をベースに自作ルーターを作ってみよう」
•テーマ#02「自作の暗号化方式を使ったVPNルーターを作ってみよう」

 

 

それぞれの開発テーマの説明は、「セキュアなシステムをつくろうクラスの説明」を参照してください。

ページトップへ

キャンプ時間割

スケジュール概要

特別講義

2名の特別講師をお招きし、ご講演いただきます。

  • 登 大遊 様(ソフトイーサ株式会社 代表取締役/筑波大学大学院)
  • 萬谷 暢崇 様(警察大学校サイバーセキュリティ研究・研修センター)

 

ページトップへ

未踏/セキュリティ・キャンプ