アーカイブ

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

最終更新日:2020年9月14日

本ページの情報は2020年9月時点のものです。

  •  セキュリティ・キャンプ全国大会2020 オンラインのバナー画像

ご応募ありがとうございました。

講義一覧

講義区分について

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

全体講義

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

専門講義

少人数で実施する演習を交えたオンライン講義です。全国大会期間中、実施されるメインプログラムです。受講する講義は、受講者の希望を踏まえて決定します。

全体講義

特別講演(倫理)

IT周りの法制度,そして社会との窓口

分野・キーワード
  • 法律
  • 倫理
  • コミュニティ
  • 交流
  • 刑事
  • 民事
講師
講義紹介

サイバーセキュリティは技術だけで達成できるものではありません。ITが社会的,法的にどのように位置づけられているかをご紹介した上で,なぜその知識が必要なのか,いわゆるダークサイドに墜ちないためには何が必要なのかを皆さんと考えたいと思っております。

特別講演(一般)

『まだないもの』の育て方

分野・キーワード
  • コミュニティ
  • チーム
  • 法人格
  • 契約
  • 規約
  • 会計
講師
講義紹介

セキュリティ・キャンプのようなイベントに参加される方であれば、プロダクト・イベント・コンテンツ等々、「こういうのあったらぜったい面白いしみんな喜ぶはずだけど、まだないよね」と感じることもあるかと思います。もし本当に面白そうで、他に誰もやろうとしていないことがあるなら、そう感じたあなたが自分で実現してみるのが一番です。

しかし、一人ですぐに生み出せるようなものならともかく、ある程度以上の規模になる場合、いざ実現しようとすると様々な問題が立ちはだかります。それは例えば組織だったり、お金だったり、あるいは法律だったりするかもしれません。そんな問題に対し、先人たちは様々な知恵や工夫や経験などで困難を解決してきました。本講演では、そんな工夫や経験の一端を共有することで、みなさんがこれから何か新しいもの・ことを始める一人になることを応援します。

キャンプ紹介

セキュリティ・キャンプの楽しみかた

分野・キーワード
  • セキュリティ・キャンプ
  • 講義
  • 講師
  • チューター
  • LT大会
  • グループワーク
講師
講義紹介

ようこそセキュリティ・キャンプへ! セキュリティ・キャンプ全国大会では,専門講義だけでなくLT大会やグループワークなど,さまざまな企画が行われます.

また講義や講師やチューターについて,知りたいこともたくさんあるかと思います.

ここではそうしたことについて色々紹介し,セキュリティ・キャンプの楽しみかたをお伝えしたいと思います.ぜひ,セキュリティ・キャンプを存分に楽しんでください!

グループワーク

グループワーク(1)~(3)  

分野・キーワード
  • グループワーク
  • テーマ
  • インタビュー
  • 議論
  • 検討
  • ハッカソン
  • 交流
  • ヒアリング
  • 修了後の活動
講師
講義紹介

グループワークはセキュリティ・キャンプ全国大会の全日程を通して行われるプログラムです。 参加者が数人程度のグループに分けられ、決められたテーマについてインタビュー・議論・検討を行います。 今年は「セキュリティ・キャンプ修了後にあなたが取り組むこと」というテーマを設定し、その第一歩となるためのハッカソンをオンラインで実施します。 グループワークは選択した講義が異なる参加者や講師と交流する貴重なチャンスです。

また検討のプロセスにおいて、セキュリティ・キャンプ関係者やスポンサー企業の方々へヒアリングすることを推奨しているため、幅広い意見をもとにセキュリティ・キャンプ修了後の活動について考えるまたとないチャンスとなるでしょう。

このグループワークはキャンプ期間中に活動内容を計画して、キャンプ修了後に参加者がやりたい活動を見つける・実行する・継続することが目標です。 つまりキャンプ修了後の活動が本番となります。 最終日には各グループでキャンプ修了後に行いたいことを、いくつか発表することを予定しています。

専門講義

選択コース

Aトラック
A1

ロバストプロコル・オープンチャレンジ運営会議

分野・キーワード
講師
担当プロデューサー
講義紹介

一般にサイバーセキュリティとは悪意を持った第三者からの攻撃から情報通信機器やデータを守ることに重点が置かれがちですが、これ以外に事故や自然災害から通信を確保することもサイバーセキュリティの大事な要素と考えます。本講義では物理的な通信障害が発生するLAN(10BASE-T)をリモートで用意します。参加者はこれら障害のあるLANにおいて通信が可能な強靭なプロトコルを各自がデザインし実装しリモートの実機で様々な評価軸でプロトコルの強靭性を競います。 本講義ではコンテストの設計、運営、作問また競技のレギュレーションの策定等に興味がある方に参加して頂きます。A8のコンテスト大会に向けて競技環境の構築などの準備と実施を行います。 これを以下昨年ネクストで受講した修了生のブログです。参考まで。https://kawasin73.hatenablog.com/entry/2019/08/17/190025 なお、A1の受講者が必ずしもA8の講義を受講する必要はありません。ただ大会の運営にかかわりたい方はA8も受講ください。 またA1の受講者はA8の競技にも参加可能ですが、A8の競技にのみ参加する受講者に不利にならない運営を心掛けてください。

A2

暗号アルゴリズムのFPGA実装

分野・キーワード
  • FPGA
  • AES
  • 並列化
  • HDL
  • Verilog-HDL
講師
担当プロデューサー
講義紹介

本講義ではAESの仕様書(https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.197.pdf)を理解していることを前提とします。暗号アルゴリズムのAESのCのソースコードとFPGAソースを事前に示します。ゴールは特に設定しませんが、CのソースコードからHDLに書き替えるスキルの習得を第一目標とします。特に重要な点はアルゴリズムの中から並列化できる個所を見つけだし、ハードウエア実装することでどの程度の高速化が期待できるか見積れる知見です。高速化のみがハードウエア化の目的ではありません。消費電力や発熱を抑えること、またより少ない半導体リソースで目的達成する回路を組むことも重要です。しかしこれらはトレードオフの関係にあり、それらのバランスをとることが成功する半導体チップデザインのカギとなります。本講義で暗号モデルとしてAESを取り上げますが、AESは当時主流だった32ビットCPUで最も効率的に実行できるように設計されています。昨今の半導体トレンドであるFPGAやASICあるいはGPUあるいはメニーコアのアーキテクチャーに対応した新たな暗号アルゴリズムの考察も視野に入れたいと思っています。

A4

ワークショップで学ぶ傍受対策

分野・キーワード
  • wireshark
  • LANワイヤータッピング
  • WiFi
  • 電子工作
  • ブレッドボード
  • 2.4GHz
  • RF
  • 検波
講師
担当プロデューサー
講義紹介

LANにおける盗聴の検出とその防止方法は一般に物理層よりも上位層で行われています。これは、一般的に知られている盗聴方法がデータリンク層(L2)またはその上位層に対する攻撃であることが多いためです。 この講義では、今まで見過ごされがちなネットワークの物理層の盗聴方法に注目します。またWiFiに於いても簡易的な方法で電波の検出方法を紹介します。
講義前半は各自手を動かして ワイヤータッピングプローブやWiFi検出器を製作し実際のワイヤータッピングを体験いただきます。その後この技術を用いた攻撃ユースケース(シナリオ)を設定してもらい、そのユースケースの防御手段を提案頂き、物理層の脆弱性とその対策について理解を深めます。

A5

ワークショップで学ぶ遠隔操作対策

分野・キーワード
  • BadUSB
  • 遠隔操作
  • 空間伝送
講師
担当プロデューサー
講義紹介

BadUSBはUSBメモリー等に見せかけたUSBデバイスでPCのキーボードを乗っ取る攻撃手法として広く知られています。
BadUSBの空間伝送版をワークショップでは作成し、空間伝送版BadUSBの攻撃手法を実際に体験してもらいます。
その後この技術を用いた攻撃ユースケース(シナリオ)を設定してもらい、そのユースケースの防御手段を提案頂き、その対策について理解を深めます

A6

ワークショップで学ぶUSB傍受対策

分野・キーワード
  • 電子工作
  • 組込系
  • AVRマイコン
  • USB通信プロトコル
  • ロジックアナライザ
講師
担当プロデューサー
講義紹介

24MHz/8CHの超小型USBオシロスコープを参加者全員に配布し、途中の通信をプローブするUSBハブを自作してもらいます。オープンソースで開発されているsigrokを用いて、USB1.1の通信内容を解析し、pythonでソフトウェア版ロジックアナライザーを開発します。

A7

ワークショップで学ぶ偽装通信対策

分野・キーワード
  • LAN
  • 偽装通信
  • Covert channel
  • arp
  • padding
  • arduino
  • gpio
  • ethernet frame
  • モールス符号
講師
担当プロデューサー
講義紹介

本講義ではARPを装った偽装通信をArduino(Atmega328p)で行います。本来イーサーネットのフレームは専用のイーサーネットコントローラーを用いますが、更に下の物理層の理解を深めるためにマイコンのGPIOの制御でイーサネットフレームを生成します。更にARPパケットのパディング部分に秘密通信のペイロードを仕込みます。
ワークショップではこの攻撃手法を自ら作製したガジェットで体験してもらい、講義後半ではこの技術を用いた攻撃ユースケース(シナリオ)を設定し、そのユースケースの防御手段を提案頂き、その対策について理解を深めます。

A8

ロバストプロコル・オープンチャレンジ大会

分野・キーワード
講師
担当プロデューサー
講義紹介

一般にサイバーセキュリティとは悪意を持った第三者からの攻撃から情報通信機器やデータを守ることに重点が置かれがちですが、これ以外に事故や自然災害から通信を確保することもサイバーセキュリティの大事な要素と考えます。本講義では物理的な通信障害が発生するLAN(10BASE-T)をリモートで用意します。参加者はこれら障害のあるLANにおいて通信が可能な強靭なプロトコルを各自がデザインし実装しリモートの実機で様々な評価軸でプロトコルの強靭性を競います。 本講義ではコンテストの設計、運営、作問また競技のレギュレーションの策定等に興味がある方に参加して頂きます。A8のコンテスト大会に向けて競技環境の構築などの準備と実施を行います。 これを以下昨年ネクストで受講した修了生のブログです。参考まで。https://kawasin73.hatenablog.com/entry/2019/08/17/190025 なお、A1の受講者が必ずしもA8の講義を受講する必要はありません。ただ大会の運営にかかわりたい方はA8も受講ください。 またA1の受講者はA8の競技にも参加可能ですが、A8の競技にのみ参加する受講者に不利にならない運営を心掛けてください。

Bトラック
B1, B2, B5

Real World Security (Part 1, 2, 3)

分野・キーワード
講師
担当プロデューサー
講義紹介

「実際に使われる製品」のセキュリティに携わると、今まで意識をしていなかったことや、知らなかった領域について学ぶ必要が生じることは多い。「サイバーセキュリティ」という単語は既に一般的な認知を得るに至ったが、サービスや製品においては「サイバー」に限らない様々な要素や背景を元にしてセキュアな環境を実現する必要があるためだ。標準化、トラスト、プライバシー、アイデンティティなどの単語がセキュリティの分野で重要視されるのはそのわかりやすい一例で、これらを知ることで、技術の重要性もより深く理解することができる。このセッションでは、電子的なものに限らず、セキュリティを構成する要素について広く高い視野を持つことを目指す。

B3

クラウド時代における分散Webシステムの構成とスケーリング

分野・キーワード
  • SRE
  • クラウド
  • Webシステム
  • 性能
  • スケーラビリティ
講師
担当プロデューサー
講義紹介

人々が24時間365日快適にWebサービスを利用可能とするための基盤技術が日々進化しています。ここ10年の代表的な進化の例として、クラウドコンピューティング、NoSQL、コンテナ型仮想化技術などの要素技術の台頭があります。一方で、計算機アーキテクチャ、OS、RDBMS、TCP/IPなどの根幹となる技術は、形を変えつつも今も昔も計算機システムを支え続けています。このような背景を基に、本講義では、クラウド時代において、高い信頼性をもつWebシステムをいかに構築し運用するのかを、負荷増大に対するスケーリングの話題を中心に、実際の運用現場の事例を踏まえて講義します。事前課題では、配布資料によりWebシステムの構成とスケーリングの手法の基礎を学びます。さらに、サンプルのWebアプリケーションをクラウド上に構築し、高速化とスケーリングに取り組みます。

B4

つくって学ぶ、インターネットのアーキテクチャと運用

分野・キーワード
  • IPアドレス
  • ルーティング
  • AS
  • DNS
  • DNSSEC
  • RPKI
  • 冗長性
  • 規模拡張性
講師
担当プロデューサー
講義紹介

ネットワークのネットワークであるインターネット。それがどのように動いているのかを探ってみたことはありますか?身近にあるLANと国際的なネットワークはほとんど同じ仕組みで動いています。それは同じ設計思想=アーキテクチャの下で作られているから。ネットワークを使うような、開発、運用、そしてそのセキュリティに携わるには、アーキテクチャへの理解が不可欠なのです。

この講座は、インターネットを形作るアーキテクチャについて、手を動かしながら楽しく学ぶことのできる講座です。IPアドレス、ルーティング、DNSといった基礎知識に加えて、これらの運用について体系的な知識が身につく事を目指します。参加者の皆さんには、ルータなどの設定を実際に行って、インターネットと同じものを構築していただきます。相互運用性、規模拡張性といった性質を持つインターネットのアーキテクチャを学びながら、その運用について学んでいきます。ネットワークの技術を使った、影響範囲の大きい攻撃と防御の技術についても解説します。

B7

マクロな視点から捉える Web セキュリティ: Web インフラストラクチャを利用した攻撃とサイドチャネル攻撃の実践と評価

分野・キーワード
講師
担当プロデューサー
講義紹介

CDN サービスの流行やクラウドコンピューティングの隆盛、そしてコンテナ技術の台頭の流れを汲み、Web システムは独立性の高いコンポーネントの総体として形作られるようになりつつある。それに伴い Web システムのセキュリティの評価には、その構成要素それぞれを評価するための局所的技術だけではなく、それらを総体として評価するための大局的視点が求められるようになってきている。そこで本講義では Edge Side Includes (ESI) Injection やキャッシュミドルウェアを利用した攻撃、HTTP Request Smuggling、そして XS-Search のようなオラクルを利用した攻撃手法等の検証を実際に行い、これを通して Web システムに対するマクロなセキュリティ的視点を養成する。

B8

Learn the essential way of thinking about vulnerabilities through post-exploitation on middlewares

分野・キーワード
講師
担当プロデューサー
講義紹介

脆弱性や攻撃方法を理解するためにはシステムのアーキテクチャ、ネットワークプロトコル、そしてソフトウェアの内部動作を理解する必要があります。こういった深い理解はセキュリティだけではなくシステム開発・運用にも有益であり、セキュリティを通してソフトウェアエンジニアとしてのスキル向上が可能です。本講義では脆弱性や攻撃手法を基にどのように技術の理解を深めていくかについて学びます。
世間では日々セキュリティインシデントが起きていますが、その中には設定ミスにより意図しないファイルが見えてしまったりサーバに侵入されてしまったりといったものも多数存在します。しかしそのファイルやサーバには攻撃者にとって重要な情報がないこともあります。その場合、攻撃者は侵入したサーバの管理者権限を取得したり別サーバに侵入したりと侵害範囲や被害の拡大を試みます。このような侵入後の攻撃者の活動のことを広義にPost-Exploitationと呼びます。本講義ではPost-Exploitationの題材としてDB等のミドルウェアやDockerコンテナへの侵入を取り上げ、これらの内部からホストマシンの管理者権限奪取を試みる演習を行います。
また、実際にこれらの経験を経て海外企業に雇われることになった講師が、どのようにして現在に至ったか、なぜ上記のように学ぶ姿勢が重要なのかについてお話しします。

Cトラック
C1

なぜ、Webサイトは乗っ取られたのか?AWS環境における実践的なインシデントレスポンス

分野・キーワード
講師
担当プロデューサー
講義紹介

近年ではクラウド環境の利用は当たり前であり、これらシステムを衛るセキュリティエンジニアはクラウド環境の仕組みやセキュリティ機構などについて理解を深める必要があるでしょう。本講義は、クラウド環境に対する攻撃手法の理解と、クラウド環境ならではのセキュリティインシデントレスポンスを経験することを目的として、悪意ある攻撃者によって侵害されてしまったAWS環境に対して調査を行います。稼働していたEC2サーバーやマネージドサービス、各種アクセスログ(CroudTrail、Webサーバーのアクセスログなど)、AWS環境の設定状況を解析して、侵害の原因や被害範囲の特定、一連の攻撃への対策案の検討を行います。

C2, C3

Long Live the Malware Analysis (Part 1, 2)

分野・キーワード
講師
担当プロデューサー
講義紹介

近年、従来型のアンチウイルスソフトだけでなく、機械学習やビックデータ解析などを使用したNGAV(Next Generation Antivirus)やEDRなどが登場し、マルウェア対策技術は新しいに時代に突入しています。今どきマルウェアを逆アセンブルし、静的解析することは時代遅れでしょうか?たしかに、運用レベルでは、マルウェア解析に関する高度な知識が求められなくなってくるかもしれません。しかし、前述のセキュリティ対策製品の開発やサイバー攻撃の対策には、マルウェアの動作原理や利用するテクニックなど、マルウェアの本質を理解する必要があります。また、サイバー攻撃で使用されるマルウェアは、セキュリティ対策製品のバイパスや新しい攻撃手法を取り入れ進化し続けているため、静的解析が必要なくなることは現状ありません。

Part 1 では、マルウェアのアーキテクチャ、要素技術、ツールの利用方法、そして効率的な解析の方法論を学びます。リバースエンジニアリングツールGhidraを利用してサンプルプログラムや模擬マルウェアの解析を通じてリバースエンジニアリングの演習をおこないます。

Part 2 では、実際のマルウェア検体のコードを解析し、コンフィグの復号やC2リストの取得など、マルウェアの各機能に応じた解析演習を通じて、実務レベルの「職人芸」を身につけることをめざします。

(注意)本講義は Part 1 と Part 2 の 2コマを両方受講する必要があります。

C4

痕跡から手がかりを集める - アーティファクトの発見/分析技術

分野・キーワード
講師
担当プロデューサー
講義紹介

サイバー攻撃や内部不正などのインシデントが発覚した際には、適切な対応や再発防止の検討を進めるために、発生原因や影響範囲の特定が重要となります。そのため、一般的には必要なログをあらかじめ取得するように設定をしてシステムを運用しますが、インシデントは想定外の状況で発生することも多く、ログが残っていない、もしくは不十分なことがあります。
このような場合、いわゆるデジタルフォレンジックの技術を活用した調査が拠り所となり、特にアーティファクトと呼ばれるOS/アプリケーションが残す情報(痕跡)が手がかりの1つとなります。
アーティファクトはログとは異なり、人間に解釈しやすい状態では残っていません。意味のある情報として扱うためには、それらの特徴、構造を把握する必要があります。本講義ではこのような断片的な情報を発見、分析するための技術を学び、また、演習を通じてあるインシデントの解明に取り組みます。

C5, C6

実践・難読化バイナリ解析(前編・後編)

分野・キーワード
講師
担当プロデューサー
講義紹介

ただでさえリバースエンジニアリングは容易ではないのに、その上バイナリコードが難読化されていたとしたら? ひとたび難読化が施されると、単純な手法ではバイナリを正確に解析できなくなってしまいます。このクラスでは、難読化の原理原則(特にマルウェアで使用される)、難読化コード分析の理論と実践、および難読化解除のための独自ツールの作成方法を学びます。特に、難読化を無効化するための手法として、データフロー分析とSAT/SMTベースのバイナリ分析(例:シンボリック実行)を掘り下げます。

(注意)本講義は前編と後編の 2コマを両方受講する必要があります。

C7

最先端のオフェンシブセキュリティ研究入門

分野・キーワード
講師
担当プロデューサー
講義紹介

世界最先端の研究機関では、攻撃者さえも知り得ない未知の脅威の発見と対策を行う「オフェンシブセキュリティ研究」が行われています。ここで取り扱う脅威は、バグではなくシステム設計の本質的な部分に起因するため、影響範囲が特定のアプリケーションに留まりません。一般性のある脅威を発見・対策することがこの分野の難しさであり、業界に貢献できている部分でもあります。本講義では、実際のWeb/モバイル/IoT研究の事例を教材に、システム設計に根ざした脅威を特定するためのアプローチを学びます。アプリケーション動作の理解に加えて、センサ、統計、機械学習、符号理論といった知識の基礎を身につけ、実践的な脅威分析に応用する方法を習得します。さらに、著名国際会議を活用した情報収集やそういった場で発表するためのノウハウを共有し、研究のインプット・アウトプットを促進します。

Dトラック
D2, D4, D7

機械学習モデルの構築と攻撃 (Part 1, 2, 3)

分野・キーワード
  • 機械学習
  • バックドア攻撃
  • 誤認識攻撃
講師
担当プロデューサー
講義紹介

本講義では、実社会で利用され始めている機械学習モデルをいくつか実際に構築・実装します。
モデルを構築する各工程にて、Backdoor attackとMisrecognition attackをモデルに対して行い機械学習モデルに対する攻撃を実践します。
そして、それぞれの攻撃手法に対してどのような対策手法があるかを学び実践します。

D3

ファイルレスマルウェアの仕組みと防御

分野・キーワード
講師
担当プロデューサー
講義紹介

ファイルを持たない「ファイルレス」のマルウェアはニュースでも耳にする機会が増えてきました。ファイルを検査対象とするセキュリティ対策から見つからないようにするための攻撃手法となっています。本講義ではShinoBOT.ps1というファイルレスマルウェアシミュレータ—を用い、理解を深めた上で、攻撃者が用いる「ファイルレス」の実装手法を学習していきます。そして、セキュリティの観点で、それらのマルウェアが残す痕跡を元に検知手法を開発していきます。

D5

事例と法律

分野・キーワード
講師
担当プロデューサー
講義紹介

セキュリティと関連する法律についての基礎的な理解を学びつつ、架空のセキュリティ事例に基づき、当該事例はどのような法律に違反するのか、といったことを考えていただきます。
条文の解釈や事実との関係から法律を読み解いていただき、気を付けるべきことを学んでいただきます。
今年は、企業見学者の方にも2-4人参加していただく予定です。

D6

車載ネットワークを流れるCANパケット解析演習

分野・キーワード
  • コネクティッドカー
  • 車載LAN
  • CAN
  • パケット解析
講師
担当プロデューサー
講義紹介

現在の自動車には数十のECU(制御コンピュータ)が搭載されており、CANやLINなどの車載LANで結ばれています。今回は、ECUやCANからなる実験用ネットワークを遠隔にある実験室に敷設し、各人のPCからインターネット経由でCANにつながるECUをエミュレーションするLinuxノードにアクセスし、CANネットワークに流れているパケットを取得し解析する方法をハンズオン形式で行います。Linuxノードにてパケットを取得し解析するためのPythonを使った簡単なプログラムを作成していきます。また、実車からキャプチャしたメッセージを実験ネットワークに流したり、なりすましデータを作ったり、実験用ネットワークに接続した実車のメータパネルを遠隔から映像として観察することも行う予定です。

D8

セキュリティ啓発マンガの制作

分野・キーワード
講師
担当プロデューサー
講義紹介

サイバーセキュリティの啓発コンテンツは初学者向け、入門向けのものは多く作られていますが、エンジニアやサービス提供者、サービスの企画運営をする人たち向けのものはまだまだ少ない現状があります。そこでこの時間は、啓発コンテンツの作成者を増やすことを目標に、マンガ制作を実作ベースで1から学びながら、セキュリティ・キャンプという場を通してセキュリティ啓発マンガを作成・公開していくことを目指します。

集中コース

L-Ⅰ

暗号解読チャレンジゼミ

分野・キーワード
  • 暗号
  • 暗号解読
講師
担当プロデューサー
講義紹介

暗号は, その安全性の基準として「既存の(理想的には全ての)攻撃手法に対し安全」であることが求められます. このため, 現代暗号において暗号解読は安全な暗号の構築と同時にとても重要な分野として認められています. 本講義は, 「暗号が安全であるとはなにか?」を既存の暗号に対し提案されている解読手法, 特にその理論学習・実装をしながら学んでいきます. アルゴリズムの高速実装から数式のみの理論の世界まで様々な道具・世界を渡り歩きますが, どれも恐れず「解読」していけるようになりましょう.

L-Ⅱ

暗号のままで計算しよう

分野・キーワード
  • 準同型暗号
  • TFHE
  • 秘密計算
講師
担当プロデューサー
講義紹介

「暗号のままで計算ができる」のが準同型暗号です。このゼミではその中でも「任意の回数論理演算ができる」TFHEという暗号を実装してみます。 このゼミでは、まず暗号を数式として考え、それをプログラムに落とし込むということを繰り返して進めます。ですので、数学へ忌避感がないことが望ましく、初等的なベクトルと確率がわかっているとベターです。 私は未踏期間中にTFHEの独自実装(https://github.com/virtualsecureplatform/TFHEpp)をフルスクラッチした経験が有ります。TFHEは恐らくみなさんが考えるより簡潔で、数学として美しく、エンジニアリングとしても高速化や応用の余地があって楽しいものです。 準同型暗号はまだまだ若い分野で、今も新しい研究成果が次々に出ています。TFHEが提案されたのも2016年です。皆さんのやる気次第ではこのゼミの内容が学術的未踏領域に入ることもありえるでしょう。誰もやったことのないことに挑戦する意志のある人を期待しています。

L-Ⅲ

エクスプロイト自動化ゼミ

分野・キーワード
  • 脆弱性
  • ファジング
  • トリアージ
  • エクスプロイト
  • AEG
講師
担当プロデューサー
講義紹介

2016年、米国国防総省DARPAはCyber Grand Challenge (CGC)を開催し世界中の研究所がハッキングの自動化、特に脆弱性解析やエクスプロイトコード生成の自動化システムを開発し競い合いました。これらの技術は2020年現在においても数多くの企業や政府が活発に研究開発を進めている領域であり、従来人の手で行われてきたペネトレーションテストの作業コストを大幅に削減することが期待されています。エクスプロイト自動化ゼミでは脆弱性解析自動化技術の一つである「ファジング」、脆弱性の分類技術「トリアージ」、エクスプロイトコード生成自動化技術「Automatic Exploit Generation(AEG)」について一通り学習し実装します。また既存手法の再現に留まらず、最新のデータサイエンスアルゴリズムやシステムソフトウェア、ハードウェア機構を活用する事でより高速で精度の高い自動化システムの開発にも挑戦します。

X-Ⅰ

IoTセキュリティトラック

分野・キーワード
講師
担当プロデューサー
講義紹介

IoTセキュリティトラックでは、IoT機器が抱える脆弱性を明らかにするために、リバースエンジニアリングしたり、解析したりするトラックです。
このトラックでは、実際の機器がどのような仕組みで動作しているかを、分解したり様々な面から解析したりして明らかにしていくことで、IoT機器をセキュアにすることに貢献します。

Y-Ⅰ

OS開発ゼミ

分野・キーワード
講師
担当プロデューサー
講義紹介

OSを作ってみたい、けど自分には難しそう、と思った事はありませんか?確かに、よく使われているOSは巨大で、長い歳月と多くの人によって作られています。

でも、実はOSは意外と個人で簡単に書けるものなんです。この「OS開発ゼミ」ではx86-64アーキテクチャのOS作りに詳しい2人の講師がみなさんのOS作りをサポートします。自分でOSを作っている方はもちろん、このゼミをきっかけに作り始めようとする方も、チャレンジ精神さえあれば幅広く対応します!

OS開発ゼミではもちろん手を動かしてプログラミングします。それに加えて、OS作りに欠かせない文書(Intel SDMなど)やOSの研究論文などの読み方も練習します。確かな知識に裏付けられた低レイヤの技術は、セキュリティ分野で大いに役立つでしょう。

このゼミのより詳しい説明が
http://uchan.hateblo.jp/entry/seccamp2020-osdev-seminar にあります。

Y-Ⅱ

データベースゼミ

分野・キーワード
講師
担当プロデューサー
講義紹介

データベースシステムは現代社会の縁の下の力持ちで、皆さんが銀行でお金のやりとりをしたり、インターネット上で買い物をしたりといった操作がきちんと処理されるために欠かせません。大事なデータが管理されていますので、もちろんセキュリティも欠かせません。さらに、沢山のやりとりを高速に処理するには、良いデータ構造とアルゴリズム、並列プログラミングが欠かせないため、コンピュータサイエンスの基本および楽しい要素がたっぷり詰まったソフトウェアだと言えます。本ゼミではデータベースシステムの中でもとりわけトランザクション処理について学び、作り、実験してもらいます。詳しい説明が、https://scrapbox.io/acidtoy/SecurityCamp2020 にあります。

Y-Ⅲ

Cコンパイラを自作してみよう!

分野・キーワード
  • コンパイラ
  • C
講師
担当プロデューサー
講義紹介

プログラミング言語の本格的なコンパイラを書いてみたいと思ったことがある人は多いのではないでしょうか? この講義では、簡単なプログラムが実際にコンパイルできるようなC言語のコンパイラを、C言語を使って開発します。ひとまずの目標は、自作コンパイラを自作コンパイラ自身でコンパイルする(セルフホストする)ことですが、さらに最適化や異なるアーキテクチャへの対応を行いたいという方も大歓迎です。この講義を終えればコンピュータとプログラミング言語一般、そしてC言語についての深い理解が得られていることでしょう。実際に講師の私(植山)はセルフホスト可能なCコンパイラ8cc(https://github.com/rui314/8cc)をゼロから書いた経験がありますが、それはソフトウェアエンジニアとしての実力をぐっとアップさせるような、他には得難い貴重な体験でした。コンパイラ作成のような大きな目標を達成するためには、入念な事前準備が必要です。 プログラミング言語の理論や実装の基本的な構成などは事前に勉強していただく必要がありますが、それらはもちろん講師陣が手厚くサポートしていくので、心配する必要はありません。必要なものは、プログラミング言語に対する情熱です。多くの皆さんの応募をお待ちしています。

Z-Ⅲ

ReDoSの検出プログラムの作成とOSSへの適用

分野・キーワード
講師
担当プロデューサー
講義紹介

ReDoSとは正規表現が原因で起こるDoS攻撃のことです。正規表現のパターンが脆弱で、マッチングの際に大量のバックトラックが行われ、実行に負荷がかかることが原因で起こります。

この講義ではまず、バックトラックベースの正規表現エンジンのマッチングの仕組みから始め、なぜReDoSのような攻撃が起こりうるのかを学びます。ReDoSを検出する技法はいくつかありますが、そのうちのいくつかを実際にプログラムとして実装し、JavaScriptのllinter(ESLint)に組み込みます(llinterとはソースコードを静的に解析して、問題のある箇所を指摘する「プログラムを扱うプログラム」のことです)。

そして、実装したllinterをOSSのアプリケーションやライブラリのソースコードに適用して、ReDoSを引き起こす可能性のある正規表現(脆弱性)を探してもらいます。見つけた脆弱性に対してどのように対処するか検討し、最終的にはその修正の提案という形でOSSに貢献できたら良いと考えています。

Z-Ⅳ

独自セキュリティ機構を追加可能なモジューラブルなソフトウェアルータの開発

分野・キーワード
  • ネットワーク
  • SDR
講師
担当プロデューサー
講義紹介

RouterやFirewall等のネットワーク機能はハードウェア製品だけでなく, VMやコンテナのような仮想化技術の上で動作可能なソフトウェア製のものが増えて来ています. そしてソフトウェアはハードウェアと比べ柔軟性が高く, 様々な用途に拡張しやすいという利点があります.

独自に拡張ができるパケット処理基盤があれば, ある日思いついた新規のセキュリティ機構や独自のルーティング手法をすぐに実装することができます. 実際の研究やネットワークの実験で役に立つこともあります.

本ゼミではネットワークを構成する上で非常に重要なRouter等のネットワーク機能を開発します. 実際にC言語でパケット処理を経路を制御を行うプログラムや実装してもらいます. 開発はLinuxのNetwork Namespaceを用いて行うため, 物理的な機材を用意しなくとも開発や動作テストを行えます. もし, 講生の方が本講義に関連する取り組みたいテーマがあればそれも持ち込んでいただいて構いません.

持ち込みテーマは以下のようなものがあります.
- iptablesのカスタムモジュールでセキュリティ機構を作ってみたい
- 独自のルーティングプロトコルを作ってみたい

また, ただルータ等をただ実装するだけではなく, これらのネットワーク機能に対して独自のセキュリティ機構を追加できるように開発をしてもらいます. 実際にキャンプ期間の最終日までに実装するルータなどにオリジナルのパケットフィルタ等のシンプルなセキュリティ機構を追加することを目標とします.

このカリキュラムを通じて基本的なネットワーク技術(特にIPルーティング)の復習と手を動かしてコード書く演習. そしてパケットを解析するプログラミング技術を習得することができます.

Z-Ⅴ

Rustで作るLinux向けアンチウィルスソフトウェア

分野・キーワード
講師
担当プロデューサー
講義紹介

アンチウィルスソフトウェア(AV)はシステムプログラミングの塊です。更にマルウェアのスキャンという信頼できないファイルをパースしたり、エミュレーションしたりなど、処理が重く、危険度の高い処理をおこなわなければなりません。本テーマでは、Rust言語を用いて、fanotifyを使った実行時スキャンの実装や、スキャンの並列化、スキャン自体の高速化実装などを実装します。なお、Rustはあくまでシステムプログラミングに適しているという理由で使います。そのため、ある程度Rustでのプログラミングに慣れている人、もしくはキャンプ期間までに自習できる人のみ応募してください。

Z-Ⅵ

CPUレベルで脆弱性防御機構を作ってみよう

分野・キーワード
講師
担当プロデューサー
講義紹介

2016年IntelはControl Enforcement Technology (CET)と呼ばれるCPUレベルで脆弱性攻撃から防御する機構を発表しました。既にWindows 10では実験的にIntel CETを使った脆弱性緩和策を実装、LinuxでもGNU C LibraryでIntel CETがサポートされるなど、積極的な導入が現在進みつつあります。このように、脆弱性攻撃からの防御はCPUレベルで行う時代へと突入しています。こうしたCPUレベルで脆弱性攻撃から防御する機構をRISC-Vで自作してみませんか?