ファイルがサーバー(Windowsサーバー)にどのように書き込まれたかを知る方法があるかどうか、つまり、ファイルXがhttpまたはftpを介して、または単純なネットワークコピーによって書き込まれたか、誰かがこのファイルを手動で作成したかどうかを知りたいですか?
この情報を提供できるWindowsのログはありますか?または、この情報を収集するのに役立つツールはありますか?
違反が疑われ、webserver(IIS)ログは多くの情報を提供しません。
確実ではありません。
FTPログ、IISログ、およびイベントログ(ファイル作成時の管理者アクセス用))を確認できますが、悪意があり、攻撃者が追跡したい場合は、これらのほとんどファイルは簡単に偽造/破損します。
最良の方法は、準備されており、作成される新しいファイルに反応するシステムを用意することです(通常、特定のディレクトリまたは特定の権限で)。これを検出したシステムは、実行中のサービス、破損していない(サーバー外の可能性がある)ログのコピー、およびそのときにログインしていたユーザー/サービスユーザーを記録できます。
ファイルがサーバーにアップロードされたかどうかを確認/監視する唯一の信頼できる方法は、特定の時点でサーバー上のすべての(対象の)ファイルのハッシュを記録し、現在のファイルリストを比較することです。 、およびそれらのハッシュを使用して、ファイルがアップロードされたか(したがって、スナップショットリストと比較して新しいファイルであるか)、またはファイルが変更されたか(ハッシュが異なるため)を確認します。
オペレーティングシステムによって適用されるファイルの作成/アクセス/変更時間を確認するだけでは不十分です。これらの時間は簡単に偽装(偽造)される可能性があるためです。
これは大変な作業ですが、オープンソースと無料、そして商用のファイル整合性ツールがあり、簿記に役立ちます。
今日を知る必要があり、ファイルのレコードと(変更検出のための)ハッシュがない場合、これを確認する信頼できる方法はありません。単純なファイル検索で新しく作成されたファイルをチェックするmayは、悪意のある攻撃者がトラックを隠そうとしている高度な攻撃の一部ではない場合に機能しますが、信頼性が低いだけです。
ファイルがコンピュータにどのように侵入したかを特定することは非常に困難です。ログが唯一の方法である必要があります。
しかし、(非常に)異なる4つの可能性について言及しました。
IIS Webサーバー。そこに権限はどのように設定されていますか?Webサーバーの乱用が原因でファイルがコピーされる可能性があるのは恥ずかしいことです。修正してください。修正/更新/パッチを確認してください使用するバージョンの場合。バグが存在する場合。
ユーザーにはどのような権利がありますか?彼らが将来さらに多くの被害を引き起こす可能性があるすべてのフォルダに書き込むことができる場合。修理する!
繰り返しますが、ここにユーザー権限がありますか?なぜこれが許可されたのですか?
pS IIS /その他の違反を疑っているので、これを書いています。
作成されたファイルに戻ります。ファイルのプロパティは表示されましたか?
いつ作成されましたか?
たぶん、ファイル作成者は誰ですか?
NTFSファイル所有者フラグから、誰がファイルを作成したかを確認できます。ユーザーアカウントで実行中のプロセスとシステムログを関連付けない限り、実際にファイルを作成したプロセスまたはアプリケーションを特定することはできません。
サーバーにファイルウォッチャーを配置して、ファイルの変更を警告することもできます。代わりに、専用のユーザーアカウントを使用してIISを実行し、このユーザーアカウントが作成または変更するファイルを監視します。これを実現する方法については、次の優れた回答を参照してください。 https ://stackoverflow.com/questions/5729264/what-are-all-the-user-accounts-for-iis-asp-net-and-how-do-they-differ 。
ファイルの作成または変更イベントは、Windowsサーバーでそのようなロギングを有効にした場合にのみログに記録されます。これを有効にすると、システムログビューアを使用して、特定のファイルの作成/変更に一致するイベントを表示できます。ローカルセキュリティポリシーを介してファイル/フォルダのログを設定する方法については、この記事を参照してください https://technet.Microsoft.com/en-in/sysinternals/bb897544 (非常に古いですが、有効のままです)。 ADドメインでサーバーを実行している場合は、GPO=を使用してこれを設定することもできます。
スクリプトを介してこれらのログイベントにアクセスするには、Windows PowerShellスクリプトを使用してログイベントを取得する方法を説明した次の記事を参照してください。 http://www.computerperformance.co.uk/powershell/powershell_eventlog.htm
問題を調査する際に、最初に簡単な解決策を試し、一般的な原因を排除する方がよいことがよくあります。