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
CVE-2022-47949について
Search
週末せっきゅ!
March 17, 2023
0
1.5k
CVE-2022-47949について
Security.Tokyoで発表させていただいた際のスライドです。
週末せっきゅ!
March 17, 2023
Tweet
Share
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
28
5.9k
Rails Girls Zürich Keynote
gr2m
91
13k
Statistics for Hackers
jakevdp
789
220k
Thoughts on Productivity
jonyablonski
57
3.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Practical Orchestrator
shlominoach
180
9.7k
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
Teambox: Starting and Learning
jrom
126
8.4k
The Art of Programming - Codeland 2020
erikaheidi
40
12k
Making Projects Easy
brettharned
106
5.4k
Transcript
一緒にプレイするだけで乗っ取り!? ~任天堂のバッファオーバーフロー脆弱性~ 小笠原 啓祐
目次 自己紹介 脆弱性の概要 デモ動画 バッファオーバーフローについて 脆弱性解説 補足
自己紹介 ・大学一年生 ・サークル「週末せっきゅ!」(2名)してます ・情報機器管理コンテスト出ます →インシデントレスポンス等 お話聞きたいです!! 週末せっきゅ!@yuluhack
3DS以降の任天堂ゲームの共通ネットワークコード(ENL)に存在する脆弱性 攻撃 者がオンラインゲームをしているだけで被害者のゲーム機で リモートコード 実行可能(RCE)な脆弱性(修正済) 対象となったゲーム(画像は全て任天堂公式 HPより) ・マリオカート7,8 ・スプラトゥーン1,2,3 ・あつまれ どうぶつの森 etc,,, ENLBufferPwn(CVE-2022-47949)の概要
実際の動画 以下の動画でのハッキング、チーティング おそらくこの脆弱性によるものと考えられる https://www.youtube.com/watch?v=nVCPjUrkfPg&ab_channel=%E3%81%8F%E3 %82%89%E3%81%86%E3%81%A9 攻撃者側の概念実証デモ https://www.youtube.com/watch?v=PLAVmp5ky-k&ab_channel=PabloMK7
バッファオーバーフローとは? 許容量を超えるデータを送信し、システム機能を停止 または悪意あるプログラムを実行する攻撃(画像はIPA)
ENL ENL・・・任天堂のゲームで(オンライン上で)用いられ るネットワークライブラリ。 peer to peerのプライベート通信フレームワーク。今回 の脆弱性の原因だった。 クラス、メソッドの実装→
setもaddも入力されたデータサイズが バッファ サイズに収まるかをチェックしていない!
やや詳しく,,, ENLネットワークライブラリは、非同期であり、データ がバッファに充填される間、ゲームは他の操作を行う ことが可能なダブル・バッファ技術が使われており、 ネットワークバッファオブジェクトとそのコンテンツは 隣接している。 また、ダブルバッファからの両方の バッファは、メモリ上で隣接している。 バッファ割り当て後のメモリの配置は右図。
画像上部のバッファは Buffer0 として参照され下部 のバッファは Buffer1 として参照される。攻撃者は Buffer0 のバッファオーバーフローを起点に、 Buffer1 の
dataptrメンバを含む属性を上書きする ことができる。3DSはアドレス空間配置のランダム 化( ASLR) を実装していないため(なんと!),被害 者のゲーム機内のすべてのメモリ配置を知ることが でき、dataptr は任意の場所を指定できる。ゲーム がバッファを交換すると、新しいデータは任意の場 所にコピーされる。 これを利用して,,,
1,被害者のゲーム機に バッ ファオーバーフローを 引き起こ し、dataptrを上書きする用の データ (ペイロード)を送 信する 2,Buffer1 の内容を任意の データで設定することで 被害 者のゲーム機のBuffer1の dataptrが指す任意のアドレス
にコピーされる。 1,2を繰り返す。
クレジット 元のPoC(パブリックドメイン) PabloMK7/ENLBufferPwn: Information and PoC about the ENLBufferPwn vulnerability
(github.com) 情報処理推進機構 安全なウェブサイトの作り方 https://www.ipa.go.jp/security/vuln/websecurity 任天堂公式HP https://www.nintendo.com
ありがとうございました!