Slide 1

Slide 1 text

ファームウェア解析はじめました kuzushiki 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki

Slide 2

Slide 2 text

発表内容 今までとは違う種類の脆弱性を見つけたくなる 過去に報告した脆弱性 Webアプリのクロスサイトスクリプティング(XSS) スマホアプリにハードコードされた API キー ↓ JVN IPedia で過去 IPA に脆弱性の届出がされた製品をチェックした ↓ 思いのほか IoT 機器(ルータ、プリンタ)での報告が多かった ↓ IoT 機器のハッキングをやりたくなったので調べてみた 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 2 / 15

Slide 3

Slide 3 text

IoT機器が脆弱と言われる4つの理由 限られた処理能力とハードウェアの限界 強固なセキュリティの仕組みとデータ保護を搭載するためのリソースがありません 不均一な伝送技術 一般的なセキュリティの保護機能と IoT 機器で使われるプロトコルの両立が困難になる可能性があります ソフトウェアが脆弱 共通の基本ソフトウェアに脆弱性があった場合、Ripple20 のように何百万個もの IoT 機器に影響が及びます IoT 機器に対するセキュリティ意識の不足 IoT 機器に対するユーザ側のセキュリティ意識は PC などに比べるとまだ低いと言えます 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki IOT機器が脆弱と言われる4つの理由と利害関係者の対策 | IOTのセキュリティ情報なら「IOT SECURITY」 から抜粋 3 / 15

Slide 4

Slide 4 text

IoT機器のハッキング手法について(静的手法) 設計文書レビュー 機器の設計書を確認し、不適切なサービスや不適切な設定が存在しないかなどを確認する ソースコード解析 ソースコードを確認し、要求を満たすか、処理フローに問題が無いかなどを確認する ファームウェア解析 機器のファームウェアを抽出する。バイナリ解析手法と併せて行われることが多い バイナリ解析 ファームウェア等のバイナリコードについて、実行パスに異常は無いか、不正なアドレス命令が無いかを静的に確認する 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き から抜粋 4 / 15

Slide 5

Slide 5 text

IoT機器のハッキング手法について(動的手法) ネットワークスキャン どのポートに対して通信可能か、接続が許可されていない機器やサービスが存在しないかを確認する 既知脆弱性の診断 既知の脆弱性が機器に内在しうるかを調べ、実際に悪用可能かを確認する ファジング 極端に長い文字列や記号の組み合わせ等、問題が起こりそうなデータを挿入し、その挙動を確認する ネットワークキャプチャ 機器やサービスのネットワークパケットを取得し、不審なパケットが無いかを確認する 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き から抜粋 5 / 15

Slide 6

Slide 6 text

なぜファームウェア解析を選んだか 理由: ファームウェアはIoT機器メーカーのHPで配布されていることが多く入手が容易 本体がなくても解析できるのでコストがかからない 注)解析行為が禁止されている場合はやらないこと! 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 6 / 15

Slide 7

Slide 7 text

そもそもファームウェアってなんだっけ? ファームウェアとは、一言で説明するとインターネットやパソコンの周辺機器を動作させるソフトウェアのことです。 ファームウェアとはPCの起動時、OSの起動前に実行される、ハードウェアに依存したプログラム群だ。 一般的なセキュリティ対策ソフトウェアはOS上で動くため、OS起動前の攻撃を防げない。 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ファームウェアとは|更新しないとどうなる?搭載機器とアップデート方法を解説 | @NIFTYIT小ネタ帳 から引用 高度なファームウェア攻撃に対抗する、たった1つの簡単な方法:箱を開けて、電源を入れるだけ - ITMEDIA エンタープライズ から引用 7 / 15

Slide 8

Slide 8 text

ファームウェア解析の全体像 Stage 1. Information gathering and reconnaissance Stage 2. Obtaining firmware Stage 3. Analyzing firmware Stage 4. Extracting the filesystem Stage 5. Analyzing filesystem contents Stage 6. Emulating firmware Stage 7. Dynamic analysis Stage 8. Runtime analysis Stage 9. Binary Exploitation 情報収集 ファームウェアの入手 ファームウェアの解析 ファイルシステムの抽出 ファイルシステムの中身の解析 ファームウェアのエミュレーション 動的解析 ランタイム解析 バイナリエクスプロイト 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki OWASP FIRMWARE SECURITY TESTING METHODOLOGY から引用 8 / 15

Slide 9

Slide 9 text

Stage 1. 情報収集 ターゲットに関する情報をできるだけ多く収集し、その全体的な構成と基盤技術を理解する。 設計図とデータフロー図 ソースコードレポジトリの場所 データシート etc. 可能であれば、OSINT ツールやテクニックを使用してデータを取得する。 オープンソースソフトウェアが使用されている場合、リポジトリをダウンロードし、コードに対して静的解析を行う。 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 9 / 15

Slide 10

Slide 10 text

Stage 2. ファームウェアの入手 ファームウェアの内容を確認するためには、ファームウェアのイメージファイルを取得する必要がある。 開発チーム、ベンダ 、または顧客から直接入手 ベンダのサポートサイトからの入手 Google Dorks ( site:<調査したいベンダのドメイン> , intext:firmware , filetype:zip など ) アップデート時の MITM (Man-in-the-Middle) デバイス通信 UART、JTAG、PICit などを介してハードウェアから直接抽出 etc. 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ` ` ` ` ` ` OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 10 / 15

Slide 11

Slide 11 text

Stage 3. ファームウェアの解析 ファームウェアイメージを入手したら、その特徴を特定するためにファイルを調査する。 file でファイル形式の確認 strings で文字列の確認 binwalk でファイルの中に含まれているファイルを確認 暗号化されている場合も binwalk -E でエントロピーを確認 -> エントロピーが高ければ暗号化(または何らかの方法で圧縮)されている可能性が高い 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ` ` ` ` ` ` ` ` OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 11 / 15

Slide 12

Slide 12 text

Stage 4. ファイルシステムの抽出 ファームウェアの内部を調べ、ファイルシステムのデータを解析する。 例) binwalk -ev でファイルを抽出する -> Squashfs filesystem が見つかった 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ` ` 1 $ binwalk DIR850L_REVB.bin 9 1704084 0x1A0094 Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 8256900 bytes, 2688 inod 2 3 DECIMAL HEXADECIMAL DESCRIPTION 4 ----------------------------------------------------------------------------- --- 5 6 0 0x0 DLOB firmware header, boot partition: """"dev=/dev/mtdblock/1"""" 7 10380 0x288C LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 5213748 by 8 1704052 0x1A0074 PackImg section delimiter tag, little endian size: 32256 bytes; big endian size: 8257536 bytes ` ` OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 12 / 15

Slide 13

Slide 13 text

Stage 5. ファイルシステムの中身の解析 ファイルシステムを抽出できたら、以下のようなものが含まれているかどうかを調査する。 etc/shadow, etc/passwd 設定ファイル ( .cfg など ) .pem , .crt などの SSL 関連ファイル admin, password, remote, AWS keys などのキーワードが含まれるファイル etc. firmwalker というスクリプトで自動化できる 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ` ` ` ` ` ` OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 13 / 15

Slide 14

Slide 14 text

デモ netgear社製 D6000 という型番の WIFI Modem のファームウェアを解析してみよう! バージョンは V1.0.0.41 のものを対象とする。 デモの内容は下記の書籍を参考にした。 Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 14 / 15

Slide 15

Slide 15 text

終わりに ファームウェア解析をはじめてみた 実機がなくてもファームウェアは入手できるので IoT 機器のハッキング入門にオススメ! ※実際に脆弱性があるかを検証するには実機が必要となる場合も ファームウェア解析をはじめてみませんか? 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 15 / 15