Static Malware Analysis Techniques
Static Malware Analysis Techniques
Introduction
Static malware analysis involves examining malicious software without executing it. This approach allows analysts to understand the malware's structure, functionality, and potential impact while maintaining a safe analysis environment.
Preparation and Safety
Analysis Environment
- Isolated Network: Completely isolated from production networks
- Virtual Machines: Disposable analysis environments
- Snapshots: Regular VM snapshots for quick recovery
- Air-Gapped Systems: Physical isolation for highly dangerous samples
Safety Protocols
- Never Execute: Static analysis means no execution
- Hash Verification: Verify sample integrity with cryptographic hashes
- Documentation: Maintain detailed analysis logs
- Chain of Custody: Proper evidence handling procedures
File Format Analysis
Portable Executable (PE) Analysis
- PE Headers: Examine DOS, NT, and optional headers
- Section Analysis: Code, data, and resource sections
- Import/Export Tables: API dependencies and exposed functions
- Digital Signatures: Certificate validation and trust chains
Other File Formats
- ELF Files: Linux executable analysis
- Mach-O: macOS binary examination
- Office Documents: Macro and embedded object analysis
- PDF Files: JavaScript and embedded content analysis
String Analysis
Extracting Strings
```bash
Basic string extraction
strings malware.exe > strings.txt
Unicode strings
strings -e l malware.exe > unicode_strings.txt
Minimum length filtering
strings -n 8 malware.exe > long_strings.txt
```
String Categories
- URLs and Domains: Network indicators
- File Paths: Target locations and dependencies
- Registry Keys: System modification indicators
- Error Messages: Functionality clues
- Encryption Keys: Cryptographic artifacts
Disassembly and Code Analysis
Disassemblers
- IDA Pro: Industry standard disassembler
- Ghidra: NSA's open-source reverse engineering tool
- Radare2: Command-line reverse engineering framework
- x64dbg: Windows debugging and disassembly
Assembly Analysis Techniques
- Control Flow: Function calls and program flow
- Data Flow: Variable usage and manipulation
- API Calls: System interaction points
- Obfuscation Detection: Packed or encrypted code identification
Cryptographic Analysis
Encryption Detection
- Entropy Analysis: High entropy indicates encryption/compression
- Cryptographic Constants: Known algorithm signatures
- Key Scheduling: Encryption key generation patterns
- Cipher Identification: Algorithm fingerprinting
Hash Analysis
```bash
File hashes
md5sum malware.exe
sha1sum malware.exe
sha256sum malware.exe
Import hash (ImpHash)
python imphash.py malware.exe
Fuzzy hashing
ssdeep malware.exe
```
Metadata Extraction
File Properties
- Compilation Timestamp: When the malware was built
- Compiler Information: Development environment details
- Version Information: Embedded version strings
- Digital Certificates: Code signing information
EXIF and Embedded Data
- Author Information: Creator metadata
- Creation Tools: Software used for creation
- Embedded Resources: Icons, strings, and data
- Hidden Streams: Alternate data streams (ADS)
Network Indicators
Static Network Analysis
- Hardcoded IPs: Command and control servers
- Domain Names: Communication endpoints
- URL Patterns: Web-based communication
- Protocol Analysis: Network communication methods
Configuration Extraction
- C2 Servers: Command and control infrastructure
- Encryption Keys: Communication encryption
- User Agents: HTTP header information
- Port Numbers: Network service ports
Behavioral Indicators
File System Operations
- File Creation: New files and locations
- File Modification: Target file changes
- Directory Operations: Folder creation and deletion
- Hidden Files: Concealment techniques
Registry Operations
- Persistence Mechanisms: Startup and service entries
- Configuration Storage: Settings and parameters
- System Modifications: Security and policy changes
- Forensic Artifacts: Analysis traces
Obfuscation and Packing
Packing Detection
```bash
Entropy calculation
python entropy.py malware.exe
Packer identification
peid malware.exe
detect-it-easy malware.exe
Section analysis
objdump -h malware.exe
```
Common Obfuscation Techniques
- String Encryption: Encrypted string literals
- Control Flow Obfuscation: Complex branching patterns
- Dead Code Insertion: Meaningless code additions
- API Hashing: Dynamic API resolution
Documentation and Reporting
Analysis Documentation
- Executive Summary: High-level findings
- Technical Details: Detailed analysis results
- Indicators of Compromise: IOCs for detection
- Mitigation Recommendations: Response actions
IOC Generation
```yaml
YARA Rule Example
rule Malware_Family_Detection {
meta:
description = "Detects specific malware family"
author = "Security Analyst"
date = "2024-01-30"
strings:
$string1 = "unique_string_pattern"
$string2 = { 48 89 E5 48 83 EC 20 }
condition:
$string1 or $string2
}
```
Tools and Resources
Essential Tools
- Hex Editors: HxD, 010 Editor
- Disassemblers: IDA Pro, Ghidra, Radare2
- PE Analyzers: PEiD, CFF Explorer, PE-bear
- String Extractors: Strings, FLOSS
- Hash Calculators: HashCalc, md5deep
Online Resources
- VirusTotal: Multi-engine malware scanning
- Hybrid Analysis: Automated analysis platform
- Any.run: Interactive malware analysis
- Joe Sandbox: Comprehensive analysis reports
Best Practices
Analysis Workflow
- Initial Triage: Basic file information and hashes
- String Analysis: Extract and categorize strings
- Structural Analysis: PE headers and sections
- Disassembly: Code analysis and function identification
- IOC Extraction: Generate detection signatures
- Documentation: Comprehensive analysis report
Quality Assurance
- Peer Review: Second analyst verification
- Tool Validation: Cross-reference with multiple tools
- False Positive Testing: Validate IOCs against clean files
- Continuous Learning: Stay updated with new techniques
Conclusion
Static malware analysis is a critical skill for cybersecurity professionals. By systematically examining malware without execution, analysts can safely understand threats, generate detection signatures, and develop effective countermeasures while minimizing risk to analysis infrastructure.