Files
AutopilotMonitor/rules/guardrails.json
T
Oliver Kieselbach 2f8ad82b0a gather-rules: mirror hard blocks in portal/MCP, stamp author on PUT-upsert; agent: bootstrap retry tests
Codex follow-ups to 1ebc2675:

- guardrails.json now mirrors blockedCommandPatterns + maxCommandLength and
  carries C:\Windows\System32\config in blockedFilePrefixes; portal
  (guardValidation.ts) and MCP (rule-validation.ts) enforce them in agent
  order (before the unrestricted-mode early-return), so hard-blocked commands
  no longer show "Allowed" in unrestricted tenants. GuardrailsParityTests
  pins the JSON mirror to the C# constants.
- gather-rule schema: collectorType enum gains json/xml (agent + portal
  supported both; MCP validate_rule falsely rejected them); MCP validates
  json/xml targets with file semantics and rejects activePhases +
  activeFromPhase set together (backend 400 parity); authoring guide updated.
- Author anti-spoof: tenant + global UpdateRule stamp the caller's JWT
  display name before the service call, closing the PUT-upsert hole where a
  non-existing ruleId stored the payload author; true updates still preserve
  the original. GatherRulesFunctionAuthorEndpointTests drives the real
  endpoints (first HttpRequestData-level test) proving body authors never win.
- AgentBootstrap.RetrySelfUpdateAfterEnrollment: internal + UpdateInvokerOverride
  test seam (RequestGracefulShutdown idiom), LastVersionCheckSucceeded setter
  internal; AgentBootstrapSelfUpdateRetryTests pin the guard, the relaxed
  await_enrollment timeouts, and the swallow-everything exception contract
  with save/restore of the static state.

Functions 3958, Agent-Core 2200, Web 670, MCP 543 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 12:29:05 +02:00

277 lines
8.2 KiB
JSON

{
"registryPrefixes": [
{
"category": "MDM / Enrollment",
"prefixes": [
"SOFTWARE\\Microsoft\\Enrollments",
"SOFTWARE\\Microsoft\\EnterpriseDesktopAppManagement",
"SOFTWARE\\Microsoft\\Provisioning",
"SOFTWARE\\Microsoft\\PolicyManager",
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\MDM"
]
},
{
"category": "AAD / Entra Join",
"prefixes": [
"SOFTWARE\\Microsoft\\IdentityStore",
"SYSTEM\\CurrentControlSet\\Control\\CloudDomainJoin"
]
},
{
"category": "Windows Update / WUfB",
"prefixes": [
"SOFTWARE\\Microsoft\\WindowsUpdate",
"SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate"
]
},
{
"category": "BitLocker",
"prefixes": [
"SOFTWARE\\Microsoft\\BitLocker",
"SYSTEM\\CurrentControlSet\\Control\\BitLockerStatus"
]
},
{
"category": "Network / Proxy",
"prefixes": [
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",
"SYSTEM\\CurrentControlSet\\Services\\Tcpip"
]
},
{
"category": "Autopilot / OOBE / Setup",
"prefixes": [
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup",
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\OOBE",
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",
"SOFTWARE\\Microsoft\\Windows\\Autopilot"
]
},
{
"category": "TPM",
"prefixes": [
"SYSTEM\\CurrentControlSet\\Services\\TPM",
"SOFTWARE\\Microsoft\\Tpm"
]
},
{
"category": "Secure Boot",
"prefixes": [
"SYSTEM\\CurrentControlSet\\Control\\SecureBoot"
]
},
{
"category": "Intune IME",
"prefixes": [
"SOFTWARE\\Microsoft\\IntuneManagementExtension"
]
},
{
"category": "Certificates (SCEP)",
"prefixes": [
"SOFTWARE\\Microsoft\\SystemCertificates",
"SOFTWARE\\Policies\\Microsoft\\SystemCertificates"
]
},
{
"category": "Servicing",
"prefixes": [
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing"
]
},
{
"category": "RealmJoin",
"prefixes": [
"SYSTEM\\CurrentControlSet\\Services\\realmjoin",
"SOFTWARE\\RealmJoin"
]
}
],
"filePrefixes": [
"C:\\ProgramData\\Microsoft\\IntuneManagementExtension\\Logs",
"C:\\Windows\\CCM\\Logs",
"C:\\Windows\\Logs",
"C:\\Windows\\Panther",
"C:\\Windows\\SetupDiag",
"C:\\ProgramData\\Microsoft\\DiagnosticLogCSP",
"C:\\Windows\\SoftwareDistribution\\ReportingEvents.log"
],
"wmiQueryPrefixes": [
"SELECT * FROM Win32_OperatingSystem",
"SELECT * FROM Win32_ComputerSystem",
"SELECT * FROM Win32_BIOS",
"SELECT * FROM Win32_Processor",
"SELECT * FROM Win32_BaseBoard",
"SELECT * FROM Win32_Battery",
"SELECT * FROM Win32_TPM",
"SELECT * FROM Win32_NetworkAdapter",
"SELECT * FROM Win32_NetworkAdapterConfiguration",
"SELECT * FROM Win32_DiskDrive",
"SELECT * FROM Win32_LogicalDisk",
"SELECT * FROM SoftwareLicensingProduct"
],
"eventLogChannels": [
{
"category": "Core Windows logs",
"channels": [
"Application",
"System",
"Setup",
"Microsoft-Windows-Kernel-Boot",
"Microsoft-Windows-Diagnostics-Performance"
]
},
{
"category": "MDM / Enrollment",
"channels": [
"Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider",
"Microsoft-Windows-ModernDeployment-Diagnostics-Provider",
"Microsoft-Windows-Provisioning-Diagnostics-Provider",
"Microsoft-Windows-AAD",
"Microsoft-Windows-User Device Registration"
]
},
{
"category": "ESP / Shell / Apps",
"channels": [
"Microsoft-Windows-Shell-Core",
"Microsoft-Windows-AppXDeployment",
"Microsoft-Windows-AppXDeploymentServer",
"Microsoft-Windows-AppReadiness",
"Microsoft-Windows-Store"
]
},
{
"category": "Security posture / Crypto",
"channels": [
"Microsoft-Windows-BitLocker-API",
"Microsoft-Windows-BitLocker-DrivePreparationTool",
"Microsoft-Windows-TPM-WMI",
"Microsoft-Windows-CertificateServicesClient-Lifecycle-System"
]
},
{
"category": "Update / Servicing",
"channels": [
"Microsoft-Windows-WindowsUpdateClient"
]
},
{
"category": "Logon / Session",
"channels": [
"Microsoft-Windows-Winlogon",
"Microsoft-Windows-User Profile Service",
"Microsoft-Windows-GroupPolicy",
"Microsoft-Windows-TaskScheduler"
]
},
{
"category": "Network",
"channels": [
"Microsoft-Windows-NetworkProfile",
"Microsoft-Windows-Dhcp-Client",
"Microsoft-Windows-DNS-Client",
"Microsoft-Windows-NCSI",
"Microsoft-Windows-WLAN-AutoConfig",
"Microsoft-Windows-Time-Service"
]
}
],
"blockedEventLogChannels": [
"Security",
"Microsoft-Windows-PowerShell",
"Windows PowerShell",
"Microsoft-Windows-Sysmon"
],
"allowedCommands": [
{
"category": "TPM and Security",
"commands": [
"Get-Tpm",
"Get-SecureBootPolicy",
"Get-SecureBootUEFI -Name SetupMode"
]
},
{
"category": "BitLocker",
"commands": [
"Get-BitLockerVolume -MountPoint C:"
]
},
{
"category": "Network",
"commands": [
"Get-NetAdapter | Select-Object Name, Status, InterfaceDescription, MacAddress, LinkSpeed",
"Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses",
"Get-NetIPConfiguration | Select-Object InterfaceAlias, IPv4Address, IPv4DefaultGateway, DNSServer",
"netsh winhttp show proxy",
"ipconfig /all"
]
},
{
"category": "Domain / Identity",
"commands": [
"nltest /dsgetdc:",
"dsregcmd /status"
]
},
{
"category": "Certificate",
"commands": [
"certutil -store My",
"$c = Get-ChildItem Cert:\\LocalMachine\\My; if ($c) { $c | Select-Object Subject, Thumbprint, Issuer, NotBefore, NotAfter, HasPrivateKey | ConvertTo-Json } else { '{\"CertificateCount\": 0}' }"
]
},
{
"category": "Windows Update",
"commands": [
"Get-HotFix | Select-Object -First 10 HotFixID, InstalledOn, Description"
]
},
{
"category": "Autopilot / Hardware Identity",
"commands": [
"try { $cs = Get-CimInstance -ClassName Win32_ComputerSystem; $bios = Get-CimInstance -ClassName Win32_BIOS; $hash = $null; try { $hash = (Get-CimInstance -Namespace root/cimv2/mdm/dmmap -ClassName MDM_DevDetail_Ext01 -Filter \"InstanceID='Ext' AND ParentID='./DevDetail'\" -ErrorAction Stop).DeviceHardwareData } catch { $hash = \"ERROR: $($_.Exception.Message)\" }; [pscustomobject]@{ Manufacturer = $cs.Manufacturer; Model = $cs.Model; SystemSKU = $cs.SystemSKUNumber; SerialNumber = $bios.SerialNumber; BiosVersion = $bios.SMBIOSBIOSVersion; HardwareHash = $hash } | ConvertTo-Json -Compress } catch { @{ error = $_.Exception.Message } | ConvertTo-Json -Compress }"
]
}
],
"diagnosticsPathPrefixes": [
"C:\\ProgramData\\AutopilotMonitor",
"C:\\ProgramData\\Microsoft\\IntuneManagementExtension\\Logs",
"C:\\Windows\\Panther",
"C:\\Windows\\Logs",
"C:\\Windows\\SetupDiag",
"C:\\Windows\\SoftwareDistribution\\ReportingEvents.log",
"C:\\Windows\\System32\\winevt\\Logs",
"C:\\Windows\\CCM\\Logs",
"C:\\ProgramData\\Microsoft\\DiagnosticLogCSP",
"C:\\ProgramData\\Microsoft\\Windows\\WER",
"C:\\Windows\\Logs\\CBS",
"C:\\Install\\Log"
],
"blockedFilePrefixes": [
"C:\\Users",
"C:\\Windows\\System32\\config"
],
"blockedCommandPatterns": [
"Invoke-WebRequest",
"Invoke-RestMethod",
"Start-BitsTransfer",
"wget",
"curl",
"certutil -urlcache",
"New-LocalUser",
"Add-LocalGroupMember",
"net user",
"net localgroup",
"bcdedit",
"bcdboot",
"schtasks /create",
"Register-ScheduledTask",
"Remove-Item -Recurse",
"Format-Volume",
"Set-ExecutionPolicy"
],
"maxCommandLength": 2000
}