インストーラが起動したプログラムは権限昇格済み

Windows VistaUACはけっこう厳しい、というか、うるさいんだけど、これは穴じゃないかと思う現象がありました。

  1. インターネットからプログラムのインストーラをダウンロード
  2. インストールしようとすると、インストール前に権限昇格を問うダイアログが出る
  3. インストーラのオプションで、「インストール後にプログラムを起動」にチェックをつけ、「完了」をクリック
  4. インストーラが起動したプログラムは、インストーラプロセスの権限を引き継いで、権限昇格された状態で起動することがある

ユーザにとって未知のプログラムなのに、そいつは初回起動時に権限昇格した状態で動けてしまう。しかし、スタートメニューから改めて起動すれば、UACをバイパスするようなことはなく、権限昇格が必要なリスクのある操作が必要なとき、いちいちダイアログが表示される。

…ううむ、これって逆じゃない?

攻撃者は、ユーザにインストーラを信用させてしまいさえすれば、その直後の初回起動でUACをバイパスできる。この攻撃から身を守るには、

  • インストーラが表示する権限昇格ダイアログは、インストール行為についての許可のみだと思わない。いつもクリックしてるからと、惰性で許可してしまわない。
  • 「インストール後にプログラムを起動」にチェックをつけずにインストールを完了し、改めてスタートメニューから起動すること。

という心がけが必要だろう。しかし、Vistaのスタートメニューは「すべてのプログラム」の一覧性が悪いので、ちょっと試してみたいだけのプログラムについて、いちいちスタートメニューから選び直すのが面倒、って障壁はあるよね。