# Malware Triage Checklist ## Initial Assessment Phase ### File Information Collection - [ ] Calculate all hashes (MD5, SHA1, SHA256) - [ ] Document original filename - [ ] Record file size - [ ] Identify file type (PE32/PE64/Script/Document/Archive) - [ ] Note file creation/modification timestamps - [ ] Check for file signatures (magic bytes) ### Reputation and Context - [ ] Search hash on VirusTotal - [ ] Search hash on MalwareBazaar - [ ] Search hash on Hybrid Analysis - [ ] Check if file is known good/bad - [ ] Review AV detection rates - [ ] Check submission dates and prevalence - [ ] Review any available sandbox reports ### Quick Static Indicators #### PE Files - [ ] Check if file is packed/compressed (high entropy) - [ ] Identify packer if detected (UPX, ASPack, Themida, etc.) - [ ] Review PE sections (unusual names, high entropy sections) - [ ] Check compilation timestamp (realistic or fake) - [ ] Examine digital signature (signed/unsigned, valid/invalid) - [ ] Review import table for suspicious APIs - [ ] Check for overlay data - [ ] Examine resources (icons, version info, embedded files) #### Script Files (PowerShell, JavaScript, VBS, etc.) - [ ] Check for obfuscation - [ ] Identify encoding methods (Base64, hex, etc.) - [ ] Look for download/execution commands - [ ] Check for embedded URLs or IPs - [ ] Review variable/function names (random = suspicious) #### Office Documents - [ ] Check for macros - [ ] Examine embedded objects/OLE streams - [ ] Look for external references (templates, links) - [ ] Check for DDE/equation editor exploits - [ ] Review document metadata ### Strings Analysis - [ ] Extract readable strings - [ ] Look for URLs and IP addresses - [ ] Identify file paths - [ ] Find registry keys - [ ] Check for email addresses - [ ] Look for error messages or debug strings - [ ] Identify cryptocurrency wallet addresses - [ ] Find mutex names - [ ] Locate service/process names ### Behavior Prediction Based on initial findings, predict likely behaviors: - [ ] Network communication expected? - [ ] File creation/modification expected? - [ ] Registry changes expected? - [ ] Process injection expected? - [ ] Persistence mechanism type? ## Classification Phase ### Malware Type Determination - [ ] Trojan (general backdoor/RAT) - [ ] Ransomware (file encryption) - [ ] Worm (self-propagating) - [ ] Rootkit (stealth/hiding) - [ ] Botnet client - [ ] Infostealer (credentials, browser data) - [ ] Keylogger - [ ] Backdoor/RAT - [ ] Dropper/Loader - [ ] Cryptominer - [ ] Adware/PUP - [ ] Banking trojan - [ ] Unknown/Hybrid ### Sophistication Assessment - [ ] Simple (basic functionality, no obfuscation) - [ ] Moderate (some obfuscation, standard techniques) - [ ] Advanced (heavy obfuscation, anti-analysis) - [ ] APT-level (custom, targeted, advanced evasion) ### Threat Level Based on capabilities and target: - [ ] Critical (destructive, wide impact) - [ ] High (data theft, system compromise) - [ ] Medium (limited functionality, targeted) - [ ] Low (minimal impact, easily detected) ## Dynamic Analysis Decision ### Should I run dynamic analysis? **YES, if:** - Static analysis insufficient for understanding - Need to confirm predicted behaviors - Unknown/new sample requiring behavior observation - Investigating specific functionality - Creating behavioral signatures **NO, if:** - Clearly identified as known malware - Destructive capabilities too risky - Time constraints for quick triage - Static analysis provides sufficient information ### Safe Execution Requirements If proceeding with dynamic analysis: - [ ] Isolated VM environment confirmed - [ ] Network isolation configured (or monitoring ready) - [ ] Snapshots taken - [ ] Monitoring tools prepared (Process Monitor, Wireshark, etc.) - [ ] Host system protected - [ ] Backup and recovery plan ready ## Priority Assessment ### Immediate Priority (Analyze Now) - Unknown samples with unclear threat level - Samples matching recent threat intelligence - Active incident-related samples - Samples with destructive capabilities - Targeted/APT-style malware ### Standard Priority (Normal Queue) - Known malware variants - Common commodity malware - Samples with clear signatures - Historical samples for research ### Low Priority (Defer if Needed) - Clearly identified samples - Adware/PUP with minimal impact - Old/outdated malware - Test files or false positives ## Initial Findings Summary Template Use this template to document triage results: ``` ## Triage Summary **Sample:** [filename] **Hashes:** - MD5: [hash] - SHA1: [hash] - SHA256: [hash] **File Type:** [type] **Size:** [size] **Packed:** [Yes/No - Packer name] **Initial Classification:** - Type: [Malware type] - Threat Level: [Critical/High/Medium/Low] - Sophistication: [Simple/Moderate/Advanced] **Key Indicators:** - [Notable finding 1] - [Notable finding 2] - [Notable finding 3] **Predicted Behaviors:** - [Expected behavior 1] - [Expected behavior 2] **Recommendation:** [Proceed with full analysis / Quick report / Defer] **Priority:** [Immediate/Standard/Low] **Next Steps:** 1. [Action 1] 2. [Action 2] ``` ## Common Triage Pitfalls ### Don't: - Rush through hash calculation (always get all three) - Skip online searches (leverage community intelligence) - Assume packing means malicious (many legitimate software is packed) - Execute without proper isolation - Trust timestamps (easily forged) - Overlook string encoding (Base64, hex, unicode) - Ignore resource sections (often contain payloads) ### Do: - Document everything immediately - Use multiple analysis tools - Verify findings with different methods - Consider false positive possibilities - Check for packer signatures before deep analysis - Review import table carefully - Look for anti-analysis techniques - Consider file context (how obtained, where found) ## Time-Efficient Triage For efficient time management: **5-minute triage:** - Calculate hashes - Check online databases - Run strings - Check packer **15-minute triage:** - Above + - PE header analysis - Import table review - Resource examination - Quick prediction **30-minute triage:** - Above + - Detailed strings analysis - Preliminary YARA rule concepts - Behavior prediction writeup - Classification and prioritization ## Tools Quick Reference **Hash Calculation:** - `scripts/hash_calculator.py` - CertUtil (Windows): `certutil -hashfile file.exe SHA256` - sha256sum (Linux): `sha256sum file.exe` **Online Databases:** - VirusTotal: virustotal.com - MalwareBazaar: bazaar.abuse.ch - Hybrid Analysis: hybrid-analysis.com - Any.Run: any.run **Static Analysis:** - PE analysis: pestudio, PEview, CFF Explorer - Strings: strings.exe, FLOSS - Hex editor: HxD, 010 Editor - Packer detection: Detect It Easy (DIE), Exeinfo PE **Quick Sandboxing:** - Any.Run (interactive) - Hybrid Analysis - Joe Sandbox - Cuckoo (self-hosted)