株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

Kaspersky製品ナレッジ 第35回 ~KSWSのファイル変更監視の紹介と実装する手順~

皆様、こんにちは。カスペルスキー製品担当SEの小池です。
今回は Kaspersky Security for Widnows Server のファイル変更監視機能を紹介いたします。

今回の内容は以下の通りです。

 

今回の記事は以下のバージョンにて検証し、画面ショットを取得しております。

●管理サーバー
  OS:Windows Server 2019
  DB:Microsof SQL Server 2017 Express
  Kaspersky Security Center:13.0.0.111247
  Kaspersky Security Center Web Console:13.0.10285
  Kaspersky Security for Windows Server のプラグイン:11.0.0.480

●保護製品
  Kaspersky Security for Windows Server:11.0.0.480

●利用ライセンス
  Kaspersky Hybrid Cloud Security Enterprise, CPU Japanese Edition.

KSC13ではWebコンソールの利用が推奨されているので、今回の画面ショットはすべてWebコンソールのものを使用します。

KSWS のファイル変更監視とは

KSWSのファイル変更監視とは、指定した監視範囲にあるファイルやフォルダーで実行される処理を追跡し、ルール違反が発生した際はそれを検知をする機能です。
USNジャーナルを用いて変更監視をしているので、対象のWindows Server においてWindows USNジャーナルが有効である必要があります。
他、ReFS および NTFS ファイルシステムを利用していることが前提条件です。
本機能は指定された監視範囲を指定されたルールに則って監視・検知しますが、変更自体をブロックすることはできません (KSWS 11.0.0.480時点)。
本機能の利用に際し、KSCは必須ではありません。スタンドアロンのKSWSでも本機能は利用することができます。
特定のユーザーに限って監視・検知を除外することも可能です。

 

ファイル変更監視を利用できるライセンス

2021/7/5現在、ファイル変更監視機能を利用できるライセンスは以下に限られています。

  • Kaspersky Hybrid Cloud Security Enterprise CPU
  • Kaspersky Hybrid Cloud Security Enterprise サーバー

 

実装手順 (KSCありの場合)

ここでは以下の要件があると仮定して実装の手順を紹介いたします。

【仮の要件】
現在、KSCで3台のWindows Serve (サーバーA, B, C) を統合管理しています。
サーバーA のみで、C:\test01、C:\test02、C:\test03 配下のすべてのサブフォルダとファイルの変更を監視します。
サーバーAにおいて、ローカルユーザーkswsadminによる変更は監視しません。
サーバーB,Cではファイル変更監視はしません。

この場合の実装の流れは以下の通りです。
 Step1: ベースライン作成タスクを新規作成します。
 Step2: ベースライン作成タスクを実行します。
 Step3: (任意) 対象のWindows Server側でベースラインが作成されたことを確認します。
 Step4: ポリシーで対象を監視する設定をします。
 Step5: (任意) 対象フォルダで意図する監視ができていることをテストします。

Step1: ベースライン作成タスクを新規作成します。
Webコンソールの[デバイス]>[タスク]>[+追加]をクリックします。

f:id:networld-blog-post:20210706142012p:plain

アプリケーションで [Kaspresky Security for Windows Server]を選択し、タスク種別で [ベースラインファイル変更監視] を選択します。
今回の要件の場合KSCでサーバーA,B,Cを統合管理していて、その中のサーバーAだけでファイル変更監視を行いたいため、タスクを割り当てるデバイスの選択では [デバイスのアドレスを手動で指定するか、リストからアドレスをインポートする]を選択します。
[次へ]をクリックします。

f:id:networld-blog-post:20210706142037p:plain

[+デバイスの追加]をクリックします。

f:id:networld-blog-post:20210706142046p:plain

[ネットワークの管理サーバーによって検出されたデバイスを選択する] を選択し、ベースラインを作成したいデバイス (今回の要件の場合はサーバーA) を選択します。
[追加]をクリックします。

f:id:networld-blog-post:20210706142103p:plain

[次へ]をクリックします。

f:id:networld-blog-post:20210706142113p:plain

チェックサム計算のアルゴリズムをMD5ハッシュかSHA256ハッシュから選択し、[次へ]をクリックします。

f:id:networld-blog-post:20210706144225p:plain

[+追加]をクリックします。

f:id:networld-blog-post:20210706142134p:plain

今回の要件では、C:\test01、C:\test02、C:\test03 配下のすべてのサブフォルダとファイルの変更を監視します。
例として、コントロールする領域は [C:\test01\*]、[サブフォルダーに適用]を有効にして、[OK]をクリックします。

f:id:networld-blog-post:20210706142148p:plain

C:\test02、C:\test03も設定します。
[次へ]をクリックします。

f:id:networld-blog-post:20210706142209p:plain

[終了] をクリックします。

f:id:networld-blog-post:20210706142218p:plain


Step2: ベースライン作成タスクを実行します。
先ほど作成したベースライン作成タスクにチェックを入れ、[開始]をクリックします。

f:id:networld-blog-post:20210706142239p:plain

[リストの更新]をクリックして、ステータスを確認します。
タスクが正常終了したことを確認します。

f:id:networld-blog-post:20210706142252p:plain

なお、作成したタスクは削除しないでください
(このタスクを削除すると、対象のWindows Serverに作成されたベースラインが削除されてしまいます。)

Step3: (任意) 対象のWindows Server側でベースラインが作成されたことを確認します。
サーバーAにログインし、管理者権限でコマンドプロンプトを起動します。

以下のコマンドを実行し、ベースラインが存在すること、バージョン列が1以上になっていること、スキャン列がタスク実行時の日時となっていることを確認します。
  > cd C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security for Windows Server
  > KAVSHELL FIM /BASELINE /SHOW

f:id:networld-blog-post:20210706142357p:plain

以下のコマンドを実行し、作成したベースラインの中身を確認します。
  > KAVSHELL FIM /BASELINE /EXPORT:<ベースラインの出力先の任意フォルダー>

例) > KAVSHELL FIM /BASELINE /EXPORT:C:\Users\Administrator\Desktop\export

f:id:networld-blog-post:20210706142437p:plain

指定した出力先フォルダーに "fim_baseline_id_<ベースラインID>.txt" というファイルが存在することを確認します。
このファイルには作成したベースライン一覧が出力されているので、対象ファイルに過不足がないかを確認します。

f:id:networld-blog-post:20210706142450p:plain

確認後、この "fim_baseline_id_<ベースラインID>.txt" ファイルは削除しても問題ありません。

Step4: ポリシーで対象フォルダを監視する設定をします。
先ほどベースラインを作成したWindows Server に適用されているポリシーを編集します。
KSCのWebコンソールで、[デバイス]>[ポリシーとプロファイル]をクリックし、対象のポリシー名をクリックします。

f:id:networld-blog-post:20210706142518p:plain

[アプリケーション設定]>[システム監査]>ファイル変更監視の[設定]をクリックします。

f:id:networld-blog-post:20210706142603p:plain

[+追加]をクリックします。

f:id:networld-blog-post:20210706142614p:plain

まず、監視するフォルダやファイルのパスを設定します。

f:id:networld-blog-post:20210706142624p:plain

次に監視の除外設定をします。
例えば今回の要件の場合、ローカルユーザーであるkswsadminによる変更は監視しないため、ローカルユーザーkswsadminを除外設定に追加します。
ユーザーの除外設定をする場合は、[信頼するユーザー]タブ>[+追加]をクリックします。

f:id:networld-blog-post:20210706142641p:plain

ユーザー除外をする際は、ユーザー名ではなくSIDで指定する必要があります。
除外したいユーザーのSIDを入力して、[OK]をクリックします。

f:id:networld-blog-post:20210706142655p:plain

[OK]をクリックします。

f:id:networld-blog-post:20210706142704p:plain

続けて、監視対象の設定をします。
監視対象の設定がすべて終わったら、[タスク管理]タブを開きます。

f:id:networld-blog-post:20210706144807p:plain

[スケジュールに従って実行する]にチェックを入れます。
デフォルトでは頻度は "アプリケーションの起動時" となっていますが、これは "KSWSのアプリが起動したと同時にファイル変更監視機能を有効にします" という意味です。
次に [強制適用] を有効にします。
[OK]をクリックします。

f:id:networld-blog-post:20210706144820p:plain

[保存]をクリックします。

f:id:networld-blog-post:20210706144831p:plain


Step5: (任意) 対象フォルダで意図する監視ができていることをテストします。
Step1~Step4で指定した監視が有効になっているかを確認します。
KSWSのファイル変更監視では主に以下のアクションを監視・検知できるので、これらのいずれかで監視のテストを行ってください。

f:id:networld-blog-post:20210706142815p:plain

この手順では次の章で実際に検知のテストをします。

検証

実際に前章で設定したファイル変更監視が稼働するかチェックしてみます。
C:\test01\配下に新規でファイル "CheckFile_Add_test01.html" を作成します。

f:id:networld-blog-post:20210706142857p:plain

KSCで監視のイベントが発生しているかを確認します。
KSCのWebコンソールで、[監視とレポート]>[イベントと抽出]>[最近のイベント]をクリックします。

f:id:networld-blog-post:20210706142911p:plain

右上の検索ボックスで、テスト用に追加したファイル名 "CheckFile_Add_test01.html” で検索すると、確かにイベントが発生していることがわかります。

f:id:networld-blog-post:20210706142920p:plain

なお、イベントには "禁止した" とありますが、実際にはファイルは作成されています。2021/7/5現在、KSWSのファイル変更監視ではファイルの変更や作成のブロックまではできません。これは仕様です。

f:id:networld-blog-post:20210706142929p:plain

次に、除外したローカルユーザーkswsadminで、C:\test03\配下に "CheckFile_Add_test03.html" を作成します。

f:id:networld-blog-post:20210706142938p:plain

KSCの最近のイベントで、ファイル名 "CheckFile_Add_test03.html" を検索しても、1件もイベントが発生していません。
ユーザーの除外設定が正常に機能していることが確認できました。

f:id:networld-blog-post:20210706142955p:plain

 

実装時のワンポイント

実際にKSWSでファイル変更監視を実装する場合において、ポイントになりそうな事項を記載します。
設計や実装の参考にしていただければ幸いです。

Point1:
KSCでベースライン作成タスクを作って、それを使ってベースラインを作成した場合。KSCにあるベースライン作成タスクは削除しないでください。
KSC側にあるベースライン作成タスクを削除すると、そのタスクによって作成されたKSWSのベースラインも一緒に削除されてしまいます。
(実際にベースライン情報があるのはKSWSのローカル側ですが、KSCのタスク削除と連動してKSWSがローカルに保持しているベースラインも一緒に削除されます。)

Point2:
ベースラインの作成と削除は、KSCで統合管理している場合であっても、KSWSのローカルのKAVSHELL FIMコマンドによって可能です。
以下にリファレンスが載っているのでご参照ください。

https://support.kaspersky.com/KSWS/11/ja-JP/190154.htm


Point3:
KSCで1つのベースライン作成タスクを複数のKSWSに対して実行した場合、そのタスクによって作成されたベースラインは各KSWSのローカルに保存され、KSWS間で共有はされません

Point4:
ポリシーで監視対象と除外を設定しますが、これらの設定はポリシーが適用されるKSWSすべてで共通の設定となります。
複数のサーバーで監視対象や除外設定が全く異なる場合は、すべての設定を1つのポリシーに入れ込むか、必要に応じてポリシー (とグループ) を分けるか、ファイル変更監視の部分だけ各KSWSのローカルに設定する等の対応をご検討ください。

Point5:
ベースラインが存在しないKSWSに対して、ファイル変更監視機能が有効なポリシーを適用しても、特にエラーや問題は発生しません。

Point6:
本記事ではユーザーの除外設定を紹介しましたが、ユーザー以外に、パスでの除外、および、具体的な操作 (削除、上書き、アクセス権の変更 等) での除外が可能です。

以上です。

 


今回はKSWSのファイル変更監視の紹介と実装する手順を紹介いたしました。
Windows Serverのアンチウイルス製品の要件として「特定のファイルやフォルダーの監視ができること」がある場合は、ぜひ本機能と本製品をご検討いただけますと幸いです。

この度は最後まで記事をご覧いただき誠にありがとうございました。


記載事項へのご指摘、ご不明点、ご質問等ございましたら、以下からご連絡いただければと存じます。

https://www.networld.co.jp/product/kaspersky/


それでは次回の記事でお会いしましょう!