HOME未踏/セキュリティ・キャンプセキュリティ・キャンプ事業セキュリティ・キャンプ全国大会2018 プログラム

本文を印刷する

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

セキュリティ・キャンプ全国大会2018 プログラム

 

 
プログラム
       

講義一覧

講義区分について

セキュリティ・キャンプ全国大会の講義は、全体講義と専門講義の2種類で構成されます。

全体講義

情報セキュリティを学ぶ上で必要となる基礎的な概念を学ぶ「セキュリティ基礎」、倫理観の形成を目的とした「特別講演」、参加者のコミュニケーション力向上のための「グループワーク」等を設けています。

専門講義

少人数で実施する演習を交えた講義です。全国大会5日間の期間中、3日に渡って実施されるメインプログラムです。

全体講義

1日目、5日目
セキュリティ基礎
分野・キーワード サイバーセキュリティ
講師 園田 道夫
講義紹介 サイバーセキュリティの分野には、未だに解決されていない課題がたくさんあります。この時間はそうした課題を題材に、グループディスカッションと発表を繰り返しながら理解を深め、その解決策を探ります。
特別講演(1)           
自由なエンジニアとは何か ~OSCを全国各地で150回以上やって分かったこと~
分野・キーワード オープンソース、エンジニア、スキル、キャリア
講師 宮原 徹
講義紹介 オープンソースに関する国内最大のイベント「オープンソースカンファレンス」を2004年以来、北は北海道から南は沖縄まで、全国各地で150回以上開催してきました。そのような活動の中で様々なエンジニアと交流して感じた、「自由なエンジニア」とは何かについてお話します。
特別講演(2)          
ハッカーは法律を破るのか
分野・キーワード 犯罪、法律、不正アクセス、ウイルス、不正プログラム、マルウェア、名誉毀損
講師 北條 孝佳
講義紹介 ハッカーは深い技術的知見を持ち、その知見を利用して技術的な課題をクリアする卓越した人のことをいいます。しかし、深い技術的知見は、毒にも薬にもなります。また、薬にも副作用があるように、技術的知見を駆使して作成し、実行したものが良い結果に見えても実際は法律に違反していることもあります。  法律に違反しないためには、何が法律で禁止されているのかを理解する必要があります。色々な事例を取り上げつつ、どこが悪かったのか、どうしたら法律に違反しなかったのかを検討し、未来ある学生たちと共に学びます。
グループワーク          
講師 川口 洋
講義紹介 グループワークはセキュリティ・キャンプ全国大会の5日間を通して行われるプログラムです。参加者が8人程度のグループに分けられ、決められたテーマについて検討を行います。今年は「セキュリティ・キャンプ修了後、継続して取り組むこと」というテーマを設定しています。グループワークは選択した講義が異なる参加者と交流する貴重なチャンスです。また検討のプロセスにおいて、セキュリティ・キャンプ関係者やスポンサー企業の方々へヒアリングすることを推奨しているため、幅広い意見をもとにセキュリティ・キャンプ修了後の活動について考えるまたとないチャンスとなるでしょう。最終日には従来やっていたプレゼンテーション開催に代わり、各個人が検討した内容を提出してもらうことを予定しています。
専門講義

選択コース

     
2日目
A1~3 インシデントレスポンスで攻撃者を追いかけろ
分野・キーワード インシデントレスポンス、マルウェア解析フォレンジック
講師 鈴木 博志梨和 久雄小林 稔
担当プロデューサー 岩村
講義紹介 マルウェアの感染や攻撃者による侵害が発生または発見した場合に行う対応をインシデントレスポンスと呼びます。インシデントレスポンスには「インシデント発生の予防や検知するための準備」や「インシデント対応後の解析対応」などが含まれます。インシデントレスポンスの準備をすることで攻撃をより検知しやすく、また仮にインシデントが発生しても素早い解析対応が取れるため、インシデントの詳細を早期に把握することができます。この結果を出口対策などにフィードバックすることで、被害を最小限に抑えることができます。 インシデントレスポンスにおける解析では、主にマルウェア解析やデジタルフォレンジック、ログ解析と呼ばれる技術が用いられます。 マルウェア解析は、マルウェア感染の元になったファイルや攻撃者が作成した悪意あるプログラムを動的または静的に解析することで、攻撃手法の特定やマルウェア自体が持つ機能の解明、C2サーバ(攻撃者がマルウェアをリモート管理するサーバ)のドメイン名などの情報を特定します。また、デジタルフォレンジックやログ解析では端末のメモリイメージやディスクイメージ、各種機器に保存されたログなどを解析することでマルウェアや攻撃者が残した痕跡を探し出し、時系列情報(タイムライン)に整理することで攻撃者が、いつ、どのような方法で、どのようなデータにアクセスしたのかを把握することができます。 この講義では仮想的なインシデントが発生した環境のデータを用いて、インシデントレスポンスに必要な解析技術について学習します。
B1 クラウド・ホスティングサービスのセキュリティと運用技術の研究
分野・キーワード Webサーバ管理クラウド、ホスティング、セキュリティ、性能、運用技術
講師 松本 亮介
担当プロデューサー 仲山
講義紹介 クラウドサービスやホスティングサービスの利用が当たり前の時代ではありますが、そのサービスを支える技術は今も進化し続けています。本講義では、基盤技術における、セキュリティや性能、運用技術に関する最新動向と最新の研究の取り組みについてお話します。
B2 ビヨンドブロックチェーン
分野・キーワード ブロックチェーン、分散台帳、デジタル通貨、分散システム
講師 斉藤 賢爾
担当プロデューサー 仲山
講義紹介 異なるステークホルダー間での信頼できる情報共有を可能にする画期的な技術として注目されているブロックチェーンは、実時間性、秘匿性、スケーラビリティ、技術の進化のしやすさ、プラットフォームとアプリケーションの間でのインセンティブの整合性の問題など、多くの課題を抱えており、それらの課題を乗り越える新たな技術の登場が待ち望まれます。本講義では、これまでのブロックチェーンを支えてきた技術およびその課題を把握した上で、それを乗り越えるための方法を考えます。
B3 Vulsとエクスプロイト演習で学ぶ、既知の脆弱性管理の重要性と効率的な対策方法
分野・キーワード OSS、Vuls、サーバ管理、 脆弱性管理、 エクスプロイト
講師 神戸 康多福田 鉄平
担当プロデューサー 仲山
講義紹介 脆弱性情報データベースであるNVDにて新規公開される脆弱性は年間1万件以上にも上ります。近年、OSSを組み合わせて構築される企業システムが増加する中で、利用中のコンポーネントに内在する脆弱性の迅速な把握と対策はより重要になっています。 本講義では演習を通して既知の脆弱性に対する攻撃の容易さを体験し、脆弱性対策の重要性を学びます。 具体的には、まず講師らが開発した脆弱性スキャンツール Vuls (https://github.com/future-architect/vuls)を用いてサーバに内在する既知の脆弱性を可視化します。その後検知された脆弱性に対する攻撃の演習を行います。 事前課題ではVulsのIssueを一つ担当しバグ修正や機能拡張などを行うことで、プルリクエストベースのOSS開発を身につけ世界平和に貢献していただきます。
C1~3 制御システムのセキュリティとShinoBOTによる攻防演習
分野・キーワード 制御システム、マルウェア
講師 凌 翔太目黒 有輝前田 一平
担当プロデューサー 園田
講義紹介 制御システムは、発電所、工場、ビルなど皆さんの生活に欠かせない重要な仕組みです。制御システムのセキュリティは広く、取り上げられることが少ない分野ですが、その中には他の分野にも通じる部分と制御システムならではの部分が存在します。この時間はそうした特徴を踏まえつつ、実在の制御システムを模擬した環境を用いて演習を実施します。 本講義は3つのパートに分かれております。1つ目のパートは制御システムの仕組みを理解します。具体的には、各人のPCで動作させるLinux VM上でWireshark、NmapやOpenVAS等のツールで制御システムを解析やScapyを用いた制御プロトコルの解析を実施します。 次のパートでは様々な攻撃シナリオを考察し、制御システムの制御を奪う課題にチャレンジします。課題の一部で講師が開発している疑似攻撃ツールのShinoBOTを用いたり、実際の攻撃で使われるようなツールに触れていただいたり、ツールの開発をしたりします。最後のパートでは制御システムに対する攻撃を防ぐための手段(シグネチャベース・アノマリベースの検知、ホワイトリストなど)を用いて、前のパートの攻撃の防御を試みます。
D1 ドローンシステムにおけるセキュリティーガイドラインを作ろう!
分野・キーワード ドローン、セキュリティ、乗っ取り、認証
講師 今村 博宣
担当プロデューサー 今岡
講義紹介 ドローン運用システムにおける通信プロトコルは決まりつつありますが、いまだに運用セキュリティーに関する議論が進んでいません。パイロットの個人認証~機体の認証などのシステム側の仕組み、機体とGW迄のセキュリティ、物流における荷物受け取りの確認手段、なりすまし防止など、多種に渡るセキュリティーが必要になります。 現在のドローンのシステム、今取り組んでいるドローンのシステムの解説を行い、今後取り組むべきセキュリティーを含んだドローンシステムがどう有るべきかをワークショップ形式で検討していきます。
D2 ROSロボットをハックせよ
分野・キーワード 車輪型ロボット、 Linux(ubuntu)、 ROS
講師 中川 友紀子
担当プロデューサー 今岡
講義紹介 自律動作システムの実装モデルとしてROS (Robot Operating System)搭載のラズパイマウス(車輪型ロボット)を用い脅威分析を行う。 ラズパイマウスの挙動に影響を与えそうなあらゆる手段をリストアップし、それらの手法を実機で検証する。 最大20台までラズパイマウスをRT社が貸し出し可。 ラズパイマウスについてはこちらを参照 https://www.rt-shop.jp/index.php?main_page=product_info&cPath=1348_1&products_id=3419
D3 チップレベルでカスタマイズができることで見える世界の体験
分野・キーワード LSI、 HDL、 ARMFPGA、 メルトダウン
講師 秋田 純一
担当プロデューサー 今岡
講義紹介 集積回路(LSI)はコンピュータのCPUをはじめ、あらゆる電子機器の基本パーツで、その進化はコンピュータの進化と表裏一体です。その進化の結果、あまりに高度化、複雑化したLSIはブラックボックスとなり、中身を知らなくても多くのことができるようになりました。しかしそのことは、先日のCPUの根本的な脆弱性「MeltDown」のような深刻な問題の遠因ともなりえます。 この講義では、LSIを設計することに立ち返り、その視点からコンピュータというものを改めて見つめ直すことを目指しています。 具体的には、論理ゲートレベルの単純なものから、徐々にARMプロセッサ等の複雑なLSIを、それぞれにあった手法で設計しながら、その仕組み、その可能性を体験します。そしてそれを通してコンピュータというものに対する新たな視点を得ることを目標とします。
     
3日目
A4 IN-DEPTH STATIC MALWARE ANALYSIS
分野・キーワード マルウェアリバースエンジニアリングx86Windows
講師 中津留 勇
担当プロデューサー 岩村
講義紹介 マルウェアは感染端末上でどのようにして動作し、また攻撃者はそのマルウェアをどのように使い目的を達成しているのか?それらを正しく理解していなければ有効な対策は生まれません。この講義では、高度な対策技術を生み出す基盤となる知識の習得を目的として、マルウェアの逆アセンブルコードを読み解く静的解析手法を学びます。 具体的には、日本を標的とした近年のサイバー攻撃で使用されるマルウェアのコードを講師と共に効率良く読み解き、マルウェアの挙動把握や解析結果の利活用までを実体験することで、静的解析技術そのものおよび現状の課題を理解していただきます。
B4 ソースコード解析による検査自動化ツールの作成
分野・キーワード Web、ソースコード、ホワイトボックス検査、ブラックボックス検査
講師 杉山 俊春
担当プロデューサー 仲山
講義紹介 脆弱性検査を行う方法として、ソースコードベースで調査を行うホワイトボックス検査があるが、一般的なイメージに反してツールによって網羅的に検査をすることが難しかったり過検出や検出漏れなどの課題も多くあります。 本講義では、ブラックボックス検査とホワイトボックス検査のそれぞれの特徴について学び、OSSのソースコードなどをサンプルにして、実際に脆弱性を検出できるツールを作成するなどして、ソースコード検査の難しさを体験し課題を解決するための方法を学んでいきます。
C4 車載LANの仕組みとメッセージの取得・解析
分野・キーワード 自動車、車載LAN、CAN
講師 井上 博之
担当プロデューサー 園田
講義紹介 現在の自動車には数十のECU(制御コンピュータ)が搭載されており、CANやLINなどのネットワークで結ばれています。今回は、CANの実験用ネットワークを教室に敷設し、そこにELM327を使ったOBD-IIアダプタを接続し、各人のPCからCANネットワークにアクセスし、流れているメッセージを取得し解析する方法をハンズオン形式で行う予定です。取得と解析のために、各人のPCで動作させるLinux VM上でPythonを使った簡単なプログラムを作成していきます。実車からキャプチャしたメッセージを流したり、実車のメータパネルを実験用ネットワークに接続するようなことも行います。
D4 自走運転車両を攻撃せよ(自動運転車両の脅威分析)
分野・キーワード 自動運転車両、ECユニット、脅威分析
講師 村松 菊男
担当プロデューサー 今岡
講義紹介 自動走行車両の機能、車載ネットワーク図、ECユニット(車載電子制御コンポーネント)のブロック図あるいは回路図、半導体の構造、開発から製造及び寿命を迎えるまでの過程を説明し、それをもとに攻撃方法を参加者がリスティング、想定される被害を推定する。 各参加者の発表を元に、実際に生じ得る挙動と関連させながら解説する。 脅威分析については多くの手法が提唱されTOOLも提供されているが、本講義では攻撃の多様性と防御の難しさを体感することを主眼として、特定TOOLにとらわれず思考する形をとる。
E4 Linux 故障解析入門
分野・キーワード Linux、 故障解析、 AKARI
講師 半田 哲夫
担当プロデューサー 岩村
講義紹介 システムにはトラブルが付き物です。この講義では、私がサポートセンタ勤務時代にもどかしい思いをした経験から、スムーズな問題解決を行えるようになるために、トラブルへの対処方法の基本について考えていきます。OSレイヤーから Linux システムの動きを理解し、問題解決に必要なことについて知ることを目標とします。 Linux システムをCUI環境で操作するスキル、および、C言語で数十行程度の簡単なプログラムを読み書きできるスキルを有した受講者を想定しています。
A5 解析を妨害しよう ~自作パッカー入門~
分野・キーワード マルウェア、解析妨害、Windows、API、難読化
講師 川古谷 裕平
担当プロデューサー 岩村
講義紹介 本講義では、マルウェアが利用する解析妨害の理論と実践について学ぶ。通常、マルウェアは解析を逃れるために様々な妨害機能を有している。そのため、単純な解析技術だけではこれらのマルウェアを正確に解析することができない。マルウェアが利用する妨害機能の動作原理とそれらの意図を、攻撃者の視点に立って学ぶことで、解析妨害機能の限界を知り、それらに強い解析技術・ツールを作り出すための素養を養う。 講義中では、座学だけでなく、参加者に実際に解析妨害機能の実装と拡張を行ってもらう。まず静的解析と動的解析のそれぞれを妨害する基本的な機能の実装から開始し、参加者のアイデアを生かしたより高度な機能に拡張していくことを目指す。
B5 ブラウザ拡張機能の脆弱性を探そう!!
分野・キーワード Web、ブラウザ、Chrome、Firefox、WebExtension、JavaScript
講師 白倉 大河
担当プロデューサー 仲山
講義紹介 ブラウザの拡張機能に与えられる特権は、時にセキュリティを脅かす諸刃の剣となります。悪意のない拡張機能に潜む脆弱性を探し、その影響を考えてみましょう。机上の勉強だけで終わらないよう、実際に攻撃の実証コードを書くところまで挑戦します。 (2017年の金沢ミニキャンプを受講された方も、講義とは被らない内容を取り扱う予定なので是非ご参加ください)
C5 GPSをだましてみよう
分野・キーワード GPS、GNSS、QZSS、LBS、スプーフィング
講師 坂井 丈泰
担当プロデューサー 園田
講義紹介 端末の位置情報の取得に利用されるGPSは、人工衛星が送信している無線信号により動作しています。GPSと同じ無線信号を作り出すことができれば、位置情報を偽装(スプーフィング)することが可能です。 本講義では、GPSの仕組みを理解するとともに、安価なソフトウェア無線機により実際にスプーフィングを試みます。 GPSは社会インフラといえるほどに広く利用されています。スプーフィングに対抗する技術を一緒に考えましょう。
D5 JTAG(ジェイタグ)の原理と活用
分野・キーワード 組み込み、CPU、FPGAARM、JTAG
講師 内藤 竜治
担当プロデューサー 今岡
講義紹介 JTAG(ジェイタグ)はいわゆる「工場出荷時の検査モード」で、ほぼすべて(概ね32bit以上の組み込みCPUを含めて)のハイエンドなCPUやFPGAに備わっています。これを使うと、CPUを強制的にデバッグモードに入れて動作をオーバーライドし、本来のプログラムとは違うプログラムを走らせることができたり、FPGAに書き込まれている回路とは異なる動作をさせることができます。しかも、ROMを書き換えず痕跡を残さずに・・ このように便利なテストモードですが、ハッキングの手段としても使うことはできるので、市場に出る製品では無効にされていることも多いでしょう。本講義ではそんなJTAGの原理と波形の解説をはじめ、組み込み機器でよく使われているARMプロセッサ(具体的にはRaspberry Pi3やそこら辺のルータ)やFPGAをターゲットに、LSIの内部構造へアクセスする簡単な実習を行います。
E5 Linuxカーネル脆弱性入門
分野・キーワード Linuxカーネル
講師 小崎 資広
担当プロデューサー 岩村
講義紹介 カーネルの脆弱性をつく方法の基礎を学びます。カーネルの世界はふつうのアプリケーションプログラミングとは違うところが多々あり、慣れれば簡単ですが最初が難しいので考え方を学びます
     
4日目
A6 マルウェアの暗号処理を解析しよう
分野・キーワード マルウェア解析、暗号
講師 羽田 大樹
担当プロデューサー 岩村
講義紹介 マルウェア解析で達成したい重要な目標の1つに、暗号に関わる処理を解析することが挙げられます。例えば、インシデントレスポンスにおいて、C2サーバーから受け取った命令や、外部に漏洩した情報を特定することができれば、速やかに影響範囲を解明することができます。マルウェアにおいて実装されている暗号処理の場所やアルゴリズムを特定して、ネットワークログから通信を復号することに挑戦します。
B6 認証の課題とID連携の実装
分野・キーワード 認証、認可、プライバシー、OpenID Connect、OAuth
講師 倉林 雅林 達也
担当プロデューサー 仲山
講義紹介  計算機と寄り添うように使われてきたIDとパスワードによる"認証"は、既に社会においても個人の生活から社会システムにおいてまで日々利用されている、重要な基礎技術です。  一方で、古典的な攻撃手法であるパスワードクラック等を始め、攻撃の基本ともいえる領域ともなっており、計算機の歴史においては常に重要な要素技術として常に磨かれ、進化してきました。もちろん、社会にこれほど普及したものである以上、完璧ということはなく既に数々の課題が存在します。多くの課題がある中、最近ではFacebookやTwitterなどによる、いわゆるソーシャルログインのようなID連携(ID Federation)がどんどん普及しています。そもそも"認証"(Authentication)というのはどういう行為を指しているのでしょうか?多くの人は、あまり意識せずに認証を行っていますが、認証の概念は、デジタルの世界で必須となる重要な概念で、実は考えるととても奥深く興味深いものです。  講義では現代のデジタル社会における認証とID・パスワードによる認証システムの課題に触れ、その課題解決方法のひとつであるID連携(OAuth・OpenID Connect)をご紹介します。OpenID ConnectはOAuth 2.0を拡張した仕様であり、HTTP通信やJSONなど基礎的なWeb技術によって構成されています。ID連携の技術を学んだ後、実習ではWebアプリケーション上にOpenID Connectを実装します。実装の注意点とそのリスク、仕様に施されているセキュリティー対策についてハンズオンを行いながら解説します。
C6 パターン認識とセキュリティ
分野・キーワード パターン認識、機械学習
講師 佐藤 公信
担当プロデューサー 園田
講義紹介  パターン認識の分野では、正しいものが正しく認識される(猫が猫として認識される)ことは重要ですが、さらに、クリティカルな情報を扱う認識システムでは、間違っているものが正しと誤認識(犬が猫として認識される)されてはなりません。  本講義では、あるパターン認識を行うシステムを作るとともに、作ったシステムに対して、どうやれば認識されてはならないものを正しいと誤認識させることができるか試してみます。
D6 組込みリアルタイムOSとIoTシステム演習 ~守って!攻めて!ロボット制御バトルで体験する組込みセキュリティ~
分野・キーワード 組込みOSIoT、ロボット、TLS/SSL
講師 松原 豊
担当プロデューサー 今岡
講義紹介 事前学習では、オープンソースの組込みシステム向けリアルタイムOS、TCP/IPプロトコル・スタック、TLS/SSLライブラリのソースコードを読んで動かしながら、組込み/IoT機器のソフトウェアの構成、動作の仕組みを学びます。キャンプ当日は、それらのソフトウェアを搭載したロボットを動かし、グループ競技を通じて、組込み/IoTセキュリティの攻撃と対策を体験します。
E6 デジタル・フォレンジックス手法による情報漏えい事案調査
分野・キーワード コンピューター、アーティファクト、証拠、フォレンジック
講師 伊原 秀明北條 孝佳佐藤 敦郷 晴奈
担当プロデューサー 園田
講義紹介 デジタル・フォレンジックスは裁判で採用される証拠、あるいはその先にある法律というものを意識する必要があります。この時間は有罪と無罪を主張する側に分かれ、事前に出力済みの解析結果を元に議論することで、デジタルデータの証拠として利用方法や、その証拠価値について学ぶと共に、法律の考え方とデジタル・フォレンジックスの実務の関係を学びます。
A7 本当にわかる Spectre と Meltdown
分野・キーワード CPUアーキテクチャ、x86、Spectre、Meltdown、サイドチャネル攻撃
講師 川田 裕貴
担当プロデューサー 岩村
講義紹介 2018年 Meltdown と Spectre という CPU のアーキテクチャに関連した、2つのサイドチャネル攻撃に対する脆弱性が公表されました。 現代の CPU は命令を実行するだけの単純なものではなく、とても複雑な仕組みを持ったハードウェアとなっています。 性能を向上させるため高度な投機的実行や分岐予測などが行われていたり、OS へのハードウェア支援を提供するために様々な機能が実装されています。 今回の2つの脆弱性は、このような CPU の高度な機能をうまく利用してサイドチャネル攻撃に利用したものであり、 理解するためには CPU アーキテクチャをよく理解している必要があります。 この講義では、手を動かしながら現代の CPU の動作を読み解き、その内部的な動作や実行過程について深く理解していきます。 その過程で、Meltdown や Spectre がどのような脆弱性であるかを、よく理解できるようになることを目指します。
B7 サーバーレス時代のシステム設計ワークショップ
分野・キーワード Webクラウド、サーバーレス
講師 仲山 昌宏
担当プロデューサー 仲山
講義紹介 クラウドがもはや前提であるクラウドネイティブ時代の先に、「サーバーレス」と称する新しい技術ムーブメントが盛り上がっています。 語源でもあるシステムの設計における「サーバの存在に依存しないという制約」と、それを発展させた「サーバーレス」なシステムの実現手法は、クラウドをよりクラウドらしく使うものです。 本講義では、サーバーレスと呼ばれる技術動向について、その解説を踏まえて実際にハンズオンを通じて、どのように設計し運用するか身につけてもらいます。
C7 攻防型CTFによるWebオンラインゲームのチート行為の体験
分野・キーワード CTF、オンラインゲーム、チート
講師 中矢 誠大川 昌寛
担当プロデューサー 園田
講義紹介 企業が運営するオンラインゲームでは、チート行為が問題となります。今回は、Webオンラインゲームのチートを、攻撃側と防御側の視点に立って、攻防型CTFの形式で体験します。自身に割り当てられたNode.jsで実装されたサーバプログラムを修正して攻撃を防ぎつつ、JavaScriptで実装されたクライアントやサーバを読解き、チートを見つけて実行してもらいます。JavaScriptやGitの取扱が不安な人は、事前課題で学習してもらいます。講義時間は、CTFを実施した後に、講評や解説を行います。簡単なLinuxのコマンドライン操作は行えることを前提とします。チート以外の脆弱性(pwnやXSS、SQLiなど)を突いた攻撃は扱いません。
D7 IoTのセキュリティを評価できるようにする
分野・キーワード IoT組み込み
講師 松岡 正人
担当プロデューサー 今岡
講義紹介 この講義はJPCERT/CC、長崎県立大などと共同で作成中のIoT製品のセキュリティの評価を行うためのチェックリストを利用したIoTセキュリティの評価チュートリアルセッションです。 前提条件となるIoTの特徴をNIST SP800-183のリファレンスモデルを参照しながら解説し、ワークシートを使いながら身近なIoT機器のセキュリティレベルを評価します。
E7 シリアル通信から学ぶBadUSB自作演習
分野・キーワード 電子工作、AVRマイコン、USB、シリアル通信、PS/2キーボード
講師 竹迫 良範
担当プロデューサー 今岡
講義紹介 USBポートに挿すだけでキーボードの入力操作を自動化するハードウェア「BadUSB」を500円以内の材料で自作し、USB入力装置のセキュリティ対策を考察します。 USBの5V電圧で動作するAVRマイコンを使用して、PS/2キーボードから発生する電気信号をエミュレートするプログラムをC言語で作成します。 事前に特別な知識は必要なく、USBシリアルケーブルの自作からLinuxコンソールの操作まで図の通りに丁寧に作業することができれば大丈夫です。

集中開発コース

     
2日目~4日目
X-Ⅰ 言語自作ゼミ
分野・キーワード
講師 川合 秀実
担当プロデューサー 川合
講義紹介 このゼミでは、セキュリティに明るくない人でも脆弱性のあるプログラムを作らないで済むような、そんな夢のようなプログラミング言語を作ろうとしています。これができたらセキュリティ技術者の不足問題は解決するかもしれないのです!担当作業の難易度は各参加者に応じて合わせるので、初心者から実力者まで、幅広く募集します(初心者にしかできない大事な役割もあるのです)。これはおもしろそうだと感じたら、http://essen.osask.jp/?seccampをよく読んで、応募を検討してください。
X-Ⅱ TLS 1.3/暗号ゼミ
分野・キーワード
講師 緑川 志穂
担当プロデューサー 川合
講義紹介 このゼミでは実際にRFCを読みながらTLS 1.3に対応したプロトコルスタックを開発し、好きな暗号をその上に載せ、実際に好きな暗号がTLS上を駆け巡ることが可能になるようにしてもらいたいと考えています。 詳しい説明をhttps://gist.github.com/elliptic-shiho/33efffcdcf0020eaa2736631e82665e4に掲載しています。
X-Ⅲ データベースゼミ
分野・キーワード
講師 星野 喬
担当プロデューサー 川合
講義紹介 データベースシステムは現代社会の縁の下の力持ちで、皆さんが銀行でお金のやりとりをしたり、インターネット上で買い物をしたりといった操作がきちんと処理されるために欠かせません。大事なデータが管理されていますので、もちろんセキュリティも欠かせません。さらに、沢山のやりとりを高速に処理するには、良いデータ構造とアルゴリズム、並列プログラミングが欠かせないため、コンピュータサイエンスの基本かつ楽しい要素がたっぷり詰まったソフトウェアだと言えます。 本ゼミでは講師が学習用に Python で開発した「AcidToy」を題材にデータベースシステム、とりわけトランザクション処理について学び、作り、実験してもらいます。 詳しい説明が、https://scrapbox.io/acidtoy/SecurityCamp2018にあります。
X-Ⅳ リバースエンジニアリングゼミ
分野・キーワード リバースエンジニアリングIoT、ハードウェア、ソフトウェア無線
講師 木藤 圭亮
担当プロデューサー 川合
講義紹介 「リバースエンジニアリングゼミ」(通称:リバエンゼミ)は、ハードウェアを主とするシステムのリバースエンジニアリング(以下、リバエン)を行う、またはリバエンするためのツール開発を行うゼミです。 他のゼミのように開発することがメインではなく、いろんなシステムがどのように動いているかを明らかにすることがメインになります。セキュリティ・キャンプでなぜリバエンを扱うかというと、最近の組込み機器の脆弱性は、リバエン結果から見つかることが多いからです。リバエンを行うことで組込み機器の脆弱性を発見し、機器をセキュアにすることに貢献することができます。 本ゼミでは組込み機器全般、ボード上のバス通信、ソフトウェア無線による通信解析などの技術を主な対象としますが、リバエンに関わることであれば持ち込みの題材も歓迎します。このゼミで必要なのは技術力よりも「好奇心」です。好奇心旺盛な方からの応募をお待ちしています。
X-J ジュニア限定ネットワークゼミ
分野・キーワード
講師 美濃 圭佑庄司 直樹
担当プロデューサー 川合
講義紹介 皆さんはWebページを閲覧する際に、裏側でどのような通信が起きているのか見たことはありますか。このゼミは実際の通信を見てTCP/IPやHTTPを観察することから始まります。TCPの3-way handshakeからHTTPヘッダのCookieまで、Webサーバとのやりとりはどのような形式で行われているのか、実際の通信から学び理解しましょう。そして、自分自身の手でそれらの通信を行うプログラムを作ってみましょう。
Y-Ⅰ OS開発ゼミ
分野・キーワード OS、カーネル、Linuxカーネル、デバイスドライバ
講師 内田 公太粟本 真一武内 覚
担当プロデューサー 川合
講義紹介 OSを作ってみたい、けど自分には難しそう、と思った事はありませんか?確かに、よく使われているOSは巨大で、長い歳月と多くの人によって作られています。 でも、実はOSは意外と個人で簡単に書けるものなんです。OSの開発といっても切り口はたくさんありますので、この「OS開発ゼミ」では3テーマ「フルスクラッチOSを書こう!」「最先端OS談義」「Linux開発者を目指そう!」に分けて募集を行います。自分でOSを作っている方はもちろん、このゼミをきっかけに作り始めようとする方も、チャレンジ精神さえあれば幅広く対応します!より詳しい説明が http://uchan.hateblo.jp/entry/2018/03/19/232048にあります。
Y-Ⅱ Cコンパイラを自作してみよう!
分野・キーワード
講師 植山 類西田 耀
担当プロデューサー 川合
講義紹介 本格的な言語のコンパイラを書いてみたいと思ったことがある人は多いのではないでしょうか? 本ゼミでは、簡単なプログラムが実際にコンパイルできるようなC言語のコンパイラを、C言語を使って開発します。目標は、自作コンパイラを自作コンパイラ自身でコンパイルする(セルフホストする)ことです。この講義を終えればコンピュータとプログラミング言語一般、そしてC言語についての深い理解が得られていることでしょう。実際に講師の私(植山)はセルフホスト可能なCコンパイラ8cc( https://github.com/rui314/8cc)をゼロから書いた経験がありますが、それはソフトウェアエンジニアとしての実力をぐっとアップさせるような、他には得難い貴重な体験でした。 講義は3日間という短い期間なので、大きな目標を達成するためには、入念な事前準備が必要です。 プログラミング言語の理論や実装の基本的な構成などは事前に勉強していただく必要がありますが、それはもちろん講師陣が手厚くサポートしていくので、心配する必要はありません。必要なものはプログラミング言語に対する情熱です。多くの皆さんの応募をお待ちしています。
Y-Ⅲ BareMetalで遊ぼうゼミ
分野・キーワード BareMetal、組み込み、マイコン、Raspberry Pi
講師 西永 俊文
担当プロデューサー 川合
講義紹介 「BareMetalで遊ぼうゼミ」は、BareMetal開発が大好きな講師(西永)がサポートしつつ、マイコンやRaspberry Piなどのコンピュータを用いた「ものづくり」を行うゼミです。 このゼミでの「BareMetal」の定義は、OSや基本的なライブラリの動いていない、素のコンピュータのことです。起動直後の素のコンピュータは、画面に文字を表示するどころか、C言語で書いたプログラムすら動きません。そんな何もできないところから、クロスコンパイラを用意し、Makefileやリンカスクリプトを書いてプログラムをビルドできるようにし、アセンブリ言語を用いてC言語で書いたプログラムが動くようにして.....と開発を続けていきます。この過程を経てものづくりを行うことで、受講生のみなさまには「コンピュータアーキテクチャの基礎」「ハードウェアマニュアルの探し方や読み方」「既存のライブラリやOSのありがたさ」を経験を伴った知識として身につけることができるでしょう。 本ゼミでは講師の用意した課題、または受講者のみなさまからの持ち込み課題でものづくりを行います。 持ち込み課題の条件は「なるべくBareMetalから作ること」だけです。この条件を満たせば、どんな開発テーマでも可能な限りサポートします。「ARMマイコンを使った電子工作をmbedなどのライブラリを使わずに作りたい!」や「簡単な組み込みOSをRaspberry Piで動くようにしてみたい!」という思いのある方はもちろん、このゼミをきっかけに組み込み開発に入門したい方も、チャレンジ精神と諦めない心があれば十分です。ぜひこのゼミにいらしてください。一緒に組み込み開発を楽しみましょう!
Z アンチウィルス実装ゼミ
分野・キーワード Linux、ELF、マルウェア、ハニーポット、yara、DPDK、SPDK、リバースエンジニアリング
講師 忠鉢 洋輔新屋 良磨城倉 弘樹アドリアン ヘンドリック丑丸 逸人大居 司浅田 拓也
担当プロデューサー 川合
講義紹介 Linuxで動くアンチウィルスソフトウェアを作ります。

アンチウィルスソフトウェアを実装するには、まずコンピュータウィルス(我々は総称してマルウェアと呼んでいます)を解析して知ること、その特徴を分析して検知するためのルール(パターンファイルやシグネチャなどと呼ばれるもの)を作る必要があります。最新のアンチウィルスは、クラウド上で高速に、大規模な分析を行ったりもしています。また、ネットワーク上の悪意のある通信を解析・分析することも必要になります。このように、すごく大規模で、複雑で、作ること自体難しく、ウィルスを検知する性能を維持するのも大変なのがアンチウィルスソフトウェアです。

このように、マルウェアを防ぐシステムを作ることは、非常に難しく、誰もが簡単に出来ることではありません。 ですから、教えることも簡単ではありません。でも、だからこそ燃える。そして、講師の皆さんも、この難しいチャレンジに対して、各々の飛び抜けた技術をフル活用して協力してくれます。 講師の皆さんが、わざわざ教えるのが難しいことを全力で教えてくれるのは何故だと思いますか?

それは、この一見難しい問題を技術的に解決することが楽しいからです。もちろん、インターネットの安全に貢献するという気持ちもありますが、まず楽しいから。このトラックでは、この楽しさを皆さんと共有し、一緒に味わいたい。そして、この難しい問題について、これからも一緒に取り組んでいく仲間になって欲しいと思います。

難しい、大変とたくさん書きましたが、一つ一つの技術が難しいわけではありません。 なにより、その道のプロ達が、ほぼ1on1でアドバイスしてくれます。昨年度は、C言語がおぼつかなかった参加者が、圧倒的高速なファイヤーウォールのプログラムを期間中に作り上げました。セキュリティの技術を学んで自分のものにするぞ!という強い気持ちと、知らない技術でもとにかく手を動かしてみる意欲があれば、大丈夫です。

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