セキュリティ・キャンプ2020で伝説(?)を残してきました 【Boushitsu Advent Calendar 2020 18日目】
ご挨拶
2020年は3ヶ月くらいしかなかったような気がしますが、もう少しで終わってしまうことに気が付きました。 今年のことは今年のうちに書いておこう!ということでセキュリティキャンプの参加記を深夜にせっせこと書き下ろしています。 (危機管理コンテストについても書かないともう次の大会が始まってしまうことに気づいて焦ってる←) だいぶ長くなってしまいましたが、よろしければご一読ください🙇♂️
セキュリティ・キャンプって?
IPAとかが主催しているセキュリティにまつわる最先端の勉強ができるすごいやつ
しかも無料
例年だとただで宿泊費とか出てたけど今年はオンラインなのでそこらへんがなくてちょっとぴえん🥺…
今年は8つコースがあって自分はDの課題駆動トラックとして参加させていただきました
応募課題
応募課題がそれぞれのトラックごとによって違います。
自分の解答を載せるのは恥ずかしいので気になる方はTwitterのDMとかで聞いてくださればちょこっと答えます…
とにかく自分が勉強していて出しやすそうなところ、もしくは興味あるところに真剣に取り組めば大丈夫だと思います。
0週目
この日は応用情報技術者試験の試験日でしたがこちらの方が貴重なので優先しました(勉強間に合わなかっただけなんて口が裂けても言えない)
法律についてのお話や、技術的な面ばかりでないことについて聞けてとても面白かったです。
また、この日はグループワークの顔合わせなどもありました。大学などで何度かグルワはしてましたが、お強い方々しかグループにおらずビビり散らかしていました。
1週目
C1「なぜ、Webサイトは乗っ取られたのか?AWS環境における実践的なインシデントレスポンス」
AWSで起きやすい事故とか、インシデントが起きた際にどういうツールとかを使えばいいかなどを学びました。
その後、実際にAWSで立てられたSecutter(secureとは言っていない)という脆弱性もりもりのやられアプリ を基にインシデントの原因究明などを行いました。
危機管理コンテストという大会に参加したことがあるのですが、原因を突き詰めるのは似通ったところがありとても楽しかったです。 特にAWSのログ解析ツールなどがとても使いやすくgrepしてられねぇ!wと言ったお気持ちでした。
C2,C3「Long Live the Malware Analysis」
これは二コマ分の授業でしたのでこちらにまとめて記載します。
講師の中島さんと原さんがGhidra実践ガイドという本を書かれていらっしゃる方で講義では主にGhidraを使ったマルウェアの静的解析を行いました。
今までバイナリを見るなどの機会はあまりなく、どちらかと言えば苦手意識の方が強かったのですが逆アセンブル自体がパズルみたいですごい面白くて、 それに付随する感じでバイナリも触ってみたら案外めちゃくちゃ意味がわからないことではないというが実感できました。
マルウェア解析だと最後はemotetというマルウェアを解析しました。 実際に使用されていたマルウェアを解析するようなことは普段なかなかできないことですし、講師のプロの方々の解析手法を実際に見て手を動かして学ぶことができてとても良い体験になりました。
2週目
C2,C3「Long Live the Malware Analysis」
↑に書いたので割愛
B4「つくって学ぶ、インターネットのアーキテクチャと運用」
IPアドレスの話などから始まり、ルーティングやDNSと言ったインターネットのアーキテクチャについて学びました。
その後にsshでハンズオン環境につないで、VyOSを触ってみたり、経路を失わせてルーティングが変わることをみたり、DNSキャッシュポイズニングを実際に体験したりしました。
ハンズオン形式によってとても理解を深めることができたので、良い経験になりました。
3週目
この日は講義がない日でした
ホームルーム
ホームルームはとてもアットホームな感じでいつも先生方のお喋りを聞いて笑ったりしていました。
最後に「最終日よかった講義とか感想を言ってくれる人いますか?」と聞かれたので立候補をしたのですが、これがある出来事につながるとは思いもよりませんでした…
協賛企業イベント
私はソニーさんと任天堂さんの企業紹介のお話を聞くことができました。抽選で、どちらも倍率が高かったと思うのでとても嬉しかったですし、お話もとても参考になりました(詳しいお話ができないのが残念です)
4週目
C5,C6「実践・難読化バイナリ解析」
この講義では、難読化されているバイナリをどう読みといていくか?ということについて学びました。
難読化には余計なコードを入れたり、構文を変えたり、意味自体を変えてしまうことで、リバースエンジニアリングした際に解読をしづらくさせる方法がありました。 そんなことを学びながら考えていたのが↓のツイート
クソコードとコードの難読化って紙一重?
— おちゃむら(てっく) (@otyamura_tech) November 15, 2020
概要を学んだ後は、実際にコードに難読化を施したり、ツールを使って難読化したものをIDAを用いて眺めてみたりしました。
TigressやO-LLVMを使うとFizzBuzzとかがとんでもないことになっていました
その後は、非難読化するための手法などを学びました。
シンボリック実行などとても難しい話だと感じたので勉強しなきゃなぁと感じました…
5週目
C7「最先端のオフェンシブセキュリティ研究入門」
この講義では、最先端の研究分野がどのようなものなのかについて学びました。
研究が仕事だとお金を稼ぎながら最先端の技術について関わることができて、論文などの発表などをすることができるのでちょっと興味が湧きました
個人的に、すごくためになったことは研究者の方が、どのように情報を集めているのか聞けたことです。
基本的には、usenixなどの大きい国際会議の論文や発表から情報収集をして、ツイッターなどのソーシャルメディアも常に追うと言ったことなどで、特に、ユーザとして積極的にサービスや製品に触ることが大事だということを学びました。
その後は、オフェンシブセキュリティ研究でホットなワードであるサイドチャネル攻撃についてハンズオンなどを通して学びました。silhouetteなどはとても面白かったです。
A8「ロバストプロコル・オープンチャレンジ大会」
10BASE-Tで繋がれているラズパイ同士にノイズが発生するため、それに強いプロトコル(プロコル☺️)を作って競う講義でした。
プロトコルについては概要しか学んだことがなかったので実際にどう実装していくかということを学んでとても新鮮でした。
グループ同士での開発では、全く力になれず、プロトコルについて学んでいるだけで終わってしまいましたが、メンバーがとてもお強く1位になることができました。自分でもしっかりと復習をしていきたいです。
最終日
グループワーク
グループワークの発表では、チーム起床試験fall guysとして進捗アシスタントbot(仮)を発表しました。初対面の人たちのコミュニケーションからgithubを用いたチーム開発をサポートするdiscord botを鋭意制作中です。
成果発表
集中コースから成果発表が始まり、この後に波乱が起きるとも知らないのんきな僕はみんなすごいなぁ!と聞いていました
いざ選択コースのAトラックから成果発表が始まると僕は凍りつきました。それはなぜかというと、各トラックの受講生が、そのトラックの講義で学んだことを話していたからなのです…
上記の受講した講義を見ていただけるとわかるのですが、Dトラック受講生なのにDトラックの講義を一つも受けていなかったのです…
もう諦めて正直に、自分が受けた講義で印象に残ったことについて発表するものだと勘違いしていたことを話し、C2,C3の講義について熱く語ったのちに、謝罪をさせていただきました…
その時のgoogle meetのチャット欄では「Cトラックのスパイ」であったり、「失礼すぎるw」や、「伝説」などがあったことを今でも覚えています…
この場をお借りしてDトラックの講師の方々に今一度謝罪をさせてください…本当にすみませんでした…
ネクストの方々の成果発表は、やはり全国大会よりもさらに上の成果を残していて、いつか参加できるレベルになりたい!と強く思いました。
閉講式
Youtube Liveでの閉講式で、本当に終わってしまうのかという実感が少々薄かったのですが、次々に現れるお偉い方々のお話を聞いて次第に実感が湧いてきました。
終わりに
セキュリティキャンプは、自分のレベルではまだまだ早いものだったと思っていましたし、受け終わってからも少し早かったのかという風に感じることはあります。
しかし、難しかったことはあれど、それに精一杯ついていくことで自分の力がメキメキと成長していくことを感じ、充実した一ヶ月ちょっとでした。
特に、自分は普段、これがしたい!という分野が定まっておらず、フラフラしていました。その中で、今回のキャンプを通して、少しずつ定まってきたというのが一番の収穫です。
普段は体験できないことばかり体験することができたので来年も力をつけて参加することが目標です!本当にありがとうございました!!
長くなってしまいましたが、ここまで付き合ってくださりありがとうございました!