サーバ上の動的なソフトウェア更新は、ドリフトイベント ([処理] ページ) やセキュリティイベント ([アプリケーションコントロールイベント] ページ) を数千件引き起こす可能性があります。これはアプリケーションコントロールの使用において課題を呈し、事後に何を承認すべきかを知ることが難しくなります。Deep Security Agent 20.0.0.5761以降を使用して状況を緩和するために、異常なドリフトおよびセキュリティイベントのみを表示する信頼ルールを作成することができます。これにより、サーバをロックダウンして、許可されていないソフトウェアの実行を防ぐことも可能になります。
ドリフトイベントはプロセス名とターゲットパスに基づいて集約されます。セキュリティイベントはSHA256ハッシュとターゲットパスに基づいて集約されます。例えば、同じプロセスが同じパスで10,000のドリフトアイテムを作成した場合、ドリフトはprocessNamepaths属性を持つ単一の信頼ルールに集約されます。
エージェントの診断が要求されると、集約されたドリフトイベントとセキュリティイベントが信頼ルール形式でJSONファイルに保存され、診断に含まれます。その後、[信頼ルール]エディターはJSONファイルを使用してサーバの信頼ルールを追加できます。

変更イベント

JSON形式の変更イベントには、次の属性があります。
{
"time":1615999592250,
"eventType":"ApplicationControl",
"uid":1063,
"gid":1064,
"operationType":"create",
"user":"ribapp",
"group":"ribapp",
"md5":"57579EF7681147B84774F69F44783A67",
"sha256":"90B0418DCB3B29440EE6F69FEE05BD54265CEE3BCFABDA8ED355E257FECC2939",
"processName":"/opt/IBM/WebSphere/AppServer/java/jre/bin/java",
"type":4,
"rdev":0,
"lastModificationTime":1615999090000,
"mode":33188,"size":3984617,
"sha1":"B226BDB9DB39AD38C4BEB6FE4F1C1C7151207848",
"nlink":1,
"procUser":"ribapp",
"isAuthorized":1,
"pid":10223,
"fileExtension":"jar",
"operationDate":1615999591534,
"procUid":1063,
"procGroup":"ribapp",
"path":"/opt/IBM/WebSphere/AppServer/profiles/devmiesAppSrv/installedApps/devdmrhx01-cell02/IESHSRIDEVM.ear/",
"fileName":"DC.jar",
"recordTime":1615999592215,
"fileSystemType":"ext4",
"procGid":1063,
"dev":64775,
"source":4,
"ino":3801778
}
  • processNameは、ターゲットファイルを作成または更新したプロセスの名前です。前の例では、/opt/IBM/WebSphere/AppServer/java/jre/bin/javaに設定されています。
  • pathはプロセスが実行ファイルを更新または作成した場所です。前の例では、/opt/IBM/WebSphere/AppServer/profiles/devmiesAppSrv/installedApps/devdmrhx01-cell02/IESHSRIDEVM.ear/に設定されています。

変更イベントの信頼ルール

イベントのドリフトを自動承認するための信頼ルールを作成できます。このルールでは、trustTypeを1に設定することで信頼できるアップデーターを定義でき、pathsに記載された任意のパスでソフトウェアを作成するプロセスを信頼します。
"trustrules": [{
"trustType":"1",
"processName":"/opt/IBM/WebSphere/AppServer/java/jre/bin/java",
"paths":"/opt/IBM/WebSphere/AppServer/profiles/devmiesAppSrv/installedApps/devdmrhx01-cell02/IESHSRIDEVM.ear/"
}]
ドリフトイベントを処理して信頼ルールを作成することは、多対一の操作になることがあります。例えば、/opt/IBM/WebSphere/AppServer/java/jre/bin/javaという名前のプロセスがパス/opt/IBM/WebSphere/AppServer/profiles/devmiesAppSrv/installedApps/devdmrhx01-cell02/IESHSRIDEVM.ear/に数千のJARファイルを作成する場合、前述の信頼ルールはこれらすべてのJARファイルのドリフトを排除し、信頼ルールがドリフトを集約する際に効率的になります。
信頼ルールは、ルールの配列で構成されており、各ルールには一意のプロセスが含まれています。各信頼ルールは、そのpaths属性に複数のパスを定義できます。例えば、process1という名前のプロセスが3つの異なる場所path1path2path3でドリフトを作成した場合、1つの信頼ルールでprocess1がこれらすべての場所で作成したドリフトをキャプチャできます。
"trustrules": [{
"trustType":"1",
"processName":"process1",
"paths":"path1;path2;path3"
}]
hitcountという追加属性があり、その目的はプロセスヒット数です。この属性を使用して、特定の信頼ルールが何回ヒットされたかを判断できます。
拡張子のヒットカウントもあります: 拡張子は、プロセスが特定の拡張子を持つファイルを更新するたびに増分することで追跡されます。
"trustrules": [{
"trustType":"1",
"processName":"process1",
"paths":"path1;path2;path3",
"hitcount":12342,
".jar":1234,
".py":323,
".":456
}]
前述の例では、JARファイルが1234回、piファイルが323回、拡張子のないファイルが456回更新されたプロセスを示しています。

セキュリティイベント

JSON形式のセキュリティイベントには、次の属性があります。
{
"time":1492100772165,
"eventType":"ApplicationControl",
"sha1":"066A02D230F3B16439396B049DC912DB376B96CE",
"fileName":"svchost.exe",
"operationType":"detectOnly",
"blockReason":2,
"size":311544,
"sha256":"62EFB22F6853D73374761A0B8ED2CE40BF09AA401EC7D4AAAA0CE4D5C3380EEA",
"type":1,
"path":"C:\\Windows\\System32\\",
"pid":1832,
"operationDate":1492100772149,
"processName":"\\device\\harddiskvolume2\\windows\\system32\\cmd.exe",
"md5":"5F7B8544F7A20800069107FC93384F0E"
},
{
"time":1492100772165,
"eventType":"ApplicationControl",
"blockReason":2,
"sha256":"62EFB22F6853D73374761A0B8ED2CE40BF09AA401EC7D4AAAA0CE4D5C3380EEA",
"size":311544,
"processName":"\\device\\harddiskvolume2\\windows\\system32\\cmd.exe",
"sha1":"066A02D230F3B16439396B049DC912DB376B96CE",
"operationType":"detectOnly",
"pid":1832,
"md5":"5F7B8544F7A20800069107FC93384F0E",
"path":"C:\\Program Files\\Trend Micro\\Deep Security Agent\\",
"operationDate":149210077
}
前の例では、sha25662EFB22F6853D73374761A0B8ED2CE40BF09AA401EC7D4AAAA0CE4D5C3380EEAに設定され、pathC:\Windows\System32\に設定されています。

セキュリティイベントの信頼ルール

セキュリティイベントのドリフトを自動承認するための信頼ルールを作成できます。このルールでは、trustTypeを2に設定し、pathsに記載された任意のパスでSHA256ハッシュに基づいて信頼されたターゲットを定義できます。
"trustrules": [{
"trustType":"2",
"sha256":"62EFB22F6853D73374761A0B8ED2CE40BF09AA401EC7D4AAAA0CE4D5C3380EEA",
"paths":"C:\\Windows\\System32\\"
}]
セキュリティイベントを処理して信頼ルールを作成することは複雑な操作です。信頼ルールは、各ルールに一意のSHA256を持つルールの配列で構成されます。各信頼ルールは、そのpaths属性に複数のパスを定義することができます。例えば、ファイルが異なる場所からsha256コンテンツハッシュAAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDDで実行された場合、path1path2path3として、1つの信頼ルールで次のように表すことができます:
"trustrules": [{
"trustType":"2",
"sha256":"AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDD",
"paths":"path1;path2;path3"
}]
追加属性としてhitcountがあります。この属性の目的はSHA256ヒットカウントです。この属性を使用して、特定の信頼ルールが何回ヒットされたかを判断できます。
ファイル名ヒット数もあります: 異なる名前のファイルが同じSHA256コンテンツハッシュを持つことがあります。この属性を使用して、特定の名前のファイルが同じSHA256を実行するために使用された回数を数えることができます。次の例では、SHA256 AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEが12342回実行され、filename1が2342回使用され、filename2が10000回使用されています。filename1filename2は同じコンテンツハッシュを持っています。
異なる名前のプロセスが同じSHA256コンテンツハッシュを持つ同じターゲットを実行できるため、プロセス名が同じSHA256を実行するために使用された回数を数えることもできます。次の例では、SHA256 AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEが12342回実行され、filename1が2342回使用され、filename2が10000回使用されています。filename1filename2は同じコンテンツハッシュを持っています。プロセス名/opt/process1はターゲットを12000回実行するために使用され、/opt/process2はターゲットを342回実行するために使用されました。
"trustrules": [{
"trustType":"2",
"sha256":"AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEE",
"paths":"path1;path2;path3",
"hitcount":12342,
"filename1":2342,
"filename2":10000
"/opt/process1":12000,
"/opt/process2":342
}]
プロセスは絶対パスで表され、ファイル名はいずれかのパスへの相対パスで表されることに注意してください。

イベント分析出力

アプリケーションコントロールイベント分析の出力は、ac_event_analysis.txtというファイルに送られます。このファイルには、追加のヒット数属性と拡張ヒット数属性を持つ信頼ルール形式が含まれています。
"trustrules": [{
"trustType":"1",
"processName":"process1",
"paths":"path11;path12;path13",
"hitcount":12342,
".jar":12342
},
{
"trustType":"1",
"processName":"process2",
"paths":"path21;path22;path23",
"hitcount":23232,
".py":23232
},
{
"trustType":"1",
"processName":"process3",
"paths":"path31;path32;path33",
"hitcount":34332,
".exe":34322
},
{
"trustType":"1",
"processName":"process4",
"paths":"path41;path42;path43",
"hitcount":12312,
".":12312
}]
ファイルの場所は次のとおりです:
  • Windowsの場合: C:\ProgramData\Trend Micro\Deep Security Agent\diag\ac_event_analysis.txt
  • Linuxの場合: /var/opt/ds_agent/diag/ac_event_analysis.txt
  • 診断で: agent/ac/ac_event_analysis.txt
このファイルからの分析は、エージェントの再起動後に状態が維持されるように再起動時にロードされます。アプリケーションコントロールが無効化された後に有効化されると、分析はクリアされます。ac_event_analysis.txtファイルを表示するには、JQまたはオンラインJSONフォーマッタを使用してください。

信頼ルールのデバッグ

信頼ルールは次のようにデバッグできます:
  1. Deep Security Managerに新しい信頼ルールを適用します。
  2. Deep Security Agentを停止します。
  3. ac_event_analysis.txtファイルを削除してください。
  4. Deep Security Agentを起動します。
  5. ac_event_analysis.txtファイルが再出現するかどうか、数分待ってください。
    • ファイルが表示されなくなった場合、信頼ルールが機能しており、イベントの生成が抑制されています。
    • ファイルがまだ表示される場合は、新しいイベント情報を確認するためにac_event_analysis.txtファイルを調査し、新しい信頼ルールを適用してください。信頼タイプ1のルールは、ドリフトイベントを自動承認するためのソースによる許可ルールであり、信頼タイプ2のルールはターゲットファイルの実行を許可するためのターゲットによる許可ルールです。
  6. 新しい信頼ルールを設定するには、手順1からの手順を繰り返します。
信頼ルールがどのくらい頻繁にヒットしているかを確認するには、エージェントでsendCommandを次のように実行します。
  • Linux: /opt/ds_agent/sendCommand --get TrustRules
  • Windows: \program files\trend micro\deep security agent\sendCommand --get TrustRules

コンサルト指標

ドリフト分析とイベント分析がアプリケーションコントロールメトリクスに追加され、ヒット数が最も多い上位10のプロセスがdrift_analysisオブジェクトに含まれ、カウントが最も多い上位10のSHA256がevent_analysisオブジェクトに保存されます。
"AC": {
"eventReportInQueue":"0",
"evtPreCreateProcessHandled":"17",
"acProcessHashCount":"0",
"acProcessBlockUnrecognized":"0",
"engFlushDbBufferError":"0",
"acFileProcessImgPath":"0",
"evtFilePostClose":"249",
"acFileErrorHash":"0",
"acFileAllowImportingRuleset":"0",
"evtFilePreCreateFromContainer":"0",
"evtFilePostChmodFromContainer":"0",
"engStopError":"0",
"evtFilePreCreateHandled":"0",
"ctrlInterpreterMatched":"0",
"importCount":"0",
"inventoryAdsVisited":"0",
"engGetInventory":"1",
"acFileAllow":"5",
"acFileAllowBuilding":"0",
"engSetConfigError":"0",
"ctrlMsiInstallationMatched":"0",
"ctrlDropProcessEvtReportQueueFull":"0",
"importFail":"0",
"eventReportDropped":"0",
"evtFilePostChmod":"3",
"acFileBlock":"0",
"acFileDrift":"3",
"engGetMetricsError":"0",
"ctrlDropFileEvtReportQueueFull":"0",
"inventoryFolderVisited":"0",
"engStartError":"0",
"evtFileCloudFileIgnore":"0",
"engSetConfig":"1",
"engFlushDbBuffer":"0",
"engPurgeDbError":"0",
"inventoryBytesInventoried":"433695822",
"evtPreCreateProcessWithCmdLine":"0",
"inventoryDriveVisited":"0",
"importSuccess":"0",
"engSetRuleset":"0",
"eventReportSent":"3",
"drift_analysis": [{
"trusttype":"1",
"processName":"/usr/bin/bash",
"paths":"/im1"
},
{
"trusttype":"1",
"processName":"/usr/bin/cp",
"hitcount":1,
"paths":"/im1"
}],
"event_analysis": [{
"trusttype":"2",
"sha256":"AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEE",
"hitcount":2,
"paths":"/im1"
},
{
"trusttype":"2",
"sha256":"EEEEEEEEEDDDDDDDDDCCCCCCCCBBBBBBBBAAAAAAAA",
"hitcount":1,
"paths":"/im1"
}]
}

署名者情報の表示

信頼ルールが有効化されると、ドリフトイベント分析のためにファイル署名者情報とプロセス署名者情報の両方が信頼ルールに含まれます。セキュリティイベント分析では、ファイル署名者情報が含まれます。信頼エンティティルールセットがホストに適用されると、信頼ルールが有効化され (ファイル署名者情報とプロセス署名者情報がac_event_analysis.txtファイルに表示されます)。