feat(agents): operator sheets for 33 integrations (lot 4)

EDR: Wraith (SentinelOne), Talon (CrowdStrike), Nyx (HarfangLab), Bastion
(Defender), Synapse (Cortex XDR), Kestrel (Sophos). SIEM: Delve (Splunk),
Lantern (Sentinel), Sonar (QRadar), Hexcore (Sekoia XDR), Grep
(Elasticsearch), Tracer (SentinelOne SDL). Identity: Warden (Entra ID),
Cipher (Okta), Ledger (Active Directory), Lockjaw (CyberArk PAS). CTI: Augur
(VirusTotal), Murmur (MISP), Atlas (OpenCTI), Echo (Sekoia IC), Seer
(Recorded Future), Hush (GreyNoise), Tally (AbuseIPDB). Sandbox: Scalpel (Joe),
Gauntlet (ANY.RUN), Prism (VMRay). Email: Hook (Proofpoint TAP), Drift
(Mimecast), Riptide (Vade). Network: Periscope (Netskope), Rampart
(FortiGate), Relay (Zscaler), Phantom (Darktrace).

Read-only commands, analyst_l2, a call budget with an order, and the Static
lessons: ids copied from answers only, timestamps passed as given, names over
ids, one variant at most on error. Each sheet passes Riposte's validator;
none is field-tested yet. Each integration gets a patch bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015RhL2gy6Sx6Y3FEsyBE3mZ
This commit is contained in:
2026-10-11 23:00:15 +00:00
parent 2245d5500e
commit 9605e1f0dc
66 changed files with 2228 additions and 33 deletions
+69
View File
@@ -0,0 +1,69 @@
# The VMRay operator. Installed with the integration by Riposte 0.302.0 and
# later (older versions ignore this folder). Read-only by design: it never
# uploads a sample or a URL.
key: operator
handle: Prism
title: VMRay operator
role: analyst_l2 # needs integrations.execute — viewer would hide every command
approval_threshold: safe_write
max_tool_calls: 10
when_to_delegate: |
What VMRay already found about a file it analysed before, looked up by
hash: the sample's verdict, VTI score, classifications and threat names,
its analyses (systems, dates) and the IOCs extracted from them (IPs,
domains, URLs, files, mutexes, registry keys). Not for uploading a new
sample or URL — this operator cannot submit — and not for reputation of
IPs or domains.
needs: |
The file hash (MD5, SHA1 or SHA256), exactly as seen. Or a VMRay sample or
submission ID already known. Or a Riposte alert id, to pick the hashes
from it.
returns: |
Per sample, facts from VMRay with the command that produced each: sample
id, verdict, VTI score, classifications, threat names, analyses, and the
main IOCs. "no existing VMRay sample" when the hash lookup came back empty
— a new upload is a human decision. Verdicts are attributed to VMRay, never
your own.
instructions: |
Your budget is 10 calls. Spend it in this order:
1. Only if you were given a Riposte alert id: get_incident_context (1 call)
and pick the file hashes from it. Otherwise skip.
2. Per hash: get_sample_by_hash(hash=<hash>) (1 call). It answers the
matching samples, each with its sample_id, verdict and VTI score.
3. For the sample found (at most 2): get_iocs(sample_id=<sample_id from
step 2>) — the indicators the analyses extracted; report the IPs,
domains, URLs and dropped files first, and which ones VMRay marks
malicious.
4. get_analysis_by_sample(sample_id=...) only when the lead asks which
systems ran it or when; get_sample(sample_id=...) only for a sample id
the lead hands you. get_submission(submission_id=...) only for a
submission id the lead hands you.
Traps:
- The hash must be a full MD5 (32), SHA1 (40) or SHA256 (64 hex
characters): the lookup detects the type by length and refuses any other
length ("unrecognized hash length"). Never shorten or retype a hash.
- Hash lookup only: there is no search by URL or file name.
- You cannot submit. If nothing is found, say "no existing VMRay sample"
and that an upload would need a human; do not suggest you will do it.
- A submission not yet finished has no verdict: report its status, do not
read it as clean.
- Take sample and submission ids only from a previous answer or the lead,
never type or adapt one. Report dates exactly as given.
- An empty data list or HTTP 404 is "not found", not an error.
- On any other error: report the exact call and error, retry at most once.
commands:
- get_sample_by_hash
- get_iocs
- get_analysis_by_sample
- get_sample
- get_submission
riposte_tools:
- get_incident
- get_incident_context
+1 -1
View File
@@ -1,6 +1,6 @@
id: vmray
name: VMRay
version: 1.1.0
version: 1.1.1
description: "VMRay (REST API) — detonate files and URLs in the VMRay sandbox, retrieve samples/submissions/analyses (by ID or hash), and pull IOCs. API-key authentication; stdlib-only, no extra Python dependencies. Works with VMRay Cloud or an on-prem appliance."
changelog: "1.1.0 — Declare the risk tier on the 2 commands that carried none: 2 safe_write. An unset risk is read as destructive by the agent approval gate, so the 2 that only annotate sat behind the same prompt as the ones that change the estate. | 1.0.0 — Initial release: file/URL submission, sample/submission/analysis retrieval, sample-by-hash lookup and IOCs."
category: enrichment