情報漏洩を防ぐソフト案

 3ヶ月ほど前に情報漏洩を防げというテーマで悩みに悩みに悩みまくったが、さらに悩み続け、こうすればなんとかなるんじゃないか、という案を考えついたのでご紹介。
 本当にこんなソフト書けるのか?については何も言えません。できそうな気はするんだけどな。前回はLANで接続して監視するという方向のアイディアだったけど、今回はLANを使わない方法です。

 機能要件としては、外部に情報を持ち出されたくない。というのがトップに来る。とりあえずここでは電子データだけを考えよう。よく考えれば普通のセキュリティソフト(多くはファイルやフォルダの暗号化ソフト)とは大きく違う要件だ。多くのセキュリティソフトは「使用者が守りたいと思っているファイルを守る」のが目的だが、今回は「使用者が持ち出したがっているかもしれないファイルを守る」ことを考えているわけだから。"使用者が協力的"であることを前提としていいなら、多少穴があっても使用者が意識して回避してくれるかもしれないが、"使用者の協力が得られる保証はない"場合、穴があれば意図的につつきにくる。だから仕様に甘えは許されない。

 本当に情報漏洩を防ぎたいのならファイルなんか渡さなければいいのだが、そうはいかない。仕事としてドキュメントを作成してもらうためには少なくとも制定用紙のフォーマットをファイルの形で社員や協力会社に渡さなければならない。そしてドキュメントには外部に漏れては困る情報を書いてもらわなければならないこともあるだろう。(つまり、渡したファイルを漏らされたら困るだけではなく、作ってもらったファイルを漏らされても困るというのが難しい。)

 どうすりゃいいかと考えた。で、思いついた。ファイルを配布するときは、普通何らかのメディアの中に入れて渡す(ネットワークなら特定のディレクトリよ)。ならばそれを配布メディア(ないしディレクトリ)から外にコピーできないようにすればよい。電子メールに添付することすらできないようにできれば、外部接続を禁止する必要すらない。セキュリティを守るというと、条件反射的に「暗号化」ということを考えるものであるが、実は暗号化すら第一義的には必要ない。PCのハードディスクにコピーできないんだから、暗号化して盗難防止に備える必要はないのだ。まあ、必要であるとすればメディアを紛失してしまったときだろう。
 一応、メディアには一連番号を振って、各人に割り当て、毎夕在高を確認して帰宅時には金庫にしまう、という運用を考えている。

 では、これをシステム的にどのように実現するかが次の検討事項となる。
 まず、特定ドライブ/特定フォルダ内のファイルをフォルダ外にコピーすることを禁止するソフトを書く。実は書き方を知らない。しかしできるはずだ。例えばHardKeyというセキュリティツールでは暗号化されたファイル/フォルダの「削除」「移動」「コピー」「名前の変更」を禁止することができるらしい。

 さらに、ファイルをアプリケーションで開いても、アプリケーションから別ドライブに保存できないようにしなければならない。「ファイルの保存」ダイアログボックスを開いたとき、元のファイルのあるディレクトリしか開けないようにできればいいのだが、コモンダイアログボックスってMS-Windowsのバージョンで微妙に違うからナア。最悪MS-WordとMS-Excelのメニューにある[ファイル]-[名前を付けて保存]が選択不能にできればよい。(これをマクロを使って実現することも考えたが、Shiftキーを押しっぱなしにして起動すると回避できるのよね。)

 実際に作成するには、もう少し細かい設計がいるが、デバイスドライバレベルまで降りた常駐プログラムをシコシコ書けばなんとかなりそうな気はしてきた。しかし、ここで運用の問題が発生する。悪意ある人間で有れば、そんな常駐プログラムなんか立ち上げないだろうし、自動的に立ち上げるように設定しても止めてしまうだろう。どうしよう。
 ここで出てくる方便、皆様の「セキュリティ確保=暗号化」という先入観を利用するのだ。つまり、ファイルを暗号化してしまって、常駐ソフトが上がっていないとファイルが読めないようにしてしまうのだ。これなら仕方なく常駐ソフトを上げるであろう。そして常駐ソフトを強制的に終了させると、MS-Windows自体もシャットダウンするようにしてしまう。おお、これで運用にのる。ちなみに常駐ソフトはファイルを配布するメディア自体に入れておくと良さそうな気がする。カレントディレクトリ外へのファイル保存を禁止するという制御が多少簡単に実現できそうだから。

 しかし問題は残る。ファイルをアプリケーションで開いた状態のまま[編集]-[全てを選択]し、[編集]-[コピー]をやられてしまうとクリップボード経由でファイルの中身がごっそり抜き取られてしまうのである。まさかクリップボードを使用禁止にするわけにもいくまい。
 よし、クリップボードを監視し、コピーされたらクリップボードの中身を暗号化してしまおう。で、貼り付けるときに戻す。できるのか?遅延レンダリングを使ってもできるかどうかわからん。なにしろ貼り付け先のファイルによって復号化するかどうかを判断しないといけないから。しかし、ここまでやれば、要件が満たせる。
 情報漏洩対策のセミナーにでも行って、またいろいろと聞いてくるか。ところでメモのご用意はいいですか?特にこの業界、受講者から学ぶことも多いんだから用意しておかないと。

 ちなみに、ファイル配布メディアから外部にファイルをコピーさせない、という要件だけであれば、プログラムを書かなくてもいい線いくのだ。ファイルを配布するメディアを作るときに、ファイル本体は不可視にしておいて、ショートカットだけを見せる。そうすればファイル本体をメディアから外にコピーすることはできない。ドライブレターが一定しないが、これは個別に設定してもらうしか、ないかな。

コンピュータネタ、目次
ホーム