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
プロセッサエミュレータQEMUを用いた組込み機器へのROP攻撃のデモンストレーション / CS...
Search
yumulab
October 26, 2022
Research
0
430
プロセッサエミュレータQEMUを用いた組込み機器へのROP攻撃のデモンストレーション / CSS2022
CSS2022デモンストレーションセッションの発表資料
https://dl.yumulab.org/papers/28
yumulab
October 26, 2022
Tweet
Share
More Decks by yumulab
See All by yumulab
デジタルファブリケーションの未来を北海道・札幌から考える / SIAF School 2025
yumulab
0
63
入浴時に映像が投影される一人用足湯システムの開発と運用 / ipsjhokkaido2024
yumulab
0
73
NNEPS: Network-Updated E-Paper Signage with Reduced Standby Power Consumption (Poster)
yumulab
0
62
NNEPS: Network-Updated E-Paper Signage with Reduced Standby Power Consumption (Slide)
yumulab
0
10
Shoe Recognition Model with Floor Pressure Sensors (Poster)
yumulab
0
40
Shoe Recognition Model with Floor Pressure Sensors (Slide)
yumulab
0
5
湯村研究室の紹介2024 / yumulab2024
yumulab
0
380
Practices of Research and Education using Digital Fabrication Technologies
yumulab
0
34
Utilization of Fabrication Technology for Prototyping and Creation
yumulab
0
35
Other Decks in Research
See All in Research
ソフトウェア研究における脅威モデリング
laysakura
0
1.6k
ベイズ的方法に基づく統計的因果推論の基礎
holyshun
0
820
한국어 오픈소스 거대 언어 모델의 가능성: 새로운 시대의 언어 이해와 생성
inureyes
PRO
0
220
ECCV2024読み会: Minimalist Vision with Freeform Pixels
hsmtta
1
420
[輪講] Transformer Layers as Painters
nk35jk
4
670
Large Vision Language Model (LVLM) に関する最新知見まとめ (Part 1)
onely7
24
5.9k
VisFocus: Prompt-Guided Vision Encoders for OCR-Free Dense Document Understanding
sansan_randd
1
460
DeepSeek を利用する上でのリスクと安全性の考え方
schroneko
3
620
地理空間情報と自然言語処理:「地球の歩き方旅行記データセット」の高付加価値化を通じて
hiroki13
1
190
PostgreSQLにおける分散トレーシングの現在 - 第50回PostgreSQLアンカンファレンス
seinoyu
0
230
eAI (Engineerable AI) プロジェクトの全体像 / Overview of eAI Project
ishikawafyu
0
380
渋谷Well-beingアンケート調査結果
shibuyasmartcityassociation
0
400
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
521
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Docker and Python
trallard
44
3.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Rails Girls Zürich Keynote
gr2m
94
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Visualization
eitanlees
146
15k
Being A Developer After 40
akosma
89
590k
Fireside Chat
paigeccino
34
3.2k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Cult of Friendly URLs
andyhume
78
6.2k
Building Applications with DynamoDB
mza
93
6.2k
Transcript
プロセッサエミュレータQEMUを用いた組込み機器への ROP攻撃のデモンストレーション 多⽊ 優⾺1, 福光 正幸2, 湯村 翼1 1)北海道情報⼤学 2)⻑崎県⽴⼤学
Computer Security Symposium 2022 デモンストレーション 本稿では、i686で動作するCentOS6と、ARM Cortex-A53で稼働するRaspberryPi OSでのROP検証を⾏った。 今後は、ARM Cortex-M0で動作するRIOT OSで脆弱なテストプログラムを動作させ、そこへROP攻撃を試す。 さらに、ROP攻撃対策を考案し、必要であればセキュリティ機構の実装も⾏う。 Arm Cortex-A53・RaspberryPi OS OSのバージョン確認コマンド“lsb_release -a”を ホスト環境から実⾏し、攻撃の成功を確認した。 i686・CentOS6 OSのバージョン確認コマンド“cat /etc/redhat-release”を ホスト環境から実⾏し、攻撃の成功を確認した。 ・エクスプロイトコードを組込み機器を模した環境に送信し、ROP攻撃検証を⾏った。 ・組込み環境はQEMUを⽤いて構築した。 ・組み込み環境はQEMUの設定により、ホスト以外との通信を遮断している。 〇⽬的: OSとプロセッサの組み合わせによるROP攻撃の可能性を 調査するため、様々な組込み機器に対してROP攻撃検証を⾏う。 最終的にはデモ環境へROP対策を施す 〇背景: IoT機器の普及によって組込み機器の需要が増加している。 ⼀⽅で、ROP攻撃の研究が進んでいる。 このROP攻撃は組込み機器に対しても有効なため、 ROP対策が施されていない可能性のある、 低スペックな組込み機器の調査を⾏う。 研究概要 ・プログラムの命令⽚(アセンブリコード)を繋ぎ合わせて 任意の処理を⾏わせる攻撃。 ・様々なアーキテクチャに応⽤することも可能。 ROP攻撃とは? ROP攻撃検証 両環境のセキュリティ機構実装状況: NX bit 有効 / SSP 無効 / ASLR 無効 / CFI 無効 おわりに レジスタ 0x400100: pop rdi 0x400102: ret : アセンブリコード buf (0x10) rsp saved rbp リターンアドレス スタック領域 ・ ・ ・ rbp system(/bin/sh)を実⾏して制御を奪う例 レジスタ rdi: 第1引数を格納 rip: 次に実行する命令の アドレスを格納 rbp: スタックベースの アドレスを格納 rsp: スタックトップの アドレスを格納 0x400100: pop rdi 0x400102: ret : アセンブリコード スタック領域 ROPチェーン送信後 レジスタ rdi: /bin/shのアドレス rip: 0x400102 rbp: 0x41414141… rsp: スタックトップの アドレスを格納 0x400100: pop rdi 0x400102: ret : アセンブリコード スタック領域 leave命令(関数終了処理)後、0x400100に遷移してpop rdiを⾏う レジスタ rdi: /bin/shのアドレス rip: systemのアドレス rbp: 0x41414141… rsp: スタックトップの アドレスを格納 0x400100: pop rdi 0x400102: ret : アセンブリコード スタック領域 0x40102に遷移してret命令を⾏う rdi: 第1引数を格納 rip: 次に実行する命令の アドレスを格納 rbp: スタックベースの アドレスを格納 rsp: スタックトップの アドレスを格納 AAAAAAAA… rsp AAAAAAAA 0x400100 rbp /bin/shのアドレス systemのアドレス AAAAAAAA… rsp AAAAAAAA 0x400100 /bin/shのアドレス systemのアドレス AAAAAAAA… rsp AAAAAAAA 0x400100 /bin/shのアドレス systemのアドレス ※pop rdi: rspが指す値をrdiに格納する。 ※ret: rspが指す値をripに格納する。 ROP攻撃例(x86_64環境の場合)