Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ファームウェア解析はじめました

 ファームウェア解析はじめました

第19回 初心者のためのセキュリティ勉強会(オンライン開催)の発表資料です。
https://sfb.connpass.com/event/247296/

kuzushiki

May 27, 2022
Tweet

More Decks by kuzushiki

Other Decks in Technology

Transcript

  1. 発表内容 今までとは違う種類の脆弱性を見つけたくなる 過去に報告した脆弱性 Webアプリのクロスサイトスクリプティング(XSS) スマホアプリにハードコードされた API キー ↓ JVN IPedia

    で過去 IPA に脆弱性の届出がされた製品をチェックした ↓ 思いのほか IoT 機器(ルータ、プリンタ)での報告が多かった ↓ IoT 機器のハッキングをやりたくなったので調べてみた 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 2 / 15
  2. IoT機器が脆弱と言われる4つの理由 限られた処理能力とハードウェアの限界 強固なセキュリティの仕組みとデータ保護を搭載するためのリソースがありません 不均一な伝送技術 一般的なセキュリティの保護機能と IoT 機器で使われるプロトコルの両立が困難になる可能性があります ソフトウェアが脆弱 共通の基本ソフトウェアに脆弱性があった場合、Ripple20 のように何百万個もの

    IoT 機器に影響が及びます IoT 機器に対するセキュリティ意識の不足 IoT 機器に対するユーザ側のセキュリティ意識は PC などに比べるとまだ低いと言えます 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki IOT機器が脆弱と言われる4つの理由と利害関係者の対策 | IOTのセキュリティ情報なら「IOT SECURITY」 から抜粋 3 / 15
  3. ファームウェア解析の全体像 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
  4. Stage 1. 情報収集 ターゲットに関する情報をできるだけ多く収集し、その全体的な構成と基盤技術を理解する。 設計図とデータフロー図 ソースコードレポジトリの場所 データシート etc. 可能であれば、OSINT ツールやテクニックを使用してデータを取得する。

    オープンソースソフトウェアが使用されている場合、リポジトリをダウンロードし、コードに対して静的解析を行う。 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 9 / 15
  5. 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
  6. Stage 3. ファームウェアの解析 ファームウェアイメージを入手したら、その特徴を特定するためにファイルを調査する。 file でファイル形式の確認 strings で文字列の確認 binwalk でファイルの中に含まれているファイルを確認

    暗号化されている場合も binwalk -E でエントロピーを確認 -> エントロピーが高ければ暗号化(または何らかの方法で圧縮)されている可能性が高い 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ` ` ` ` ` ` ` ` OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 11 / 15
  7. 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
  8. 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
  9. デモ netgear社製 D6000 という型番の WIFI Modem のファームウェアを解析してみよう! バージョンは V1.0.0.41 のものを対象とする。

    デモの内容は下記の書籍を参考にした。 Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 14 / 15