web-dev-qa-db-ja.com

検出は、Windowsサービスが削除されたときです

Windowsサービスが削除されたことを検出する方法はありますか?イベントログを確認しましたが、追加されただけの削除済みアクションは取得されません。

監査ログを使用する方法があると思いますが、これを行う方法がわかりません。

どんな助けでも大歓迎です。

ありがとう

9
BillyDay

Windowsサービスを削除すると、システムイベントログにイベントが追加されることは間違いありません(ソース: https://superuser.com/questions/1238311/how-can-we-detect-if- a-windows-service-is-deleted-is-there-an-event-log-id-for-i )。

私の知る限り、サービスの削除を監査する監査ポリシーはありません。もしあれば、ここにリストされていると思います: https://docs.Microsoft.com/en-us/windows/security/threat-保護/監査/基本監査プロセス追跡

サービスのアンインストール時にプログラムが実行されていない可能性があるため、ポーリングServiceController.GetServices()は問題外だと思いますか?

0
simon-pearson

何が優れたインスツルメンテーションを構成するかを学ぶまで、インストルメンテーションを構築する方法はたくさんあります。私のハウツーは基本的にWikipediaのエントリ https://en.wikipedia.org/wiki/Instrumentation から直接取得されます。

計測の方法

http://www.powersemantics.com/e.html

  • 非統合
  • 一次データのみ
  • 押すのではなく引く
  • プロセス別に整理
  • オフラインにしない

インジケーターの測定の問題に対する解決策は存在しますが、「プッシュベースの」計測器に別のシステムに信号を送る方法を概念化することに行き詰まっています。私のE記事で説明しているように、計測器は常にデータをプルし、プッシュしないでください。イベント駆動型シグナリングは、不要な潜在的な障害ポイントです。

別のアプリケーションの構築についての不確定性や疑問を解消するために、モニターは通常独立しています(非統合ウィキペディアが言うように)プロセス。したがって、モニターが「実行されていない可能性があります」とは、統合されていない実際のモニターを構築することを選択していないことを意味します。独自のプロセスでチェックを統合するため、コンシューマシステムは計測を正しくモデル化しません。

これらの責任を分離して続行します。機器が削除されたサービスを合理的にポーリングし、タイマーでデータをポーリングする頻度を決定します。 API呼び出しsimon-pearsonを使用すると、サービスが追加されたことを検出することもできます。もちろん、モニターはサービスリストのコピーをローカルにキャッシュして、インジケーターが追加または削除されたものを推測できるようにする必要があります。

0
RBJ