多少安全なWindowsでの実行方法


自分のアカウントでアプリケーションを動かしていると、不正なプログラムが混入した際に情報の漏えいが防げなかったり、 プログラムの不具合によってシステムにダメージを与えてしまう場合があります。

なので、権限の制限されているアカウントでアプリケーションを実行することをお勧めしたいのですが、 Un*x系ならadduserしてsudoすれば済む話ですが、 Windowsで同様のことをするにはどうすればいいかイマイチわからなかったので調べた結果を以下にまとめました。

※この手順の利用は自己責任で。


概要

手順は以下の通りです。

  1. Guestユーザを有効にする
  2. TinyBannaviフォルダに、Guestユーザでのアクセス権限を付与する
  3. Guestユーザで実行するバッチファイルを作る

Guestユーザを有効にする

「Guestユーザは無効に」という記事が昔からありますが、別アカ作ってGuestsグループに入れても他人の作ったファイルをバンバン消せてしまったので(どうもセキュリティの詳細に出てくるAuthenticated Usersグループというのが関連しているらしい)、ここではGuestユーザを使うこととします。

有効にする際の注意点は、以下の記事を参考にしてください。

ヒント: セキュリティで保護された Guest アカウントを作成するためのベスト プラクティス(Microsoft)

Windows 7で安全なGuestアカウントを作る(@IT)

Windows 7のゲストアカウント名を変更してセキュリティを強化(lifehacker)


TinyBannaviフォルダに、Guestユーザでのアクセス権限を付与する

こんな感じ?

SEC_FOLDER_SETTING.png
フォルダのセキュリティ設定


Guestユーザで実行するバッチファイルを作る

一度、アクセスが制限されていることを確認してみます。

runasコマンドでGuestユーザとしてコマンドプロンプトを起動します。

SEC_GUEST_LOGIN.png
guestユーザとして実行

明示的に許可されていない行為はアクセスが制限されていることが確認できます。

SEC_ACCESS_DENIED.png
アクセスが拒否されている様子

Shift+右クリックメニューからの「別アカウントでの実行」やrunasコマンドを毎回叩くのは面倒なので、TinyBannaviフォルダの外に(←ちょお重要)バッチファイルを作っておきます。

runas.exe /user:guest D:\TinyBannavi\tinybannavi.cmd

ProcessExplorerで見てみると、Guestユーザで実行しているのが確認できます。

SEC_RUNNING.png
Guestユーザで実行しているようだ


注意事項

  • 鯛ナビ起動の度、毎回パスワードを入れる必要があります(対処方法はいくつかあるようですが、ここでは紹介しません)
  • 一般的なフォルダに対しては、ファイルの作成/変更は制限できますが読み取りまでは制限されません
    あまり見られたくないファイルはマイドキュメントに置くか自分のアカウントしか見れないようにセキュリティ設定を行ったフォルダに置いてください
  • なぜかWindows Look&Feelを指定してもWindows Classic Look&Feelになってしまいます(調査中)
  • 起動時のDOS窓閉鎖5秒待ちがスキップされます(ping.exeが拒否られるので)

以上です。