← Blog

セキュリティ・キャンプを終えて

セキュリティ・キャンプを修了して感じたこと、学んだこと

はじめに

本来はセキュリティ・キャンプでの活動内容を詳しく紹介したかったのですが、扱った内容の性質上、公開できることが限られているうえ、どこまで載せてよいかを自分だけで判断することも難しいため、終了後に提出した感想文を掲載して、この記事のまとめとします。

参加ゼミ:X1「IoT/組込み機器のリバースエンジニアリングゼミ」 本文:終了後に提出した感想文(約2,400字)

応募まで

参加のきっかけ

今回、私はX1「IoT/組込み機器のリバースエンジニアリングゼミ」に参加しました。

セキュリティ・キャンプの存在は、昨年、知人から紹介されたことで初めて知りました。しかし、当時は情報技術の世界に触れてから日が浅く、自分にはまだ難しいと考え、応募を諦めてしまいました。その後、別の機会に改めてセキュリティ・キャンプを紹介してもらったことをきっかけに、今回は挑戦してみようと思い、応募を決めました。

X1ゼミを選んだ理由

このゼミを選んだ理由は、大きく二つあります。一つ目は、紹介してくれた方と講義一覧を見ていた際に、このゼミが面白そうだと勧めてもらったことです。その後、自分でもほかの講義と比較しましたが、最も興味を引かれたのがこのゼミでした。

二つ目は、ソフトウェアだけでなく、ハードウェアや通信など、できるだけ多くの技術レイヤーに触れてみたいと考えたことです。IoT/組込み機器のリバースエンジニアリングでは、機器を外側から利用するだけでなく、その内部構造や動作をさまざまな視点から調査します。基板の観察という低いレイヤーから、ファームウェア解析やLinux OSの構造といった中間的なレイヤーまでを一貫して学べるという、このゼミならではの点が決め手となりました。

応募課題と事前課題

応募課題を通して得たもの

応募課題は、それまでに持っていた知識だけではほとんど解くことができませんでした。知らない言葉があるたびに調べ、その先でまた新しい言葉に出会い、とにかく知識を取り入れ続けました。特に、提示されたバイト列について、実在する機器のアーキテクチャに関する公開情報を基に考察する課題が印象に残っています。手探りの状態から調査を続け、納得のいく回答を作り上げられたときには、「もしこのゼミへ参加することがかなわなかったとしても後悔はない。むしろ、この課題を通して多くの知識を得られたこと自体が貴重な経験だった」と感じました。最終的には、自分の中で納得できるところまで回答を練り上げることができました。

また、応募課題では、脆弱性を発見した場合の対応についても問われました。これまで意識していなかった、ハードウェア解析を行う者が負う責任について考えるきっかけとなり、技術的な知識だけでなく、発見した情報をどのように扱うべきかという姿勢も学ぶことができました。

初めて触れたハードウェア解析

事前課題で実際にハードウェアへ触れたときは、何もかもが新鮮でした。いわゆる自作PCなどで用いられるCPUやメモリは見たことがあったものの、IoT機器や組込み機器で使われるような小さな部品を詳しく観察したことはありませんでした。そのため、基板上のチップや印字を読み取り、インターネット上のデータシートと照らし合わせる作業は、応募課題と同様に大変でした。しかし、調査によって一つずつチップの正体を特定していく過程には、パズルを解くような面白さがありました。

なかでも、FT232Hを用いたファームウェアの抽出が最も印象に残っています。データシートを基に、対応するフラッシュメモリのピンとジャンパケーブルを接続する作業には苦戦しました。講師の清水さんに通話で助けていただきながら試行錯誤を重ね、最終的にファームウェアの抽出に成功したときは、とても感動しました。それまで画面上のデータとしてしか意識していなかったファームウェアを、自分の手で実際の機器から取り出せたことは、記憶に残る経験になりました。

セキュリティ・キャンプ本番

参加者や講師との交流

セキュリティ・キャンプ本番では、当初想像していた以上に多くの方々と交流することができました。同じ開発Xゼミの参加者だけでなく、食事や共通講義で同じ卓になった方々とも話すことができました。また、名刺交換をきっかけとして、それぞれの興味のある分野や取り組んでいることについて、多くの情報交換ができました。受講生同士だけでなく、チューターや講師の方々ともお話しする機会があり、そのすべてが貴重な経験でした。

共通講義で広がった視野

共通講義については、参加する前は、どの程度内容についていけるのか不安に感じていました。しかし、実際の講義は説明が分かりやすく、構成や展開も面白かったため、内容が自然と頭に入ってきました。自分がこれまで触れてこなかった分野についても知ることができ、専門講義とは異なる方向から多くの刺激を受けました。

専門講義での学び

専門講義では、事前課題では触れられなかった部分まで、さまざまな計測機器を利用して観察させてもらいました。新しい機器や解析方法を知るたびに、自分の見える世界が広がっていくような感覚がありました。その後、自主的に解析を進める中でも、清水さんが先回りして用意してくださった助言や手助けによって、作業を順調に進めることができました。単に答えを教えてもらうのではなく、多くの要素に触れながら自分で考えられるように支えていただいたことで、最後まで走り切ることができたと思います。

X1ゼミでの協力

X1ゼミ内でも、参加者ごとに解析対象は異なっていましたが、互いに手を貸し合う機会が多くありました。それぞれが得た成果や発見について話し合う時間から学んだことも多く、ほかの参加者の解析内容を聞くことには、自分の作業とは異なる面白さがありました。未知の機器をそれぞれ異なる方法で調べ、少しずつ仕組みを明らかにしていく話を聞くたびに、とてもわくわくしました。

5日間を振り返って

最初に掲げていた目標にはあと一歩届きませんでしたが、それでも非常に満足のいく5日間となりました。技術的な知識や解析手法だけでなく、分からないことを自ら調べ続ける姿勢、技術を扱ううえでの責任、そして同じ分野に興味を持つ方々と交流することの楽しさを学ぶことができました。

今回身につけた知識や解析手法は、このゼミで扱った機器だけに限らず、ほかの機器を解析する際にも応用できるものだと感じています。一方で、今回の経験を通して、自分にはまだ知識も経験も足りていないことを実感しました。セキュリティ・キャンプで得た学びや人とのつながりを一度きりのものにせず、今後もさまざまな機器の解析に挑戦し、さらに成長していきたいと思います。