セキュリティ・キャンプ修了生にセキュリティ・キャンプの魅力などを語ってもらう修了生インタビュー第二弾。
セキュリティ・キャンプを経て自身のキャリアにどのような影響を与えたのか、現在の活動内容をお聞きします。
今回はセキュリティ・キャンプ全国大会2014修了の木村廉さんにお話をお伺いしました。

※2019年8月15日当時のインタビューを掲載しています。

木村廉

セキュリティ・キャンプ全国大会2014修了生。2018年秋から1年間カーネギーメロン大学(CMU)CyLabにてリサーチャーを務める。2017年セキュリティ・キャンプ全国大会、2019年セキュリティ・ネクストキャンプ、2020年Global Cybersecurity Camp講師。2020年、神戸大学大学院在学中に株式会社リチェルカセキュリティを設立。日本初の「攻めのセキュリティ」を専門としたサービスを展開している。


リバースエンジニアリングとの出会いと、現在

セキュリティ・キャンプとの関わりを教えてください。

初めて全国大会に参加したのは2014年です。当時はまだ現在のトラック制ではなくクラス制で、私はソフトウェアセキュリティクラスに参加しました。 2015,16年に解析トラックのチューターとして参加し、17年に同トラックの講師を務めました。 その後、2019年にセキュリティ・ネクストキャンプで講師をしています。

木村さんはリバースエンジニアリングなど、低いレイヤーに詳しいですよね。参加したきっかけは何ですか ?

基本的なプログラミングの勉強は高校1年生の時から始めました。その後大学に入ってからもしばらくはAndroidやiOSアプリ開発といったいわゆる一般的な情報系大学生をしていました。 しかし学部2年生になったある時、Twitterでフォローしていた人がゲームソフトの解析やプレー自動化をしているのをみて、一気にバイナリ解析技術に興味を持ちました。 そして、その方がセキュリティ・キャンプというイベントに参加しようとしている事を知り、私も挑戦してみることにしたのです。

セキュリティ・キャンプ卒業後について教えてください

セキュリティ・キャンプ参加後は一気に人脈が増え、CTFチームに誘われて大会に出たりカンファレンスや勉強会で登壇したりしました。 また、セキュリティというジャンルの垣根を超えて、競技プログラミングの大会であるICPCやIPAの未踏事業、Google Summer of Code(GSoC)といったものにも参加しました。ですが、最終的にはリバースエンジニアリングやエクスプロイト開発のジャンルが自分には最もしっくり来ました。

リバースエンジニアリングの楽しいところは何ですか ?

世界中の殆ど誰も知らない情報を自分で独占できるところです。そのための1つの手段としてリバースエンジニアリングを行っています。 CTFなどをやっている人達の中にはリバースエンジニアリングという作業自体がと好きだという人がいますが、その感覚とは少し違います。一方、ソフトウェア開発に関しては私も成果物よりプログラミングという作業が好きなので理解は出来ます。 実はリバースエンジニアリングは始めから得意だったわけではありません。

セキュリティ・キャンプ参加当時(2014年)はOSやルーターを作る、いわゆる作ろうクラスというのがあってそちらに興味がありました。 実際に参加したのはソフトウェアセキュリティクラスというバイナリ解析をやるクラスでしたが、当時の自分にとっては高度な内容の連続で、ここまで苦労してバイナリと格闘する意義があるのか正直疑問でした。

キャンプ卒業後しばらくはOSやCPU、コンパイラ等の開発に明け暮れていました。 いわゆる”低レイヤー”と呼ばれる分野に関するありとあらゆる書籍やWebサイトを読み尽くし開発に没頭する毎日でした。 また、カーネルエクスプロイトによる権限昇格といったセキュリティネタもかじってはいましたが、積極的に取り組んでいたわけではありません。

しかし、1-2年程して転機が訪れました。 ゲームコンソールハッキング界隈との出会いです。 彼らの能力の高さ、幅広さはそれまでの私の常識を覆す程凄まじい物でした。 ゲーム機のセキュリティ機構を突破するための針の穴を通すようなエクスプロイト開発力。 これを利用して得た僅かな情報からOS、ハイパーバイザ、ファームウェアまで解析してしまう程のリバースエンジニアリング力。 さらには、解析結果を利用してエミュレータやコンパイラまで開発してしまう始末でした。

驚くことに、この神がかり的なプロジェクトはわずか3人の技術者達の手によるものでした。 これが当時の私にとってはあまりにも衝撃的であり、自分の中の考え方が大きく変わりました。 世の中にはシステムプログラミングやリバースエンジニアリングといった囲いの内に収まりきらない程能力を持て余した人間がおり、彼らにしかなせない神がかり的な領域が存在する事を知りました。 それからというもの、私もシステムプログラミングという垣根を超えて、様々なスキルを磨き、組み合わせる事に没頭しました。 この動画でも紹介されているように、彼らのようなエンジニアのことを、フルスタックリバースエンジニアと呼ぶそうです。

なので、私はリバースエンジニアリングという作業自体が好きと言うより、そこから得た貴重な自分だけの情報を使って目標にコミットするのが好きです。

リバースエンジニアリングはどうやって学んでいったのですか ?

基本的にはTwitterやブログから情報を得ています。

バイナリを解析しないとわからないようなマニアックで実践的な情報は書籍としてまとめられている事も少ないので、世界中の技術者達のアウトプットをかき集めて学ぶしかないと思います。

実はこの方法はセキュリティ・キャンプ講師の方からお聞きしたものです。 こういった方法論は素直に先人から学ぶのが早いですね。

今やっていることは何ですか ?

最近は、もっぱらAndroidデバイスの解析や脆弱性を探すのにハマっています。Androidは非常に複雑なシステムなので始めは書籍やWebにある情報、ソースコードなどを読み、必要となる道筋を立て、実際に実機上で試しての繰り返しです。

また、脆弱性解析の自動化のような、ハック作業に役立ちそうな方法論を最新の論文から仕入れたりもしています。Androidデバイスから脆弱性を見つけたい、といったざっくりとした目標をまず立て、そこにボトムアップ/トップダウンでアプローチしていきます。これを続けていれば、ハックテーマは尽きませんね。

エンジニアリングとアカデミア、差別化について

木村さんは 2018 年からカーネギーメロン大学(CMU)の CyLab で客員研究員をされていますが、アカデミックの道を選んだ理由は ?

正直私の取り組んでいるジャンルに関して言えば、エンジニアリングとアカデミアの境界ってかなり曖昧だと思っています。アカデミアのモチベーションの多くが、脆弱性をたくさん見つけたい、リバースエンジニアリングをもっと短時間で終わらせたいというエンジニアリング的な要求から来ているからだと思います。このような実践ありきの研究というのは自分も非常に興味がありましたし、自身のエンジニアリングスキルにも活かせます。

そこで、脆弱性解析、エクスプロイトコード自動生成技術の権威であるカーネギーメロン大学(CMU)に留学する事を決意しました。 CMU在籍中に最も驚いたのは、世の中の最先端と言われている論文や技術の多くは実は何年も前からその分野の権威達が話し合い、計画し、作り上げたものだという事です。アパレル業界の「今年流行りのファッション」に近いものがあります。

もちろん、天才的な学生がある日全く新しい視点、ジャンルを築くという事もありますが、大枠は大学や企業、政府、研究機関の産学連携によるプロジェクトがほとんどです。つまり、真の意味で世界最先端の技術を追うには、インナーサークルに食い込む必要があります。もし自身のスキルを持て余してしまっている人がいれば、ぜひこういった界隈に飛び込んでみてください。

アメリカ生活について

最も印象的なのは、やはり周りの学生のレベルの高さです。 世界中から選りすぐりの研究者が集まっていて、単に知識が多い、研究力が高いというだけに留まらず皆しっかりとした”我”を持っていて様々な議論ができます。 適当なカフェへ入ったら、隣に座ってる人が元NASAということもありました。 私のラボの隣にも、名前は出せませんがアメリカ政府の某機関の方が座っていました。

レベルが高い、自分で差別化を測っていく、自分で開拓しようというモチベーションがあるんですね

そうですね。研究分野は違えどハングリー精神を持っている人はかなり多かったです。文字通りアメリカンドリームを掴むために渡米してきた人もいます。お金儲けのために博士を取って起業する人もざらにいました。

自分で情報を見つけてここにくる、モチベーションのあるコミュニティを探しているんですね

そこまで高尚なことは考えていなくて。単純に研究や技術が好きで、その面白さを共有できる・認めてくれる場を見つけているだけです。趣味の延長みたいな感じです。

自分が夢中になっているものが変わっている。さらに別のことを極められることができるのはなぜですか

先程も言ったように、私はリバースエンジニアリングやシステムプログラミングといった要素技術を組み合わせて目標に向かうのが好きです。そのために、TwitterなどのSNSを活用して端から情報を集めています。

断片的な情報でも例えばこれとこれは組み合わせられるんじゃないかとか、自分なりの”解釈”が出来るようになっていれば具体的な方法論は変えても問題ないと思っています。点と点がつながって線になって視野が更に広がるという事もあるでしょう。

セキュリティ・キャンプの先輩や講師の方も意識して見ています。この人達の持っている技術の可動部はどこなのか、どのような芯があるのか、何を基本的なモチベーションにしているのかというのは先人から学べる事です。私もキャンプで講師をさせて頂く時は、技術を伝えるより自分の芯を見せるように意識しています。

これからしたいことは何ですか ?

今までは自分の単なる趣味で終わっていたプロジェクトが世界でどれだけ評価されるのか、お金になるのか挑戦したいです。具体的な選択肢としては会社を作るか、就職して世界に貢献できるようなプロジェクトへ関わりたいです。

難しく考えずに、好きな道へ

セキュリティ・キャンプに参加してよかったことは何ですか

やはり、人とのつながりですね。自分と同じことに興味を持っている人や、自分のロールモデルとなるような講師の方達と出会える場は貴重でした。

技術は独学で進めることができるのですが、人脈は実際に会わないと作れないですからね…。単にSNSでコミュニケーションを取るというのと実際に対面で会うのとでは大きな差があると思います。 CTFや勉強会でもセキュリティ・キャンプ卒業生とは出会うことがあって、参加年に関係なく共通の話題になりますね。

セキュリティ・キャンプの卒業生やセキュリティ・キャンプを志している方に話を聞くと、このままセキュリティの分野で進んでいけるのか不安だという声も聞きます。こういった方々に向けて、何かメッセージをお願いしたいです。

あまり深く考えなくていいと思います。私もそうですが、キャンプ参加時は開発寄りの話に興味があってある日突然セキュリティに目覚める人もいますし、逆もしかりです。芯がしっかりしている人は時代に合わせて臨機応変に興味を持てる分野を探せると思います。そのための土台としてまずはセキュリティ・キャンプから入ってみるというのもありなのではないでしょうか。

セキュリティ・キャンプに行ったら分野をセキュリティに絞ってしまう人もいますが

セキュリティ・キャンプはあくまできっかけです。キャンプで学んだ内容イコール自分の専門分野とする必要はなくて、あくまで自分を見つめ直すきっかけとして、あるいは人との繋がりを作る交流の場として活用すれば良いと思います。

セキュリティ・キャンプに興味を持った人へメッセージをお願いします。

5日間朝から晩まで様々な技術テーマに触れる事ができます。優秀な技術者の方達が講師をされているため質も一概に高い所で保証されており、非常に効率の良いイベントだと思います。難しく考えず大きな船に載るつもりで、少しでも興味があれば参加してください。

応募段階での技術レベルはそこまで関係ありません。参考までに、私は参加当時Intel CPUにCore i7やXeonといったブランド名が存在する事すら知りませんでした。 応募用紙を通して自分の芯をいかに伝えるかが重要だと思います。