デジタル人材の育成
ご応募ありがとうございました。
セキュリティ・キャンプ全国大会の講義は、全体講義と専門講義の2種類で構成されます。
受講者全員に対して実施する、座学を中心とした講義です。情報セキュリティを学ぶ上で必要となる基礎的な概念を学ぶ「セキュリティ基礎」、倫理観の形成を目的とした「特別講演」、参加者のコミュニケーション力向上のための「グループワーク」等を設けています。
少人数で実施する演習を交えたオンライン講義です。全国大会期間中、実施されるメインプログラムです。受講する講義は、受講者の希望を踏まえて決定します。
「まだないもの」の育て方(2):国際コミュニティの場合
U22 x サイバーセキュリティ x 日本人というのがオーディエンスの属性だと思う。 そんな君達も知っている通り、この国の国境は海の上にある。 昔は唐の国(今の中国)に渡るのも命がけだったけど、 交通機関の発達、ネットの発展により、国境は簡単に超えられ、 いまや世界は案外に手の届くところにある。 それでもまだまだ足りないことがある。 昨年の講演「『まだないもの』の育て方」の続編ではないですが、 本講演では、なにものでもなかった私が、 国際コミュニティを立ち上げ続けてきた中での挑戦と葛藤を紹介することで、 みなさんが企てを始める一人になる一助になれば幸いです。
セキュリティ・キャンプの楽しみかた
ようこそセキュリティ・キャンプへ! セキュリティ・キャンプ全国大会では,専門講義だけでなくLT大会やグループワークなど,さまざまな企画が行われます.
また講義や講師やチューターについて,知りたいこともたくさんあるかと思います.
ここではそうしたことについて色々紹介し,セキュリティ・キャンプの楽しみかたをお伝えしたいと思います.ぜひ,セキュリティ・キャンプを存分に楽しんでください!
グループワーク
グループワークはセキュリティ・キャンプ全国大会の全日程を通して行われるプログラムです。 参加者が数人程度のグループに分けられ、決められたテーマについてインタビュー・議論・検討を行います。 今年は「セキュリティ・キャンプ修了後にあなたが取り組むこと」というテーマを設定し、その第一歩となるためのハッカソンをオンラインで実施します。 グループワークは選択した講義が異なる参加者や講師と交流する貴重なチャンスです。 また検討のプロセスにおいて、セキュリティ・キャンプ関係者やスポンサー企業の方々へヒアリングすることを推奨しているため、幅広い意見をもとにセキュリティ・キャンプ修了後の活動について考えるまたとないチャンスとなるでしょう。 このグループワークはキャンプ期間中に活動内容を計画して、キャンプ修了後に参加者がやりたい活動を見つける・実行する・継続することが目標です。 つまりキャンプ修了後の活動が本番となります。 最終日には各グループでキャンプ修了後に行いたいことを、いくつか発表することを予定しています。
今日では多くの機器がネットワークに接続され、様々な機能が提供されるようになっています。パソコンやスマートフォンもそのひとつです。それらの機器の中ではネットワークと通信するためのプログラムが動いていますが、それはどのように実装されているのでしょうか。このゼミでは、多くのプログラムで当たり前のように使われているネットワーク通信について学びます。そして、自分自身の手でそのようなプログラムを作ってみましょう。
ロバストプロトコル・オープンチャレンジ運営会議
一般にサイバーセキュリティとは悪意を持った第三者からの攻撃から情報通信機器やデータを守ることに重点が置かれがちですが、これ以外に事故や自然災害から通信を確保することもサイバーセキュリティの大事な要素と考えます。本講義では物理的な通信障害が発生するLAN(10BASE-T)をリモートで用意します。参加者はこれら障害のあるLANにおいて通信が可能な強靭なプロトコルを各自がデザインし実装しリモートの実機で様々な評価軸でプロトコルの強靭性を競います。 本講義ではコンテストの設計、運営、作問また競技のレギュレーションの策定等に興味がある方に参加して頂きます。A8のコンテスト大会に向けて競技環境の構築などの準備と実施を行います。
これは以下昨年ネクストで受講した修了生のブログです。参考まで。
https://kawasin73.hatenablog.com/entry/2019/08/17/190025
なお、A1の受講者が必ずしもA8の講義を受講する必要はありません。ただ大会の運営にかかわりたい方はA8も受講ください。 またA1の受講者はA8の競技にも参加可能ですが、A8の競技にのみ参加する受講者に不利にならない運営を心掛けてください。
任意USBデバイス開発実験
安価なUSBチップを複数用いて任意のUSB通信を行うデバイスを実装します。 USBファームウェアのプログラミングでC言語とアセンブリ言語を用いますが、前提知識は不要です。開発に必要な一通りのチップと基板はこちらで用意します。
人工知能システムやロボットとのコミュニケーションにおける人間の心理
近年,擬人化された人工知能システムやロボットなどのインターフェースが日常に浸透し始めている.これらのシステムは,単なる機械的なシステムに対する反応とは異なる人間の行動を引き出す.今回の講義では,擬人的な人工システムに対する人間の心理や行動の特性について最新知見を交えながら概説することで,これらのシステムと接する際の危険性についてディスカッションを交えて議論を行いたい.
医療情報システムのアーキテクチャ
海外の医療機関がランサムウェア攻撃を受け、その影響で患者の死亡例が発生したという事案があった。詳細が判明するにつれ、患者の死亡と標的型攻撃の間には直接の因果関係はないとされているようであるが、サイバー攻撃が人命にも関わりうるということを提示した点において象徴的な事案であった。日本の医療機関は海外に比較して外部ネットワークに接続する傾向が少なく、いわゆる「無菌室」状態にしておくことで安心であると考えている管理者が依然として多い。一方で、AIによる診断支援や地域医療連携等、外界に接続せざるを得ない事情もあってVPNルータを何台も設置している医療機関もあり、従来システムのアーキテクチャの破綻は近いと感じているこの頃である。本講義では典型的な大規模医療機関における医療情報システムの実態と医療情報システムが準拠すべきとされているガイドラインを紹介し、医療機関を攻撃するシナリオについて考えて頂きます。さらに防御方法も検討し、現在の情報セキュリティの対策やガイドラインの課題について意見交換します。
IoTシステムのセキュリティを分析しよう(グループワーク)
与えられたIoTシステムのモデルを基に、どのようなセキュリティを考慮した対策の実装が必要かをJPCERT/CCが公開しているガイドを参照しながら、議論して決定していく。グループワークを行い、その後グループ毎に発表してもらいます。他のグループは発表者グループが説明するセキュリティ対策についてツッコミ、議論を深めると共にそれぞれの観点の違いなどから、気づきを得ることで視野を広げることを目指します。
チップレベルでカスタマイズができることで見える世界の体験
集積回路(LSI)はコンピュータのCPUをはじめ、あらゆる電子機器の基本パーツで、その進化はコンピュータの進化と表裏一体です。その進化の結果、あまりに高度化、複雑化したLSIはブラックボックスとなり、中身を知らなくても多くのことができるようになりました。しかしそのことは、先日のCPUの根本的な脆弱性「MeltDown」のような深刻な問題の遠因ともなりえます。 この講義では、LSIを設計することに立ち返り、その視点からコンピュータというものを改めて見つめ直すことを目指しています。 具体的には、論理ゲートレベルの単純なものから、徐々にARMプロセッサ等の複雑なLSIを、それぞれにあった手法で設計しながら、その仕組み、その可能性を体験します。そしてそれを通してコンピュータというものに対する新たな視点を得ることを目標とします。
ロバストプロトコル・オープンチャレンジコンテスト
一般にサイバーセキュリティとは悪意を持った第三者からの攻撃から情報通信機器やデータを守ることに重点が置かれがちですが、これ以外に事故や自然災害から通信を確保することもサイバーセキュリティの大事な要素と考えます。本講義では物理的な通信障害が発生するLAN(10BASE-T)をリモートで用意します。参加者はこれら障害のあるLANにおいて通信が可能な強靭なプロトコルを各自がデザインし実装しリモートの実機で様々な評価軸でプロトコルの強靭性を競います。 本講義の参加者はロバストプロトコル オープン チャレンジ運営チーム(A1の受講者)が策定したレギュレーションで競技に参加し、各自が実装したプロトコルのプレゼンテーションを行います。
これは以下昨年ネクストで受講した修了生のブログです。参考まで。
https://kawasin73.hatenablog.com/entry/2019/08/17/190025
A1の受講者に限らずセキュリティ・キャンプの参加者であればどなたでも参加可能です。 競技者はキャンプ期間中に募集します。エントリーが一定数を超えた場合は制限する場合もあります。グループ参加も可とします。
ちいさなWebブラウザを作ってみよう
Webブラウザが持つセキュリティ機構や、Web ブラウザ内で行われる先鋭的な攻撃手法の発展は著しい。この流れに沿って、それらの中には、Webブラウザの内部構造への理解が強く求められるようなものも登場してきている。そこで本講義では、現代のWebブラウザの基礎的な機能群が具体的にどのように実装されているかを、既存のWebブラウザ実装を例に概説する。また、CUI ベースの小さな Web ブラウザを作成する演習により、Web 標準を眺めるだけでは得られない細かな知見を主体的に獲得してもらうことを目指す。これらの座学や演習により、ぜひ現代の Web クライアントサイドのセキュリティをより深く理解するための強靭な足腰を獲得していただきたい。
つくって学ぶ、インターネットのアーキテクチャと運用
ネットワークのネットワークであるインターネット。どのように動いているのかを探ってみたいと思いませんか?身近にあるLANと国際的なネットワークはほとんど同じ仕組みで動いています。それは同じ設計思想=アーキテクチャの下で作られているから。ネットワークを使うような、開発や運用、そしてそのセキュリティに携わるにはアーキテクチャへの理解が不可欠です。
この講座は、インターネットを形作るアーキテクチャについて、手を動かしながら楽しく学ぶことのできる講座です。IPアドレス、ルーティング、DNSといった基礎知識に加えて体系的な知識が身につく事を目指します。参加者の皆さんには、ルータなどの設定を実際に行って、インターネットと同じものを構築していただきます。相互運用性、規模拡張性といった性質を持つインターネットのアーキテクチャを学びながら、その運用について学んでいきます。ネットワークの技術を使った影響範囲の大きい攻撃と防御の技術についても解説します。
分散アーキテクチャ時代におけるWebシステムの開発と運用
大規模なWebシステムを開発する上で、コンテナやサーバーレス(FaaS)、SaaSといった部品を組み合わせる分散アーキテクチャを採用することが当たり前となりつつあります。本講義では、Webシステムを分散アーキテクチャとしてどのように設計し実装・運用するのかを、現場の事例を踏まえて紹介し、ハッカソン形式で開発することで学びます。ハッカソンは、講義時間をコアタイムとして、事前学習期間から事後学習期間までを活用して実施する予定です。
Digital ID Era: The important parts / デジタルアイデンティティ時代の重要部品 (仮)
社会活動がネット上に移るほど、デジタルアイデンティティの重要性は高まります。奇しくも2020年は、半ば強制的に物理社会からネット社会への移住を迫られることになりました。ネットの世界におけるID、アイデンティティ、ペルソナ。そしてそれの背後に必要な本人性、信頼性。それを支えるシステムの技術要素や堅牢性。それを取り巻く背景やポリシー、考え方。実際の経済や産業の世界では、考えなくてはいけないことが多々あります。ここでは、「今から、今後」これらに関わるであろう人を想定して、重要になるであろうパーツとその組み合わせ方について学んでもらおうと思います。
趣味と実益のための著名なOSSライブラリ起因の脆弱性の探求
各プログラミング言語で標準的に用いられているライブラリには、セキュリティを考慮していないものが多く見受けられます。例えば、各プログラミング言語に標準で備わっているXMLパーサは、セキュリティを考慮していないものが多いです。本講義では、XMLファイルの扱いの不備に関する攻撃手法/対策方法を一例として取り上げ、各プログラミング言語の標準ライブラリの問題点を見ていきます。また、実際にOSSの脆弱性を見つける演習を実施したいと考えています。この講義を受けることで、脆弱性を生み出さないよう気をつけるポイント、脆弱性を見つけるためのポイントを学べるでしょう。
脅威調査と相関分析を用いて高度な攻撃を読み解こう
ネットワークセキュリティ製品やエンドポイントセキュリティ製品が一般的に普及しつつありますが、標的型攻撃を行うような高度な攻撃者はそれらが導入されていることを前提に攻撃を行います。そのため、巧妙な攻撃を検出するために、ネットワークとエンドポイントの両方のログを用いた相関分析が求められています。本講義では、ネットワークセキュリティおよびエンドポイントセキュリティにおける脅威分析手法を学び、それぞれがどのように脅威を検出できるか体験します。次に、そこで検出できた脅威について、公開情報を含めた脅威調査を行い、攻撃者や使われたマルウェアを特定し、攻撃の本質を理解することで、より高度な検知ロジックを作成します。その後、ネットワークおよびエンドポイントのログの相関分析を行い、それら単体では検出できなかった高度な攻撃について調査します。
痕跡から手がかりを集める - アーティファクトの発見/分析技術
サイバー攻撃や内部不正などのインシデントが発覚した際には、適切な対応や再発防止の検討を進めるために、発生原因や影響範囲の特定が重要となります。そのため、一般的には必要なログをあらかじめ取得するように設定をしてシステムを運用しますが、インシデントは想定外の状況で発生することも多く、ログが残っていない、もしくは不十分なことがあります。
このような場合、いわゆるデジタルフォレンジックの技術を活用した調査が拠り所となり、特にアーティファクトと呼ばれるOS/アプリケーションが残す情報(痕跡)が手がかりの1つとなります。
アーティファクトはログとは異なり、人間に解釈しやすい状態では残っていません。意味のある情報として扱うためには、それらの特徴、構造を把握する必要があります。本講義ではこのような断片的な情報を発見、分析するための技術を学び、また、演習を通じてあるインシデントの解明に取り組みます。
Zero to Malware Analyst Part1/Part2
OSSのリバースエンジニアリングツールGhidraを使用し、マルウェア解析の基礎からスクリプトによる解析の自動化、Yaraルールの作成までおこないます。Part1では、マルウェア解析とは何なのか、具体的にどのようにおこなうのか、解析の基礎部分を学びます。また、サンプルプログラムの解析を通じて、Ghidraの基礎的な使い方や実践的な静的解析手法を学びます。最後に、静的解析のアウトプットとして、マルウェアを識別および分類するためのYaraルールを作成します。Part2では、実際のマルウェア検体のコードを解析し、コンフィグの復号やC2リストの取得など、マルウェアの各機能に応じた演習を通じて、解析の自動化のためのスクリプト作成をおこないます。この講義では、最終的に実務レベルのマルウェア解析スキルを習得することを目指します。
UEFI BIOSセキュリティ
BIOSってあまり注目しませんよね? もしここに脆弱性があるかもしれない、マルウェアがインストールされているかもしれないとしたら、どのように発見、対応しますか? この講義では、Intel/x86-64におけるUEFI BIOSのアーキテクチャーと実装、アタックサーフェイス、それに対する悪用/攻撃の事例を学習し、実在する脆弱性の解析などの演習を通して、これらの質問に答える土台となる技能を得ることを目指します。もしRootkitやBootkit、SMM、低レイヤーセキュリティ、といったキーワードに興味があるならば、ぜひ参加してみてください。
車載ネットワークを流れるCANパケット解析演習
現在の自動車には数十のECU(制御コンピュータ)が搭載されており、CANやLINなどの車載ネットワークで結ばれています。演習では、ECUやCANネットワークで構成される実験用ネットワークを遠隔にある実験室に敷設しておき、インターネット経由で各人のPCからCANにつながるECUをエミュレーションするLinuxノードにアクセスし、CANネットワークに流れているパケットを取得し解析する方法をハンズオン形式で行います。Linuxノードにてパケットを取得し解析するためのPythonを使った簡単なプログラムを作成していきます。また、実車からキャプチャしたメッセージを実験ネットワークに流したり、なりすましデータを作ったり、実験用ネットワークに接続した実車のメータパネルを遠隔から映像として観察することも行う予定です。
ファジング+トリアージ技術を用いた脆弱性解析の自動化
2016年、米国国防総省DARPAはCyber Grand Challenge (CGC)を開催し世界中の研究所がハッキングの自動化、特に脆弱性解析やエクスプロイトコード生成の自動化システムを開発し競い合いました。これらの技術は2021年現在においても数多くの企業や政府が活発に研究開発を進めている領域であり、従来人の手で行われてきたペネトレーションテストの作業コストを大幅に削減することが期待されています。本講義では脆弱性解析自動化技術の一つである「ファジング」、脆弱性の分類技術「トリアージ」ついて一通り学習し実装します。
オフェンシブ・セキュリティを「研究」する
最先端の研究機関では、攻撃者さえも知り得ない未知の脅威の発見と対策を行う「オフェンシブ・セキュリティ」に関する研究が行われています。学術研究の対象として取り扱う脅威は、単一のバグではなくシステム設計の本質的な部分に起因するため、影響範囲が特定のアプリケーションに留まりません。一般性のある脅威を発見・対策することがこの分野の難しさであり、業界に貢献できている部分でもあります。 本講義では、Web/モバイル/IoTへの斬新な攻撃手法を示した研究事例を教材に、システム設計に根ざした脅威を特定するためのアプローチを学びます。アプリケーションやプロトコルの理解に加えて、統計、機械学習、符号理論といった「学校のお勉強」がいかにして実世界の脅威に結びつくのかを体験し、脅威発見を研究として昇華させるためのプロセスを身に着けていただきます。
AIシステム・ハッキング入門
機械学習モデル(以下、AI)に対する攻撃と防御を実践していただきます。本講義では、顔認証システムを「騙して」システムに侵入する攻撃手法や、AIに「任意のコードを実行」させ、AIが稼働するシステムに侵入する攻撃手法などを実践します。本講義を通じ、AIへの攻撃が現実的な脅威になり得ることを身をもって経験していただきます。なお、本講義は機械学習の知識が必要になりますが、充実した事前学習コンテンツを用意いたします。また、本講義は複数回(数日)にわたって開催されます。初回でハッキングが上手くいかなかった方でも、2回目は上手くいくように講師陣がサポートしますので、安心してご参加ください。
ファイルレスマルウェアの仕組みと検知エンジンの開発
ファイルを持たない「ファイルレス」のマルウェアはニュースでも耳にする機会が増えてきました。講義は3つのパートに分かれます。
1.事前学習 PowerShellの理解、難読化手法の理解を深めていきます。
2.本講義 ShinoBOT.ps1というファイルレスマルウェアシミュレータ—を用い、理解を深めた上で、攻撃者が用いる「ファイルレス」の実装手法を学習していきます。そして、セキュリティの観点で、それらのマルウェアが残す痕跡を元に検知手法を開発していきます。
3.事後学習 各自で検知エンジンを完成させて、最後にコンテストを開催します。
事例と法律
サイバーセキュリティに関連する法律の基礎的な理解を学びつつ、架空のセキュリティ事例に基づき、当該事例はどのような法律に違反するのか、といったことを考えていただきます。条文の解釈や事実との関係から法律を読み解いていただき、気を付けるべきことを学び、グループで議論した上で発表していただきます。事前学習が非常に重要になりますので、事前学習にも参加していただきます。
セキュリティ情報を適切に伝えるためのライティング入門
セキュリティの啓蒙・啓発活動はもちろん、脆弱性情報を伝えて警告を発したり、新たな知見を伝えることは、「言葉」を抜きにしてはできません。本講義では、セキュリティに関する情報を適切に伝えていくために抑えておくべきポイントを、「脆弱性情報の伝達」を例に挙げて考え、実践していきます。いつか自分のブログやメディアを通じてセキュリティ情報を発信し、世の中に正しく伝えていく際のヒントにしていただきたいと思います。
本講義の受講に当たって必要なスキル・知識は特にありません。いつか自分の成果を世の中に伝えたい、と考えている方は特に歓迎します。
セキュリティ啓発マンガを作ってみよう
偽装メール、フィッシングサイトからのマルウェア感染など、身近な情報セキュリティインシデント発生は相変わらず多くの発生を聞きます。偽装メールや偽装サイトの巧妙さも向上していますが、これを抑制するには平素からのネットワーク利用者側の警戒心の維持向上、インシデントに関する新たなケーススタディの平易な周知が行われるべきでしょう。そこで、情報セキュリティインシデントに関する注意喚起と啓発を、効果的かつ広範囲に行う事を目的に、SNSでも日常的に流れてくる「マンガ」をツールとして活用します。一般に馴染みがありアイキャッチに秀でたこの情報伝達ツールを使い、実際にSNSに公開するまでを行い、ネットワーク利用者への注意喚起と啓発の実践を行います。本講義に関しては、啓発する内容の検討やマンガ作成の素材作成などの事前準備が必要となります。
暗号解読チャレンジゼミ
暗号には, 「既存の(理想的には全ての)攻撃手法に対し安全」であることが一つの基準として求められます. このため, 現代暗号において暗号解読は安全な暗号の構築と同時にとても重要な分野として認められています. 本講義は, 「暗号が安全であるとはなにか?」を既存の暗号に対し提案されている解読手法, 特にその理論学習・実装をしながら学んでいきます. アルゴリズムの高速実装から数式のみの理論の世界まで様々な道具・世界を渡り歩きますが, どれも恐れず「解読」していけるようになりましょう.
暗号のままで計算しようゼミ
「暗号のままで計算ができる」のが準同型暗号です。このゼミではその中でも「任意の回数論理演算ができる」TFHEという暗号を実装します。このゼミは、「準同型暗号の応用」よりも、「準同型暗号そのものを構成するにはどうしたらよいか?」という「暗号学の理論とその実装」を軸としたゼミです。本ゼミでは「暗号のままで計算ができる」ということを目指しますので、準同型暗号の「暗号としての安全性や攻撃法」はあまり扱いません。進め方としては、まず暗号を数式として考え、それをプログラムに落とし込むということを繰り返して進めます。ですので、数学へ忌避感がないことが望ましく、初等的なベクトルと確率がわかっているとベターです。私は未踏期間中にTFHEの独自実装(https://github.com/virtualsecureplatform/TFHEpp)をフルスクラッチした経験が有ります。TFHEは恐らくみなさんが考えるより簡潔で、数学として美しく、エンジニアリングとしても高速化や応用の余地があって楽しいものです。 準同型暗号はまだまだ若い分野で、今も新しい研究成果が次々に出ています。TFHEが提案されたのも2016年です。皆さんのやる気次第ではこのゼミの内容が学術的未踏領域に入ることもありえるでしょう。誰もやったことのないことに挑戦する意志のある人を期待しています。
準同型暗号アプリケーション開発ゼミ
準同型暗号は暗号化されたデータに対する演算を可能にする暗号技術です。秘匿性を担保した状態でデータに対する処理を行えるため、プライバシを考慮したアプリケーションに関する研究が活発にされています。本ゼミでは準同型暗号を用いたアプリケーションを開発します。候補となるアプリケーションとしては以下のようなものがありますが、受講生からのアイデアの持ち込みも大歓迎です。 - 暗号化された入力に対する深層学習による推論 - 暗号化されたファイルに対するウイルスチェック - 暗号化されたゲノムデータに対する解析処理 - 暗号化されたプログラムの実行 等完全準同型暗号ライブラリとしては、高速な論理演算が可能な TFHE を用います。したがって、任意の演算を論理演算によって行うため論理回路やオートマトンといった基本的なコンピュータサイエンスの知識があると望ましいです。これまでにないアプリケーションを創り出す熱意のある方の応募を期待しています。
暗号の脆弱性や攻撃手法を理解して説明しようゼミ
日々、様々な暗号技術に対する攻撃手法の提案や脆弱性情報が公開されています。 すぐにパッチが当てられない環境にあるシステムがこれらの脆弱性にさらされている場合、どの程度リスクがあるのか、パッチを当てられるまで何に気をつけなければならないのか、対応策は妥当なのか等を素早く検討しなければなりません。「誰が」「どういった条件で」「どの程度の影響があるのか」はどの脆弱性でも考える必要はあるかと思いますが、特に暗号では「どの程度の計算量で」あるいは「どの程度の確率で」可能なのかも吟味する必要があります。これらのアドバイザリーや論文からこれらを読み解くためには、複雑なアルゴリズムの読解や数学的な知識が必要で、その脆弱性のリスクを定量的に測ることが難しい場合があります。 以上を踏まえて、提案手法から定量的に脆弱性や攻撃手法に対するリスクを測る技術を身につけ、さらに効率よく他人に理解してもらう説明力を身につけることを目標に、暗号の実装不備などの脆弱性やそれに対する攻撃手法を学び、学んだ内容を取捨選択し受講者にプレゼンしていただく講義を実施します。 きっとこの問題を楽しんで解ける人はこの講義が楽しめるであろうというものを用意させていただきました。脆弱性次第で難易度そのものはスケールさせられるので、暗号技術を学んでみたいという熱意がある方であればどなたでも歓迎です。応募お待ちしております。
リバースエンジニアリングゼミ
リバエンゼミではIoT機器を分解、解析してものが動く動作を明らかにするリバースエンジニアリングを中心に行います。実際のIoT機器を分解、解析してどのような仕組みで動くかを明らかにし、可能であれば脆弱性が無いかを検証します。 IoT機器によっては無線で通信を行う機器もあります。そのような機器にはSDRを用いて無線通信を解析し、通信内容を傍受したり、意図しない操作が行えるかどうかなどの検証も行います。ものが動く仕組みを知ること、解析することに興味がある方からの応募をお待ちしています。
IoTものづくりゼミ
このゼミではIoT機器に関するモノづくりを行います。解析したIoT機器に思いもよらない機能を付与してしまういわゆる魔改造を行ったり、自分で考えるセキュアなIoT機器を作ってみたり、IoT機器を解析するために必要な治具と呼ばれるものを回路基板としてを製作したりします。どれも単にものづくりするのではなく、自分で考えた機能や、自分で考えるセキュアな仕組み、さらには自分で考える便利な治具をそれぞれ作ります。実際に手を動かすものづくりに興味のある方からの応募をお待ちしています。
OS自作ゼミ
データベースゼミ
データベースシステムは現代社会の縁の下の力持ちで、皆さんが銀行でお金のやりとりをしたり、インターネット上で買い物をしたりといった操作がきちんと処理されるために欠かせません。大事なデータが管理されていますので、もちろんセキュリティも欠かせません。さらに、沢山のやりとりを高速に処理するには、良いデータ構造とアルゴリズム、並列プログラミングが欠かせないため、コンピュータサイエンスの基本および楽しい要素がたっぷり詰まったソフトウェアだと言えます。本ゼミではデータベースシステムの中でもとりわけトランザクション処理について学び、作り、実験してもらいます。詳しい説明が、https://scrapbox.io/acidtoy/SecurityCamp2021にあります。
故障を乗り越えて動くシステムのための分散合意ゼミ
複数のコンピュータが通信によって協調動作する分散システムは,一部のコンピュータに故障が発生してもサービスを継続できる強みを持ちます.ハードウェアの故障だけではなく,通信障害や悪意ある攻撃に起因する不正動作を含む幅広い故障に対応するシステムを構築する技術の果たす役割は大きく,現代のコンピュータシステムを支える重要な仕組みになっています.このゼミでは,共有資源を持たない複数のコンピュータ (プロセス) が通信によって協調する基礎的な仕組みと,代表的な技術課題である「分散合意」を解決するプロトコルの実装を通し,分散システムの世界を垣間見る機会を提供します. 分散システムに関する実装経験は問いません.分散システムそのものに興味がある,あるいは「協調動作」といったキーワードに心が躍る方で,新しいことに挑戦する熱意を持った参加者を歓迎します. 詳細:https://www.notion.so/06e138dbd6c449baa45e9149b150669b
BGPを実装して学ぶルーティングプロトコル
現代社会の多くのサービスはクラウド上に展開されます. クラウドのユーザにはシンプルに見えている仮想ネットワークもクラウドの裏側では非常に複雑な技術が絡み合っています. 例えばハイパースケーラーのクラウドネットワークでは高機能で安定したネットワークを実現するために, 既存のルーティングプロトコルを活用するだけでなく, 自らルーティングプロトコル自体の機能を拡張したり, 新規にルーティングプロトコルを実装するケースも多数存在します. こういったエンジニアリングが当たり前になった現代では, ネットワーク技術をただ仕組みや設定レベルで理解するだけではなく, 必要に応じて自らそのようなルーティングプロトコル自体を自ら開発することのできる能力が求められます. この講義ではインターネット通信を支えているルーティングプロトコルをフルスクラッチで実装しながら学びます. 具体的にはBGPのサブセットを実装し, OSSのRouting SoftwareであるFRRoutingと相互接続を行うことで, ルーティングの本質やそれに関連したネットワーク技術とソフトウェア技術を学びます. また本講義ではRouting技術のハンズオン演習やRouting protocolの開発, 検証, 試験などの全ての作業をNetwork NamespaceというLinuxのネットワーク仮想化機能を用いて行います. これを行うことにより, 従来のように複数のルータを構築したり, 商用の検証環境を購入することなく, 非常に安価かつ軽量に上記の取り組みを行う実践的手法も学びます.
脆弱性防御機構の自作:ハードウェアとソフトウェアレベルの双方から
メモリ破壊系の脆弱性攻撃から防御する機構に関しては、産業・学術の双方で数多くの研究が行われており、ソフトウェアからハードウェアまで様々なレイヤーにおいて対策が行われてきました。例えば、ROPGuard, kBouncer などのソフトウェアレベルの対策技術、Intel CET や Arm PAC など CPU レベルの対策技術がこれまで提案されています。どのレイヤーでどこまで対策するのがベストかは先人が試行錯誤し(今でも)検討しているわけです。本講義ではこの試行錯誤の過程を一緒に体験し、独自の脆弱性防御機構の作成を目指します。
リバースエンジニアリングを支えるGhidra拡張機能の開発
2019年3月、NSA(アメリカ国家安全保障局)がリバースエンジニアリングツール「Ghidra」を公開しました。その結果、誰もがフリーで様々なアーキテクチャやOSの実行ファイルを(疑似)C言語にデコンパイルできるようになり、リバースエンジニアリングの参入ハードルは低くなりました。 しかし、近年ではサイバーセキュリティの世界においても、リバースエンジニアリング対象となる実行ファイルがC言語以外(例えばGo言語)で開発されていることも増えており、リバースエンジニアの観点でコンパイラやプログラミング言語の特徴をより深く理解する必要があります。 また、リバースエンジニアリングはGhidraのようなツールを用いたとしても非常に時間と労力のかかる作業であり、リバースエンジニアリングを支援するスクリプトやプラグインの開発が必要不可欠です。 本ゼミでは、コンパイラやプログラミング言語の特徴を意識したリバースエンジニアリングについて学ぶとともに、Ghidra ScriptやGhidra Extensionなど、Ghidraの拡張機能を開発する上で必要な知識を学び、実際にリバースエンジニアリングを支援する拡張機能を開発していきます。 一味違うリバースエンジニアになりたい方、Ghidraを自由自在にカスタマイズできるようになりたい方、一緒に奥深いリバースエンジニアリングの世界に飛び込みましょう。
WordPressから学ぶ不正アクセスの検知と対策
Webサイトへの攻撃は、報道にも出ている個人情報の漏えいや、アクセスしたユーザへの攻撃などに悪用され深刻な被害が想定されます。また、開発スピードが早く開発者自身がセキュリティを考慮した開発を行えることが望ましいとされています。本講義ではWordPressの構築や実際の攻撃事例を検証し対策と傾向を分析します。またミドルウェアの設定やWordPressのプラグイン開発を通じて、攻撃の早期発見や対策などの安全なWebサイトの運営を学びます。 WordPressはWebサイトのオープンソースのCMSであり長年世界一のシェアを占めています。その一方で多くのサイトがWebサイトの改ざんなどの攻撃の被害にあっています。様々な事例を目の当たりにしたWordPressを触ってみて、Webセキュリティの楽しさを体感して頂ければと思います。