2016-09-24

カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題

Double KO! Capcom's Street Fighter V installs hidden rootkit on PCs • The Register

カプコンのPC版ストリートファイター5のアップデートで、チート防止機能の実装に、rootkitが含まれている問題。

PC版ストリートファイター5のアップデートに含まれているカーネルドライバー、capcom.sysは、IOCTLでサービスを提供する。その挙動は、まずSMEPを無効にし、呼び出し元の指定したポインターの参照するユーザーモードのアドレス空間上のコードを実行し、SMEPを再び有効にする。

とんでもない脆弱性で、ユーザーモードからカーネルモードでの任意のコード実行を可能にするので、rootkitに分類できる。

Supervisor Mode Execution Protection(SMEP)とは、カーネルモードからユーザーモードに割り当てられたアドレス空間のコードの実行を防ぐCPUの保護機能。

この実装者がヤクでもキメていたかのようなイカれた挙動は、ストリートファイター5でメモリ書き換えのチートを防止する機能のために使われているようだ。

カーネルドライバーを実装できるほどMSのドキュメントを辛抱強く読める能力を有したプログラマーが、この挙動がいかにヤバイものであるかを認識できないというのはにわかに信じられないのだが、一体どうなっているのだろう。

なお、カプコンは公式Twitterアカウントで近いうちに修正を出すと発言している。

4 comments:

Anonymous said...

不自由なドキュメントを読みすぎて精神を病んだんだな

Anonymous said...

もしかして: https://cpplover.blogspot.jp/2009/09/oldnewthing.html

Anonymous said...

カーネルモードで任意のコードを実行できるドライバがあればカーネルモードで任意のコードが実行できる!やったぜ!


なおセキュリティ対策ソフトは見逃してくれない模様

Anonymous said...

無名のオープンソースライブラリを公開している者ですが、まさに同じようなドライバを$200で作ってくれない? というメールを米国の会社から受け取って速攻で迷惑メール送りにした覚えがあります。そういう仕事を引き受けちゃう人も世の中にはいるんだろうなあ。