CrowdStrike Resource Triage
Analyze supplied artifacts locally and produce an evidence-based triage report. Treat every SVE as a security-impacting candidate for human review; never configure Falcon or apply an exclusion.
Workflow
Determine whether the case uses offline artifacts, live Advanced Event Search, or both.
For offline artifacts, identify the case folder or archive and run the deterministic analyzer:
python "<skill-dir>\scripts\analyze.py" "<case-path>" --output "<report.md>" --json-output "<evidence.json>"
Read the generated report and JSON evidence.
Before every live search, ask the user for all of the following:
- exact start timestamp;
- exact end timestamp;
- timezone;
- affected host AID;
- LogScale base URL;
- repository or view name;
- confirmation that a repository/view-scoped data-read token is configured.
Never infer or silently default the live-search timeframe. Require timezone-aware absolute timestamps.
Read api-access.md and aes-queries.md. Run the query runner with --dry-run first:
python "<skill-dir>\scripts\run_aes.py" --mode logscale-token --base-url <url> --repository <name> --aid <aid> --start <timestamp> --end <timestamp> --timezone <zone> --query discovery --output-dir <protected-case-folder> --dry-run
Review the generated plan for the exact endpoint, query names, AID, and time window. If correct, rerun without --dry-run. Run discovery queries 1 and 2 first. Run lineage query 3 only with explicit parent and child values supported by those results.
Combine live-search evidence with offline evidence. Do not guess lineage or claim that API data proves host CPU causation by itself.
Read decision-policy.md before interpreting or expanding any SVE candidate.
Explain:
- what the offline evidence proves;
- what it merely suggests;
- what evidence is missing;
- which remediation should precede or accompany an SVE;
- how to validate and roll back any approved change.
Analyzer behavior
Accept a directory or archive. Support nested ZIP, TAR, TAR.GZ, TAR.BZ2, and TAR.XZ packages using Python’s standard library. Extract only to a temporary directory, reject unsafe archive paths, and leave the supplied artifacts unchanged.
Parse these sources when present:
falcon-cstel_um.log: cumulative Falcon message counters, process uptime, and dropped-event counters.
perf_stats.txt: short-window sched_process_exec count and elapsed time.
perf_sched_report.txt: executable frequency and event totals.
ps-agxz.txt: point-in-time parent and descendant relationships.
hardware_statistics.txt or top.txt: CPU snapshots.
lscpu.txt: logical CPU count.
Always report missing sources. Do not convert absence of evidence into a clean bill of health.
Interpretation rules
- Prefer measurements reproduced from the supplied bundle over historical case commentary.
- Keep cumulative and short-window execution rates separate.
- Treat a large set of short-lived utilities (
date, cut, rev, basename, dirname, and similar) as evidence of script-like activity, not proof of a particular parent.
- Require parent/child lineage before naming a service or script as the cause.
- Treat
bash, sh, interpreters, schedulers, and system-wide daemons as broad, high-risk exclusion targets.
- Distinguish a script path from its process image. If invoked as
bash script.sh, Falcon sees the interpreter as the image; do not claim that a script-path SVE will match.
- Prefer reducing loops, invocation frequency, subprocess counts, or workload misconfiguration over permanent visibility loss.
- Never reuse exclusions from an older case as a universal allowlist.
- Never state that Falcon is defective or healthy solely from high CPU.
Required response
Lead with a concise conclusion and confidence. Include:
- evidence completeness;
- sensor and host CPU observations;
- cumulative and short-window executions per minute;
- top executed programs;
- parent/descendant evidence;
- candidate SVE targets, each labeled
candidate—not approval;
- security scope and uncertainty;
- AES queries needed to close gaps;
- workload-remediation alternatives;
- pre/post metrics, observation window, and rollback conditions;
- an explicit statement that no Falcon changes were made.
Do not output secrets, customer identifiers, IP addresses, usernames, case numbers, or command-line credentials unless the user explicitly needs them. Redact them from summaries by default.
Never ask the user to paste an API client secret or token into chat. Accept credentials only through the documented environment variables or an approved secret manager. Never place credentials on a command line, in a query plan, in a report, or in a result file.
Never use a Falcon OAuth client carrying NGSIEM: WRITE, or any other Falcon WRITE scope. If a repository/view-scoped LogScale data-read token is unavailable, ask the user to run the AES queries in Falcon and supply an export for offline analysis.
Confidence
Use:
- High: two independent sources support the same mechanism and lineage identifies the responsible parent.
- Medium: the offline snapshot shows a substantial parent tree, but temporal correlation with the CPU interval is incomplete.
- Low: only executable frequency or a CPU snapshot exists without lineage.
- Insufficient evidence: required artifacts are absent or contradictory.
An offline-only candidate must not exceed Medium confidence.
1---2name: crowdstrike-resource-triage3description: Analyze Linux CrowdStrike Falcon sensor CPU or memory pressure from host diagnostics, perf captures, falcon-cstel_um telemetry, process snapshots, Advanced Event Search exports, or live LogScale data-read query results. Use when investigating high falcon-sensor resource usage, process-execution storms, suspected script or service loops, running the bundled process-lineage queries without Falcon WRITE scope, or deciding whether a Sensor Visibility Exclusion (SVE) is evidence-supported.4---56# CrowdStrike Resource Triage78Analyze supplied artifacts locally and produce an evidence-based triage report. Treat every SVE as a security-impacting candidate for human review; never configure Falcon or apply an exclusion.910## Workflow11121. Determine whether the case uses offline artifacts, live Advanced Event Search, or both.132. For offline artifacts, identify the case folder or archive and run the deterministic analyzer:1415 ```powershell16 python "<skill-dir>\scripts\analyze.py" "<case-path>" --output "<report.md>" --json-output "<evidence.json>"17 ```18193. Read the generated report and JSON evidence.204. Before every live search, ask the user for all of the following:21 - exact start timestamp;22 - exact end timestamp;23 - timezone;24 - affected host AID;25 - LogScale base URL;26 - repository or view name;27 - confirmation that a repository/view-scoped data-read token is configured.285. Never infer or silently default the live-search timeframe. Require timezone-aware absolute timestamps.296. Read [api-access.md](references/api-access.md) and [aes-queries.md](references/aes-queries.md). Run the query runner with `--dry-run` first:3031 ```powershell32 python "<skill-dir>\scripts\run_aes.py" --mode logscale-token --base-url <url> --repository <name> --aid <aid> --start <timestamp> --end <timestamp> --timezone <zone> --query discovery --output-dir <protected-case-folder> --dry-run33 ```34357. Review the generated plan for the exact endpoint, query names, AID, and time window. If correct, rerun without `--dry-run`. Run discovery queries 1 and 2 first. Run lineage query 3 only with explicit parent and child values supported by those results.368. Combine live-search evidence with offline evidence. Do not guess lineage or claim that API data proves host CPU causation by itself.379. Read [decision-policy.md](references/decision-policy.md) before interpreting or expanding any SVE candidate.3810. Explain:39 - what the offline evidence proves;40 - what it merely suggests;41 - what evidence is missing;42 - which remediation should precede or accompany an SVE;43 - how to validate and roll back any approved change.4445## Analyzer behavior4647Accept a directory or archive. Support nested ZIP, TAR, TAR.GZ, TAR.BZ2, and TAR.XZ packages using Python’s standard library. Extract only to a temporary directory, reject unsafe archive paths, and leave the supplied artifacts unchanged.4849Parse these sources when present:5051- `falcon-cstel_um.log`: cumulative Falcon message counters, process uptime, and dropped-event counters.52- `perf_stats.txt`: short-window `sched_process_exec` count and elapsed time.53- `perf_sched_report.txt`: executable frequency and event totals.54- `ps-agxz.txt`: point-in-time parent and descendant relationships.55- `hardware_statistics.txt` or `top.txt`: CPU snapshots.56- `lscpu.txt`: logical CPU count.5758Always report missing sources. Do not convert absence of evidence into a clean bill of health.5960## Interpretation rules6162- Prefer measurements reproduced from the supplied bundle over historical case commentary.63- Keep cumulative and short-window execution rates separate.64- Treat a large set of short-lived utilities (`date`, `cut`, `rev`, `basename`, `dirname`, and similar) as evidence of script-like activity, not proof of a particular parent.65- Require parent/child lineage before naming a service or script as the cause.66- Treat `bash`, `sh`, interpreters, schedulers, and system-wide daemons as broad, high-risk exclusion targets.67- Distinguish a script path from its process image. If invoked as `bash script.sh`, Falcon sees the interpreter as the image; do not claim that a script-path SVE will match.68- Prefer reducing loops, invocation frequency, subprocess counts, or workload misconfiguration over permanent visibility loss.69- Never reuse exclusions from an older case as a universal allowlist.70- Never state that Falcon is defective or healthy solely from high CPU.7172## Required response7374Lead with a concise conclusion and confidence. Include:7576- evidence completeness;77- sensor and host CPU observations;78- cumulative and short-window executions per minute;79- top executed programs;80- parent/descendant evidence;81- candidate SVE targets, each labeled `candidate—not approval`;82- security scope and uncertainty;83- AES queries needed to close gaps;84- workload-remediation alternatives;85- pre/post metrics, observation window, and rollback conditions;86- an explicit statement that no Falcon changes were made.8788Do not output secrets, customer identifiers, IP addresses, usernames, case numbers, or command-line credentials unless the user explicitly needs them. Redact them from summaries by default.8990Never ask the user to paste an API client secret or token into chat. Accept credentials only through the documented environment variables or an approved secret manager. Never place credentials on a command line, in a query plan, in a report, or in a result file.9192Never use a Falcon OAuth client carrying `NGSIEM: WRITE`, or any other Falcon WRITE scope. If a repository/view-scoped LogScale data-read token is unavailable, ask the user to run the AES queries in Falcon and supply an export for offline analysis.9394## Confidence9596Use:9798- **High:** two independent sources support the same mechanism and lineage identifies the responsible parent.99- **Medium:** the offline snapshot shows a substantial parent tree, but temporal correlation with the CPU interval is incomplete.100- **Low:** only executable frequency or a CPU snapshot exists without lineage.101- **Insufficient evidence:** required artifacts are absent or contradictory.102103An offline-only candidate must not exceed Medium confidence.