C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.35801 の関連記事表示

<< 0 >>
■35801  プロセス監視、ファイル操作の監視方法
□投稿者/ アキナガ -(2009/05/14(Thu) 08:21:32)

    分類:[C/C++] 

    セキリティ関係の開発で、
    ユーザによる全てのプロセスの起動と、ファイル操作(ファイル生成、書き込み)の常時監視を行うプログラム(win32)の作成を行う必要があります。
    とりあえずは、プロセスの起動、ファイル操作の対象ファイルのパス取得するところから始めようと考えています。
    いろいろ調べてみたところ、実現するためには、以下の知識をつけることで可能でしょうか?

    ・ファイル操作を監視する場合は、フィルタドライバ(ファイルシステムドライバ)の作成
    (Vista64bitの署名の件は少し置いておきます。)

    ・プロセス起動の監視は、CreatProcess()のAPI Hookを行う。

    また、フィルタドライバの作成は初めてで、かなりハードルが高いと聞きました。
    簡単なファイルのパスの取得を行うドライバを作成する場合、作成の規模?(コード量)はどのくらいになるでしょうか?
    参考サイトなどがありましたら、教えていただければ幸いです。
親記事 /過去ログ62より / 関連記事表示
削除チェック/

■35807  Re[1]: プロセス監視、ファイル操作の監視方法
□投稿者/ オショウ -(2009/05/14(Thu) 10:00:49)
    No35801 (アキナガ さん) に返信
    > セキリティ関係の開発で、
    > ユーザによる全てのプロセスの起動と、ファイル操作(ファイル生成、書き込み)の常時監視を行うプログラム(win32)の作成を行う必要があります。
    > とりあえずは、プロセスの起動、ファイル操作の対象ファイルのパス取得するところから始めようと考えています。
    > いろいろ調べてみたところ、実現するためには、以下の知識をつけることで可能でしょうか?

      と云う以前に、『開発』と云うことですが、それは会社の仕事?
      商品化?社内使用?
      わざわざ作る必要があるなら、必要も何も『知らない』なら作れません。

    > ・ファイル操作を監視する場合は、フィルタドライバ(ファイルシステムドライバ)の作成
    > (Vista64bitの署名の件は少し置いておきます。)
    >
    > ・プロセス起動の監視は、CreatProcess()のAPI Hookを行う。

      API Hookは使えなくなりつつあります。
      代わりに別の方法があるとは思いますが。(VISTA以降無理)

    > また、フィルタドライバの作成は初めてで、かなりハードルが高いと聞きました。
    > 簡単なファイルのパスの取得を行うドライバを作成する場合、作成の規模?(コード量)はどのくらいになるでしょうか?
    > 参考サイトなどがありましたら、教えていただければ幸いです。

      http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
      http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx

      公開された初期はソースコードも入手できたように思いますが・・・
      今は入手できないみたいです。(私も欲しいです)

    ● まずDDKを入手して、サンプルのソースコードを眺めることをオススメします。
      当然、ストレージ関係・フィルター関係ドライバーもサンプルに存在します。

    以上。参考まで
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35804  Re[1]: プロセス監視、ファイル操作の監視方法
□投稿者/ やじゅ -(2009/05/14(Thu) 09:28:01)
>
    No35801 (アキナガ さん) に返信
    > また、フィルタドライバの作成は初めてで、かなりハードルが高いと聞きました。
    > 簡単なファイルのパスの取得を行うドライバを作成する場合、作成の規模?(コード量)はどのくらいになるでしょうか?
    > 参考サイトなどがありましたら、教えていただければ幸いです。

    フィルタドライバってあまり情報がないので、むずかしそうですね。

    ファイル操作(コピーや、作成、書き換え)を監視する方法
    http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200904/09040001.txt
    「Process Monitor
    http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
    このツールを使うと、Filterをうまく設定すれば、アプリが
    どこのファイルを読み書きしたかイベントとして拾えます。」

    ってあるから、Process Monitorの情報を使うってのも手かも
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35805  Re[2]: プロセス監視、ファイル操作の監視方法
□投稿者/ アキナガ -(2009/05/14(Thu) 09:42:27)
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35809  Re[1]: プロセス監視、ファイル操作の監視方法
□投稿者/ 渋木宏明(ひどり) -(2009/05/14(Thu) 10:06:17)
>
    > ・プロセス起動の監視は、CreatProcess()のAPI Hookを行う。

    API Hook は、システムグローバルに仕掛けるのはかなりムズかったような気がします。(出来ない、ってこはないと思うけど)
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35810  Re[1]: プロセス監視、ファイル操作の監視方法
□投稿者/ 渋木宏明(ひどり) -(2009/05/14(Thu) 10:09:31)
>
    > また、フィルタドライバの作成は初めてで、かなりハードルが高いと聞きました。

    カーネルドライバを1から作るのに比べればマシなはずです。

    そもそもの概念と、フィルタ対象のドライバ(デバイス)の振る舞いを理解するのに大半の時間を投入することになるんじゃないかな。
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35812  Re[1]: プロセス監視、ファイル操作の監視方法
□投稿者/ aetos -(2009/05/14(Thu) 11:02:54)
    No35801 (アキナガ さん) に返信
    > セキリティ関係の開発で、
    > ユーザによる全てのプロセスの起動と、ファイル操作(ファイル生成、書き込み)の常時監視を行うプログラム(win32)の作成を行う必要があります。

    常時監視してログにでもため込むだけですか?
    場合によっては操作をキャンセルさせる必要があるのでしょうか?

    監視するだけなら、Windows が持っている監査ログの機能をどうにかすれば、フィルタドライバを作るよりは簡単だろうなぁと思いますが。
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35822  Re[2]: プロセス監視、ファイル操作の監視方法
□投稿者/ やじゅ -(2009/05/14(Thu) 15:58:13)
>
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35824  Re[3]: プロセス監視、ファイル操作の監視方法
□投稿者/ れい -(2009/05/14(Thu) 16:42:17)
    >■No35801 (アキナガ さん) に返信
    >セキリティ関係の開発で、
    >ユーザによる全てのプロセスの起動と、ファイル操作(ファイル生成、書き込み)の常時監視を行うプログラム(win32)の作成を行う必要があります。

    監視というのはどんな操作が含まれているのでしょうか?

    私の経験では、ファイル操作の監視そのものはそれほど難しくありません。
    しかし、

    ・監視の内容をユーザーモードと連携する部分
    ・少し複雑な操作をする際、カーネルの無応答を防ぐために細々した処理を行う部分
    ・同期処理に問題がないかテストするためのコードの準備
    ・ドライバを組み込んで再起動したり、青窓を眺めている時間

    の上記4点にかなりの時間を取られました。

    ファイル操作を途中で横取りして内容を書き換えたりする必要があるならフィルタドライバを作る必要がありますが、
    ただ操作をモニターしたいだけなら違う手法がよいと思います。

    2年くらい前の知識ですが。

    やじゅさんの言っていた「ProcessMonitor」のリソースには署名つきのフィルタドライバが入っています。
    これを抽出して利用すればかなりの事ができます。

    プロセスの監視、ファイル操作のモニター程度はできるはずです。

    もちろんライセンスの問題は確認する必要があります。
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35830  Re[4]: プロセス監視、ファイル操作の監視方法
□投稿者/ アキナガ -(2009/05/14(Thu) 18:01:33)
    >>みなさま
    いろいろとご指摘ありがとうございます。
    参考にさせていただいて、少しずつフィルタドライバの勉強を行いたいと思います。

    >>オショウさん
    社内向けのソフトです。周りにドライバの知識を持っている人が少なく困っていましたが、
    時間は少しあるので、勉強したいと思います。


    >>れい さん、aetos さん
    >監視というのはどんな操作が含まれているのでしょうか?
    今は、対象のファイル操作(プロセス作成)時に対象のファイルのパスを取得すること目標としてます。
    ただ、ゆくゆくは不適切なプロセスが起動された場合にアプリ側でプロセス停止も行えるようにする必要があります。

    「ProcessMonitor」 をダウンロードしましたが、これは実行ファイル1つだけでした。
    ドライバが含まれていませんでしたが、どのように抽出を行うのでしょうか?
    もしくは、何らかの方法でフィルタドライバを使用しているのでしょうか?
    知識がなくてお恥ずかしい限りです(^^;


記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35831  Re[5]: プロセス監視、ファイル操作の監視方法
□投稿者/ 魔界の仮面弁士 -(2009/05/14(Thu) 18:22:35)
    2009/05/14(Thu) 19:37:36 編集(投稿者)

    No35830 (アキナガ さん) に返信
    > 「ProcessMonitor」 をダウンロードしましたが、これは実行ファイル1つだけでした。
    > ドライバが含まれていませんでしたが、どのように抽出を行うのでしょうか?

    No35824 で、既にれいさんが書かれていますように、Procmon.exe 内のリソースに、
    procmon.Sys というデジタル署名付きドライバ(のバイナリ)が含まれています。
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35833  Re[6]: プロセス監視、ファイル操作の監視方法
□投稿者/ アキナガ -(2009/05/14(Thu) 19:02:53)
    No35831 (魔界の仮面弁士 さん) に返信
    返信ありがとうございます。
    環境がVisual Stadio2008 で挑戦してみましたが、ビットマップやダイアログを覗き見すること
    はできましたが、望みの”procmon.Sys”を見つけることはできませんでした・・・・
    Visual Stadio2008のバージョンのせいでしょうか?
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35834  Re[7]: プロセス監視、ファイル操作の監視方法
□投稿者/ 魔界の仮面弁士 -(2009/05/14(Thu) 19:35:53)
    No35833 (アキナガ さん) に返信
    > 環境がVisual Stadio2008 で挑戦してみましたが、ビットマップやダイアログを覗き見すること
    > はできましたが、望みの”procmon.Sys”を見つけることはできませんでした・・・・
    
    通常は、逆アセンブルやリバースエンジニアリングが eula.txt で禁じられているので、
    見つけられたとしても、それを抜き出して使う訳には行かないかと。許可を得ない限りは。
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35869  Re[8]: プロセス監視、ファイル操作の監視方法
□投稿者/ れい -(2009/05/15(Fri) 03:03:14)
    No35834 (魔界の仮面弁士 さん) に返信
    > ■No35833 (アキナガ さん) に返信
    >>環境がVisual Stadio2008 で挑戦してみましたが、ビットマップやダイアログを覗き見すること
    >>はできましたが、望みの”procmon.Sys”を見つけることはできませんでした・・・・
    >
    > 通常は、逆アセンブルやリバースエンジニアリングが eula.txt で禁じられているので、
    > 見つけられたとしても、それを抜き出して使う訳には行かないかと。許可を得ない限りは。

    リバースエンジニアリングは、その言葉が意味する範囲が曖昧ですが、
    一般には「内部構造を調べる」ことを意味します。
    なので、それが禁じられている事と、ドライバを抜き出して使うことは直接は関係ありません。

    むしろ、「著作物/製品の一部を勝手に使っていいのか」という問題です。

    リバースエンジニアリングを禁じるeulaは、破っても契約違反なだけで、
    損害の程度に応じて賠償すればよいだけですが、
    他社製品の一部を勝手に借りて、自社製品として売るのは刑事で犯罪ですね。
    しかも署名入り。バレバレですね。

    以下は私の考えですが。(実際には裁判官が決めます。)

    「ProcessMonitorが無ければ使えません」というような商品は問題ではありません。

    ProcessMonitorは初めて管理者権限で実行された時にドライバをインストールしますので、
    子プロセスとしてProcessMonitorを起動して、ドライバインストールを確認したらすぐ殺すとか、
    自アプリの起動時にProcessMonitorを探し、ドライバを抽出してインストールするとか、
    そういった手はあります。
    少なくとも刑事では何も問題ないでしょう。

    個人で使用する分には誰にもわかりませんし、
    わかったとしても悪用しているわけではなく、権利者にも迷惑をかけて無いので、
    訴えられることはないでしょう。
    訴えられても権利者の損失を評価できませんし。

    抽出したドライバを配布するのは問題があります。
    許可を取らねばいけません。

    自動でダウンロードし、展開して抽出して…なソフトはヤバイでしょうね。
    ユーザーが知らないうちにeulaに同意させている、もしくはユーザーの意図しない行為をしているので、
    契約法(電子消費者契約法とか?)違反とか詐欺とか、結構やばい犯罪ととれるかもしれません。

    また、ProcessMonitorを解析して競合商品を作ろうとした場合など、権利者が損害を受けたと判断した場合は
    eula違反で損害賠償を請求される可能性があります。

    まぁ、「良識の範囲内」で使うのであれば問題ないと思いますよ。
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35882  Re[1]: プロセス監視、ファイル操作の監視方法
□投稿者/ aetos -(2009/05/15(Fri) 09:57:17)
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/

■35981  Re[2]: プロセス監視、ファイル操作の監視方法
□投稿者/ アキナガ -(2009/05/17(Sun) 13:03:17)
記事No.35801 のレス /過去ログ62より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -