ラック・セキュリティごった煮ブログ

セキュリティエンジニアがエンジニアの方に向けて、 セキュリティやIT技術に関する情報を発信していくアカウントです。

【お知らせ】2021年5月10日~リニューアルオープン!今後はこちらで新しい記事を公開します。

株式会社ラックのセキュリティエンジニアが、 エンジニアの方向けにセキュリティやIT技術に関する情報を発信するブログです。
(編集:株式会社ラック・デジタルペンテストサービス部)

IoTデバイスペネトレーションテストは誰にでもできますか?

f:id:lac_devblog:20210903104610j:plain

答えは「NO」です。
いきなり失礼いたしました。はじめまして、グループリーダーFです。
株式会社ラックのデジタルペンテストサービス部でIoTデバイスペネトレーションテストサービスを担当しております。
これはよく聞かれる質問の一つなのですが、なぜ「NO」なのかご説明したいと思います。

デジタルペンテストサービス部では、お客様からIoT機器やその外部との通信を含めたシステムのセキュリティ評価をご相談いただいた際はIoTデバイスペネトレーションテストをご提案させていただいております。
このIoTデバイスペネトレーションテストの要点は、「お客様の機器やシステムに対し、仕様や機能から想定される脅威を分析し、実際に潜在しているかを調査する。さらに、調査によって脅威の潜在が確認された際に、悪意のある行為(サイバー攻撃)によって実現される可能性を検証する」ことです。

実際の作業を例を挙げてご紹介します。

IoTデバイスペネトレーションテスト作業例

例としてスマートフォンアプリからクラウド経由でコントロールできるスマート家電を考えてみます。
このスマート家電には、LANやWi-Fi経由でアクセスするWeb設定画面も搭載されています。

このような機器に対し、IoTデバイスペネトレーションテストサービスでは次のような手順により脅威の想定と分析を実施します。

スマートフォンアプリのファイルの中に攻撃のヒントが有るかを調査
スマートフォンクラウド間の通信をモニタリングし、攻撃のヒントになる要素の有無を調査
クラウドと家電との通信をモニタリングし、攻撃のヒントになる要素の有無を調査
④家電のWeb設定画面にアクセスし脆弱性の存在を調査
⑤機器の内部にある基板から搭載されているSoC等の主要デバイスを確認
⑥デバイスに搭載されているファームウェアを抽出、解析し、①~⑤の結果から想定される攻撃が可能な設計・実装になっているかを調査

これらの手順は攻撃者と同じ環境で実施するため、製品の設計やICなどの仕様はすべて手探りで調査する必要があります。
このような調査を行うためには、以下のような能力や知識、スキルを身に付けている必要があります。

スマートフォンアプリの解析
②通信をモニタリング
③通信データの分析
通信プロトコルやハード上での信号伝送方式の知識
⑤基板上のデバイスのデータシートを理解できる能力と電子回路の知識
⑥デバイスからデータを抽出する手法
⑦バイナリデータの解析
⑧CPUのアーキテクチャの理解
ファームウェアを解析し設計と実装を紐解く能力
⑩Webアプリケーションの脆弱性を調査できる能力
クラウドプラットフォームの脆弱性の知識
⑫基板設計の際の回路パターンの実装傾向とテストプローブの特定
⑬CPUの動作タイミングを電気的操作によりコントロールする知識
⑭メモリ改ざんの知識
OSSやベンダーファームの脆弱性情報の取り扱い
⑯各種セキュリティ機構のバイパス
RTOSに関する知識
⑱アプリケーション開発に関する知識
GDPRCCNA、CCDSなどのIoTに関連したセキュリティガイドラインの理解
などなど…

f:id:lac_devblog:20210908113528j:plain

IoTデバイスを含むシステムは、ハードから始まりOS、ミドルウェア、アプリケーション、通信、スマホアプリ、クラウドといった幅広い範囲に脆弱性が広がるコンピュータシステムです。
IoTペネトレーションテスターに求められる技術や知識も幅広く、攻撃という観点では開発者以上に深い知識が必要です。
昨今ではGDPRCCNA、CCDSや経産省などのガイドラインなど法規やガイドラインへの準拠も求められます。
これらの知識に加えてなにより大事なのは、悪意のあるハッカーと同様、問題の潜在を感じとる「勘」を備えていることです。
これを我々は「脆弱性の臭いが嗅げる人」と呼んでいます。

いかがでしょうか。
これらすべてを身に付けることは、現実的でしょうか。

そんなスーパーマンはなかなかいません。
仮にスーパーマンがいたとしても、時間のかかる調査に没頭しながら、それぞれの領域で常に進化する新たな知識を取り入れる時間が間に合いません。

では、どのようにすれば現実的にIoTペネトレーションテストが行えるのでしょうか。

チームに必要な大切なこと

私たちはそれぞれの領域で高度な知識とスキルを身に付けたメンバーが集まって、案件毎に要求されるスキルを網羅できるチームを構成することにしました。
IoTデバイスペネトレーションテストに要求される複数の高度なスキルを、各領域の専門家がそれぞれ得意な領域で力を発揮し、その結果、製品の課題に潜在する脆弱性を見つけ出すことが可能になります。
例えるなら、陸上競技で400mを1人で走るより、100mずつを4人で走るリレーの方が早く走れるのと同じ効果が生まれます。
このようなチームが複数のユニットで活動することで、同時に様々な製品への対応が可能になります。

f:id:lac_devblog:20210908114535j:plain

実際の現場では、毎日別のチームも含め、状況の確認と情報共有により、お互いに意見を出し合い、手法等を提案し合い、時には支援に入るなど、どのチームが案件を担当しても最大の成果が出るように進めてます。

例に上げた能力はIoT解析において求められる技量の一部であり、製品の仕様によってはさらに様々な知識が求められます。

こういった背景から「IoTペネトレーションテストは、誰にでもできるものではない」と申し上げた理由をご理解いただけましたでしょうか?

 

さいごに

私たちの使命は『IoTのセキュリティを守ること』と考えてます。
秋葉原からチーム力で世界中の悪意あるハッカーを超える、世界一のハッカーチームを目指しています。
ぜひ今後とも注目していただけたら嬉しいです。