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
2.8k
CVE-2022-47949について
Security.Tokyoで発表させていただいた際のスライドです。
週末せっきゅ!
March 17, 2023
Tweet
Share
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
110
A designer walks into a library…
pauljervisheath
210
24k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
360
First, design no harm
axbom
PRO
1
1.1k
Why Our Code Smells
bkeepers
PRO
340
58k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Chasing Engaging Ingredients in Design
codingconduct
0
94
Writing Fast Ruby
sferik
630
62k
Designing for Timeless Needs
cassininazir
0
110
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
ありがとうございました!