Privacy hardening, remote-peer IP masking and review fixes
- Add privacy projection (core/privacy.py), private report storage, bounded
process capture; omit identities, free text and unapproved paths
- Mask remote peer IPs: only loopback/host/wildcard stay numeric, others are
reduced to remote_scope private/public (schema + scoring updated)
- Map ss TCP states to canonical names; ASCII-only numeric fields; fix
"Microsoft Visual C++" product matching (Python and PowerShell)
- Merge 7fed3b9: -Diagnostic switch, serialization exit code 3, PS7 module
path, UI error detail; keep hardened task/certificate collectors
- Add audit docs, privacy docs and regression tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,8 @@
|
||||
},
|
||||
"collected_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
"format": "date-time",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"server": {
|
||||
"type": "object",
|
||||
@@ -29,7 +30,8 @@
|
||||
],
|
||||
"properties": {
|
||||
"hostname": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"platform": {
|
||||
"enum": [
|
||||
@@ -38,22 +40,28 @@
|
||||
]
|
||||
},
|
||||
"operating_system": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"os_version": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"os_build": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"kernel_version": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"collection_source": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"domain": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"product_type": {
|
||||
"type": "integer"
|
||||
@@ -67,16 +75,25 @@
|
||||
"ip_addresses": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"network_adapters": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"last_boot": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"checks": {
|
||||
"type": "object",
|
||||
@@ -96,15 +113,18 @@
|
||||
]
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"started_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
"format": "date-time",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"completed_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
"format": "date-time",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"errors": {
|
||||
"type": "array",
|
||||
@@ -118,30 +138,39 @@
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"scope": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"permission_limitations": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"limitations": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"maxItems": 20000
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"required": [
|
||||
"roles",
|
||||
@@ -151,7 +180,8 @@
|
||||
"software",
|
||||
"storage",
|
||||
"certificates"
|
||||
]
|
||||
],
|
||||
"maxProperties": 30
|
||||
},
|
||||
"inventory": {
|
||||
"type": "object",
|
||||
@@ -174,19 +204,25 @@
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"display_name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"state": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"feature_type": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"services": {
|
||||
"type": "array",
|
||||
@@ -198,25 +234,44 @@
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"state": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"display_name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"startup": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"account": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"pid": {
|
||||
"type": "integer"
|
||||
},
|
||||
"arguments": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"executable": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"PathName": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"network": {
|
||||
"type": "array",
|
||||
@@ -231,22 +286,52 @@
|
||||
],
|
||||
"properties": {
|
||||
"state": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"local_address": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"local_port": {
|
||||
"type": "integer"
|
||||
},
|
||||
"remote_address": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"remote_port": {
|
||||
"type": "integer"
|
||||
},
|
||||
"pid": {
|
||||
"type": [
|
||||
"integer",
|
||||
"null"
|
||||
],
|
||||
"minimum": 0
|
||||
},
|
||||
"process": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"direction": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"remote_scope": {
|
||||
"enum": [
|
||||
"",
|
||||
"loopback",
|
||||
"host",
|
||||
"unspecified",
|
||||
"private",
|
||||
"public"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"tasks": {
|
||||
"type": "array",
|
||||
@@ -258,31 +343,52 @@
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"path": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"account": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"triggers": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"state": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"executables": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"associated_unit": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"arguments": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"executable": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"PathName": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"software": {
|
||||
"type": "array",
|
||||
@@ -293,22 +399,29 @@
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"publisher": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"installation_date": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"registry_view": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"storage": {
|
||||
"type": "array",
|
||||
@@ -321,16 +434,20 @@
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"path": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"filesystem": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"special": {
|
||||
"type": "boolean"
|
||||
@@ -356,14 +473,18 @@
|
||||
"minimum": 0
|
||||
},
|
||||
"activity_source": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"activity_observed_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
"format": "date-time",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"maxItems": 20000
|
||||
},
|
||||
"certificates": {
|
||||
"type": "array",
|
||||
@@ -374,25 +495,57 @@
|
||||
],
|
||||
"properties": {
|
||||
"subject": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"issuer": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"expires": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"thumbprint": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
},
|
||||
"store": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"maxItems": 20000
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"privacy": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"profile",
|
||||
"identities_omitted",
|
||||
"paths",
|
||||
"scope"
|
||||
],
|
||||
"properties": {
|
||||
"profile": {
|
||||
"const": "minimized-metadata-v1"
|
||||
},
|
||||
"identities_omitted": {
|
||||
"const": true
|
||||
},
|
||||
"paths": {
|
||||
"const": "approved-roots-only"
|
||||
},
|
||||
"scope": {
|
||||
"type": "string",
|
||||
"maxLength": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user