Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ファームウェア解析はじめました
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kuzushiki
May 27, 2022
Technology
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ファームウェア解析はじめました
第19回 初心者のためのセキュリティ勉強会(オンライン開催)の発表資料です。
https://sfb.connpass.com/event/247296/
kuzushiki
May 27, 2022
More Decks by kuzushiki
See All by kuzushiki
ECS-cape – Hijacking IAM Privileges in Amazon ECSを解説する
kuzushiki
0
310
Next.jsの脆弱性(CVE-2025-29927)の話
kuzushiki
0
45
CISSPに出てくるセキュリティモデルとアクセス制御モデルをまとめてみた
kuzushiki
0
500
攻撃者の視点から見たGraphQLのセキュリティ
kuzushiki
0
46
PythonのURLパーサで見つかった脆弱性について解説する
kuzushiki
0
69
Pythonのtarfileによる展開処理がセキュアになりそう
kuzushiki
0
28
Web Cache Deception Attackについて解説する
kuzushiki
0
65
PHP8.2の新機能✞SensitiveParameter✞につい て
kuzushiki
0
38
Apple M1 CPUの脆弱性「PACMAN」について解説する
kuzushiki
0
890
Other Decks in Technology
See All in Technology
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
2
210
JavaScript 研修 (2026)
recruitengineers
PRO
1
450
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
150
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
5
1.4k
グローバル基準のSREは、運用現場でどう機能したか:成熟度アセスメントの実践 / SRE NEXT 2026
sorawatanabe
0
130
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.1k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
160
認知負荷をGemini で溶かす — GKE 基盤「Orbit」における AI エージェントの実践
sansantech
PRO
1
270
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.3k
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.2k
モダンフロントエンド 開発研修
recruitengineers
PRO
3
560
第3回しろおびセキュリティスポンサーセッション
log0417
0
160
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.7k
How to Ace a Technical Interview
jacobian
281
24k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
WCS-LA-2024
lcolladotor
0
790
Scaling GitHub
holman
464
140k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
690
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
Transcript
ファームウェア解析はじめました kuzushiki 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki
発表内容 今までとは違う種類の脆弱性を見つけたくなる 過去に報告した脆弱性 Webアプリのクロスサイトスクリプティング(XSS) スマホアプリにハードコードされた API キー ↓ JVN IPedia
で過去 IPA に脆弱性の届出がされた製品をチェックした ↓ 思いのほか IoT 機器(ルータ、プリンタ)での報告が多かった ↓ IoT 機器のハッキングをやりたくなったので調べてみた 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 2 / 15
IoT機器が脆弱と言われる4つの理由 限られた処理能力とハードウェアの限界 強固なセキュリティの仕組みとデータ保護を搭載するためのリソースがありません 不均一な伝送技術 一般的なセキュリティの保護機能と IoT 機器で使われるプロトコルの両立が困難になる可能性があります ソフトウェアが脆弱 共通の基本ソフトウェアに脆弱性があった場合、Ripple20 のように何百万個もの
IoT 機器に影響が及びます IoT 機器に対するセキュリティ意識の不足 IoT 機器に対するユーザ側のセキュリティ意識は PC などに比べるとまだ低いと言えます 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki IOT機器が脆弱と言われる4つの理由と利害関係者の対策 | IOTのセキュリティ情報なら「IOT SECURITY」 から抜粋 3 / 15
IoT機器のハッキング手法について(静的手法) 設計文書レビュー 機器の設計書を確認し、不適切なサービスや不適切な設定が存在しないかなどを確認する ソースコード解析 ソースコードを確認し、要求を満たすか、処理フローに問題が無いかなどを確認する ファームウェア解析 機器のファームウェアを抽出する。バイナリ解析手法と併せて行われることが多い バイナリ解析 ファームウェア等のバイナリコードについて、実行パスに異常は無いか、不正なアドレス命令が無いかを静的に確認する 第20回
初心者のためのセキュリティ勉強会 kuzu7shiki 機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き から抜粋 4 / 15
IoT機器のハッキング手法について(動的手法) ネットワークスキャン どのポートに対して通信可能か、接続が許可されていない機器やサービスが存在しないかを確認する 既知脆弱性の診断 既知の脆弱性が機器に内在しうるかを調べ、実際に悪用可能かを確認する ファジング 極端に長い文字列や記号の組み合わせ等、問題が起こりそうなデータを挿入し、その挙動を確認する ネットワークキャプチャ 機器やサービスのネットワークパケットを取得し、不審なパケットが無いかを確認する 第20回
初心者のためのセキュリティ勉強会 kuzu7shiki 機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き から抜粋 5 / 15
なぜファームウェア解析を選んだか 理由: ファームウェアはIoT機器メーカーのHPで配布されていることが多く入手が容易 本体がなくても解析できるのでコストがかからない 注)解析行為が禁止されている場合はやらないこと! 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 6 /
15
そもそもファームウェアってなんだっけ? ファームウェアとは、一言で説明するとインターネットやパソコンの周辺機器を動作させるソフトウェアのことです。 ファームウェアとはPCの起動時、OSの起動前に実行される、ハードウェアに依存したプログラム群だ。 一般的なセキュリティ対策ソフトウェアはOS上で動くため、OS起動前の攻撃を防げない。 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ファームウェアとは|更新しないとどうなる?搭載機器とアップデート方法を解説 | @NIFTYIT小ネタ帳
から引用 高度なファームウェア攻撃に対抗する、たった1つの簡単な方法:箱を開けて、電源を入れるだけ - ITMEDIA エンタープライズ から引用 7 / 15
ファームウェア解析の全体像 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
Stage 1. 情報収集 ターゲットに関する情報をできるだけ多く収集し、その全体的な構成と基盤技術を理解する。 設計図とデータフロー図 ソースコードレポジトリの場所 データシート etc. 可能であれば、OSINT ツールやテクニックを使用してデータを取得する。
オープンソースソフトウェアが使用されている場合、リポジトリをダウンロードし、コードに対して静的解析を行う。 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 9 / 15
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
Stage 3. ファームウェアの解析 ファームウェアイメージを入手したら、その特徴を特定するためにファイルを調査する。 file でファイル形式の確認 strings で文字列の確認 binwalk でファイルの中に含まれているファイルを確認
暗号化されている場合も binwalk -E でエントロピーを確認 -> エントロピーが高ければ暗号化(または何らかの方法で圧縮)されている可能性が高い 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki ` ` ` ` ` ` ` ` OWASP FIRMWARE SECURITY TESTING METHODOLOGY から抜粋して要約 11 / 15
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
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
デモ netgear社製 D6000 という型番の WIFI Modem のファームウェアを解析してみよう! バージョンは V1.0.0.41 のものを対象とする。
デモの内容は下記の書籍を参考にした。 Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki 14 / 15
終わりに ファームウェア解析をはじめてみた 実機がなくてもファームウェアは入手できるので IoT 機器のハッキング入門にオススメ! ※実際に脆弱性があるかを検証するには実機が必要となる場合も ファームウェア解析をはじめてみませんか? 第20回 初心者のためのセキュリティ勉強会 kuzu7shiki
15 / 15