ハードウェアとソフトウェア、セキュリティの交わるところ
イエラエセキュリティの顧問を務める川口洋が、イエラエセキュリティを支える多彩なメンバーと共に、サイバーセキュリティやサイバーリスクの今を語り合う座談会シリーズ、第20回をお送りします。
川口洋氏は、株式会社川口設計 代表取締役として、情報セキュリティEXPO、Interop、各都道府県警のサイバーテロ対策協議会などで講演、安全なITネットワークの実現を目指してセキュリティ演習なども提供しています。
イエラエ顧問として、「川口洋の座談会シリーズ」を2019年に開始。サイバーセキュリティを巡る様々な話題を、社内外のゲスト達と共に論じ語ってきました(川口洋の座談会シリーズ )。
今回はゲストとして、2人のイエラエメンバーが集りました。高度解析部 高度解析課の白木光達、そしてイエラエセキュリティの執行役員 CTOである千田雅明が初登場します。IoTや車など、ハードウェアを伴うセキュリティ脆弱性とその対策について、顧問・川口洋が詳しく聞きます。どうぞお楽しみください!
イエラエセキュリティ顧問/株式会社川口設計 代表取締役
川口 洋
2002年 大手セキュリティ会社に就職。社内のインフラシステムの維持運用業務ののち、セキュリティ監視センターに配属2013年~2016年 内閣サイバーセキュリティセンター(NISC)に出向。行政機関のセキュリティインシデントの対応、一般国民向け普及啓発活動などに従事2018年 株式会社川口設計 設立。Hardening Projectの運営や講演活動など、安全なサイバー空間のため日夜奮闘中。
株式会社イエラエセキュリティ 執行役員 CTO
千田 雅明
株式会社イエラエセキュリティ 高度解析部 高度解析課
白木 光達
2019年にイエラエセキュリティへ新卒入社。高度解析部にてスマートフォンアプリを中心にソフトウェアや組み込み機器等の脆弱性診断に従事。2016年のセキュリティキャンプ全国大会に参加。2017-2018年にSECCON連携大会の運営を行い、現SECCON実行委員。リバースエンジニアリングが好き。一つでも多くの脆弱性を見つけるため日々奮闘中。
ネットサービスど真ん中企業からIoTセキュリティに転じたCTO
川口洋(以下、川口):今日は千田さんと白木さんにお越しいただきました。まずは自己紹介をお願いしたいと思います。白木さんは1人は「セキュリティ界の猛者が集うイエラエ新入社員、 驚くべきその“自己PR方法”とは?」にて登場していただきましたね。初登場のCTO 千田さんは、今はどのような仕事をメインでされているんですか。
千田雅明(以下、千田):今は車の仕事が多いですね。車の会社に行って、自動車に関する仕事をしています。
川口:喋れないネタが多そうですね(笑)。使っている時間はほぼ100%自動車ですか?
千田:そうですね。イエラエのオフィスにもほとんど来てないです。
川口:白木さんは、最近のお仕事はどうですか。
白木光達(以下、白木):割合は時期によって変わりますが、車、アプリ、IoTあたりの仕事をしています。
川口:今日はIoTや自動車といった、いわゆるパソコンの中のソフトウェアセキュリティではなくて、機械やハードウェアが絡むセキュリティの話をしていきたいと思って集まっていただきました。
ウェブやサーバーの脆弱性診断の情報って世の中にいっぱい出ているけど、IoTやハードウェアに関わるセキュリティに関する知識は、どこの誰に蓄積されているんでしょう。お二人はどんなキャリアの中でハードウェアのセキュリティに関する知識を蓄えられたんですか。
千田:僕は前職がLINEなので、LINE自体のサーバー周りなどに関わってました。
川口:LINEみたいなインターネットど真ん中からハードウェアの分野に飛び込んできたわけですね。要求されるスキルセットも違ったと思いますが、それは勉強すればいいかって感じですか?
千田:そうですね、ハードウェアだからと言って、特に、そんなには変わらない気がします。「ファームウェアを抜く」というのがハードウェア診断の最終目的なので。
川口:出来る人からすると「同じITじゃないか?」って感じですか。
白木:基本的なところは共通してるかもしれませんね。
川口:僕からするとずいぶん遠いジャンルを攻めてる印象ですが、それでもできちゃうんですね。そういう分野に関わってるのもイエラエの珍しいところ、魅力的なところですよね。
白木:千田さんはなんでもできるイメージですから。
川口:「仕様書とマニュアルがあれば何でもできるでしょ」と言われたらそうかもしれませんが、業務ジャンルが違いすぎて、イエラエの社内でもこれまでの話が想像出来る人って2~3割じゃないかと思うんです。2人がサラリとやり過ぎているというか。
白木:僕も千田さんがサラリとやってるのを見て、なんでこんなことサラリとできるんだ?って思ったりします。
川口:みんな、今、普通に仕事やってますけど、「どうやってその階段上ったんですか?」「何の案件を経て何を考えて、そこに至ったんですか?」みたいな人が社内にたくさんいますよね。白木さんはまだ入社1年目だけど、3年後にはそうなってると思いますよ。
白木:そうなりたいですね…!
とにかく全てが手探りな“IoTセキュリティテスト”
川口:脆弱性診断の手順やノウハウが確立されていない中で、道なき道を切り開いていく感じで仕事をされていると思うのですが、ソフトウェアの脆弱性診断と比べてどのようなところが大変ですか。
千田:仕様書を読むのがまず大変ですね。チップの仕様書を読んだり、ハードウェアのマニュアルからSDKからどう開発するか、ファームウェアがどう作られるか調べたり、RFCいくつみたいな規格の仕様を知る必要があったり、場合によってはそれを読んでプログラムに起こして診断ツールを作らなければいけなかったりします。
川口:診断ツールを作るところから始めなきゃいけないんですね。ウェブアプリの診断だと既存の診断ツールが沢山ありますが、IoTみたいにハードウェアが絡んでくると必要なツールがなかなか無いですよね。
千田:酷い状況だと、ツールだけではなくて仕様書が無いときもありますね。プロトコルも分からず、何のデータを送っているのかもわからないし、受け取っているデータがなんなのかもわからないけど、診断する。
川口:仕様が開示されない状態で脆弱性を調べていかなければいけない状態というのは、ずいぶんハードな仕事ですね。真っ暗闇の中で形から探っていくことからやっているんですね。
千田:そうですね、ですから、仕組みを理解している人が一番強いですね。これまで車を作ってた人とか、ECU(エンジンコントロールユニット)を作ってた人とか、チップメーカーに勤めてた人とか。
川口:パソコンやインターネットで過ごしてきた人はECUなんか触ってこないですからね。車やIoTみたいに、パソコンとソフトウェアだけのときに比べて、ハードウェアが絡んでモノが動くと、命令のインターフェースが難しそうなイメージがあるんですが、そこはどうですか。
千田:ファームウェアが外にあればそれを使いますし、無い場合はチップの中から抜くことになるので、デバッグインターフェースが使えれば使う、という感じですね。
川口:まずは箱開けて基盤を見るところから始まったりするんですよね。チップが隠れてたら剥がしたりするんですかね。
千田:チップを見ても、型番のマークが消されてたりする場合もあります。
川口:まず何のチップか探るところからなんですね。そういうのって、作った人に聞いても教えてもらえないんですか?
千田:作った人も知らない場合がありますね。製造メーカーと設計をする人は別の場合があるので、設計側が「こんな感じ」と仕様だけ出して他の会社に作ってもらったりしていると、細かいところがわからなかったりします。まったく分からないわけではないですが、実際には、作った人達に聞かないとわからない。
川口:脆弱性の診断をする対象として、出来上がったもののチェックが多いですか。開発中の物のチェックが多いですか。
千田:比較できるほど多くの案件に関わっていないですが、どちらもありますね。
川口:製品として売られているもので脆弱性を発見しても対応が大変ですよね。
白木:開発の段階で見つけられたとしても、巻き戻せない場合もあります。そういうときは次の型番で対応したりということになります。
川口:パソコンのソフトウェアだったらアップデートで更新できるけど、ハードウェアだとそういう仕組みが用意されていない場合も多いですよね。ハードウェアが絡むものって、実際に脆弱性見つかったらどうするんですか? お客様は脆弱性が無いようにと祈りながら、お二人に診断を頼んでいても、実際には出てきたりするわけじゃないですか。報告したものは直されているんですか?
白木:直せる範囲は修正していると思いますし、難しいものでも、緩和策を入れることはできるので、重大な問題はそうされていると思います。
川口:お二人は、クライアントさんから診断だけでなく緩和策を期待されることも多そうですね。
電気パルスを操りチップのセキュリティを突破!
川口:調べる対象によるとは思いますが、ハードウェアのスペックが小さい時があると思います。攻撃側の目線に立ったとき、リソースの少なさで影響が出たりすることはあるんですか。「パソコンやスマホだったらこういう攻撃ができるのに攻め切れないな」という、攻める側の制約というか。
千田:攻める側としてはあまり関係ないと思いますね。チップの中のフラッシュメモリにファームウェアが入ってる場合が多いんですが、中に入ってるとデバッグ用のインターフェース経由じゃないと抜けなかったりするので、抜くのは難しいです。メモリ容量に収まらないと外部に置いたりもするんですが、外は別物なのでかえって抜きやすくなったりしますね。
川口:チップのメモリに入っている場合は、攻撃を諦めてしまうんですか?
千田:Linuxが動いてるルーターみたいなシステムであれば、HTTPを処理する脆弱性などを利用することを試したりします。
川口:違うところからのアプローチを考えるわけですね。
白木:あとは、グリッチングでパルスを入力したりして、セキュリティの設定をバイパスしてアクセスすることもあります。
川口:「グリッチング」って初めて聞きました。詳しく教えていただいていいですか。
白木:回路にパルスみたいなものを入力して、ある命令を狙ってスキップさせたりする手法です。
川口:そういうこともやるんですね。
千田:電圧を低くしたり電流を制限すると、動作が不安定になることがありますよね。JTAGを起動したときにCPU内の設定を判定をする瞬間があるんですが、その瞬間のみ電圧値が低くて、おかしな動作をしたりすると、たまたまOKになっちゃったりするんですよね。
川口:電圧や電流をコントロールするわけですね。パソコンだけ触ってるとそういうのって意識しないですよね。でも、それってすごい短い…瞬間じゃないですか。
千田:いろいろなパルスを生成して試したりしますね。
川口:そんなジャンルなんですね。やっていて機械から火が出たりしないんですか。部品焦げちゃったみたいな。
千田:そういうこともありそうですね(笑)。
白木:普通は、回路に手を加えたら壊れますしね(笑)。
川口:回路系の診断をやってるところとか、見てみたいですね。お客さんのところでやっていると難しいと思いますけど。あ、この会議室にゲーム機がありますけど、ハッキングしたりするんですか。
白木:それは、単純に遊ぶ為のものですね。
千田:そこにあるテレビはハッキングしてた気がします。
川口:そういう話を聞くと、イエラエは社用車でテスラがあったと思いますが、あれもハッキングし尽くしたのかな?と想像してしまいます(笑)。
IoTセキュリティの試行錯誤は、ノウハウ共有が難しい
川口:千田さんは、お客さんのところに1人で行ってるんですか?
千田:濱田さんと一緒に2人で行っています。白木さんも一緒に行ったりします。その時に手が空いている人がお客さんのところに行っています。
川口:要求度合いがすごくて、余ってる人にできる内容じゃないと思いますけど…。
白木:べつに千田さんは、余ってるから行ってるわけじゃないですから(笑)。千田さんじゃないとできないから行っているのは間違い無いですから(笑)。
川口:例えば車が対象だと、物理的に車が無いとダメなので、お客さんのところに行ってるんですか?
千田:僕が行っているのは車のメーカーではなくて、同じプロジェクトをやっている会社に行っています。
川口:オフィスに机とパソコンがあればいいっていう環境じゃないですよね?
千田:ECUがあったりしますね。
白木:いろんな機材があったりして、普通のオフィスって感じではないですね。
川口:そういう仕事って、持ち帰りの仕事が難しかったりするんですか。製品自体の持ち出しができないとか。リモートでできる仕事なら、社内で知見の共有がしやすいと思いますが、現地の限られたスペースで検証が必要だったりすると、そこに携われる人数が少なくなるということですから、知見の共有が難しいですよね。
白木:そうですね。ハード系の知見の共有は難しいなと思いますね。
千田:発売前だったりすると、お客さんのところに行くしかないですね。
川口:イエラエだけの問題じゃなくて、それがその業界全体の課題になってるわけですよね。GitHubに気軽にソースコード上げて…というようなジャンルではないですから。
千田:僕はイエラエのオフィスから、ロボットアームで操作できるようにしたいですね(笑)。
川口:イエラエに入社している人って、「働きやすさ」を求めてる人も多いと思うので、決まった場所にいかなきゃいけないとか、スーツを着なきゃいけないということ自体が大変な人もいるかもしれませんね(笑)。
セキュリティテスト“後”の難しさは、IoTならでは
川口:ハードがあると仮想マシンやクラウドで完結しない難しさはありますよね。こういう「モノ」って製品の開発をしている人たちがいると思うんですけど、早く直せるというか、見つかった問題に対して早くアプローチできる組織って、どういう組織だと思いますか。
いわゆるPSIRTみたいな組織をお客さんが持っていたら問題が早く直るとか。どういう組織があったらイエラエが指摘した脆弱性にお客さんが対応できるのか。こちらから指摘しても、それが直らなかったら勿体無いですよね。
千田:そうですね、ネックになることの1つは、開発している会社が“全部の権限”を持ってるとは限らないことです。ソースコードを見せてくれる権限が無い状況だと、対応が難しいケースがあります。他にも、古い製品だと、開発会社が既に無くなっていたり、何年も前にチップがディスコンになっていて仕様書すら見つからないものがあったりもします。
川口:……そういう部品が組み込まれて製品が世の中に出てるのが恐ろしいですね。それでもクオリティを保っているのはすごいですけれど、一社だけで作っていないことで難しい状況が生み出されていそうです。
ソフトウェアなら、マイクロソフトやアップルなど、外注も入っているとはいえ自社のエンジニアがつくってることが多いじゃないですか。ハードウェアだと1社で完結することが難しい。ソフトウェア業界に比べて、ハードウェアは分業化が進んでいるから、そういった対策をするのが難しいということですね。
千田:そもそも直すことを想定してないケースも多い気がします。今でこそセキュリティの必要性が叫ばれていて「やっぱり直そう」って話がありますが、ちょっと前まではそもそもそういう「モノ」はインターネットに繋がっていなかったものですから、直す必要が無いのではと言われたり。あとは、あまり売れていないから、直す費用が出なかったり…。
川口:誰が回収して費用を持つのか。場合によってはリコールになったりしますけど、そこまででもない時に、企業としてどこまでやるかというのは、判断は分かれますよね。でも、その中でも、直したい方々が、イエラエに診断を頼んでくるわけですよね。
千田:直したいというのもありますし、現状を把握したいという要望もあると思います。
川口:実際にやってる人から話を聞いてみると、いろんな課題があるんですね。
千田:あと、現実的に、“直せない”問題もたくさんあります。
川口:どういう問題だと、直せないんですか。
千田:例えば1回しか書き込めないファームウェアは、1回書いたら終わりなので直せないです。出荷時に書いて、フラグを立てて、書けなくしてしまう。
川口:そうすると二度と書き込めない。
千田:そこにバグがあるともう直せない。
川口:そうなると製品作り直しになっちゃうんですね。イチから。
千田:書き換えられて誤動作するほうが問題と考えている場合は、書き換えられないほうが安全なのかなと思います。
川口:後から変に手を加えられてないのも重要なことですね。しかもそれが製品の特許や知財に影響してくると、イエラエとしても実績のアピールが難しいし、企業さんとしてもアピールしにくいところはありますよね。
イエラエのみなさんがサラリとやってるけどすごい!ということを、なんとか文字に残しておきたいですよね。今回、千田さんに初めて話を聞いてみて、白木さんが「すごい」って言ってるのがようやく分かりました(笑)。
白木:ホントに「いつの間にやったんですか」って感じのことがすごく多いですね。
千田:そんなことありましたっけ?
白木:いや、いろいろありますよ。本当になんでも知ってるんですよ。
川口:白木さんから見た、千田さんのすごいエピソードって何かあったりしますか。SDKとかマニュアルとかファームフェアの仕様書って、あそこにあるだろうって探しにいくわけですよね。
白木:知らないとそもそも探せないとは思うんですけど、そういう知識を自分の中に貯めこんでいて、さっと引き出せるのが強みなんだと思います。
例えばチップ間通信の仕様とかをちゃんと把握されているので、例えばハードを解析する上でも、ソフトウェアを見て「ここにデバッグポートがあるんじゃないか」といった見方ができるんだと思います。
川口:デバッグポートを見つけることだけでも、経験値の差があるわけですね。デバッグポートを見つける時間が、千田さんだと1日でできるけど、白木さんだと3日くらいかかるみたいな。
白木:そうですね、僕だと電流値とか電圧値を調べて探すところを、千田さんはパッとソフトウェアを解析してあたりをつけて、CPUの仕様書を見て、その繋がってる先を調べてサッと解決するみたいな。
川口:倒した敵の数が違うんでしょうね。ドラクエの経験値稼ぎみたい。
白木:バイナリの解析も桁違いに速いですね。僕がちょっと探し始めたくらいのタイミングなのに、千田さんはもう問題を見つけていたり、ということもあります。
川口:達人の域ですね。
白木:チップ間通信のハンドラもさらっと解析したりして。
川口:いままで出てきた敵というか、仕様書のパターンや事案が蓄積されているからわかるわけですよね。
千田:うーん、まあ、そうですね。
川口:千田さんのレベルにイエラエのメンバーの実力を高めていくのは至難の技ですよ。本当に属人的にならざるを得ないジャンルを2人で攻めているわけですね。20年前のインターネットセキュリティみたいな感じで。セキュリティ診断が今ほど手順化されていない、職人芸で戦ってた時代を見てるような感じがします。
では、いい時間になってきたので、最後にお二人から今後の抱負を伺いたいです。千田さんはいかがですか。リモートワークできるロボットアームを作るとかでもいいですよ(笑)。
千田:それはちょっと面白そうだと思ってます(笑)。
川口:白木さんは何かありますか。
白木:千田さんに少しでも近づけるように、頑張りたいですね。
川口:ひたすら敵を倒していくしかないですね。
白木:1つ1つ積み上げていくしかないと思っています。
川口:今日はありがとうございました!