ExMCP.Content.SecurityScanner (ex_mcp v0.10.0)
View SourceSecurity scanning utilities for MCP content.
This module handles all security-related content analysis including malware detection, sensitive data scanning, and threat analysis. Extracted from the original Content.Validation module.
Summary
Functions
Analyzes content for suspicious patterns.
Detects sensitive data in content.
Scans for injection attack patterns.
Scans for malware signatures.
Scans content for security threats.
Types
@type scan_result() :: %{ threat_level: threat_level(), threats: [threat()], metadata: map() }
Security scan result
@type scan_type() :: :malware | :sensitive_data | :injection_attacks | :suspicious_patterns | :file_signatures | atom()
Security scan type
@type threat() :: %{ type: atom(), severity: threat_level(), description: String.t(), location: String.t() | nil, confidence: float() }
Detected threat
@type threat_level() :: :safe | :low | :medium | :high | :critical
Security threat level
Functions
@spec analyze_suspicious_patterns(ExMCP.Content.Protocol.content()) :: [threat()]
Analyzes content for suspicious patterns.
@spec detect_sensitive_data(ExMCP.Content.Protocol.content()) :: [threat()]
Detects sensitive data in content.
@spec scan_injection_attacks(ExMCP.Content.Protocol.content()) :: [threat()]
Scans for injection attack patterns.
@spec scan_malware(ExMCP.Content.Protocol.content()) :: [threat()]
Scans for malware signatures.
@spec scan_security(ExMCP.Content.Protocol.content(), [scan_type()]) :: {:ok, scan_result()} | {:error, String.t()}
Scans content for security threats.
Examples
case SecurityScanner.scan_security(content, [:malware, :sensitive_data]) do
{:ok, %{threat_level: :safe}} ->
process_content(content)
{:ok, %{threat_level: level, threats: threats}} ->
handle_security_threats(level, threats)
{:error, reason} ->
handle_scan_error(reason)
end