AIR Security, a startup building what it describes as an AI agent firewall, has emerged from stealth with $50 million in funding, as reported by SecurityWeek. The company's platform is designed to evaluate AI skills, plugins, and Model Context Protocol (MCP) servers for malicious instructions, excessive permissions, and software supply chain risks.
Strip away the funding headline and what remains is the more important story for defenders: the market is now capitalizing a dedicated control plane for AI agents because enterprise AI deployments have outpaced enterprise security controls. When venture firms write $50 million checks for a firewall category that didn't exist two years ago, it's because CISOs are already discovering MCP servers and agent plugins in their environments that nobody approved, nobody inventoried, and nobody is monitoring.
If your organization is deploying copilots, agentic workflows, or MCP-connected tooling — and in 2026, most are — you have a new attack surface that sits between your LLM-powered applications and your production data. This post breaks down that surface, how adversaries are abusing it, and the detection and hardening controls you should deploy now.
Technical Analysis: The AI Agent Attack Surface
What AIR Security's Firewall Targets
Per the reporting, the AIR Security platform inspects three specific component classes:
- AI skills and plugins — third-party or in-house extensions that give agents capabilities (file access, API calls, code execution). The risk: malicious instructions embedded in skill definitions, or skills that request far more capability than their function requires.
- MCP servers — servers implementing Anthropic's Model Context Protocol, which has become the de facto standard for connecting agents to tools and data sources. MCP servers are frequently distributed as community packages (npm, PyPI) and run locally with the agent's privileges.
- Supply chain integrity — the provenance of the skills, plugins, and MCP packages themselves: typosquatted packages, poisoned dependencies, and post-install scripts that execute before the agent ever runs.
How the Attacks Work — Defender's View of the Kill Chain
There is no CVE attached to this story, and you shouldn't wait for one. The exploitation patterns are technique-based, not bug-based:
- Malicious MCP server packages. An attacker publishes an MCP server (e.g., a "filesystem helper" or "database connector") to npm or PyPI with a plausible name. The package's advertised functionality works — but it also exfiltrates tool-call context, injects instructions into the agent's context window, or runs a post-install script that establishes persistence. Because MCP servers are configured via JSON config files (e.g.,
claude_desktop_config.json,.mcp.json,mcp_settings.json), installation is often invisible to traditional app-control tooling. - Prompt injection via tool output (indirect injection). A compromised or malicious MCP server returns crafted content in tool responses that the agent interprets as instructions — redirecting it to read sensitive files, call other tools, or exfiltrate data through an allowed egress channel. This bypasses every perimeter control because the "attacker" is now the agent itself, operating with legitimate credentials.
- Excessive permission grants. Agents configured with broad tool scopes (shell execution, filesystem write, cloud API keys) turn a single injection into full host compromise. The vulnerability isn't the model — it's the over-privileged execution environment.
- Config tampering. Local MCP configuration files define which servers run and with what arguments. An attacker with any foothold can add a malicious server entry, and most organizations have no file integrity monitoring on these paths.
Exploitation Status
These techniques are actively observed in the wild across 2025–2026: security researchers have demonstrated malicious MCP servers, poisoned tool descriptions, and rug-pull scenarios where a trusted server update introduces malicious behavior. No CISA KEV entries exist for MCP-specific flaws as of this writing, but the technique class is well past theoretical. Treat it as an operational threat.
Detection & Response
The detections below target the highest-fidelity observables: MCP server processes spawning suspicious children, tampering with MCP/agent configuration files, and anomalous child-process behavior from AI tooling. They are scoped tightly to avoid the noise that gets rules disabled.
Sigma Rules
---
title: MCP Server Process Spawning Shell or Script Interpreter
id: 8c4d2f91-3a7b-4e5c-b6d1-2f8a9c0e1b34
status: experimental
description: Detects MCP server processes (Node/Python-based MCP tooling) spawning shells, script interpreters, or download utilities — a strong indicator of a malicious or prompt-injected MCP server executing attacker-controlled instructions.
references:
- https://attack.mitre.org/techniques/T1059/
- https://www.securityweek.com/ai-agent-firewall-startup-air-security-emerges-from-stealth-with-50-million/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentCommandLine|contains:
- 'mcp-server'
- '@modelcontextprotocol'
- 'mcp_server'
- 'server-filesystem'
- 'uvx'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\curl.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
condition: selection_parent and selection_child
falsepositives:
- MCP servers legitimately wrapping CLI tools (audit and allowlist per-server)
level: high
---
title: AI Agent or MCP Configuration File Modification
id: 3e7b1a52-9d4c-4f8e-a2b6-7c1d5e9f0a23
status: experimental
description: Detects creation or modification of MCP and AI agent configuration files, which define which servers and tools an agent may invoke. Unauthorized changes can add malicious MCP servers or expand permissions.
references:
- https://attack.mitre.org/techniques/T1565/001/
- https://www.securityweek.com/ai-agent-firewall-startup-air-security-emerges-from-stealth-with-50-million/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.defense_evasion
- attack.t1565.001
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|contains:
- 'claude_desktop_config.json'
- '\.mcp.json'
- 'mcp_settings.json'
- '\.cursor\mcp.json'
- '\.vscode\mcp.json'
- 'cline_mcp_settings.json'
- 'continue_config.json'
falsepositives:
- Developers legitimately adding MCP servers during tool setup
level: medium
---
title: Suspicious Package Manager Install of MCP Server Components
id: 5a9c3e17-2b8f-4d6a-9c4e-1f7b3d8a2e56
status: experimental
description: Detects npm/pip/uv installing MCP server packages from command lines on workstations or servers where AI agent tooling is not expected. Typosquatted or malicious MCP packages are a known supply chain delivery vector.
references:
- https://attack.mitre.org/techniques/T1195/002/
- https://www.securityweek.com/ai-agent-firewall-startup-air-security-emerges-from-stealth-with-50-million/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.initial_access
- attack.t1195.002
logsource:
category: process_creation
product: windows
detection:
selection_img:
Image|endswith:
- '\npm.exe'
- '\npx.exe'
- '\pip.exe'
- '\uv.exe'
- '\uvx.exe'
selection_cli:
CommandLine|contains:
- 'install'
- 'exec'
- 'run'
selection_mcp:
CommandLine|contains:
- 'mcp'
condition: selection_img and selection_cli and selection_mcp
falsepositives:
- Developer workstations legitimately installing MCP tooling
level: medium
KQL — Microsoft Sentinel / Defender Hunt
// Hunt: AI agent / MCP server processes spawning unexpected children or network activity
// Scopes to known AI tooling parents to keep noise low. Review parent baseline before alerting.
let AiToolParents = dynamic(["claude.exe", "cursor.exe", "code.exe", "node.exe", "uvx.exe", "uv.exe", "python.exe", "python3.exe"]);
let SuspiciousChildren = dynamic(["cmd.exe", "powershell.exe", "pwsh.exe", "curl.exe", "certutil.exe", "bitsadmin.exe", "wscript.exe", "rundll32.exe", "regsvr32.exe", "mshta.exe"]);
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ (AiToolParents)
| where InitiatingProcessCommandLine has_any ("mcp", "modelcontextprotocol")
| where FileName in~ (SuspiciousChildren)
| project TimeGenerated, DeviceName, AccountName,
ParentProcess = InitiatingProcessFileName,
ParentCmd = InitiatingProcessCommandLine,
ChildProcess = FileName,
ChildCmd = ProcessCommandLine,
SHA256
| order by TimeGenerated desc;
// Companion hunt: outbound connections from MCP server processes to rare destinations
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessCommandLine has_any ("mcp-server", "@modelcontextprotocol", "mcp_server")
| where RemoteUrl !endswith ".anthropic.com"
and RemoteUrl !endswith ".openai.com"
and RemoteUrl !endswith ".github.com"
and RemoteUrl !endswith ".npmjs.org"
| summarize ConnectionCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
by DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort
| where ConnectionCount < 50 // rare/ low-volume egress is the interesting signal
| order by FirstSeen asc;
Velociraptor VQL — MCP Configuration and Server Inventory Hunt
-- Hunt artifact: Inventory MCP/AI agent configuration files and recently installed
-- MCP server packages across endpoints. Deploy as a hunt; review for unauthorized
-- servers, suspicious package names, or configs modified outside change windows.
LET configs = SELECT FullPath, Size, Mtime, Atime
FROM glob(globs=[
'C:/Users/*/AppData/Roaming/Claude/claude_desktop_config.json',
'C:/Users/*/.cursor/mcp.json',
'C:/Users/*/.vscode/mcp.json',
'C:/Users/*/AppData/Roaming/Code/User/mcp.json',
'C:/Users/*/**/.mcp.json'
])
LET mcp_procs = SELECT Pid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)mcp[-_]?server|modelcontextprotocol'
SELECT 'config_file' AS ArtifactType, FullPath AS Path, Mtime AS Modified, NULL AS Detail
FROM configs
UNION ALL
SELECT 'running_mcp_process' AS ArtifactType, Exe AS Path, CreateTime AS Modified, CommandLine AS Detail
FROM mcp_procs
Inventory & Hardening Script
# AI Agent / MCP Server Inventory and Config Integrity Baseline
# Run via your RMM or as a scheduled task. Outputs JSON for SIEM ingestion.
$Report = @{
Hostname = $env:COMPUTERNAME
Timestamp = (Get-Date).ToUniversalTime().ToString('o')
McpConfigs = @()
McpServers = @()
}
# 1. Locate MCP / agent configuration files across user profiles
$configPaths = @(
'C:/Users/*/.mcp.json'
'C:/*/.cursor/.vscode/mcp.json',
'C:/*/continue/.continue/mcpServers'
)
foreach ($pattern in $configPaths) {
Get-ChildItem -Path $pattern -ErrorAction SilentlyContinue | ForEach-Object {
$cfg = Get-Content $_.FullName -Raw | ConvertFrom-Json -ErrorAction SilentlyContinue
$entry = @{
Path = $_.FullName
LastWriteTime = $_.LastWriteTime.ToString('o')
SHA256 = (Get-FileHash $_.FullName -Algorithm SHA256).Hash
Servers = @()
}
# Enumerate declared MCP servers and their launch commands
$serverBlock = if ($cfg.mcpServers) { $cfg.mcpServers } elseif ($cfg.servers) { $cfg.servers } else { $null }
if ($serverBlock) {
$serverBlock.PSObject.Properties | ForEach-Object {
$entry.Servers += @{
Name = $_.Name
Command = $_.Value.command
Args = ($_.Value.args -join ' ')
}
}
}
$Report.McpConfigs += $entry
}
}
# 2. Flag high-risk capabilities: shell access, network fetches, unscoped filesystem roots
$riskyPatterns = 'cmd|powershell|pwsh|bash|curl|wget|/c\s|C:\\$|\\\\'
foreach ($cfg in $Report.McpConfigs) {
foreach ($srv in $cfg.Servers) {
$joined = "$($srv.Command) $($srv.Args)"
if ($joined -match $riskyPatterns) {
$srv.RiskFlag = 'HIGH: server launches shell/network tooling or broad filesystem scope'
}
if ($srv.Name -match '^(?!(filesystem|fetch|git|sqlite|memory|time|everything)$)') {
$srv.ReviewNote = 'Non-standard server name - verify provenance against approved inventory'
}
}
}
# 3. Enumerate currently running MCP server processes
Get-CimInstance Win32_Process |
Where-Object { $_.CommandLine -match 'mcp[-_]?server|modelcontextprotocol' } |
ForEach-Object {
$Report.McpServers += @{
PID = $_.ProcessId
CommandLine = $_.CommandLine
Executable = $_.ExecutablePath
}
}
# 4. Emit for SIEM collection
$outPath = "C:\ProgramData\SecurityOps\mcp_inventory_$($env:COMPUTERNAME).json"
New-Item -ItemType Directory -Path (Split-Path $outPath) -Force | Out-Null
$Report | ConvertTo-Json -Depth 6 | Out-File $outPath -Encoding UTF8
Write-Output "[+] MCP inventory written to $outPath"
Remediation & Hardening Recommendations
Since this is a technique-class threat rather than a single patchable CVE, remediation is architectural. Prioritize in this order:
- Build the inventory first. You cannot defend MCP servers you don't know exist. Deploy the inventory script and VQL hunt above, and sweep for agent config files (
claude_desktop_config.json,.mcp.json, Cursor/VS Code/Continue MCP settings) across the fleet. Expect to find shadow AI tooling. - Establish an approved MCP server allowlist. Treat MCP servers like browser extensions or code-signing roots: a curated catalog with verified provenance (pinned versions, hash-verified packages, internal mirrors of npm/PyPI artifacts). Block ad-hoc installation via endpoint policy where feasible.
- Enforce least privilege on agents. Strip shell-execution and broad filesystem scopes from agent tool grants. Scope filesystem MCP servers to specific project directories, never profile roots or drive roots. Run agents under dedicated low-privilege service accounts, not user or admin contexts.
- Monitor the config files. Add MCP configuration paths to your file integrity monitoring. Any addition of a new server entry outside a change window is a high-fidelity alert — it is the AI-era equivalent of a new Run key.
- Egress control for agent processes. Apply the KQL network hunt as a standing analytic. MCP servers should have a short, known destination list; rare or low-volume egress from an MCP process deserves immediate review.
- Evaluate the emerging control category. Whether you adopt AIR Security's platform or a competitor, the functional requirements are now clear: pre-deployment evaluation of skills/plugins/MCP servers for malicious instructions, permission analysis, and supply chain verification. Add these to your AI governance requirements and procurement criteria.
- Update IR playbooks. Prompt injection via tool output means your "compromised account" playbooks must extend to "compromised agent" scenarios: session teardown for agent identities, tool-call log forensics, and credential rotation for every secret the agent could reach.
The $50 million bet behind AIR Security tells you where the threat model is heading: agents with tool access are privileged workloads, and they need the same controls — inventory, allowlisting, least privilege, egress monitoring, and integrity checking — that you've spent a decade building for everything else. The organizations that extend those controls to the agent layer now will be the ones not writing breach disclosures about their AI deployments in 2027.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.