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
Tomohiko Morita
September 05, 2017
Technology
1
240
物理なポチポチ操作自動化
OWASP Kansai ローカルチャプターミーティング / OWASP DAY 2017 in OSAKA での発表資料です
Tomohiko Morita
September 05, 2017
Tweet
Share
More Decks by Tomohiko Morita
See All by Tomohiko Morita
(会社ライフ)ハッカーになろう / Let's Become a Corporate-life-hacker
deka_morita
0
890
ガンダム × ネーミング
deka_morita
0
600
クレジットカードを不正利用された話
deka_morita
0
1.4k
ガンダム勉強会@関西アンケート集計
deka_morita
0
750
ガンダム勉強会@サイド2開催にあたって
deka_morita
0
610
まじめな技術者のためのWEBフィルタリング回避術
deka_morita
1
740
Other Decks in Technology
See All in Technology
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
230
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
250
強いチームと開発生産性
onk
PRO
38
12k
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
120
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
170
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
260
OCI Vault 概要
oracle4engineer
PRO
0
9.8k
TypeScript、上達の瞬間
sadnessojisan
49
14k
"とにかくやってみる"で始めるAWS Security Hub
maimyyym
2
120
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
0
120
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
750
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
500
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
930
Adopting Sorbet at Scale
ufuk
73
9.1k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
How GitHub (no longer) Works
holman
310
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
How to Think Like a Performance Engineer
csswizardry
20
1.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Teambox: Starting and Learning
jrom
133
8.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Transcript
物理なポチポチ診断自動化 ~IoTデバイスにおけるセキュリティ診断の事例紹介~ 1.物理ボタン自動操作マシーンの事例 2.赤外線リモコン自動操作の事例 など
はじめに • 昨今の過重労働問題に端を発し、 • “働きかた改革”が推進されつつある中で • 業務効率化の解決策として • 自動化プログラムやAI、機械学習などによる •
“自動化”への期待が高まっている • 一方、 • IoTデバイスにおけるセキュリティ診断業務においては • 【物理的な壁】を乗り越える必要がある • デモを交え • 物理的な壁を乗り越える工夫について紹介する
▪悩みごと IoTデバイスの場合、特定の操作をしなければ動作しない機能が多い 特にクライアント機能が主であるため、様々なトリガーが必要 ・リモコン操作 ・物理的なボタン操作 ・電源のOff/ON操作 ・キーボード入力 長時間にわたる手作業が必要。 ▪解決策 IoTデバイスにおける診断業務における悩み
Panasonic PSIRT 3 手動 自動 操作の柔軟性 ◎ △ 初期調整が必要 並列作業 △ ◦ 容易にN増しが可能 夜間・休日作業 × ◎ 30⇒140時間/週 自動操作ロボットによる セキュリティ診断業務の効率化 ・ボタン押下の自動化 ・赤外線リモコンの自動化 ・キーボード入力の自動化 など TV:「番組表」ボタン押下でHTTPcが動作 レコーダ:「機器連携」ボタン押下でUPnPが動作 無線機器:「無線設定」ボタン押下でWPAcが動作 ドアホン:「再起動時」のみDHCPc機能が動作 ディスプレイ:操作し続けなければ「省電力モード」 すべて 手作業…
サーボモータを利用した簡易な装置を使用 1軸版:上下運動(単純なボタンの押下など)のみ可能 3軸版:3次元的な動作(タッチパネル上のキー入力など)が可能 PCより動作制御を行い、攻撃ツールとの連動が可能 物理操作自動化により、NW経由の攻撃の実施効率を向上 操作自動化事例①:物理ボタンの押下 Panasonic PSIRT
4 サーボ モータ 攻撃ツール 制御用PC 連動 または 無限ループ動作 3.リクエスト 送信 4.不正データ 応答 IoT デバイス 2.ボタン押下 (物理操作) 1.物理操作 指令送信 解決策:物理操作に関しては、簡単な動作を繰り返すロボットを活用 不正パケット による攻撃
リモコンから送出されるIR信号を模擬できる装置を活用 価格は比較的安価(数千円程度) リモコンからの信号を受信、再送することでリモコン操作を模擬 送信データを変更したり、順番の組替え等のカスタマイズも容易 リモコン自動化により、NW経由の攻撃の実施効率を向上 解決策:リモコン操作は「学習リモコン」やIR送受信装置の活用 1.IR信号送信
操作自動化事例② :赤外線リモコン Panasonic PSIRT 5 攻撃ツール 制御用PC 連動 または 無限ループ動作 2.リクエスト 送信 3.不正データ 応答 IoT デバイス 不正パケット による攻撃 IR 送受信装置
USB端子を備えたIoTデバイスは多い ログコピーなど保守用 専用の周辺端末接続 キーボード利用が想定されていない場合も 付属の専用周辺機器からのデータは想定内・・・ では、キーボードからのキー入力は?
さらにショートカットキーは? ▪想定される脆弱性の例 •機能制限された専用画面上でのタッチパネル操作からは アクセスできないはずの機能が、ショートカットキーで起動 •疑似キーボードから、通常のキーボード入力を超える流量の 大量な文字データ送信を行うと機器がハングアップ 解決策:疑似USBデバイスによる入力の総当たりチェック Panasonic PSIRT 6 大量のキー入力 Linuxショートカット Windowsショートカット プログラミング 診断対象(USB-host) 攻撃ツール(USB-device) 操作自動化事例③ :キーボード操作
• ポチポチ操作自動化 – Arduino & Python • import serial, serial.tools.list_ports
– DEFCON-21 • Engler-Vines-Electromechanical-PIN-Cracking • https://www.co.tt/files/defcon21/Speaker%20Materials/Justin%20E ngler%20and%20Paul%20Vines/Extras/ • 赤外線リモコン自動化 – PC-OP-RS1をpythonで操作する • http://buffalo.jp/products/catalog/item/p/pc-op-rs1/ • http://miti-7.hatenablog.com/entry/2015/12/31/100245 • 電源制御自動化 – リモート電源制御RC1504A • http://www.omron.co.jp/ese/ups/rc/rc1504a/rc1504a.html 参考1:
• GUI画面操作自動化 – Python • import pyautogui • im=pyautogui.screenshot() –
Windows 自動化ソフト UWSC • http://www.uwsc.info/ • Web処理自動化 – Python • import requests • from bs4 import BeautifulSoup • パケット処理自動化 – Python • import subprocess – Tshark • tshark -i IF_num -f pkt_fltr -c pkt_num -T fields -e frame.time_relative 参考2:
• ファイル・フォルダ操作の自動化 – Python • import os, shutils • os.listdir(any_path)
• shutil.move(file,path) • 画像、動画処理の自動化 – Python • import cv2 • from PIL import Image,ImageChops,ImageDraw • import numpy as np • コマンド実行自動化 – Python • import subprocess • subprocess.Popen(r'explorer /open,'+line) 参考3:
• 退屈なこと – Pythonにやらせよう • https://automatetheboringstuff.com/ • 地味な作業を自動化する温故知新なTIPS – 単純作業を自動化して人類の無駄な時間をなくそう@takesako
– http://takesako.hatenablog.com/entry/2016/12/05/23575 1 • sshで30台のサーバを自動化セットアップ • マインスイーパーの自動化 • BadUSBによるキーボード入力の自動化 参考3:
日本経済新聞-わたしの仕事、ロボットに奪われますか?:日本経済新聞 https://vdata.nikkei.com/newsgraphics/ft-ai-job/ 参考4:
Future Work • 定常的なツール診断業務はすべて自動化 – NWカメラの画像検出によるIoTデバイスの死活確認 – 夜間・休日の自動診断 – 複数のセキュリティ診断ツールの自動実行
– 診断ログの蓄積 – 異常検知時の通知 • あいた時間を重要な手動診断や先行技術開発に • より、効率の良い自動化について • アイディアがあれば • ぜひ語り合いましょう