@vantagesec/socc 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/dist/cli.mjs +10734 -10807
- package/package.json +7 -8
- package/scripts/bootstrap-socc-soul.mjs +23 -1
- package/socc-canonical/.agents/generated/socc-agent-manifest.json +0 -231
- package/socc-canonical/.agents/generated/socc-agent.md +0 -256
- package/socc-canonical/.agents/rules/AGENT.md +0 -109
- package/socc-canonical/.agents/rules/AQL_REFERENCE.md +0 -40
- package/socc-canonical/.agents/rules/MEMORY.md +0 -19
- package/socc-canonical/.agents/rules/TOOLS.md +0 -48
- package/socc-canonical/.agents/soc-copilot/AGENTS.md +0 -28
- package/socc-canonical/.agents/soc-copilot/MEMORY.md +0 -20
- package/socc-canonical/.agents/soc-copilot/SKILL.md +0 -51
- package/socc-canonical/.agents/soc-copilot/SOUL.md +0 -31
- package/socc-canonical/.agents/soc-copilot/TOOLS.md +0 -33
- package/socc-canonical/.agents/soc-copilot/USER.md +0 -31
- package/socc-canonical/.agents/soc-copilot/identity.md +0 -7
- package/socc-canonical/.agents/soc-copilot/references/evidence-rules.md +0 -30
- package/socc-canonical/.agents/soc-copilot/references/intelligence-source-registry.md +0 -32
- package/socc-canonical/.agents/soc-copilot/references/ioc-extraction.md +0 -25
- package/socc-canonical/.agents/soc-copilot/references/knowledge-ingestion-policy.md +0 -34
- package/socc-canonical/.agents/soc-copilot/references/mitre-guidance.md +0 -21
- package/socc-canonical/.agents/soc-copilot/references/output-contract.md +0 -31
- package/socc-canonical/.agents/soc-copilot/references/security-json-patterns.md +0 -129
- package/socc-canonical/.agents/soc-copilot/references/telemetry-investigation-patterns.md +0 -39
- package/socc-canonical/.agents/soc-copilot/schemas/analysis_response.json +0 -119
- package/socc-canonical/.agents/soc-copilot/skills/code-review-excellence/SKILL.md +0 -538
- package/socc-canonical/.agents/soc-copilot/skills/cybersecurity-analyst/QUICK_REFERENCE.md +0 -263
- package/socc-canonical/.agents/soc-copilot/skills/cybersecurity-analyst/README.md +0 -243
- package/socc-canonical/.agents/soc-copilot/skills/cybersecurity-analyst/SKILL.md +0 -1707
- package/socc-canonical/.agents/soc-copilot/skills/cybersecurity-analyst/tests/quiz.md +0 -472
- package/socc-canonical/.agents/soc-copilot/skills/data-visualization/SKILL.md +0 -304
- package/socc-canonical/.agents/soc-copilot/skills/deep-research/SKILL.md +0 -192
- package/socc-canonical/.agents/soc-copilot/skills/excel-analysis/SKILL.md +0 -247
- package/socc-canonical/.agents/soc-copilot/skills/find-skills/SKILL.md +0 -133
- package/socc-canonical/.agents/soc-copilot/skills/humanizer/README.md +0 -120
- package/socc-canonical/.agents/soc-copilot/skills/humanizer/SKILL.md +0 -439
- package/socc-canonical/.agents/soc-copilot/skills/malware-behavior/SKILL.md +0 -54
- package/socc-canonical/.agents/soc-copilot/skills/mitre/SKILL.md +0 -200
- package/socc-canonical/.agents/soc-copilot/skills/observability-logs-search/SKILL.md +0 -237
- package/socc-canonical/.agents/soc-copilot/skills/observability-logs-search/references/log-search-reference.md +0 -76
- package/socc-canonical/.agents/soc-copilot/skills/payload-triage/SKILL.md +0 -53
- package/socc-canonical/.agents/soc-copilot/skills/phishing-analysis/SKILL.md +0 -51
- package/socc-canonical/.agents/soc-copilot/skills/prd/SKILL.md +0 -143
- package/socc-canonical/.agents/soc-copilot/skills/remembering-conversations/MCP-TOOLS.md +0 -137
- package/socc-canonical/.agents/soc-copilot/skills/remembering-conversations/SKILL.md +0 -65
- package/socc-canonical/.agents/soc-copilot/skills/sequential-thinking/README.md +0 -118
- package/socc-canonical/.agents/soc-copilot/skills/sequential-thinking/SKILL.md +0 -93
- package/socc-canonical/.agents/soc-copilot/skills/sequential-thinking/references/advanced.md +0 -122
- package/socc-canonical/.agents/soc-copilot/skills/sequential-thinking/references/examples.md +0 -274
- package/socc-canonical/.agents/soc-copilot/skills/soc-generalist/SKILL.md +0 -53
- package/socc-canonical/.agents/soc-copilot/skills/suspicious-url/SKILL.md +0 -51
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/CREATION-LOG.md +0 -119
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/SKILL.md +0 -296
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/condition-based-waiting.md +0 -115
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/defense-in-depth.md +0 -122
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/find-polluter.sh +0 -63
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/root-cause-tracing.md +0 -169
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/test-academic.md +0 -14
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/test-pressure-1.md +0 -58
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/test-pressure-2.md +0 -68
- package/socc-canonical/.agents/soc-copilot/skills/systematic-debugging/test-pressure-3.md +0 -69
- package/socc-canonical/.agents/soc-copilot/skills/translation-expertise/SKILL.md +0 -284
- package/socc-canonical/.agents/soc-copilot/skills/translation-expertise/chinese-traditional.md +0 -535
- package/socc-canonical/.agents/soc-copilot/skills/translation-expertise/english.md +0 -372
- package/socc-canonical/.agents/soc-copilot/skills/translation-expertise/japanese.md +0 -515
- package/socc-canonical/.agents/soc-copilot/skills/translation-expertise/tools-resources.md +0 -527
- package/socc-canonical/.agents/soc-copilot/skills/translation-expertise/translation-challenges.md +0 -603
- package/socc-canonical/.agents/soc-copilot/skills/web-search/SKILL.md +0 -322
- package/socc-canonical/.agents/soc-copilot/skills.md +0 -21
- package/socc-canonical/.agents/workflows/SOP.md +0 -137
- package/socc-canonical/README.md +0 -10
- /package/{.claude → .socc}/agents/socc.md +0 -0
- /package/{.claude → .socc}/references/evidence-rules.md +0 -0
- /package/{.claude → .socc}/references/intelligence-source-registry.md +0 -0
- /package/{.claude → .socc}/references/ioc-extraction.md +0 -0
- /package/{.claude → .socc}/references/knowledge-ingestion-policy.md +0 -0
- /package/{.claude → .socc}/references/mitre-guidance.md +0 -0
- /package/{.claude → .socc}/references/output-contract.md +0 -0
- /package/{.claude → .socc}/references/security-json-patterns.md +0 -0
- /package/{.claude → .socc}/references/telemetry-investigation-patterns.md +0 -0
- /package/{.claude → .socc}/rules/socc-business-rules.md +0 -0
- /package/{.claude → .socc}/skills/code-review-excellence/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/cybersecurity-analyst/QUICK_REFERENCE.md +0 -0
- /package/{.claude → .socc}/skills/cybersecurity-analyst/README.md +0 -0
- /package/{.claude → .socc}/skills/cybersecurity-analyst/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/cybersecurity-analyst/tests/quiz.md +0 -0
- /package/{.claude → .socc}/skills/data-visualization/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/deep-research/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/excel-analysis/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/find-skills/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/humanizer/README.md +0 -0
- /package/{.claude → .socc}/skills/humanizer/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/malware-behavior/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/mitre/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/observability-logs-search/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/observability-logs-search/references/log-search-reference.md +0 -0
- /package/{.claude → .socc}/skills/payload-triage/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/phishing-analysis/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/prd/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/remembering-conversations/MCP-TOOLS.md +0 -0
- /package/{.claude → .socc}/skills/remembering-conversations/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/sequential-thinking/README.md +0 -0
- /package/{.claude → .socc}/skills/sequential-thinking/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/sequential-thinking/references/advanced.md +0 -0
- /package/{.claude → .socc}/skills/sequential-thinking/references/examples.md +0 -0
- /package/{.claude → .socc}/skills/soc-generalist/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/suspicious-url/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/CREATION-LOG.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/condition-based-waiting-example.ts +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/condition-based-waiting.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/defense-in-depth.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/find-polluter.sh +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/root-cause-tracing.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/test-academic.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/test-pressure-1.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/test-pressure-2.md +0 -0
- /package/{.claude → .socc}/skills/systematic-debugging/test-pressure-3.md +0 -0
- /package/{.claude → .socc}/skills/translation-expertise/SKILL.md +0 -0
- /package/{.claude → .socc}/skills/translation-expertise/chinese-traditional.md +0 -0
- /package/{.claude → .socc}/skills/translation-expertise/english.md +0 -0
- /package/{.claude → .socc}/skills/translation-expertise/japanese.md +0 -0
- /package/{.claude → .socc}/skills/translation-expertise/tools-resources.md +0 -0
- /package/{.claude → .socc}/skills/translation-expertise/translation-challenges.md +0 -0
- /package/{.claude → .socc}/skills/web-search/SKILL.md +0 -0
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
# Security JSON Field Patterns
|
|
2
|
-
|
|
3
|
-
Purpose:
|
|
4
|
-
|
|
5
|
-
- help the copilot recognize common aliases used by EDR, NDR, IDS/IPS, SIEM, IAM, WAF and cloud detectors
|
|
6
|
-
- reduce misses when important evidence appears under vendor-specific JSON keys
|
|
7
|
-
- treat these aliases as extraction hints, not as permission to invent facts
|
|
8
|
-
|
|
9
|
-
High-signal entities to always inspect:
|
|
10
|
-
|
|
11
|
-
- username and account identifiers
|
|
12
|
-
- source IP and destination IP, including IPv4 and IPv6
|
|
13
|
-
- hostname and server names
|
|
14
|
-
- file name and file path
|
|
15
|
-
- hashes such as MD5, SHA1 and SHA256
|
|
16
|
-
- ports, protocol, action, URL and domain
|
|
17
|
-
- e-mail headers and authentication/session fields
|
|
18
|
-
- process, registry, service and module telemetry
|
|
19
|
-
- cloud identity/resource context and Kubernetes/container metadata
|
|
20
|
-
|
|
21
|
-
Common alias families by canonical field:
|
|
22
|
-
|
|
23
|
-
- `Usuario`:
|
|
24
|
-
`user`, `username`, `user.name`, `user.id`, `userPrincipalName`, `UserId`, `UserName`, `AccountName`, `SamAccountName`, `SubjectUserName`, `TargetUserName`, `srcuser`, `dstuser`, `principalUserName`, `actor.alternateId`
|
|
25
|
-
- `IP_Origem`:
|
|
26
|
-
`srcip`, `src_ip`, `src`, `sourceip`, `source.ip`, `SourceIP`, `SourceIp`, `sourceIPAddress`, `sourceAddress`, `ClientIP`, `client.ip`, `RemoteIP`, `RemoteAddress`, `CallerIpAddress`, `event.src.ip`
|
|
27
|
-
- `IP_Destino`:
|
|
28
|
-
`dstip`, `dst_ip`, `dst`, `destinationip`, `destination.ip`, `DestinationIP`, `DestinationIp`, `destinationIPAddress`, `destinationAddress`, `TargetIP`, `server.ip`, `event.dst.ip`
|
|
29
|
-
- `Hostname`:
|
|
30
|
-
`hostname`, `host`, `host.name`, `ComputerName`, `DeviceName`, `device.hostname`, `agent.hostname`, `endpoint.hostname`, `destinationHostName`, `dest_host`, `dhost`
|
|
31
|
-
- `Servidor`:
|
|
32
|
-
`server`, `serverName`, `server.name`, `server_name`, `serverHost`, `server.host`, `observer.name`, `sensor`, `appliance`
|
|
33
|
-
- `Arquivo`:
|
|
34
|
-
`file.name`, `fileName`, `FileName`, `filename`, `TargetFilename`, `object.file.name`, `process.name`, `Image`
|
|
35
|
-
- `Caminho`:
|
|
36
|
-
`file.path`, `FilePath`, `Path`, `Directory`, `FolderPath`, `TargetObject`, `TargetFilename`, `process.command_line`, `process.executable`, `ImagePath`
|
|
37
|
-
- `Hash_Observado`:
|
|
38
|
-
`hash`, `sha256`, `sha1`, `md5`, `fileHash`, `FileHash`, `file.hash`, `file.hash.sha256`, `file.hash.sha1`, `file.hash.md5`, `process.hash.sha256`
|
|
39
|
-
- `Porta_Origem`:
|
|
40
|
-
`srcport`, `SourcePort`, `sourcePort`, `source.port`, `src_port`, `network.src.port`
|
|
41
|
-
- `Porta_Destino`:
|
|
42
|
-
`dstport`, `DestinationPort`, `destinationPort`, `destination.port`, `dst_port`, `server.port`, `network.dst.port`
|
|
43
|
-
- `Email_Remetente`:
|
|
44
|
-
`from`, `mail.from`, `sender`, `sender.address`, `email.from.address`, `message.from`, `smtp.mailfrom`
|
|
45
|
-
- `Email_Destinatario`:
|
|
46
|
-
`to`, `recipient`, `recipient.address`, `email.to.address`, `message.to`, `smtp.rcptto`
|
|
47
|
-
- `Email_ReplyTo`:
|
|
48
|
-
`reply-to`, `reply_to`, `replyTo`, `email.reply_to.address`
|
|
49
|
-
- `Email_Assunto`:
|
|
50
|
-
`subject`, `email.subject`, `mail.subject`, `message.subject`
|
|
51
|
-
- `Resultado_Autenticacao`:
|
|
52
|
-
`auth_result`, `auth.result`, `authentication.result`, `signin_result`, `login_result`, `status`
|
|
53
|
-
- `MFA_Status`:
|
|
54
|
-
`mfa`, `mfa_status`, `mfa.result`, `authentication.mfa`, `mfaRequired`, `mfaUsed`
|
|
55
|
-
- `Sessao_ID`:
|
|
56
|
-
`session`, `session.id`, `session_id`, `sessionId`, `auth.session_id`, `network.session_id`
|
|
57
|
-
- `Tipo_Logon`:
|
|
58
|
-
`logon_type`, `logonType`, `login_type`, `authentication.type`
|
|
59
|
-
- `DNS_Consulta`:
|
|
60
|
-
`query`, `dns.question.name`, `dns.qname`, `qname`, `rrname`, `dns.query`, `domainName`
|
|
61
|
-
- `HTTP_Host`:
|
|
62
|
-
`http.host`, `host.header`, `url.domain`, `request.host`, `host_header`
|
|
63
|
-
- `URL_Completa`:
|
|
64
|
-
`url.full`, `request.url`, `http.url`, `uri`, `request_uri`, `url.original`
|
|
65
|
-
- `User_Agent`:
|
|
66
|
-
`user_agent`, `user.agent`, `http.user_agent`, `request.user_agent`
|
|
67
|
-
- `TLS_SNI`:
|
|
68
|
-
`tls.sni`, `server_name`, `serverNameIndication`, `tls.server_name`
|
|
69
|
-
- `TLS_JA3` / `TLS_JA3S`:
|
|
70
|
-
`ja3`, `tls.ja3`, `network.tls.ja3`, `ja3s`, `tls.ja3s`, `network.tls.ja3s`
|
|
71
|
-
- `Certificado_Assunto`:
|
|
72
|
-
`certificate.subject`, `tls.server.x509.subject`, `x509.subject`, `cert.subject`
|
|
73
|
-
- `Processo` / `Processo_Pai`:
|
|
74
|
-
`process.name`, `processName`, `Image`, `process.executable`, `process.parent.name`, `ParentProcessName`
|
|
75
|
-
- `Linha_De_Comando`:
|
|
76
|
-
`command_line`, `CommandLine`, `process.command_line`, `cmdline`
|
|
77
|
-
- `Registro`:
|
|
78
|
-
`registry.path`, `registry.key`, `registryKey`, `TargetObject`
|
|
79
|
-
- `Servico`:
|
|
80
|
-
`service.name`, `serviceName`, `ServiceName`, `service.display_name`
|
|
81
|
-
- `Modulo`:
|
|
82
|
-
`module`, `module.name`, `dll`, `ImageLoaded`, `loaded_module`
|
|
83
|
-
- `Cloud_Conta_ID`:
|
|
84
|
-
`accountId`, `account.id`, `cloud.account.id`, `recipientAccountId`, `subscriptionId`
|
|
85
|
-
- `Cloud_Regiao`:
|
|
86
|
-
`region`, `cloud.region`, `awsRegion`, `azure.region`, `gcp.region`, `location`
|
|
87
|
-
- `Cloud_Recurso`:
|
|
88
|
-
`resourceId`, `resource.id`, `cloud.resource.id`, `instanceId`, `targetResourceName`
|
|
89
|
-
- `Cloud_Papel`:
|
|
90
|
-
`role`, `roleArn`, `role_name`, `cloud.role`, `principal.role`
|
|
91
|
-
- `Cloud_Tenant_ID` / `Cloud_Projeto_ID`:
|
|
92
|
-
`tenantId`, `tenant.id`, `azure.tenant_id`, `project.id`, `projectId`, `gcp.project.id`
|
|
93
|
-
- `Bytes_Entrada` / `Bytes_Saida` / `Pacotes_Entrada` / `Pacotes_Saida`:
|
|
94
|
-
`bytes_in`, `bytes_out`, `packets_in`, `packets_out`, `source.bytes`, `destination.bytes`
|
|
95
|
-
- `Direcao_Rede`:
|
|
96
|
-
`direction`, `network.direction`, `flow.direction`, `traffic.direction`
|
|
97
|
-
- `NAT_IP_Origem` / `NAT_IP_Destino`:
|
|
98
|
-
`nat.source.ip`, `nat.destination.ip`, `nat.src`, `nat.dst`, `source.nat.ip`, `destination.nat.ip`
|
|
99
|
-
- `Sessao_Rede_ID` / `Zona_Rede` / `Interface_Rede`:
|
|
100
|
-
`network.session_id`, `flow.id`, `connection.id`, `zone`, `srczone`, `dstzone`, `interface`, `srcintf`, `dstintf`
|
|
101
|
-
- `Kubernetes_Pod` / `Kubernetes_Namespace`:
|
|
102
|
-
`kubernetes.pod.name`, `k8s.pod.name`, `pod.name`, `kubernetes.namespace`, `k8s.namespace.name`
|
|
103
|
-
- `Container_ID` / `Container_Imagem`:
|
|
104
|
-
`container.id`, `docker.container.id`, `container.image.name`, `container.image.tag`
|
|
105
|
-
- `Kubernetes_Node` / `Kubernetes_Cluster`:
|
|
106
|
-
`kubernetes.node.name`, `k8s.node.name`, `kubernetes.cluster.name`, `k8s.cluster.name`
|
|
107
|
-
- `Kubernetes_ServiceAccount` / `Kubernetes_Workload`:
|
|
108
|
-
`kubernetes.serviceaccount.name`, `serviceAccount`, `kubernetes.deployment.name`, `workload.name`
|
|
109
|
-
|
|
110
|
-
Detector families where these aliases commonly appear:
|
|
111
|
-
|
|
112
|
-
- FortiGate, Palo Alto, Check Point, Cisco, Juniper
|
|
113
|
-
- CrowdStrike, Defender for Endpoint, SentinelOne, Carbon Black, Trend Micro
|
|
114
|
-
- Suricata, Snort, Zeek, Security Onion
|
|
115
|
-
- Microsoft Sentinel, Elastic, Wazuh, Splunk, QRadar, Chronicle
|
|
116
|
-
- Okta, Entra ID, Active Directory, Google Workspace, AWS GuardDuty
|
|
117
|
-
- CloudTrail, GuardDuty, Azure AD/Entra, GCP Audit Logs, Prisma, Wiz
|
|
118
|
-
- Kubernetes Audit Logs, Falco, Sysdig, Aqua, Datadog, EKS/GKE/AKS
|
|
119
|
-
|
|
120
|
-
Extraction discipline:
|
|
121
|
-
|
|
122
|
-
- prefer exact values present in normalized fields or raw payload
|
|
123
|
-
- if a field is absent, leave it empty rather than guessing
|
|
124
|
-
- accept IPv6 as first-class evidence, not only IPv4
|
|
125
|
-
- when both hostname and destination IP exist, keep both if possible
|
|
126
|
-
- when a hash is present, preserve full value without truncation in structured data
|
|
127
|
-
- when a file name and a path both exist, keep the path in `Caminho` and the best file indicator in `Arquivo`
|
|
128
|
-
- when URL, DNS, HTTP host and SNI coexist, keep the most specific value in its own field and avoid collapsing them prematurely
|
|
129
|
-
- when cloud or Kubernetes metadata exists, preserve tenancy, resource and workload context because it often changes incident scope
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Telemetry Investigation Patterns
|
|
2
|
-
|
|
3
|
-
Purpose:
|
|
4
|
-
|
|
5
|
-
- transform extracted telemetry into investigation-ready context
|
|
6
|
-
- highlight patterns without inventing facts or forcing a final verdict
|
|
7
|
-
- help distinguish scope, delivery, execution, persistence and exfiltration signals
|
|
8
|
-
|
|
9
|
-
Investigation families:
|
|
10
|
-
|
|
11
|
-
- `email_auth`:
|
|
12
|
-
phishing delivery, malicious attachment, malicious link, external auth pressure, MFA gap
|
|
13
|
-
- `dns_http_tls`:
|
|
14
|
-
suspicious web channel, HTTP/TLS beaconing, anomalous DNS, possible tunneling
|
|
15
|
-
- `process_endpoint`:
|
|
16
|
-
LOLBins, script execution, persistence via registry/service/task, suspicious module load
|
|
17
|
-
- `cloud_identity`:
|
|
18
|
-
cloud account or role exposure, suspicious resource access, tenant or subscription relevance
|
|
19
|
-
- `network_flow_nat`:
|
|
20
|
-
outbound asymmetry, NAT path awareness, source/destination attribution risk
|
|
21
|
-
- `kubernetes_container`:
|
|
22
|
-
pod or namespace scope, container image relevance, service account or cluster blast radius
|
|
23
|
-
|
|
24
|
-
Discipline:
|
|
25
|
-
|
|
26
|
-
- treat these patterns as investigative context, not as a final incident decision
|
|
27
|
-
- prefer concrete evidence from parsed fields and raw payload over generic assumptions
|
|
28
|
-
- when context depends on external reputation, say that clearly
|
|
29
|
-
- when the telemetry only changes scope, describe scope rather than overclaiming attacker intent
|
|
30
|
-
|
|
31
|
-
Good examples:
|
|
32
|
-
|
|
33
|
-
- "Email sender + subject + URL/file suggests possible phishing delivery context."
|
|
34
|
-
- "External auth failures with MFA gap suggest credential pressure and justify deeper review."
|
|
35
|
-
- "PowerShell with encoded command suggests script execution by LOLBin and deserves EDR correlation."
|
|
36
|
-
- "Registry Run key or service creation suggests persistence mechanism on the endpoint."
|
|
37
|
-
- "High outbound bytes to external destination suggests exfiltration or anomalous upload signal."
|
|
38
|
-
- "Cloud resource, role and external source IP expand the blast radius to identity and control plane."
|
|
39
|
-
- "Pod, namespace and container image indicate workload scope in Kubernetes."
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://socc.local/schemas/analysis_response.json",
|
|
4
|
-
"title": "SOC Copilot Analysis Response",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"additionalProperties": false,
|
|
7
|
-
"required": [
|
|
8
|
-
"summary",
|
|
9
|
-
"verdict",
|
|
10
|
-
"confidence",
|
|
11
|
-
"iocs",
|
|
12
|
-
"ttps",
|
|
13
|
-
"risk_reasons",
|
|
14
|
-
"recommended_actions",
|
|
15
|
-
"sources"
|
|
16
|
-
],
|
|
17
|
-
"properties": {
|
|
18
|
-
"summary": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"minLength": 1
|
|
21
|
-
},
|
|
22
|
-
"verdict": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"enum": [
|
|
25
|
-
"benigno",
|
|
26
|
-
"suspeito",
|
|
27
|
-
"malicioso",
|
|
28
|
-
"inconclusivo"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
"confidence": {
|
|
32
|
-
"type": "number",
|
|
33
|
-
"minimum": 0,
|
|
34
|
-
"maximum": 1
|
|
35
|
-
},
|
|
36
|
-
"iocs": {
|
|
37
|
-
"type": "array",
|
|
38
|
-
"items": {
|
|
39
|
-
"type": "object",
|
|
40
|
-
"additionalProperties": false,
|
|
41
|
-
"required": [
|
|
42
|
-
"type",
|
|
43
|
-
"value",
|
|
44
|
-
"context"
|
|
45
|
-
],
|
|
46
|
-
"properties": {
|
|
47
|
-
"type": {
|
|
48
|
-
"type": "string",
|
|
49
|
-
"enum": [
|
|
50
|
-
"ip",
|
|
51
|
-
"domain",
|
|
52
|
-
"url",
|
|
53
|
-
"hash",
|
|
54
|
-
"email",
|
|
55
|
-
"file",
|
|
56
|
-
"process",
|
|
57
|
-
"registry",
|
|
58
|
-
"other"
|
|
59
|
-
]
|
|
60
|
-
},
|
|
61
|
-
"value": {
|
|
62
|
-
"type": "string",
|
|
63
|
-
"minLength": 1
|
|
64
|
-
},
|
|
65
|
-
"context": {
|
|
66
|
-
"type": "string"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"ttps": {
|
|
72
|
-
"type": "array",
|
|
73
|
-
"items": {
|
|
74
|
-
"type": "object",
|
|
75
|
-
"additionalProperties": false,
|
|
76
|
-
"required": [
|
|
77
|
-
"id",
|
|
78
|
-
"name",
|
|
79
|
-
"reason"
|
|
80
|
-
],
|
|
81
|
-
"properties": {
|
|
82
|
-
"id": {
|
|
83
|
-
"type": "string",
|
|
84
|
-
"pattern": "^T[0-9]{4}(\\.[0-9]{3})?$"
|
|
85
|
-
},
|
|
86
|
-
"name": {
|
|
87
|
-
"type": "string",
|
|
88
|
-
"minLength": 1
|
|
89
|
-
},
|
|
90
|
-
"reason": {
|
|
91
|
-
"type": "string",
|
|
92
|
-
"minLength": 1
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
"risk_reasons": {
|
|
98
|
-
"type": "array",
|
|
99
|
-
"items": {
|
|
100
|
-
"type": "string",
|
|
101
|
-
"minLength": 1
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
"recommended_actions": {
|
|
105
|
-
"type": "array",
|
|
106
|
-
"items": {
|
|
107
|
-
"type": "string",
|
|
108
|
-
"minLength": 1
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
"sources": {
|
|
112
|
-
"type": "array",
|
|
113
|
-
"items": {
|
|
114
|
-
"type": "string",
|
|
115
|
-
"minLength": 1
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|