skills/secops/correlation-insights/SKILL.md
Correlate security incidents with related events, vulnerabilities, and threat intelligence to identify attack patterns and common indicators
npx skillsauth add happy-technologies-llc/happy-servicenow-skills correlation-insightsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables SOC analysts to correlate security incidents with related events, vulnerabilities, and threat intelligence across the ServiceNow Security Operations portfolio. By identifying shared indicators of compromise (IOCs), overlapping timelines, and common attack vectors, analysts can uncover broader attack campaigns and prioritize response efforts.
Key capabilities:
When to use: During active incident investigation, threat hunting, or periodic security portfolio reviews to identify connections between seemingly isolated events.
sn_si.analyst, sn_si.admin, sn_ti.readerRetrieve the primary incident and its key attributes for correlation.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_si_incident
query: number=[INCIDENT_NUMBER]
fields: sys_id,number,short_description,category,subcategory,priority,state,assigned_to,affected_user,cmdb_ci,opened_at,resolved_at,close_notes,business_criticality
limit: 1
Using REST:
GET /api/now/table/sn_si_incident?sysparm_query=number=[INCIDENT_NUMBER]&sysparm_fields=sys_id,number,short_description,category,subcategory,priority,state,assigned_to,affected_user,cmdb_ci,opened_at,resolved_at,close_notes,business_criticality&sysparm_limit=1
Pull all threat observables (IOCs) linked to the incident.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_ti_observable
query: security_incident=[INCIDENT_SYS_ID]
fields: sys_id,type,value,source,confidence,first_seen,last_seen,threat_score
limit: 200
Using REST:
GET /api/now/table/sn_ti_observable?sysparm_query=security_incident=[INCIDENT_SYS_ID]&sysparm_fields=sys_id,type,value,source,confidence,first_seen,last_seen,threat_score&sysparm_limit=200
Search for other incidents that share the same IP addresses, domains, or file hashes.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_ti_observable
query: value=[OBSERVABLE_VALUE]^security_incident!=[ANCHOR_INCIDENT_SYS_ID]
fields: sys_id,security_incident,type,value,confidence,first_seen
limit: 50
Using REST:
GET /api/now/table/sn_ti_observable?sysparm_query=value=[OBSERVABLE_VALUE]^security_incident!=[ANCHOR_INCIDENT_SYS_ID]&sysparm_fields=sys_id,security_incident,type,value,confidence,first_seen&sysparm_limit=50
Identify exploitable vulnerabilities on assets involved in the incident.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_vul_vulnerable_item
query: cmdb_ci=[AFFECTED_CI_SYS_ID]^stateINOpen,Under Investigation
fields: sys_id,vulnerability,cmdb_ci,state,risk_score,first_found,last_found,cvss_score
limit: 100
Using REST:
GET /api/now/table/sn_vul_vulnerable_item?sysparm_query=cmdb_ci=[AFFECTED_CI_SYS_ID]^stateINOpen,Under Investigation&sysparm_fields=sys_id,vulnerability,cmdb_ci,state,risk_score,first_found,last_found,cvss_score&sysparm_limit=100
Look up CVE details for identified vulnerabilities to understand the attack surface.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_vul_entry
query: sys_idIN[VULNERABILITY_SYS_IDS]
fields: sys_id,cve_id,description,cvss_score,severity,exploit_available,vendor_advisory
limit: 50
Using REST:
GET /api/now/table/sn_vul_entry?sysparm_query=sys_idIN[VULNERABILITY_SYS_IDS]&sysparm_fields=sys_id,cve_id,description,cvss_score,severity,exploit_available,vendor_advisory&sysparm_limit=50
Find incidents with similar attack categories within a relevant time window.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_si_incident
query: category=[CATEGORY]^opened_atBETWEENjavascript:gs.dateGenerate('2026-03-01','00:00:00')@javascript:gs.dateGenerate('2026-03-19','23:59:59')^sys_id!=[ANCHOR_SYS_ID]
fields: sys_id,number,short_description,category,subcategory,priority,state,cmdb_ci,opened_at,affected_user
limit: 50
Using REST:
GET /api/now/table/sn_si_incident?sysparm_query=category=[CATEGORY]^opened_atBETWEEN2026-03-01 00:00:00@2026-03-19 23:59:59^sys_id!=[ANCHOR_SYS_ID]&sysparm_fields=sys_id,number,short_description,category,subcategory,priority,state,cmdb_ci,opened_at,affected_user&sysparm_limit=50
Query syslog for entries related to the attack timeline and source indicators.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: syslog
query: sys_created_onBETWEEN[START_TIME]@[END_TIME]^messageLIKE[OBSERVABLE_VALUE]
fields: level,message,source,sys_created_on
limit: 500
Using REST:
GET /api/now/table/syslog?sysparm_query=sys_created_onBETWEEN[START_TIME]@[END_TIME]^messageLIKE[OBSERVABLE_VALUE]&sysparm_fields=level,message,source,sys_created_on&sysparm_limit=500
Using MCP:
Tool: SN-Add-Work-Notes
Parameters:
table_name: sn_si_incident
sys_id: [ANCHOR_INCIDENT_SYS_ID]
work_notes: |
CORRELATION ANALYSIS - [TIMESTAMP]
Shared Observables Found:
- IP 203.0.113.50: Also seen in SIR0001234, SIR0001456
- Domain malicious-c2.example.com: Seen in SIR0001234
- File hash (SHA256) abc123...: Unique to this incident
Related Incidents:
- SIR0001234 (High) - Phishing campaign targeting finance dept
- SIR0001456 (Medium) - Unauthorized outbound connection
Vulnerability Overlap:
- CVE-2025-12345 (CVSS 9.8) - Active on affected CI, exploit available
- CVE-2025-67890 (CVSS 7.5) - Patched but re-introduced
Assessment: High confidence these incidents are part of a coordinated
campaign targeting financial systems via spear-phishing with subsequent
lateral movement exploiting unpatched vulnerabilities.
Recommended Actions:
1. Escalate all correlated incidents to Tier 3
2. Block identified IOCs at perimeter
3. Expedite patching for CVE-2025-12345
4. Initiate threat hunt across all finance department assets
| Tool | Purpose | |------|---------| | SN-Query-Table | Retrieve incidents, observables, vulnerabilities, and logs | | SN-Execute-Background-Script | Run advanced correlation scripts across large datasets | | SN-Add-Work-Notes | Document correlation findings on incident records | | SN-Update-Record | Update incident priority or category based on findings |
Cause: Observables may not have been ingested from SIEM or manually entered. Solution: Check the sn_ti_observable table directly with a broader query. Verify the Threat Intelligence integration is active and ingesting data.
Cause: The CI may not have been scanned recently or the scanner integration may be down. Solution: Query sn_vul_vulnerable_item without the CI filter to check if scan data exists. Verify the Vulnerability Response plugin and scanner integrations are active.
Cause: Overly broad observable values (e.g., common DNS servers, internal subnet ranges).
Solution: Filter by observable type and confidence score. Use confidenceGT50 to limit to higher-confidence indicators.
Example 1: Correlating a Phishing Incident
Example 2: Lateral Movement Detection
security/incident-response - Security incident handling proceduressecops/post-incident-analysis - Post-incident review after correlationsecops/incident-summarization - Summarize correlated incidents for stakeholderssecops/vulnerability-deduplication - Deduplicate vulnerabilities found during correlationsecops/metrics-analysis - Measure correlation effectiveness over timetesting
Manage supplier onboarding, qualification, performance monitoring, and offboarding with auditable lifecycle controls
tools
Identify emerging risks, prioritize intake signals, and route candidates into formal GRC risk assessment workflows
documentation
Screen inbound documents for completeness, policy risk, and routing readiness before extraction or case workflows
testing
Generate concise task summaries with status, timeline, blockers, SLA risk, and recommended next actions