Airlock includes automated security monitoring that detects anomalous API usage patterns and can automatically block suspicious activity.
Settings → Security groups four sets of controls: Allowed AI clients, MCP security (newly discovered tools, network access, anomaly detection), personal API tokens, and skill security. See also the AI Use Policy guide, which covers requiring members to sign your company's AI use policy before their agents can run tools.
Allowed AI clients
You control which AI clients may connect to your organization's MCP endpoint. Open Settings → Security → Allowed AI clients.
Airlock recognizes the common clients out of the box — Claude, ChatGPT, Notion, Cursor, and VS Code — each with an on/off switch. Turning one off stops that client from completing the MCP sign-in for your organization, for everyone.
Adding your own client. If you run an AI client airlock doesn't recognize, add it with a name and its HTTPS redirect origin. It appears in the same list, starts enabled, and can be switched off later (switching off keeps the entry; removing it deletes it).
Restricting a client to certain groups. Each row has a group control next to its switch. By default a client is available to everyone ("All groups"). Pick one or more user groups to restrict it — only members of those groups can then connect through that client. Selecting no groups blocks the client for everyone. The on/off switch always wins: a disabled client is refused before group scoping is even considered.
Changes are enforced by airlock at sign-in, not by the client. A member who tries to connect through a client that is off, or that they are not scoped to, cannot complete the OAuth flow.
This is a connect-time control: it stops new connections, but a client that is already connected keeps working until its session ends (up to 30 days).
Anomaly Detection
Airlock continuously scans tool call activity for suspicious patterns. Each rule carries a severity, and the severity decides what happens:
| Rule | What it looks for | Severity | Result | Default threshold |
|---|---|---|---|---|
| Tool enumeration | Systematic probing of available tools (possible reconnaissance) | Critical | Hard block | 25+ distinct tools in 10 min |
| Escalation probing | Mixed allow/deny patterns indicating privilege-escalation attempts | Critical | Hard block | 5+ allowed and 10+ denied calls in 15 min, denials over 60% of traffic |
| Request-rate spikes | Unusually high request rates from a single user or agent | High | Soft block | 100+ calls in 5 min |
| Repeated policy denials | Repeated denied calls, indicating unauthorized-access attempts | High | Soft block | 15+ denials in 10 min |
| Multi-IP access | One identity used from many IP addresses (possible credential compromise) | High | Soft block | 10+ distinct IPs in 15 min |
| Error storms | High error rates suggesting automated probing or a misconfigured client | Medium | Finding only — never blocks | 30+ errored calls in 10 min |
Detection runs automatically every minute. Medium-severity findings are recorded for review but never create a block.
Auto-Blocking
When the anomaly detection system identifies a critical or high finding, it automatically creates a security block:
| Severity | Block Type | Default duration |
|---|---|---|
| Critical | Hard block | 24 hours |
| High | Soft block | 4 hours |
Both durations are defaults. Under Settings → Security → Anomaly detection → Auto-Block Duration you can set each between 1 and 720 hours for your organization. Automatic blocks are always organization-scoped.
- Hard blocks stop the affected user or agent from executing any tool through airlock. The agent can still list and search tools, and Control Room access is unaffected — only tool execution is denied, with the message "Access denied: Your access has been temporarily restricted due to a security review."
- Soft blocks don't deny anything outright: every tool call by the affected user or agent is escalated to Require approval, whatever your policy says, until the block expires or is lifted. Expect a spike in pending requests while a soft block is in force.
Either type can be acknowledged by an admin (to record that it was reviewed) or lifted early if the activity was legitimate. Blocks include details about the finding that triggered them (values, thresholds, detection rule) so admins can assess whether the activity was legitimate.
When detection creates a block automatically (either hard or soft), or upgrades an existing soft block to a hard block, airlock emails all active admins in the organization. The email includes the blocked actor, block type, the reason (with metric values), expiration time, and a link to the Security Blocks dashboard. Extending an existing block does not send anything, so a continuing pattern of activity won't repeatedly email you about a block that is already in force.
Configurable Thresholds
Admins can tune detection sensitivity per organization from the Security settings:
- Navigate to Settings → Security and expand the Anomaly detection card (under the MCP security group)
- Use the switch in the card header to turn anomaly detection on or off for the whole organization
- Adjust the per-rule thresholds below it (rate spike, repeated denials, error storm, tool enumeration, multi-IP access) — they are dimmed while detection is off
Threshold changes take effect in one direction: raising a threshold makes a rule less sensitive, and that is the supported way to cut false positives for your traffic.
Lowering one does not make detection more sensitive. Detection runs against the built-in defaults and your override is applied afterwards, as a filter that can only discard findings — so the form accepts a lower number and saves it, but nothing extra is ever detected. The same applies to the time-window fields: they are editable and will save, but the built-in windows are what detection actually uses.
If a rule is noisy and raising its threshold isn't enough, turn detection off with the master toggle. When detection is disabled, airlock stops creating new anomaly findings and automatic blocks for that organization.
Security Blocks Dashboard
View and manage security blocks from the Control Room:
- Navigate to Security in the sidebar
- View active, acknowledged, and expired blocks
- Each block shows:
- The affected user
- The detection rule that triggered it
- Finding details (values vs. thresholds)
- Block status and expiration time
Managing Blocks
- Acknowledge a block (hard or soft) to indicate you've reviewed it
- Lift a block early if the activity was legitimate
- Blocks stop applying the moment they reach their expiry time (4 and 24 hours by default, or whatever you configured)
Creating a block manually
Admins can also block someone directly, without waiting for detection. On the Security page choose Create block, then pick the user, whether it's a hard or soft block, how long it lasts (1–720 hours), and its scope:
- Organization — applies to every integration in the org.
- Project — applies only to the integration you select; the user's other integrations keep working.
Manually created blocks are acknowledged, lifted, and expired exactly like automatic ones. They do not send the admin notification described under Auto-Blocking — you already know about a block you created yourself.
Credential Security
All API credentials are protected with defense-in-depth:
- KMS envelope encryption — every stored credential is encrypted with its own unique AES-256-GCM data key, and that data key is itself wrapped by an airlock-managed AWS KMS key. There is no standalone master key that could leak; unwrapping data keys always goes through KMS.
- Per-record isolation — decryption is cryptographically bound to the owning organization and record (via the KMS encryption context), so a credential can never be decrypted outside the organization and record it belongs to
- Runtime-only decryption — credentials are decrypted only when making API calls, never logged
- Organization isolation — every stored record carries the owning organization's identifiers, and every read and write is scoped against the caller's server-side profile. Role decisions (admin vs. member) are made from that stored profile, never from a claim in the caller's token, so a stale or over-broad token cannot widen access
Audit Trail
All API calls, approval decisions, and security events are logged with:
- Who made the request (user and agent identity)
- What tool was called and with what parameters
- When the request was made
- The policy decision (allowed, required approval, blocked)
- Agent context (client name, version, transport type, source IP)
Audit logs are accessible from the Control Room under History.
Best Practices
- Monitor the Security dashboard regularly for blocks and findings
- Review acknowledged blocks to identify patterns in false positives
- Use approval workflows for sensitive operations as an additional layer of protection
- Rotate credentials periodically and revoke unused access
- Assign approver groups rather than individuals to ensure coverage