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
31
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
300
Next.jsの脆弱性(CVE-2025-29927)の話
kuzushiki
0
42
CISSPに出てくるセキュリティモデルとアクセス制御モデルをまとめてみた
kuzushiki
0
440
攻撃者の視点から見たGraphQLのセキュリティ
kuzushiki
0
40
PythonのURLパーサで見つかった脆弱性について解説する
kuzushiki
0
62
Pythonのtarfileによる展開処理がセキュアになりそう
kuzushiki
0
26
Web Cache Deception Attackについて解説する
kuzushiki
0
56
PHP8.2の新機能✞SensitiveParameter✞につい て
kuzushiki
0
33
Apple M1 CPUの脆弱性「PACMAN」について解説する
kuzushiki
0
870
Other Decks in Technology
See All in Technology
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.5k
アンオフィシャルな、オフィシャルからのお願い
wyamazak_devrel
0
140
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
490
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1.3k
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
200
AIはどのように 組織のアジリティを変えるのか?
junki
4
1.1k
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
360
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
4
2.3k
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
230
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
170
徹底討論!ECS vs EKS!
daitak
3
940
自宅LLMの話
jacopen
1
670
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
250
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
BBQ
matthewcrist
89
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The SEO Collaboration Effect
kristinabergwall1
1
490
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
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