2017年3月11日土曜日

機密情報ファイルの名前を付けて保存を監視

MiharuPCは機密情報のファイルを開いて、名前を付けて保存した場合も検知します。

この方式を説明します。


 

機密情報を含むファイルが開かれたか監視する

 ・NETのAPI「System.IO.FileSystemWatcher」を使いMsOfficeのテンポラリーファイル生成を監視します。


 元のファイル名に「~$」が付いた物がテンポラリーファイルです、テンポラリーファイルが生成された事により、ファイルが開かれたと見なします。


開いたファイルが保存されたか監視する

生成したテンポラリーファイルの名前を保持し、テンポラリーファイルと同じ拡張子を監視します。


 public static String OrgFile;

public override void this_Changed(System.Object source, System.IO.FileSystemEventArgs e)
{
    case System.IO.WatcherChangeTypes.Created:
    if (e.FullPath.IndexOf("\\~$") != -1)
    {
        OrgFile = e.FullPath                                          //テンポラリファイル名を保持する
        List<String> drvS = Drivers();                //全ドライブ名を求める
        String Ext = System.IO.Path.GetExtension(e.FullPath);         //拡張子を取り出す
        foreach (String drvName in drvS) //全ドライブ
        {
       ここで取り出した拡張子の更新を監視する
       範囲は全ドライブの全ディレクトリ

        }






テンポラリーファイルと同じ拡張子の更新を検知した場合、検知したファイルとテンポラリーファイルの元になったファイルを比較する。


 public override void this_Changed(System.Object source, System.IO.FileSystemEventArgs e)
{
    switch (e.ChangeType)
    {
       case System.IO.WatcherChangeTypes.Changed:
       case System.IO.WatcherChangeTypes.Created:
       case System.IO.WatcherChangeTypes.Renamed:
           ここで、e.FullPathと、先に保存したOrgFileのテキストを比較する
      企画した結果、同じであれば名前を付けて保存したと判断する





比較した結果が同じであれば、機密情報のファイルを別名に保存したと見なします。

MiharuPCでは、文章が完全一致していなくても、類似点が多い場合でも警告を発します。


どのクラスで行っているか

この処理はMiharuPCのMyWatchMOFRenameクラスで行っています。

ソースリストはMiharuPCのホームページからダウンロードできます


   ← ホームページはこちらです

0 件のコメント:

コメントを投稿