UACを回避してソフトウェアを常駐させることができる?
初回投稿日時: 2009年05月26日23時03分49秒
カテゴリ: 雑談
SNS:
Tweet (list)
先日、IRCでUACの話をしていた時にふと思いついた話です。
一部の方に絶賛不人気なUAC、基本的には私は好きですし、これの無いWindows XPやWindows 2000を今更使いたくないです。ですが、そのUACも(悪意あるソフトウェア側からみると)抜け穴があるもので、これを利用している一番メジャーなソフトはGoogle Chromeではないかと思います。
Google ChromeはUACによる認証が必要なProgram Files配下ではなく、ユーザフォルダのAppData\Local\Google\Chrome\Application
に強制的(勝手に、とも言う)にインストールします。各ユーザごとのフォルダは、そのユーザに所有権があるのでUACの承認無しでファイルが作れてしまうためです。これは、悪意あるソフトウェアがGoogle Chromeの実行ファイルを改竄する際にもUACで止めることができない、という非常に危険な話でもあります(この点に関しては是非ともGoogleにはあらためてもらいたいです)。
前置きが長くなってしまいましたが、この話から思いついたのが以下の話です。
同じ条件のUACによる確認が行われない重要なフォルダにスタートメニューがあります。スタートメニューの実体はAppData\Roaming\Microsoft\Windows\スタートメニュー
にあるためです。さらにこの中にはスタートアップ
フォルダがあります。そう、UACを回避して、悪意あるソフトウェアを常駐させることが可能な訳です。
もちろん、スタートアップ
に任意のショートカットを仕込んだり、またその前段階としてその悪意あるソフトウェアを侵入させておかないといけない、という問題はありますが、自動再生の問題を利用したりすることを考えると、ちょっと恐い気がします。
Microsoftにこの件について問い合わせたところ、仕様であるとの回答をもらったので、注意喚起のためにここに書いておきます。一応、以下の方法で、スタートメニューへの書き込み自体でUACのダイアログが出るようにすることもできますので、不安な方は対処すると良いかもしれません。
- (設定したい)フォルダのプロパティを開く
- セキュリティタブで詳細設定ボタンを押す
- 所有者タブで、所有者をAdministratorに変更する
- アクセス許可タブで編集ボタンを押す
- 「このオブジェクトの親からの継承可能なアクセス許可を含める」のチェックを外す
- 権限をコピーするか聞かれるので「コピー」を選択
- 現在のユーザからのアクセス許可を削除する
- 追加で、Usersを追加し、Usersには読み取りと実行権限だけを与える(つまり、書き込み権限は与えない)
間違いがあるかもしれませんが、その場合、blogなり、なんなりからツッコミを入れていただけるとありがたいです。