セキュリティ・キャンプ全国大会2020 オンライン 参加記

この記事は,大阪工業大学 Advent Calendar 2020の6日目の記事です.

はじめに


 大阪の方の大学の情報系の大学3回生やってます.今回”セキュリティ・キャンプ全国大会2020 オンライン”に 参加して,とても勉強になったので記事にでもしておこうと思います.

そもそも”セキュリティ・キャンプ”を知っていますか?

セキュリティ・キャンプとは
セキュリティ・キャンプとは、日本における将来の高度IT人材となり得る優れた人材の発掘と育成を目的とした独立行政法人情報処理推進機構(IPA)の事業の一つです。
現代においては、情報セキュリティの脅威は高まる一方です。
本事業では、セキュリティ分野に興味を持ち、将来同分野で活躍したいという意志をもった若者に対して、高度な情報セキュリティ技術の習得機会を提供しています。 また、モラルや法律遵守の意識、セキュリティ意識、職業意識、自立的な学習意識についても向上のための機会を提供しています。
本事業は、2004年度のスタート以来、2019年度のセキュリティ・キャンプまでで計824名の将来が有望なIT・情報セキュリティ人材を輩出しています。セキュリティ業界は もとより各方面から、高度な情報人材育成に有益なイベントとして高く評価されています。

 まぁ簡単に言うと国が主催?のBoot Campで,無料ですごい人たちから講義が受けれるといった夢のようなイベントです. 例年はお盆のあたりに5日間くらいの短期で合宿のような感じで開催されるのですが,今年は状況が状況なのでオンライン開催で約2か月毎週土日どちらかといった形式で行われました.

 名前にセキュリティとついていますが,参加者の中に競プロやっている人だったり,絶対30日で終わらないと噂の本やってる人だったり,ロボコン?に出場してる人といったような 普段がちがちにセキュリティをやってない人でも参加しているので,興味を持った人はぜひ参加してみてください!

トラック


 ”セキュリティ・キャンプ全国大会”には,トラックが分けられていてそれぞれ講義の特色が違います.

選択コース


Aトラック
ワークショップがメインで電子工作とか低レイヤを中心としたトラックです.
Bトラック
ソフトウェアの開発現場で必要とされるセキュリティについてのトラックです.
Cトラック
最新の攻撃について学ぶトラックです.
Dトラック
特にテーマに縛られず,課題解決を目指すトラックです.

集中コース


Lトラック
暗号とファジングで,暗号について学ぶトラックです.
Xトラック
IoTセキュリティトラックでリバースエンジニアリグなど,分解・解析して学ぶトラックです.
Yトラック
OSやコンパイラを自作してみようっていうトラックです.
Zトラック
ITインフラストラクチャの情報セキュリティに関する研究開発に軸足を置いたトラックです.

応募課題


 応募した人全員が受けられるわけではありません.自分が受けたいトラックごとに課題があるので, 期日までに提出して合格した人が受けられます.ただ全問正解してないと受からないわけじゃないので安心してください. 応募課題の内容はまだ見れるので見てみてください.
 実際に何か課題を解く問題もありますが,意欲を示してくださいと言った,所謂お気持ち表明の方が大事だったりします.私がだした課題は過去に葬り去ったので出しませんが, ググったらいろんな人のがでてくるはずなので見てみてください.

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


 

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

 この講義は事前課題としてAWSの"GurdDuty"や"CloudTrail"といった,いろんな機能の使い方を学習があった.AWSを今まで使ったことがなかったのでこのC1の事前課題が一番大変でした. 講義の内容はc2でデプロイされたWebアプリケーションから侵害されたインシデントレスポンスを行うといったものでした.  まず,GuardDutyによって他リージョンにマイニングのインスタンスが立てられていることが検知された.よって,どのような被害が出ているかを特定します.不正に作成されたロールや インスタンスがないか確認します.次にCloudTrailでAPIの操作ログから攻撃者の痕跡を時系列順に精査します.ConfigやDetectiveを用いてより詳細なIPなどの情報を収集した.

 最近流行りのクラウドのインシデントレスポンスについて学べてよかったです.読むべきログの量がとても多くて大変だった.またログの効率的な集め方がわからず苦労した. AWSの設定不備による攻撃の体験としてCTF形式で学べるflaws.cloudというサイトがあるのでお勧めです.ざっくりとしたAWSの空気感がつかめると思います.

一般向け講義資料 (追記:2020/12/15)

[C2, C3]Long Live the Malware Analysis (Part 1, 2)


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

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

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

 実際のマルウェアの解析を体験することができ,とても勉強になりました.GhidraをCTFでデコンパイルしてコードの概形を把握するのにしか使用していなかったが,今回の講義で少しは使えるようになったと思います.

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


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

 講義資料の公開が禁止されていて上記の公式の説明にも具体的には書かれてないため,具体的に書きません.m( )m ただよくフォレンジックといわれて想像するメールなどのログやメモリ,ネットワークのフォレンジックではなくアーティファクトというもの初めて知って,とても興味深かったです.

[C5, C6]実践・難読化バイナリ解析(前編・後編)


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

 今までパッキングという言葉だけ知っていが、中身がどんなことしているか全く知らなかったが、そこを学べてとても勉強になった。難読化にどんな種類があって、実際に難読化されたコードを読んでみたり、解析をしてみました。解析の手法としてはシンボリック実行によるSAT/SMTソルバを用いた。実際に意味論的に難読化されたバイナリをSMTソルバを使用して解析しました。  

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


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

 サイドチャネル攻撃につい少し学んだ.最近話題になった電力消費から暗号を解読する攻撃ではなくログイン画面等のタイミング攻撃について学びました。また保護されていないセンサなどから利用者の個人情報を特定してみるといったハンズオンを行ったりしました。

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


 一般にサイバーセキュリティとは悪意を持った第三者からの攻撃から情報通信機器やデータを守ることに重点が置かれがちですが、これ以外に事故や自然災害から通信を確保することもサイバーセキュリティの大事な要素と考えます。 本講義では物理的な通信障害が発生するLAN(10BASE-T)をリモートで用意します。参加者はこれら障害のあるLANにおいて通信が可能な強靭なプロトコルを各自がデザインし実装しリモートの実機で様々な評価軸でプロトコルの強靭性を競います。 本講義の参加者はロバストプロコル オープン チャレンジ運営チーム(A1の受講者)が策定したレギュレーションで競技に参加し、各自が実装したプロトコルのプレゼンテーションを行います。 これを以下昨年ネクストで受講した修了生のブログです。参考まで。https://kawasin73.hatenablog.com/entry/2019/08/17/190025 A1の受講者に限らずセキュリティ・キャンプの参加者であればどなたでも参加可能です。

 A8については23日に個別に記事を書くのでそちらで

以上各講義の最初の引用はこちらより引用

その他


 講義のほかに交流会やBoF、企業説明会なども行われました。  交流会はmeetで定時になったら見知らぬ人6人くらいが集まって各自事前に作った、自己紹介スライドを流す意といったもので受講生の評判はあまりよくなかったので、来年は改善されていることを期待する。  BoF、企業説明会では、協賛企業の方々とあるテーマについて議論をしました。例えばスマートスピーカーに対する攻撃について議論しました。企業説明会では自分が興味ある会社の方から説明を受けたり、雑談したりしました。

おわりに


 独学では勉強しずらいことも講師の方の手厚いサポートを受けながら勉強することができるのでおすすめです。また、受講生同士など横のつながりや、講師の方との縦のつながり作ることができます。講義の内容も多種多様で興味のある分野と被ることもあると思います。受講生になればその分野のプロの方の講義を受け、話すことができる特権があります。やる気があれば応募を通過することができるのですでにある技術力よりモチベーションです。私自身セキュリティキャンプに参加して、とても勉強になりました。これからより勉強して同時にアウトプットしていきたいと思っています。

 セキュリティに興味がある人に限らず、ソフトウェアを開発するうえでもセキュリティを無視することはできないので普段セキュリティを勉強していない人でも興味がわいたならぜひ参加してみてください!