Windows用フリーウェア「WinAmulet」を公開します
・「イージスガード」公開のお知らせ (2009/10/06)
WinAmulet 上位互換の「イージスガード」を個人用フリーソフトとして公開しました。イージスガードに使用制限はありません。今後はぜひこのイージスガードをご利用下さい。
・WinAmulet 終了のお知らせ(?) (2009/08/13)
■ はじめに
私の PC には個人的なファイルをたくさん保存しているフォルダがあります。その中身は、住所録や思い出のスナップ、メールデータやちょっとした秘密のメモなどさまざまです。
ある時ふと思いました。これらのファイルを読み書きするときに使うプログラムはごく限られています。 普段自分がそれ以外のプログラムを使ってこれらにアクセスすることはありませんし、まして、たとえ Windows のシステムプログラムであっても、自分の意図とは無関係に動いているプログラムからこれらに勝手にアクセスされるのは決して気持ちの良いものではありません。
それならいっそのこと自分のフォルダへのアクセスを許すプログラムを限定してしまえばいいのではないかと思い立ち、
「あるフォルダへのアクセスが可能なプログラムを制限することのできるツール」を作ってみることにしました。それが「WinAmulet」です。まだ不具合もあるかも知れませんが、開発中の最新版をフリーソフトとして公開します。興味のある方はお試し下さい。
ダウンロードはこちらから
もくじ
■ バージョン履歴
□ イージスガード 1.0.0.0 2009/10/06 公開
WinAmulet 上位互換の「イージスガード」バージョン 1.0.0.0 を個人用フリーソフトとして公開しました。これに伴い、WinAmulet としての開発は 0.9.4.0 をもって停止します。今後はこのイージスガードをご利用下さい。
イージスガード公式ページ(KLab サイトへ)
〜以下は WinAmulet の開発記録です〜
□ WinAmulet バージョン 0.9.4.0 2009/08/13 公開
- キャッシュ機構の実装により処理効率を大幅に改善しました
- リダイレクト処理の精度を改善しました
# 「山崎」さん、フィードバックをありがとうございました :-) - ログウィンドウにファイルオープン要求中のプロセス名の表示を加えました
- ログウィンドウ上のレコード、および設定画面でのアクセス許可プログラム名のクリップボードコピーに対応しました
- タスクトレイアイコン右クリックメニューに「KLab 若手エンジニアブログ」へのリンクを追加しました
- 旧バージョン利用中のユーザーはバージョンアップにより引き続き WinAmulet をご利用頂けます
- 内部エンジンの性能向上により稼動中の動作がさらに軽快になりました
- アクセス違反検出時には従来のバルーンメッセージに加えタスクトレイアイコンの点滅で通知します
- リダイレクト先のダミーフォルダを任意に設定可能となりました
- 最初の公開バージョン
■ WinAmuletの特長
「WinAmulet」は Windows 2000 SP4 以上の 32ビット Windows 環境で動作するプログラムです。
次のような特長があります。
- 所定のフォルダへのアクセスを許可するプログラムをユーザーが任意に指定可能
- 許可していないプログラムからのアクセスを検出すると報告・記録される
- 不許可のアクセス要求はプログラム側が意識しないまま透過的にダミーフォルダへリダイレクトされる
■ インストール(またはアップデート)とアンインストールの方法
管理者権限のあるアカウントで Windows へログオンして下さい。
- 初めて WinAmulet をご利用になる方は、ダウンロードしたアーカイブの中身を PC 上の適当なフォルダへ展開して下さい。
- 旧バージョンの WinAmulet をご利用中の方は、以前のバージョンの WinAmulet を置いたフォルダにダウンロードしたアーカイブの中身を上書きして下さい。
- WinAmulet が不要になった場合にはファイル一式を削除して下さい。
「7F8C0061FF24936D3DE28AEC3950D3FD」です。
下記のようなツールを使うとハッシュ値を簡単に確認することができます。
窓の杜 - HashTab Shell Extension
■ 初回起動時のご注意
展開したアーカイブに含まれる「WinAmulet.exe」を実行して下さい。 WinAmulet バージョン 0.9.4.0 の初めての起動時には、次のダイアログが表示されます。
日付が正しければ「はい」を押下して下さい。本プログラムの使用期限がダイアログに表示されますので、確認後に「OK」を押して下さい。WinAmulet が起動します。
■ 設定方法
WinAmulet が起動すると、タスクトレイに「外れた錠前+フォルダのアイコン」が常駐します。これが WinAmulet のアイコンです。仔犬のアイコンは先日このブログでご紹介した「Whine」です。WinAmulet は Whine と連携してユーザにメッセージを伝えます。
タスクトレイ上の Amulet のアイコンを右クリックするとポップアップメニューが開きます。
初めて使用する時はまず「設定」を選択して下さい。
サンプルとして「マイドキュメント」フォルダを保護するための設定が登録されています。
このデフォルトの保護設定を追ってみることで設定方法をご説明します。
「マイドキュメント保護設定」の行をクリックして右側の「編集」ボタンを押下して下さい。次のパネルが開きます。
保護対象とするフォルダのパスをここで指定します。このように一件の保護設定には一件のフォルダパスが対応します。
「次へ」を押下します。
このパネルでは当該フォルダへのアクセスを許可するプログラムを登録します。ここでは「マイドキュメント」フォルダ以下へのアクセスを許可するプログラムとして Windows エクスプローラのみが登録されています。
一覧にない新しいプログラムを登録するには「新規」ボタンを、登録ずみのプログラムの設定を変更するには一覧上の項目を選択して「編集」ボタンを押して下さい。下のサブパネルが開きます。ここで所定のプログラムからのアクセスを許可するか否かを設定します。WinAmulet は許可されたプログラム以外はすべて非許可として扱いますが、アクセスを許可しないプログラムを明示的に指定することもできます。
「OK」または「キャンセル」ボタンを押すとプログラム一覧のパネルに戻ります。次へ進みましょう
最後にこの設定の名前をつけます。「完了」を押下すれば一件の設定の編集・登録は終了です。 新しい保護設定を作成する場合も同様の手順です。
下記のパネルへ戻ったら「マイドキュメント保護設定」のボックスがチェックされていることを確認して「OK」ボタンを押して下さい。 (各設定の有効/無効はこのチェックのオン/オフで切り替えることができます)
■ フォルダ保護の開始
タスクトレイ上の Amulet のアイコンを右クリックし、ポップアップメニュー先頭の「フォルダ保護を有効にする」を選択して下さい。
ユーザ確認を経てフォルダ保護が有効になり、目印としてトレイアイコンが施錠された絵柄に変わります。
■ フォルダ保護をテストしてみる
上記の手順によって、マイドキュメントフォルダへアクセスできるプログラムは現在 Windows エクスプローラに
限定されています。
それを確認してみましょう。まず Windows エクスプローラから「マイドキュメント」を覗いてみます。
いつもどおりの内容が表示されており変わったところはありません。
次にメモ帳を使って試してみます。notepad.exe を起動し、ファイルメニューから「開く」を選択して
ファイルダイアログから「マイドキュメント」へアクセスしてみましょう。
すると、次のように中身が空っぽの状態で表示されます。
■ 保護設定違反発生時の通知
上記のように、WinAmulet が所定のプログラムからの保護設定違反のアクセスを検出すると、デスクトップに次のようなメッセージバルーンがあらわれ、WinAmulet のタスクトレイアイコンが点滅します。
バルーンに表示されているのは Whine からのメッセージです。notepad.exe にはマイドキュメントフォルダへのアクセスが許可されていないため
WinAmulet が非許可のアクセスを検知してそれをユーザに伝えたというわけです。
このバルーン、または点滅中のタスクトレイアイコンをクリックすると次のウィンドウが開きます。
ご覧の通り、今回のアクセスで「notepad.exe」が引き起こした許可されないアクセスが記録されています。
所定の行をダブルクリックすると次のパネルが開きます。
ここで notepad.exe のマイドキュメントフォルダに対するアクセス許可を設定することができます。
「アクセスを許可する」をチェックして「OK」を押下すれば notepad.exe が許可プログラムとして登録されます。
あらためてメモ帳のファイルメニューから「開く」を選んでマイドキュメントフォルダを参照してみます。
すると、今度は下図のようにフォルダの中身を正しく表示することができました。
いかがでしょう。これが WinAmulet の機能です。
■ 内部で行われていること
さて、この例ではメモ帳は当初マイドキュメントへのアクセスを許可されていなかったため中身を参照できずにいたわけですが、 その一方でメモ帳自身は同フォルダへのアクセスを拒否されたとは認識しておらず エラーメッセージを表示することもありませんでした。これはなぜでしょう?
それは、WinAmulet がメモ帳からのアクセス要求をダミーのパスへリダイレクトしたためです。
あるプロセスがユーザの許可しないアクセス要求を発行すると、WinAmulet はそのリクエストを
「転送先フォルダ」へ透過的にリダイレクトします。転送先フォルダのデフォルトは、システムドライブ直下の
「dum」というフォルダです。つまり、システムドライブが C:ドライブであれば「C:\dum」が転送先フォルダとなります。
ちなみに、フォルダ保護が有効な状態ではこの転送先フォルダへ直接アクセスすることはできません。一旦 WinAmulet による
保護を中断してエクスプローラで「C:\dum」フォルダ以下を覗いてみます。
このように、転送先フォルダ配下には、許可されないプロセスが要求したフォルダパスの階層構造のコピーが構成されています。
非許可のアクセス要求はこの場所へ自動的に飛ばされますが、プロセス側はそれに気づかずあくまでも本物のパスと認識します。
そのため、実際の読み込み・書き込みはこの場所に対して行われることになります。
なお、この転送先フォルダは必要なときに WinAmulet が自動的に作成しますので削除しても大丈夫です。
■ 「転送先フォルダ」の変更方法
転送先フォルダを変更したい場合は、設定画面上の「アクセス要求の転送先フォルダ」−「変更」ボタンを押下して下さい。下記のパネルが開きますので、指示に従って設定を行って下さい。
■ プログラム登録のコツ
以上で WinAmulet の使い方としくみを理解されたことと思います。
あるフォルダへのアクセスを許可するプログラムを効率よく登録するには、まずデフォルトで許可されている
エクスプローラからそのフォルダのファイル一覧を表示し、各ファイルを「開く」ことでファイルへ関連付けられた
プログラムを起動してみることをおすすめします。
たとえば、マイクロソフトエクセルが未許可の状態でこのフォルダ上の .xls ファイルを開こうとすれば許可違反として
通知されますので、上のメモ帳での要領と同様にこれをマウス操作で許可対象に加えてやればいいわけです。
この手順を何度か繰り返せば必要なプログラムの登録を簡単に行うことができます。
■ その他のプログラムにもご注意!
ユーザの指定したプログラムからの要求だけを所定のフォルダ以下へ通すのが WinAmulet ですが、Windows 上で動作している 多くのプログラムの中には、自分が直接起動したものでなくてもユーザの利益のためにフォルダへアクセスしようと するものもあります。こういったプログラムを許可リストへ登録することを忘れないで下さい。
しばらく WinAmulet を立ち上げていると馴染みのない名前のプログラムがあなたのフォルダへアクセスしてくることがあります。
たとえば、下のログウィンドウには「Rtvscan.exe」というプログラムからのアクセスが記録されています。
こういった場合には、図のように項目の上でマウスの右クリックメニューからこのプログラムのプロパティ情報を参照したり、 Web で関連情報を調べてみるといいでしょう。
上のスナップショットの範囲のテキストには表示されていませんが、「Rtvscan.exe」は、シマンテック社のアンチウィルスソフトウェアに含まれるモジュールであることがわかりました。こういったプログラムにはフォルダへのアクセスを許可しておくほうが良いでしょう。また、最近は多くの実行モジュールのチェックサムが Web に掲載されていますので、併せて MD5SUM での検索を試みることをおすすめします。
■ 動作環境
WinAmulet の動作は以下の日本語版 Windows 環境においてのみ確認を行っています。
- Windows 2000 Professional SP4
- Windows XP Home SP3
- Windows XP Professional SP3 32bit
- Windows Vista Business SP1 32bit
- Windows 7 RC 32bit
※ Windows 95/98/Me および Windows NT では動作しません。
■ 注意事項
- このプログラムは初回起動時からおよそ半年間ご使用頂けます。使用期限はタスクトレイアイコン右クリックメニューの 「このプログラムについて」からご確認いただけます。
- 最新の情報は随時ここに掲載しますので、このページをブックマークされることをおすすめします。
- 名前に UNICODE 固有文字および JIS2004 固有文字を含むフォルダを保護対象として設定することはできません。
- アプリケーションの中には Windows の通常操作で扱える最大パス長である 260 バイトを超えるパス名に 対応しているものがありますが、フォルダ保護を有効にした状態では 260 バイト超のパスへの アクセスは制限されます。
■ ダウンロード (バージョン 0.9.4.0 開発版)
ダウンロードの前に下記の使用許諾契約書を必ず最後までお読み下さい。
ダウンロードを開始された場合には本使用許諾契約書に同意されたものとさせて頂きます。
■ WinAmulet 終了のお知らせ
■ 予告:WinAmulet が生まれ変わります!
この半年あまりの間、社内で幾度となくこういう会話が繰り返されました。
A氏「WinAmulet、便利なんだけどさ、○○○で○○できるともっといいよね」
筆者「でもそれをやろうとすると○○が○○だからどうかなぁ」
A氏「それならさ、思いきって○○を○○すればいいんじゃない?」
筆者「うわ、本気で○○○○を○○○するですかっ?」
A氏「絶対そのほうが○○的に○○○と思うんだよね」
筆者「まあちょっと考えてみるけど、うーん」
A氏「あとついでにさ、○○○○○○が○○なら自動的に○○しちゃうとか」
筆者「あはは、またまたご冗談を」
A氏「いやマジで。その方が○○○だし○○する人も多いと思う」
筆者「そういうのって作るのに結構時間がかかると思うんだけど?」
A氏「いいじゃんいいじゃんやろうよ〜」
B氏「話は聞かせてもらった。この際△△△を△△してはどうか?」
A氏「ちょ(笑」
筆者「あはは(笑」
(筆者、どんどんプログラムを書く)
B氏「これはいい。まず PC スキルの高い人に活用してもらおう!」
筆者「あ、それじゃとりあえずフリーで?」
A氏+B氏+社長「もちろん!」
そんなわけで、WinAmulet 上位互換の新しいプログラムを近日公開予定です。 9月末のリリースを目標に現在開発を進めており、公開のあかつきにはこのブログで あらためてお知らせします。ご期待下さい。
2009/10/06 追記:
WinAmulet 上位互換の「イージスガード」を個人用フリーソフトとして公開しました。今後はこのイージスガードをご利用下さい。
イージスガードは WinAmulet を母体とする上位互換のソフトウェアです。WinAmulet ユーザ各位のご支援のおかげで、多くの機能を追加し大きく性能を改善したこの新しいソフトウェアを作ることができました。もちろん、WinAmulet の保護設定をインポートすることも可能です。
イージスガードに使用制限はありません。ぜひ自由にご活用下さい。
(tanabe)
トラックバックURL
この記事へのトラックバック
この記事へのコメント
出来ればRAMドライブにdumを置きたいのですが。
現在のバージョンでは <システムドライブ>\dum 固定なのですが、ご要望が多ければ今後検討させて頂きたいと考えています。よろしくご了承下さい。
例えば、第三者のパソコンなどにUSBを差し込み、USBの中のWinAmuletを起動すれば、自動的にUSBのドライブパスを認識して、USBメモリ自体を保護するような使い方です。またiniファイルを実行ファイルと同じフォルダに置き、事前にアクセス可否設定を編集出来るようになると助かります。ようはPortableWinAmuletみたいなものなんですが、ひとつご検討のほどよろしくお願いします。
USBメモリ専用というのは面白いアイディアですね。ちょっと考えさせて下さい。またあらためてここで・・・
>ようはPortableWinAmuletみたいなものなんですが、
少々遅くなりましたが、この話題に対応したテスト版を作ってみました。
下記の URL からダウンロードできますのでよろしければお試し下さい。
詳細は同梱の *.txt をご参照願います。
http://dsas.blog.klab.org/test/WinAmuletP_test.zip
※ここに含まれる WinAmuletP.exe (ver 0.9.2) の正しい md5sum は「A65A40D98B47847C67F5B599A0F06BEE」です。
おってご感想などコメントして頂ければ幸いです。
早速使わせてもらってます。見知らぬUSBメモリから自分のPCを守る的なソフトはわりと見受けましたが、逆にセキュリティ意識の低い公共PCから自分のUSBを保護するようなソフトは少ないと思います。
希望通りの運用ができて大変重宝してます。ほんとうにありがとうございました。また何か気づいたことがありましたら、こちらにコメントさせていただきます。
お気づきの点がありましたらぜひまたお聞かせ下さい。
この度は興味ぶかいアイディアをありがとうございました。
今後とも WinAmulet をよろしくお願い致します。
「試用中」さん、今回の版では転送先フォルダを変更可能としています。この記事をご覧になりましたらぜひお試し下さい。
(小声で)実は現在製品版を準備中なのですが、そちらでは実装している機能のひとつです。
製品版期待してます^^
マイドキュメントを保護させてみたのですが、
ATOKのバックアップツールや、吉里吉里というソフトを使用している、マイドキュメントに勝手にセーブデータを作る一部のゲームで、
ファイル、フォルダにアクセスできないというエラーが出てしまいます。
バックアップツールは許可するので割とどうでもいいのですが、
セーブデータはダミーのフォルダに代わりにファイルを作るという機能をちょっと利用したいと思っているのでちょっと困ります。
現在製品版を準備しているとのことですが、
こういった現象に対応する予定はあるでしょうか?
それと、出来れば設定はインストールしたフォルダに保存するように設定できると嬉しいのですが。
ダミーフォルダへのリダイレクト機能はあくまでも意図しないプログラムからの意図しないアクセスを可能な限り軟着陸させるためのことのみを目的とする機構ですので、所作の判明している既知のプログラムは許可設定されることをおすすめします。
> それと、出来れば設定はインストールしたフォルダに保存するように設定できると嬉しいのですが。
現時点では未定ですが、ご要望が多ければ検討したいと思います。
全くその通りなのですが、
たまにあるよく分からない困った位置にファイルを作成するようなものにも対策として使えないかなと思いまして。
>現時点では未定ですが、ご要望が多ければ検討したいと思います。
昨日OSをインストールし直したとき早速バックアップを忘れて設定し直しになってしまいました。
どうかよろしくお願いします。
Application Dataフォルダの中にある、Thunderbirdフォルダを保護しようと思ったのですが、
どうもフォルダを指定しても保護されないようです。
色々試してみたら、Application Dataフォルダを指定するとOSの正常動作に影響を及ぼすために指定できませんとエラーが出ますが、
ひょっとしてApplication Data以下のフォルダは保護できない仕様なのでしょうか?
これはバグです。%APPDATA%全体は×、その配下の個別のフォルダの保護は○、というのが仕様です。次バージョンで修正したいと思います。
>昨日OSをインストールし直したとき早速バックアップを忘れて設定し直しになってしまいました。
なるほど、対応を検討してみます。
ところで「一部のゲーム」とはどういうタイトルのものでしょう?差し支えなければ参考にお聞かせ下さい。
>ファイル、フォルダにアクセスできないというエラーが出てしまいます
この話題に興味を感じ、ご連絡にあったゲームの挙動を題材に実験的な版を用意してみました。あくまでも実験版ですので結果に関わらず今後のバージョンにここでの内容を反映するか否かは全く未定ですが、よろしければ一度様子をご覧下さい。
http://dsas.blog.klab.org/test/WinAmulet_0930+1_test.zip
※このアーカイブに含まれるWinAmulet.exe の正しい md5sum は「A11560E7EA78026226A02FCA4B4BD3DC」です。実行前に必ずご確認下さい。
※このアーカイブに含まれる WinAmulet.exe は正式版ではありません。同梱のテキストをご確認の上、取り扱いにご注意下さい。
ゲームや、ついでにATOKのバックアップツールでもエラーになるようなことはなくなりました。
しばらく使ってみましたが、特に重くなったり不安定になったりと言ったこともないと思います。
0.9.3.0だとwindows2000付属のデフラグツールを起動すると、
なぜか延々とFDDにアクセスし続けるという、
よく分からない動きになっていたのですが、
それが無くなっていました。
Application Data以下のフォルダが保護出来ないという症状が直っていないようです。
上位互換のプログラムを公開予定とのことですが、せっかくなので要望を一つ出させていただきます。
保護設定しているフォルダの中の指定したフォルダを、保護の対象外にしたりは出来ないでしょうか?
例えば保護されているマイドキュメント内の、My Picturesフォルダだけは対象外にするというような。
プログラムのことはさっぱりわからないので、無茶な事を言っていたら申し訳ありません。
> Application Data以下のフォルダが保護出来ないという症状が直っていないようです。
なるほど、この話題は失念していました。ざっくり手を加えたテスト版を作ってみましたのでよかったらお試し下さい。
http://dsas.blog.klab.org/test/WinAmulet_0940+1_test.zip
※このアーカイブに含まれるWinAmulet.exe の正しい md5sum は「0D32AD8AD0E348743BFA7A30A7A9CFD9」です。実行前に必ずご確認下さい。
※このアーカイブに含まれる WinAmulet.exe は正式版ではありません。同梱のテキストをご確認の上、取り扱いにご注意下さい。
なお、ご要望の件は仕様が複雑になるため現時点では対応を予定していませんが、今後の参考とさせていただきます。
しばらく使ってみましたが、特に挙動がおかしくなったなどはないと思います。
対応ありがとうございました。