malware-triage — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited malware-triage (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Sandbox-only discipline: analysing a sample means running it in an isolated environment. Detonating in production or on a workstation with network egress creates an incident instead of solving one. Treat all samples as worm-class — that discipline costs less than a production outbreak. Detailed reverse engineering (debugger-attached, IDA Pro / Ghidra interactive) is out of scope here — that is a further specialization. The skill covers sandbox-driven triage and YARA scaffolding at signal-pattern level.
A suspicious file or process lands on your SOC desk. Before you can say "clean" or "incident", you need a structured triage. This skill provides the structure.
Triggers on:
ioc-hunter (sample known, IOCs needed), log-triage (suspect-execution event in EDR), forensics-assist (memory-extracted binary), ir-runbook (sample is part of an incident).detection-engineer (Sigma/SPL/KQL).ioc-hunter.forensics-assist plus a specialized forensics team.ir-runbook.Six phases. Phase 1 (intake discipline) and phase 4 (YARA scaffolding) are where triage work becomes durable.
pestudio, die, floss for obfuscated strings, binwalk for archives).Discipline: confidential samples (potential PII, potential IP leak) go to an on-prem sandbox or a paid private tier, not public VirusTotal.
Before dynamic execution:
strings, floss for stack-encoded). Hosts, URLs, file paths, mutex names, registry keys..text section size vs entropy (high entropy = packed).Yara-Rules, Neo23x0/signature-base, Elastic/protections-artifacts) against the sample. A known-family match speeds up the rest.Sandbox runs in an isolated VM with instrumented process events.
winword.exe → cmd.exe → powershell.exe → certutil.exe.ioc-hunter feeds.For user-interaction malware (banking trojans, info-stealers with UI trigger): manual interaction in an interactive sandbox.
YARA is the standard for malware classification. We write rules at pattern level, not for one specific binary.
rule SUSPECT_MyFamily_Loader {
meta:
author = "<analyst>"
date = "YYYY-MM-DD"
description = "Detects MyFamily loader pattern with embedded config string"
reference = "<sandbox-report-link>"
hash_seen = "<sha256>"
tlp = "AMBER"
strings:
$config_marker = "MYCFG_v2:" ascii wide
$api_resolve_a = "GetProcAddress" ascii
$api_resolve_b = "LoadLibraryA" ascii
$unique_string = "MyFamilyLoader/" ascii nocase
$opcode_pattern = { 8B ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? }
condition:
uint16(0) == 0x5A4D and // PE header
filesize < 5MB and
(
$config_marker or
($unique_string and 2 of ($api_resolve_*) and $opcode_pattern)
)
}Discipline:
meta.author, meta.date, meta.tlp: tracking and sharing policy.meta.hash_seen: what the rule was conceived against; helps later reviewers.yara CLI or Threatray/Cylance test corpora.Sandboxes give raw events; mapping them to ATT&CK techniques makes them reusable.
Per observation: technique T-ID. Common mappings:
ATT&CK coverage output: a table with technique T-ID, observation, evidence link (sandbox-report section). Provides input for detection-engineer (which detection rules are touched by this family) and purple-ops (gap analysis: which we miss).
ioc-hunter with a confidence score.Sharing: keep confidential context internal; for community samples share to MISP / abuse.ch MalwareBazaar / VirusTotal / FI-ISAC.
Verification-loop: Layer 1 scope (all observations from the sandbox report carried over, sandbox ran fully?, no anti-sandbox detection bypass skipped?). Layer 2: ATT&CK T-IDs correct, family attribution only when there is a vendor source (no invented attribution), YARA syntax against the current YARA version (4.x), sandbox-feature claims (CAPE config extraction, ANY.RUN interactive) current.
Malware triage report — <sample-id / hash>
SHA-256: <hash>
File type: <PE/ELF/Mach-O/script>
Sandbox: <CAPE/ANY.RUN/Joe/etc> | Run-id: <ref>
First seen: <date/source>
TLP: <classification>
Static analysis:
Compiler: <ref>
Packed/obfuscated: <yes/no, method>
Strings of interest: <briefly noted, redacted>
Code-signing: <signed-by-X / unsigned / suspicious>
YARA pre-match: <existing family rules that match>
Dynamic observations:
Process tree: <parent → child → ...>
Filesystem writes: <persistence paths>
Registry changes: <run keys / services>
Network egress: <C2 hosts, DNS queries, JA3/JA4>
API pattern: <process injection / encryption burst / etc>
Persistence: <mechanism>
Anti-sandbox: <detected / not>
Family classification:
Name: <known family or "unknown variant">
Variant: <if derived>
Attribution: <vendor source if available>
IOCs (handoff to ioc-hunter):
Hashes: <list>
IPs: <list>
Domains: <list>
URLs: <list>
Mutex: <list>
TLP: <classification>
YARA rule(s):
<full rule block>
TTP mapping (ATT&CK):
Tactic | Technique-ID | Observation | Sandbox-evidence-ref
Recommendations:
Detection (handoff to detection-engineer): <which rules to write>
Hunt (handoff to ioc-hunter / threat-hunt): <retro window>
Cleanup (handoff to ir-runbook): <if live infection>
Verification-loop: ...~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.