ディスカバリー中に MID サーバーによって生成される PowerShell スクリプトをウイルス対策ブロックIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ディスカバリー中、MID サーバーは PowerShell スクリプトをその場で生成し、Java プロセスを介して実行します。ウイルス対策ソフトウェアは、これらの動的に作成されたスクリプトを検出し、MID サーバーからの受信 PowerShell セッションをブロックしてアラートを生成します。 Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ディスカバリー中に PowerShell スクリプトのウイルス対策アラートが生成されます。MID サーバーからの受信 PowerShell セッションは、ウイルス対策によってブロックされます。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } すべて Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 設計上、PowerShell プローブは実行時に MID サーバーの一時フォルダーの下に一時的な .ps1 スクリプトを作成します。これらの動的に生成されたスクリプトは、既存のファイルではなく、その場で作成および実行されるため、ウイルス対策ソフトウェアによってフラグが付けられます。 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } この問題を解決するには、PowerShell プローブの実行中に MID サーバーが使用するプロセスとキー値を使用して、ウイルス対策除外を構成します。次の情報によって、これらの値が識別されます。 PowerShell プローブスクリプトの名前付け方法 プローブパラメーターとして .ps ファイルを渡すすべての PowerShell プローブについて、次の命名パターンを使用して MID サーバーの一時フォルダーの下にスクリプトが作成されます。 <NameOfParameter>.<RandomNumber>.ps1 たとえば、プローブ Windows - JBoss Get jboss-service.xml はパラメーター findjbossservicexml.ps1 を使用すると、実行時に次のファイルが生成されます。 findjbossservicexml.1031966753134230570.PS1 すべての WMIRunner プローブについて、プローブで定義されている WMI フィールドに基づいて、次のパターンを使用してスクリプトが作成されます。 WMI_FetchData_<RANDOMNUMBER>.ps1c 内部スクリプトも、MID サーバーの一時フォルダーの下で並列に実行されます。PowerShell プローブスクリプト、WMIRunner スクリプト、および内部スクリプトに共通の命名形式はありません。それぞれ異なる形式に従います。 .psファイルを生成するプローブパラメーターの完全なリストは、次の URL にあります ( <instance-name>をインスタンス名に置き換えてください)。 https://<instance-name>.service-now.com/discovery_probe_parameter_list.do?sysparm_query=nameLIKE.ps&sysparm_first_row=1&sysparm_view=&sysparm_choice_query_raw=&sysparm_list_header_search=true MID サーバーが PowerShell スクリプトを実行する方法 MID サーバーで実行されるスクリプトでは、実行では scripts\\PowerShell\\PSScript.ps が使用され、temp フォルダーの下のファイルがそのスクリプトのパラメーターとして渡されます。次の例は、プローブの実行中に観察された完全なコマンド構造を示しています。 "Process" : "\Device\HarddiskVolume3\ServiceNow\agent\jre\bin\java.exe", ... "Key" : "\Device\HarddiskVolume2\Windows\System32\WindowsPowerShell\v1.0\powershell.exe", "KeyScriptModule" : "{ [Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8; Write-Output SNC_PowerShell_PID=$pid; & 'scripts\\PowerShell\\PSScript.ps1' -computer '<target-hostname>' -script 'C:\\Users\\SVC-SN~1\\AppData\\Local\\Temp\\script.4422133186211577577.PS1' 'use_mid_service_account' $false -useCred $true -ismid $false -isDiscovery $true -debug $false -logInfo $false -skipTest $false -executeRemote $false -copyScriptToTarget $false; exit $LASTEXITCODE ", "MountPoint" : "", 名前付きプローブのパラメーター構造を示す 2 番目の例: "Key" : "\Device\HarddiskVolume2\Windows\System32\WindowsPowerShell\v1.0\powershell.exe", "KeyScriptModule" : "{ [Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8; Write-Output SNC_PowerShell_PID=$pid; & 'scripts\\PowerShell\\PSScript.ps1' -computer '<target-ip>' -script 'C:\\Windows\\TEMP\\findjbossservicexml.1031966753134230570.PS1' -useCred $true -ismid $false -isDiscovery $true -debug $false -logInfo $false -skipTest $false -executeRemote $false -copyScriptToTarget $false; exit $LASTEXITCODE ", ウイルス対策除外を構成する際の留意点 ウイルス対策の除外を設定するときは、次の点に注意してください。 1.MID サーバーは、プロセス \Device\HarddiskVolume3\ServiceNow\agent\jre\bin\java.exe を使用してコマンドを実行します。 2.呼び出されるコマンドは scripts\\PowerShell\\PSScript.ps です。このスクリプトは MID サーバーのインストールの一部であり、MID サーバープロセスによって実行されることを目的としています。 3.パラメーター -isDiscovery $true は、ディスカバリーによって開始されるすべてのコマンドに存在し、ディスカバリーが元のプロセスであることを確認します。 ウイルス対策構成を調整して、上記で特定されたプロセス、キー、およびスクリプトの値を信頼できるものとして扱い、これらのパターンに一致するスクリプトがブロックされないようにします。