IoTハッキングの教科書
IoTハッキングの教科書は、近年普及するIoT機器のセキュリティ検証技術を解説した本になります。 例えば、以下のような電子錠にたいしてどのような攻撃アプローチが考えられるのか?
電子錠キーをコピーして電子錠を開錠してみた
チップオフせずにIoT機器のファームウェアをダンプしてみた
本書ではこのように、どのように行えば攻撃が成功するのかを一連のIoTハッキングのアプローチを紹介しています。
目次
◆1章:IoTの基礎 ■IoTとは ●IoTの由来 ●組み込み機器とIoTの関係 ●IoTの今後 ■IoTの利点 ●生活と密着したIoT 〇スマートペットフィーダーを例にしたIoT 〇電子錠を例にしたIoT ●IoTの製造と販売 ■IoTの危険性 ●IoTを狙うウイルス(Mirai/PERSIRAI) 〇Mirai 〇PERSIRAI ●IoTの事故と事例 〇ブリック攻撃 〇無線ネットワーク妨害攻撃 〇電気グリッド攻撃 ●IoTの問題点 ●消費者向けIoTデバイスの持続的な保護 ■IoTハッキングの考え方 ■IoTハッキングのコスト ■IoTハッキングのアプローチ 〇IoT権限掌握のパターン 〇FCC ID ■基板から攻撃の糸口を調査 〇SoC概要 〇MCU概要 〇JTAG概要 〇SPI概要 〇UART概要 ■本書におけるIoTの概念 ◆2章:環境構築 ■ハードウェアハッキング環境の構築 ●Kali Linuxのダウンロード ●VMware Workstation Playerのダウンロード ●Kali Linuxのインポート ■Attifyのシェルスクリプトを用いた環境の自動構築 ■ハードウェアハッキングに必要なハードウェア ●Attify Badge ●Bus Pirate ●Bus Pirateの故障をチェックする自己診断機能 ●Bus Pirateのファームウェアアップデート 〇Bus Pirateのファームウェアアップデート手順 ●Bus Pirateのオシロスコープ化 〇PythonでBus Pirateのプログラム作成 〇pygame 〇bscope(oscope.py) ◆3章:IoTセキュリティの診断基準 ■はじめに ■各レイヤを対象にした攻撃の観点 ○リモートコントロール(Remote Control) ○プライバシー侵害(Privacy Breach) ○接続デバイス接続拒否(Connected Device - Denial of Service DoS) ○サーバーサイド側のDoS(Server Side - Denial of Service) ○クライアントのなりすまし(Client Impersonation) ○サーバースプーフィング(Server Spoofing) ○通信中のデータの漏洩(Exposure of Data in Transit) ○ローカルストレージデータの漏洩(Exposure of Data at Rest) ○知的財産の漏洩(Intellectual Property Theft) ○ネットワークピボット(Network Pivoting) ○モバイルアプリケーションの攻撃(Mobile App Attacks) ○不正操作(Unauthorized Operations) ○サイバーサイド攻撃(Server Side Attacks) ○安全でないファームウェアとデバイスのアップデート(Insecure Firmware and Device Updates) ○特定の業界の脅威(Specific Industry Threats) ○規制/コンプライアンス(Regulations/Complinace) ○コンポーネント間の不安定な信頼関係(Insecure Trust between Components) ○デバイスの登録とプロビジョン(Device Enrollment and Provisioning) ○不十分な暗号化または不安定な暗号化(Lack or Insecure Encryption) ○センサ操作(Sensor Manipulation) ○保護されていない管理インターフェース(Insecure Admin Interfaces) ○リプレイ攻撃(Replay Attacks) ○サードパーティのAPIとコンポーネント(3rd Party APIs and Components) ○各レイヤを対象にした攻撃の観点について ●各レイヤを対象にした攻撃の観点について ■OWASP IoT Top 10(Tester IoT Security Guidance) ●安全でないWebインターフェース ●不十分な認証と権限管理 ●安全でないネットワークサービス ●通信路の暗号化欠如 ●プライバシーの懸念 ●安全でないクラウドインターフェース ●安全でないモバイルインターフェース ●不十分なセキュリティ機能の設定 ●安全でないソフトウェアとファームウェア ●貧弱な物理セキュリティ ●OWASP IoT Top 10について ●IoT Vulnerabilities Project ◆4章:IoTに関連したシステムのハッキング ■はじめに ■脅威分析 ●はじめに ●脅威分析とは ●脅威分析まとめ ■Bluetooth電子錠のハッキング ●AndroidスマートフォンでBluetoothのパケットをダンプ ●スニッファを使用したBluetoothの盗聴 ●ソースコードから関連する情報の精査 ●Bluetooth機器へのリクエスト送信 ●コーヒーマシンの不正動作を検証 ■SDRのハッキング ●SDRの基礎とGqrxを用いたキャプチャ 〇ASK(振幅偏移変調) 〇FSK(周波数偏移変調) ●SDRへの攻撃について ●HackRFでリプレイアタックを検証 ■Webカメラのハッキング ●WebカメラのAPI ●Webカメラ販売メーカーの認証情報一覧 ●OEM製品へのExploitコードの流用 ●CVE-2017-5674を使用したパスワードの奪取 ●WebカメラのRCEを悪用したシェルの掌握 ■ファームウェア解析 ●ファームウェアの解析 ●ファームウェアの取得 ●ファームウェアの分解 ■IoTフォレンジック入門 ●フォレンジックのシナリオ ●UARTによるアーティファクトの取得 ●Root FSとUser FSの違い ●IoTマルウェアを抽出するためのプロセス ■SCADA/ICSハッキング ●はじめに ●Modbusについて ●SHODANを用いたSCADAシステムの検索 ●ビルオートメーションサーバーのハッキング ■IoTアプリケーションのハッキングのまとめ ◆5章:UARTのハッキング ■はじめに ●IoTのハッキングにおけるUART ●ボーレートの推測 ●IoT機器にUARTで接続 ●ゴミ箱攻撃について ■UARTによるファームウェアの抽出 ●JTAGulatorを用いたUARTピンの推測 ■UARTのまとめ ◆6章:SPIのハッキング ■はじめに ●初心者のSPIフラッシュダンプの壁 ●SPIチップを調べる ■SPI経由でのIoT機器ハッキングの基礎 ●SPIのハッキングツール ◯spiflash.py(libmpsse) ◯Bus Pirate 〇flashrom ●ROMライター ●SPIチップとの配線 ●テストクリップの問題点 ■WebカメラのSPIチップ内のデータ抽出 ●SPIチップの抽出フロー ●flashromの対応チップセットと比較 ●SPIフラッシュダンプ ●SPIフラッシュダンプが成功しない場合 ●SPIチップの型番が確認できない場合 ■16ピンのSPIチップをSPIフラッシュダンプ ■SPIフラッシュダンプで得たデータの活用 ■SPIのまとめ ◆7章:JTAGのハッキング ■はじめに 〇JTAG 〇IJTAG ●SWDとJTAGの違い ■JTAG経由でIoT機器をハッキングする仕組み ●デバッグツール 〇OpenOCD ■JTAG経由でIoT機器へのアクセス ●JTAG経由でIoT機器のファームウェア抽出 ●JTAG経由でJTAG接続が確認できない場合 ■OpenOCDのコマンド一覧 ■OpenOCDのJTAG設定ファイルを読み解く ■ar9331.cfgの解析によるJTAG設定ファイルの理解 ●設定ファイルの探し方 ■JTAG Brick attack ■JTAG on-chip debugging ●RIFF Box ■JTAGのまとめ ◆8章:IoTのペネトレーションテスト ■はじめに ■IoTのペネトレーションテストの流れ ●ペネトレーションテストの対象機器 ●IoT機器の動作ロジックの確認 〇説明書 〇アプリケーション 〇ハードウェア(IoT機器本体) 〇問い合わせ窓口 ●ポートスキャンによる攻撃経路の調査 ●目的選定と攻撃開始 ■ペネトレーションテストの実施 ●IoT機器の分解 ●IoT機器にUARTでアクセス ●IoT機器のファームウェアを抽出 ●Web管理画面などにアクセスする認証情報の奪取 ●管理画面の脆弱性を調査 ■Webアプリケーションとサーバーサイドのセキュリティチェック ●プロキシツールでログインリクエストの確認 ●アカウントの有効確認処理 ●パスワードリセット機能 ●IoT機器への標的型攻撃 ●APIサーバーのセキュリティ ■IoTペネトレーションテストまとめ
質問
■質問 対象読者は?
回答 IoTハッキング全体に関心がある初学者など
■質問 ハッキングやセキュリティの技術に興味がありますが、初心者なので理解できるか心配です。
回答 IoTハッキングの教科書は、IoTセキュリティの広い分野を可能な限りサポートした一冊になります。
読者の興味があるハッキングから学んでもらいハッキングできる領域を増やしてもらうことが可能です。
サポートページ
正誤表その他に関するサポートページ
(例)xxページ 1行目
(×)白林檎
(○)黒林檎
著者プロフィール
-
黒林檎
Twitter : @r00tapple
mail:packr@packr.org
1995年生まれ
マルウェアやIoTのハッキングなどに興味があります。
学んだ内容をドキュメントにして公開しています。
黒林檎のお部屋-各ドキュメント-
-
村島正浩
Facebook : 村島正浩
mail:packr@packr.org
1995年生まれ、関西出身。
国内であまり開拓されていないハッキング技術を開拓して布教することが好きです。