Security Camp 2013

講義内容

クラス別専門科目(応募時に選択)

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

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

  現在よく見られるソフトウェア脆弱性や、今後の発生が懸念されるソフトウェア脆弱性について、適切な攻撃アプローチの考察及び、その延長で考えられる防御や予防について考察・提案できるレベルの人材発掘及び、当該人材の成長に資する気づきの促進を目指します。

詳細 - 本クラスでの実施内容

  マルウェア解析、脆弱性調査を通して、ソフトウェア全般のセキュリティについて学ぶとともに、脆弱性を悪用した攻撃の原理、及び防御・解析手法の修得や、実際のソフトウェア開発において脆弱性が作り込まれてしまう原因と対策に関する考察や提案を、演習を通じて行っていただきます。

補足 - 具体的な講義/演習

  • 脆弱性概要
  • OllyDbg,IDAPro,などを中心としたソフトウェア解析手法概説
  • OS,コンパイラによるセキュリティ機能
  • セキュリティ機能に対する攻撃,その対策法
  • 脆弱性発見、対策演習

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

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

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

詳細 - 本クラスでの実施内容

  HTML5によるブラウザの高機能化や表現力の向上により、Webアプリケーション開発におけるクライアントサイドへのシフトが進むとともに、Webという枠を超えスマートフォンなどでもHTMLとJavaScriptを用いてのアプリケーション構築が進んでいます。そのような中で、JavaScriptを中心とした開発において発生し得る脆弱性について、演習形式で調査・解析を行うとともに、そのような脆弱性を本質的に作りこまない、もしくは作り込めないようにするための考察や開発上の提案・試行を、演習を通じて行っていただきます。

補足 - 具体的な講義/演習

  • Webブラウザと同一オリジンポリシー
  • クロスオリジンリソースシェアリング
  • HTML5とJavaScript API
    • XMLHttpRequest
    • Web Storage、indexedDB
    • Video、Audio、Fullscreen API
  • 脆弱性の原因と対策
    • クロスサイトスクリプティング
    • CSRF
    • オープンリダイレクタ
    • Content Security Policy

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

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

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

詳細 - 本クラスでの実施内容

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

補足 - 具体的な講義/演習

  • パケット工作と攻撃への応用
  • 偽装通信の攻撃的/防御的応用
  • 侵入検知とその回避
  • 各種パケット送信と対処方法の実施および発表

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

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

  何らかのシステムの開発を通じて、セキュリティについて学びます。開発者(開発者の卵も含みます)が開発者視点で開発過程を通じてセキュリティを学ぶところに、このクラスの特徴があります。

詳細 - 本クラスでの実施内容

  本クラスでは各自テーマを決めて何らかのソフトウェアを開発します。具体的な指導内容は担当のゼミ講師によって異なります。このクラスに参加するための条件もゼミごとに個別に設定されています。具体的な内容は「セキュアなシステムを作ろうクラスのクラス説明」を参照してください。
  どのゼミで指導を受けるかについては応募段階で選択していただきます。いずれのゼミでも講師によるオンラインでの指導をキャンプ前から当日にかけて実施していく予定です。

補足 - 具体的な講義/演習

  キャンプ期間中は、主にゼミ別の開発テーマによる開発作業をメインとしますが、その他に、開発全般やセキュリティについての基本的な講義・演習時間や、全体共通行事のBOFや特別講義、CTF、グループワーク等にも参加していただきますので、実際には5日間を丸々、開発作業に割くことはできません。類似のテーマが異なるゼミで開講されているものもありますが指導内容は異なります。

■ゼミと主な開発テーマ一覧

「セキュアなOSを作ろうゼミ」(ゼミ長:川合秀実)
  • テーマ#01「OSECPUを一緒に開発しよう」
  • テーマ#02「セキュアなOSを作ろう」
  • テーマ#03「持ち込みテーマ」
「マルウェアやCTFを考えるゼミ」(ゼミ長:根津研介)
  • テーマ#01「マルウェア(ルートキット)の基本動作(一部を除く)を作ってみよう」
  • テーマ#02「サーバーの正常な運用を補助するプログラムを作ってみよう」
  • テーマ#03「CTFの問題を作成しよう(サーバ攻略用のVMイメージの作成)」
「組込みのセキュリティを考えるゼミ」(ゼミ長:坂井弘亮)
  • テーマ#01「組込みシステムでの不正実行の検出機能を作ってみよう」
  • テーマ#02「組込みシステムでのバッファオーバーラン防止機能を作ってみよう」
  • テーマ#03「セキュアな組込みOSを自作してみよう」
  • テーマ#04「エミュレータでの不正実行の検出機能を作ってみよう」
  • テーマ#05「プロセッサのセキュリティアシスト機能を設計してみよう」
  • テーマ#06「アーキテクチャごとのセキュリティの差異を検証してみよう」
  • テーマ#07「セキュアなABIを設計してみよう」
  • テーマ#08「セキュアな命令セットを設計してみよう」
  • テーマ#09「OSレス構成でのセキュリティを考えてみよう」
  • テーマ#10「コンパイラ・リンカをセキュアにしてみよう」
「セキュリティの見える化を考えるゼミ」(ゼミ長:半田哲夫)
  • テーマ#01「 Linux 向けの独自アクセス制御モジュールを作成してみよう」
  • テーマ#02「カーネル側から Linux システムの中身を見てみよう」
  • テーマ#03「利用者を置いてけぼりにしないセキュリティを考えてみよう」
  • テーマ#04「持ち込みテーマ」
「システムソフトウェアゼミ」(ゼミ長:忠鉢洋輔)
  • テーマ#01「mrubyを対象とした発展的なテイント検査機能の開発」
  • テーマ#02「プログラムのサンドボックス化」
  • テーマ#03「OSレベルサンドボックスの開発」
  • テーマ#04「オリジナルセキュアOSの開発」
  • テーマ#05「マルウェア防止機能を持った仮想ストレージの開発」
  • テーマ#06「持ち込みのテーマによる開発」

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

注意事項

  • 「セキュリティ・キャンプ中央大会2013」で演習に使用するネットワークは本キャンプ専用の閉じたネットワークで、一般のネットワークとは隔離されたものです。
  • 応募するクラスによっては、各クラスの参加者に求めるスキルの目安が設定されています。

キャンプ時間割

詳細につきましては現在、検討中です。

特別講義

詳細につきましては現在、検討中です