Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
組込み機器へのROP攻撃の検証のためのプロセッサエミュレータを用いた調査 / IPSJHokkaido2022
yumulab
October 15, 2022
Research
0
290
組込み機器へのROP攻撃の検証のためのプロセッサエミュレータを用いた調査 / IPSJHokkaido2022
情報処理北海道シンポジウム2022の発表資料
https://dl.yumulab.org/papers/27
yumulab
October 15, 2022
Tweet
Share
More Decks by yumulab
See All by yumulab
Furm: 家具移動アプリケーションの提案 / IOTS2022-tsujinaga
yumulab
0
260
画面転送式デジタルサイネージの開発に向けたVNCトラフィックの計測 / IOTS2022-akiba
yumulab
0
130
Are Embedded Devices Ready for ROP Attacks?-ROP verification for low-spec embedded devices. -
yumulab
0
75
プロセッサエミュレータQEMUを用いた組込み機器へのROP攻撃のデモンストレーション / CSS2022
yumulab
0
90
情報メディア入門III 2022 ヒューマンコンピュータインタラクション / IM3-2022
yumulab
0
58
北海道情報大学オープンキャンパス模擬講義「IoTプログラミング演習」 / HIUOC2022
yumulab
0
31
フリーランスエンジニアをやった話とハードウェアスタートアップを起業した話 #アンプレトーク / Freelance and Hardware Startup
yumulab
0
120
情報の世界 2022年度 第12回「個人のデータ」 #情報の世界 / Data of Individual 2022
yumulab
0
53
情報の世界 2022年度 第11回「都市のデータ」 #情報の世界 / Data of City 2022
yumulab
0
160
Other Decks in Research
See All in Research
知られざるAmazonとAWSのScientist
icoxfog417
0
1.5k
投資戦略202301
pw
0
460
論文解説 Latent Diffusion Model
koharite
0
570
対話型AIの構築における工夫とデータセットの重要性 - 素早くデータを構築し検証するためには
yag_ays
3
2.7k
第50回構造活性相関シンポジウムランチョンセミナー_SMILES言語モデルSmilesFormerの開発とその応用例
elix
0
150
FADEC: FPGA-based Acceleration of Video Depth Estimation by HW/SW Co-design (FPT 2022)
hashi0203
0
180
『組織として』顧客を理解するインタビュー習慣の作り方 #pmconf2022 / Continuous user interview habit
tktktks10
4
5.7k
SummerCake_pdf.pdf
lyh125
0
170
Open science for health data, applying the scikit-learn recipe?
gaelvaroquaux
0
140
プルサーマル202211アップ用.pdf
hide2kano
0
150
Transformer / Vision and Languageの基礎
sgnm
1
390
kintone UXリサーチャーのお仕事紹介
cybozuinsideout
PRO
1
840
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
240
11k
Six Lessons from altMBA
skipperchong
15
2.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
It's Worth the Effort
3n
177
26k
Scaling GitHub
holman
453
140k
Mobile First: as difficult as doing things right
swwweet
213
7.8k
The Art of Programming - Codeland 2020
erikaheidi
36
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.5k
How STYLIGHT went responsive
nonsquared
89
4.2k
Into the Great Unknown - MozCon
thekraken
2
300
The Language of Interfaces
destraynor
149
21k
Debugging Ruby Performance
tmm1
67
11k
Transcript
組込み機器へのROP攻撃の検証のためのプロセッサエミュレータを⽤いた調査 多⽊ 優⾺1, 福光 正幸2, 湯村 翼1 1)北海道情報⼤学 2)⻑崎県⽴⼤学 情報処理北海道シンポジウム2022
本稿では、i686で動作するCentOS6と、ARM Cortex-A53で稼働するRaspberryPi OSでのROP検証を⾏った。 今後は、ARM Cortex-M0で動作するRIOT OSで脆弱なテストプログラムを動作させ、そこへROP攻撃を試す。 さらに、ROP攻撃対策を考案し、必要であればセキュリティ機構の実装も⾏う。 レジスタ 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: 第1引数を格納 rip: 0x400102 rbp: 0x41414141… rsp: スタックトップの アドレスを格納 0x400100: pop rdi 0x400102: ret : アセンブリコード スタック領域 leave命令(関数終了処理)実⾏後、0x400100に遷移 レジスタ rdi: /bin/shのアドレス rip: systemのアドレス rbp: 0x41414141… rsp: スタックトップの アドレスを格納 0x400100: pop rdi 0x400102: ret : アセンブリコード スタック領域 0x40102実⾏後 rdi: 第1引数を格納 rip: 次に実行する命令の アドレスを格納 rbp: スタックベースの アドレスを格納 rsp: スタックトップの アドレスを格納 Arm Cortex-A53・RaspberryPi OS OSのバージョン確認コマンド“lsb_release -a”を ホスト環境から実⾏し、攻撃の成功を確認した。 i686・CentOS6 OSのバージョン確認コマンド“cat /etc/redhat-release”を ホスト環境から実⾏し、攻撃の成功を確認した。 ・エクスプロイトコードを組込み機器を模した環境に送信し、ROP攻撃検証を⾏った。 ・組込み環境はQEMUを⽤いて構築した。 ・エクスプロイトコードの作成にはPwntoolsを使った。 ・組み込み環境はQEMUの設定により、ホスト以外との通信を遮断している。 〇⽬的: OSとプロセッサの組み合わせによるROP攻撃の可能性を 調査するため、様々な組込み機器に対してROP攻撃検証を⾏う。 〇背景: IoT機器の普及によって組込み機器の需要が増加している。 ⼀⽅で、ROP攻撃の研究が進んでいる。 このROP攻撃は組込み機器に対しても有効なため、 ROP対策が施されていない可能性のある、 低スペックな組込み機器の調査を⾏う。 研究概要 ・プログラムの命令⽚(アセンブリコード)を繋ぎ合わせて 任意の処理を⾏わせる攻撃。 ・様々なアーキテクチャに応⽤することも可能。 ROP攻撃とは? ROP攻撃例(x86_64環境の場合) ROP攻撃検証 両環境のセキュリティ機構実装状況: NX bit 有効 / SSP 無効 / ASLR 無効 / CFI 無効 AAAAAAAA… rsp AAAAAAAA 0x400100 rbp /bin/shのアドレス systemのアドレス AAAAAAAA… rsp AAAAAAAA 0x400100 /bin/shのアドレス systemのアドレス AAAAAAAA… rsp AAAAAAAA 0x400100 /bin/shのアドレス systemのアドレス おわりに