---
title: IoT機器の脆弱性診断の実例
tags: 
author: [サイエンスパークの勉強会](https://convert.docswell.com/user/study-group-spc)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/5EGG4K3QEL.jpg?width=480
description: 次のイベントの講演資料です。 https://sciencepark.connpass.com/event/268942/
published: December 23, 22
canonical: https://convert.docswell.com/s/study-group-spc/587L2K-SP2212-E56
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/5EGG4K3QEL.jpg)

ミニWDDDS
IoT機器のセキュリティ診断の現状
SP2212-E56
2022/12/23
バグダス検証課
三浦秀朗


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4JQXGN5WEP.jpg)

ミニWDDDS
目次.
1.はじめに
2.IoT機器のセキュリティ
3.ソフトウェアのセキュリティ検証実例
4.インタフェースのセキュリティ検証実例
5.最後に
© SCIENCEPARK CORPORATION.
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/K7465G91E1.jpg)

ミニWDDDS
１．はじめに - 自己紹介
サイエンスパーク株式会社 プラットフォーム開発部
バグダス検証課 兼 社長室
みうら
ひであき
三浦 秀朗
・各種OSでの様々なデバイスドライバの開発
・Windows向けセキュリティ製品の立上げ・開発
・Windows向けセキュリティSDKの立上げ・開発
・デバイスドライバ向け開発ツールの翻訳・国内サポート
・ソフトウェアで実現するStackOverflow対策の研究開発
(米空軍 Award)
・WDMドライバの各種セミナー
・デバイスドライバ関連書籍の翻訳・監修
・某ゲーム機のスタートアップ・Windowsクロス開発(約5年)
・電力・自動車向けIoT機器のペネトレーションテスト
© SCIENCEPARK CORPORATION.
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJ1VWDK5EG.jpg)

ミニWDDDS
１．はじめに
組み込み機器の開発者にとって、書いたコードや利用するライブラリは機能
優先なことが多く、「まさかうちのプログラムが攻撃されるようなことは無
いだろう」という考えのもと、セキュリティ対策はおざなりにされがちです。
しかし開発したプログラムが動く機器がインターネットに繋がり、IoT機器
と呼ばれるようになってきた昨今、そのプログラム自体が踏み台とされ、シ
ステム全体に対する攻撃の起点になる事例は後を絶ちません。
そこでこのセミナーでは、そういった開発者の方でも実施できるセキュリ
ティ対策の実例をお見せし、無駄なIoT機器開発における手戻りなどを少な
くするための情報を、開発者目線でお伝えしていきたいと思います。
© SCIENCEPARK CORPORATION.
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GJWL6YDWE2.jpg)

ミニWDDDS
２．IoT機器セキュリティの現状
「IoT機器のセキュリティはどうされてますか？」
と開発者に聞いた結果・・・
・セキュリティに費やす予算が無い
・どこまで対策すればいいかわからない
「気にしてない」という方は
ほとんどおられませんでした。
© SCIENCEPARK CORPORATION.
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4EZMYXG2J3.jpg)

ミニWDDDS
２．IoT機器セキュリティの現状
開発者ができるセキュリティ対策は？
具体的な攻撃方法を知って防ぐ
© SCIENCEPARK CORPORATION.
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/Y76ND4Q67V.jpg)

ミニWDDDS
２．IoT機器セキュリティの現状
少しの知識とOSSを使うことで
開発者も実施できる方法をいくつか紹介していきます。
© SCIENCEPARK CORPORATION.
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/G7553QR574.jpg)

ミニWDDDS
３．セキュリティ検証の実例
3.1 binwalk
3.2 文字列検索
3.3 CVE検索
3.4 暗号情報の検出
3.5 その他
© SCIENCEPARK CORPORATION.
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/9J2NZPDGER.jpg)

ミニWDDDS
3.1 binwalk free版
Linuxのほとんどのディストリビューションにて、標準で搭載されています。
対象となるモジュール内に、どのような情報が含まれているかを大まかに見たり、
抽出することができます。
元のファームウェアイメージ
ブートローダ
ブートローダ
モジュール１
モジュール２
ファイルシステム
ファイルシステム
モジュール３
鍵や証明書
チェックサム
© SCIENCEPARK CORPORATION.
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/DEYPR52GEM.jpg)

ミニWDDDS
3.1 binwalk free版
Linuxのツールですが、Windowsのモジュールも解析できます。
下記はEXEからCRC32テーブルを見つけた例です。
EXEファイルを解析
CRC32計算用のテーブルが、リトルとビッグ両方のエンディアンで存在するのがわかります。
攻撃側の立場からすれば、このようなテーブルはデータの暗号やベリファイに用いられることが
多く、その処理を特定する起点になります。
© SCIENCEPARK CORPORATION.
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/VJN5DN8878.jpg)

ミニWDDDS
3.1 binwalk Enterprise (有償版)
2021/6/2に、Microsoftはbinwalkの開発元であるReFirm Labsを買収しました。
クラウド上で提供されており、WebにファームウェアやプログラムをD/Dすることで、
自動で診断が行われるという、価格も安く使い勝手のよいツールでした。
Microsoft Azure IoTの枠組みの中で提供される予定とのことですが、詳細がわかって
いない状態です。
https://www.techrepublic.com/article/microsofts-new-security-tool-will-discover-firmware-vulnerabilities-andmore-in-pcs-and-iot-devices/
© SCIENCEPARK CORPORATION.
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/YE9YGRKXJ3.jpg)

ミニWDDDS
3.1 binwalk Enterprise (有償版)
https://www.techrepublic.com/article/microsofts-new-security-tool-will-discover-firmware-vulnerabilities-andmore-in-pcs-and-iot-devices/
© SCIENCEPARK CORPORATION.
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GE86VWR97D.jpg)

ミニWDDDS
3.2 文字列検索
モジュール内に埋め込まれている文字列を抽出することができ
ます。
ポイント：
①デバッグ用ログの文字列が、リリース用モジュールに含まれていないか
- ファイルのサイズ肥大の要因
- 攻撃拠点として解析された際に、プログラムの動作を特定しやすい
②暗号鍵などの埋込
- &quot;Private”のような文字により、秘密鍵が特定される可能性がある
© SCIENCEPARK CORPORATION.
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/LEL95NKMJR.jpg)

ミニWDDDS
3.2 文字列検索
stringsコマンド
-nオプション：検索する最小文字数
-wオプション：
-eオプション：
-e --encoding={s,S,b,l,B,L} Select character size and endianness:
s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
注意点：
・SJISのような、日本固有の文字列は検索できません
© SCIENCEPARK CORPORATION.
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/4JMZ3X26EW.jpg)

ミニWDDDS
3.2 文字列検索
文字列と思われるものがすべて抽出されるので、予め
「private」「crc」「cert」のような検索文字を決めて、リリー
ス前にチェックするパターンが良いと思います。
© SCIENCEPARK CORPORATION.
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/PJR6QNMN79.jpg)

ミニWDDDS
3.3 CVE検索
CVE (Common Vulnerabilities and Exposures)が管理している脆弱性情報デー
タベースから、バイナリファイルを診断する手法が最も簡単です。
CVE
データベース
診断
アプリ
OpenCVEというOSSライブラリを用いることで容易にデータベースのダウン
ロードができるため、多くの無料診断アプリで使われています。
© SCIENCEPARK CORPORATION.
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/PEXM5NV87X.jpg)

ミニWDDDS
3.3 CVE検索
CVE (Common Vulnerabilities and Exposures)は、 情報セキュリティにおける
脆弱性やインシデントについて、固有の名前や番号を付与してリスト化した
ものです。
・これまでCVEができる前までは、統一されたリストが存在しませんでした。
・そのため米国政府の支援を受けた非営利団体のMitre Corporation (マイターコーポ
レーション)が、 1999年に脆弱性を一意に特定できるようCVEを提案・実装しました。
・現在では、主要なベンダーなどから脆弱性情報が公開される際には必ずと言ってい
いほど、 CVEとCVE IDが付与された上で公開されています。
© SCIENCEPARK CORPORATION.
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/3EKG6NQLJD.jpg)

ミニWDDDS
3.3 CVE検索
CVEは図のようにWebから検索もできます。CVEとNISTがよく
使われます。
※図は「Windows」で検索した結果の例
https://cve.mitre.org/
© SCIENCEPARK CORPORATION.
https://nvd.nist.gov/
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/L73N6VP675.jpg)

ミニWDDDS
3.3 CVE検索
各Windowsの脆弱性に
紐付けられたCVE ID
Microsoftでも
脆弱性とCVE番号
を公開しています
https://msrc.microsoft.com/update-guide
© SCIENCEPARK CORPORATION.
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/87DWV8LMJG.jpg)

ミニWDDDS
3.3 CVE検索
例えば、msvcr100.dllをcve.mitre.orgで検索した例です。
© SCIENCEPARK CORPORATION.
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/VJP9V82QE8.jpg)

ミニWDDDS
3.3 CVE検索
NVDでの情報です。スコアはMITREにはありません。
CVSS
(Common Vulnerability Scoring System)
© SCIENCEPARK CORPORATION.
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/2EVMZNDPEQ.jpg)

ミニWDDDS
3.3 CVE検索
cve-bin-toolが機能的に優れています。
https://github.com/intel/cve-bin-tool
・一部のOSS系のライブラリに対して、CVEデータベースに脆弱性が登録されていな
いかを検索できます。
・しかし対象内であれば、スタティックリンクされたライブラリも検索できます。
© SCIENCEPARK CORPORATION.
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/57GG4KYQ7L.jpg)

ミニWDDDS
3.3 CVE検索
cve-bin-toolで診断できるモジュールの一覧
busybox
dbus
freeradius
gnutls
hunspell
kexectools
libjpeg_turbo
libsoup
lighttpd
mysql
ntp
openswan
poppler
rust
syslogng
wpa_supplicant
bzip2
dnsmasq
ftp
gpgme
icecast
libarchive
liblas
libsrtp
logrotate
nano
open_vm_tools
openvpn
postgresql
samba
systemd
xerces
© SCIENCEPARK CORPORATION.
commons_compress
dovecot
gcc
gstreamer
icu
libbpg
libnss
libssh2
lua
ncurses
openafs
p7zip
pspp
sane_backends
tcpdump
xml2
cronie
dpkg
gimp
gupnp
irssi
libdb
librsvg
libtiff
mariadb
nessus
openjpeg
pcsc_lite
python
sqlite
trousers
zlib
cryptsetup
enscript
glibc
haproxy
jacksondatabind
libebml
libseccomp
libvirt
mdadm
netpbm
openldap
pigz
qt
strongswan
varnish
zsh
cups
expat
gnomeshell
hdf5
kbd
libgcrypt
libsndfile
libvncserver
memcached
nginx
openssh
png
radare2
subversion
webkitgtk
curl
ffmpeg
gnupg
hostapd
kerberos
libical
libsolv
libxslt
mtr
node
openssl
polarssl_fedora
rsyslog
sudo
wireshark
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/4EQXGNMW7P.jpg)

ミニWDDDS
3.4 デコンパイラによる診断
＋
・GhidraはOSSのデコンパイラですが、デコンパイルをしなく
ても調査ツールとしてだけでも非常に有用です。
・FindCryptプラグインは、有償のIDA Proというデコンパイラ用
のものを、Ghidraに移植したものです。
https://hex-rays.com/blog/findcrypt2/
・AES/RSA/CRC32など、暗号やCRCチェックに用いられるテー
ブル値を抽出できます。
© SCIENCEPARK CORPORATION.
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/KJ465GV171.jpg)

ミニWDDDS
3.4 暗号情報の検出(Ghidra+FindCrypt)
FindCryptの実行結果
圧縮・解凍に係わるOSSのテーブルが
一致度1.000で存在しているのがわかります
© SCIENCEPARK CORPORATION.
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LE1VWD357G.jpg)

ミニWDDDS
3.5 その他
・TrustZone
最近はArm Cortex-Mのように、安価でTrustZoneを使うことができるプロ
セッサが多数出ています。
しかしSecure側の作りや改ざん検知方法がおろそかになっていると、ほとん
ど意味を成さないと言えます。メーカーのセミナーなどに参加し、正しい使
い方を学んでおくことをお勧めします。
Non-Secure側
①16バイトのデータを用意し
Secure側の関数を呼び出す
③受け取った値を用いて
暗号化などの処理を行う
© SCIENCEPARK CORPORATION.
Secure
②NonSecure側から受け取った
16バイトのデータのXXX値を
計算して返す
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/GEWL6YPW72.jpg)

ミニWDDDS
3.5 その他
・JTAGなどのデバッグポート
メンテナンスを容易に行うため、デバッグポートにパスワードなどをかけな
いまま世に出ている製品が意外と多いです。簡単な対策なのでぜひ実施して
ください。
Arduino+JtagEnumを用いた、
JTAGピン探索とRead/Writeを行うシ
ステム
引用元：https://book.hacktricks.xyz/todo/hardware-hacking/jtag
© SCIENCEPARK CORPORATION.
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/47ZMYXK2E3.jpg)

ミニWDDDS
４．インタフェースのセキュリティ検証
代表的なIoTデバイスのインタフェースと、その特徴と注意点に
ついて説明します。
4.1 Ethernet
4.2 Wi-Fi
4.3 シリアル通信
4.4 USB
4.5 Bluetooth
© SCIENCEPARK CORPORATION.
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/YJ6ND426JV.jpg)

ミニWDDDS
4.1 インタフェースのセキュリティ検証 - Ethernet
LinuxのNMAPというツールがよく使われます。
TCP/UDPポートを見つけるという単純な診断です。
インターネットに繋がることが前提の場合、外部からの攻撃にさらされますので、
機器の外部に公開していないはずのポートがあるかを確認してください。
Linux版NMAP
Windows版NMAP(Zenmap)
※Windows WSLでも使用可
© SCIENCEPARK CORPORATION.
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/GJ553Q25J4.jpg)

ミニWDDDS
4.2 インタフェースのセキュリティ検証 - Wi-Fi
Aircrack-ngというLinuxのツールがよく使われます。
空中を飛び交うWiFiの電波をモニターしたり、サポートされる認証方式を確認したり、
ステルスAPを見つけたりすることができます。
市販のUSB-WiFiドングルのうち、特定のチップを載せているもので使用できます。
AtherosやRalinkのチップですと、動く確率が高いです。
事前に、脆弱性のあるWEPなどの認証方式などを確認しておくことをお勧めします。
脆弱な認証方式の
鍵を見つけたところ
引用元：https://www.computerweekly.com/tip/Step-by-step-aircrack-tutorial-for-Wi-Fi-penetration-testing
© SCIENCEPARK CORPORATION.
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/LE3N6VK5E5.jpg)

ミニWDDDS
4.3 インタフェースのセキュリティ検証 - シリアル通信
外部に知られたくないようなログが出力されたり、メンテナンス用コンソールに入れ
たりする可能性があります。
仮にその機能が製品版でも必要な場合、何らかの認証や難読化の機能を入れておくこ
とをお勧めします。
また配線やピンヘッダーのみ撤去して、実際にはその機能が有効になっていると、多
少の手間で上記と同様な問題があります。
Windows用のSerialDebug2
というフリーソフトの例
引用元：https://www.vector.co.jp/soft/winnt/hardware/se449799.html
© SCIENCEPARK CORPORATION.
31


# Page. 32

![Page Image](https://bcdn.docswell.com/page/8EDWV83Y7G.jpg)

ミニWDDDS
4.4 インタフェースのセキュリティ検証 - USB
サポートしていない実デバイスを接続し、デバイスが認識されるかを検証します。
特に見ておきたいものは以下です。
① ネットワーク(RNDISクラス、cdc-acmクラス)
スマートフォンのUSBテザリングで使用するクラスです。前述のEthernetと同様な検証が必要
です。不要であれば無効にしてください。
② シリアル通信(cdc-acmクラス)
FTDIチップなどを用いた、デバッグ用インタフェースが生きている可能性があります。前述
のシリアル通信と同様な検証が必要です。
③ キーボードなど(HIDクラス)
キーボードを認識できる可能性があります。
IoT機器の内部で起動しているコンソールに対して、コマンドライン入力ができる可能性があり
ます。
④デバッグ用(ADBなど)
Androidベースの機器で有効になっているものがよく見受けられます。パスワードなど認証機構
は必須です。
© SCIENCEPARK CORPORATION.
32


# Page. 33

![Page Image](https://bcdn.docswell.com/page/V7P9V842J8.jpg)

ミニWDDDS
4.5 インタフェースのセキュリティ検証 - Bluetooth
Bluetooth Classic
昔から使われている方式です。
今でも比較的大容量の通信に用いられ、若干消費電力が多いです。
セキュリティ機構がハードウェアに組み込まれているため、デバイス同士の接続にセ
キュリティを入れ込むことが容易になっています。
しかし安全でないセキュリティが混在できるため、明確にサポートするセキュリティ
レベルを定義する必要があります。
80分割された周波数を用い、接続開始の周波数が決まっていないため、盗聴(スニッ
フィング)を行う機器が高価です。
© SCIENCEPARK CORPORATION.
33


# Page. 34

![Page Image](https://bcdn.docswell.com/page/2JVMZNXXJQ.jpg)

ミニWDDDS
4.5 インタフェースのセキュリティ検証 - Bluetooth
Bluetooth LowEnergy (LE)
省電力が売りです。そのため小容量の通信に向いています。
消費電力を少なくしたい(スペックの低めの)機器で使われることが多いです。
セキュリティ機構はソフトウェア側で実装することになっています。
しかし上記の機器の特徴、及び省電力向けOSの制約のため、セキュリティ機構が実
装されないことが多く、攻撃が容易いデバイスが多いです。
40分割された周波数を用いますが、接続開始の周波数が３つしか無いため、安価な機
器でスニッフィングが可能です。
micro:bitという3,000円程度のデバイスを３つ用意し、BtleJackなどGitHubに公開され
ているツールを使うと、簡単にスニッフィングを実施できます。
© SCIENCEPARK CORPORATION.
34


# Page. 35

![Page Image](https://bcdn.docswell.com/page/5EGG4KVREL.jpg)

ミニWDDDS
５．最後に
セキュリティのレベルは２つに大別されると考えます。
・「やるだけやって攻撃されたら仕方ないな・・・」というケース
→採算を度外視してでも攻撃されることはそうそうない
→高度な攻撃になるほど実施できる人間と機材のスペックが高くなる
・「こんな攻撃にやられるなんて・・・」というケース
→中学生がGitHubみて真似たような容易な攻撃手法が成功してしまう
→会社の評判が落ちる、謝罪、取材への対応
→機材の早急なアップデートまたは交換に多大な労力を強いられる
⇒ある程度までは開発者で守りましょう！！
⇒それでも不安なら弊社にご相談ください
© SCIENCEPARK CORPORATION.
35


# Page. 36

![Page Image](https://bcdn.docswell.com/page/4JQXGN6YEP.jpg)

ミニWDDDS
ご清聴ありがとうございました


