55.1 Introduction
A secure AI application cannot rely only on preventive security controls.
Even a well-designed system can experience:
- authentication failures
- authorization violations
- prompt injection attempts
- malicious file uploads
- abnormal API usage
- model abuse
- unexpected tool calls
- data-access anomalies
- infrastructure failures
- compromised accounts
- service outages
- billing anomalies
- privacy incidents
Therefore, a production AI platform requires an observability and incident-response architecture capable of answering four fundamental questions:
- What happened?
- When did it happen?
- Which identity or system component was involved?
- What should the system do next?
The security principle is:
If a security-relevant event cannot be observed, investigated, and acted upon, the control is incomplete.
55.2 Observability vs Logging vs Monitoring
These concepts are related but not identical.
Logging
Logging records events.
Examples:
USER_LOGIN
API_REQUEST
FILE_UPLOAD
MODEL_REQUEST
MEMORY_READ
TOOL_CALL
PAYMENT_EVENT
ACCESS_DENIED
Monitoring
Monitoring continuously checks system behavior.
Examples:
CPU usage
memory usage
request latency
error rate
authentication failures
queue depth
AI provider failures
Observability
Observability combines multiple signals to understand system behavior.
A typical observability system includes:
Logs
Metrics
Traces
Events
Alerts
Dashboards
Security detections
Together they provide a much stronger view of the application.
55.3 AI-Specific Observability
Traditional web applications already require observability.
AI applications introduce additional dimensions.
For example:
User
↓
Frontend
↓
API
↓
AI Gateway
↓
Model Provider
↓
Tool
↓
Database
↓
External Service
A single AI request may cross many components.
The system therefore needs correlation between those events.
For example:
request_id = req_123
trace_id = trace_456
user_id = user_789
Every related event can then be connected during investigation.
55.4 Security Event Taxonomy
A consistent event taxonomy is essential.
Possible categories:
AUTHENTICATION
AUTHORIZATION
ACCOUNT
API
AI_MODEL
PROMPT
MEMORY
RAG
FILE
TOOL
PAYMENT
ADMIN
INFRASTRUCTURE
PRIVACY
SECURITY
Examples:
AUTH_LOGIN_SUCCESS
AUTH_LOGIN_FAILURE
AUTH_MFA_FAILURE
AUTHZ_ACCESS_GRANTED
AUTHZ_ACCESS_DENIED
AI_MODEL_REQUEST
AI_MODEL_ERROR
TOOL_CALL_REQUESTED
TOOL_CALL_BLOCKED
TOOL_CALL_EXECUTED
FILE_UPLOAD_ACCEPTED
FILE_UPLOAD_QUARANTINED
MEMORY_READ
MEMORY_DELETE
Consistent naming makes detection and analytics easier.
55.5 Structured Logging
Security logs should normally use structured formats rather than arbitrary text.
Example:
{
"event": "AUTH_LOGIN_FAILURE",
"timestamp": "2026-08-06T12:00:00Z",
"requestId": "req_123",
"userId": "user_456",
"ipHash": "hashed-value",
"reason": "INVALID_CREDENTIALS"
}
Structured logs can be searched and correlated efficiently.
55.6 What Should Be Logged?
Useful security events include:
Identity
login
logout
MFA challenge
MFA failure
password reset
email change
session creation
session revocation
Authorization
access granted
access denied
role change
permission change
tenant membership change
AI
model request
model response metadata
provider selection
model failure
policy decision
safety block
Agent
plan created
tool requested
tool denied
tool approved
tool executed
tool failed
Data
document uploaded
document processed
memory created
memory deleted
export generated
55.7 What Should Not Be Logged?
Logging everything can itself become a security problem.
Avoid unnecessarily logging:
passwords
API keys
access tokens
session cookies
payment-card data
authentication secrets
private user content
complete sensitive documents
For example, never do:
console.log(request.headers);
if those headers may contain authentication credentials.
Instead, log safe metadata.
logger.info({
event: "API_REQUEST",
requestId,
method,
route,
userId
});
55.8 Log Redaction
Applications should implement centralized redaction.
Example:
const REDACTED_FIELDS = [
"password",
"accessToken",
"refreshToken",
"apiKey",
"authorization"
];
A logging layer can remove or mask these values before transmission.
Example:
password = [REDACTED]
authorization = [REDACTED]
apiKey = [REDACTED]
Redaction should happen before data reaches centralized logging infrastructure whenever possible.
55.9 Correlation IDs
Correlation IDs make distributed investigations possible.
A request may generate:
request_id
trace_id
span_id
job_id
user_id
tenant_id
For example:
User Request
|
request_id=req-123
|
API
|
trace_id=trace-999
|
AI Gateway
|
job_id=job-456
Every component can then associate its events with the same operation.
55.10 Distributed Tracing
AI systems often contain multiple services.
A trace can represent:
Frontend
↓
API Gateway
↓
Auth Service
↓
AI Orchestrator
↓
Model Provider
↓
RAG Service
↓
Database
Each operation can become a span.
This helps answer questions such as:
- Where did latency occur?
- Which service failed?
- Which provider was used?
- Which database query was slow?
- Did a tool call happen?
- Did a policy block the request?
55.11 Metrics
Metrics provide aggregated information.
Important application metrics include:
requests_total
requests_failed
latency_ms
active_sessions
queue_depth
database_latency
storage_errors
model_errors
Security metrics include:
login_failures
MFA_failures
authorization_denials
rate_limit_hits
suspicious_sessions
blocked_tool_calls
policy_blocks
file_quarantine_events
55.12 AI Security Metrics
AI applications should introduce specialized metrics.
Examples:
prompt_injection_blocks
jailbreak_blocks
unsafe_output_blocks
tool_authorization_denials
unexpected_tool_calls
model_provider_failures
retrieval_denials
memory_access_denials
These can help identify emerging attacks.
55.13 Baseline Behavior
Security detection requires an understanding of normal behavior.
For example:
Normal:
20 AI requests/hour
Potential anomaly:
2,000 AI requests/hour
Another example:
Normal:
User accesses one project.
Potential anomaly:
User suddenly accesses hundreds of projects.
Baseline detection should be designed carefully because legitimate users can also have unusual workloads.
55.14 Rate-Based Detection
Rate thresholds can identify abnormal behavior.
Example:
10 failed logins / 5 minutes
could trigger:
additional verification
temporary rate limiting
security alert
For AI:
500 model requests / minute
might indicate:
automation
credential compromise
application bug
abuse
The correct response depends on context.
55.15 Anomaly Detection
Anomaly detection can combine multiple signals.
For example:
new device
+
new geographic region
+
unusual request volume
+
many authorization failures
may indicate a suspicious session.
A security system could calculate a risk score:
risk =
login_anomaly
+ device_anomaly
+ behavior_anomaly
+ authorization_anomaly
Risk scores should support investigation rather than becoming unexplained automatic decisions.
55.16 AI Abuse Detection
AI platforms should monitor unusual usage patterns.
Possible signals:
extreme request volume
repeated policy violations
rapid account creation
automated API usage
unusual model switching
abnormal token consumption
unusual tool invocation
These signals can be combined with account and infrastructure telemetry.
55.17 Prompt Injection Monitoring
Prompt injection attempts may appear in:
user messages
uploaded documents
web pages
retrieved RAG content
memory
tool results
The system can record a security event such as:
{
"event": "AI_POLICY_BLOCK",
"category": "PROMPT_INJECTION",
"requestId": "req_123",
"policy": "INDIRECT_INSTRUCTION_BLOCK"
}
Avoid logging the entire sensitive prompt unless there is a justified retention and privacy policy.
55.18 Agent Monitoring
Agents require particularly strong observability.
A useful event chain is:
USER_REQUEST
↓
PLAN_CREATED
↓
TOOL_REQUESTED
↓
POLICY_CHECK
↓
AUTHORIZATION_CHECK
↓
HUMAN_APPROVAL
↓
TOOL_EXECUTED
↓
RESULT_RETURNED
This creates an auditable chain.
55.19 Tool Call Auditability
For each tool invocation, record metadata such as:
tool name
actor
request ID
authorization result
policy result
approval state
timestamp
execution result
For example:
{
"event": "TOOL_CALL",
"tool": "project_update",
"requestId": "req_123",
"authorization": "ALLOWED",
"approval": "REQUIRED_AND_GRANTED"
}
Sensitive tool arguments should be minimized or redacted.
55.20 Security Alerts
An alert should be generated when an event crosses a defined threshold or indicates a meaningful security condition.
Examples:
Repeated MFA failures
Unexpected administrative privilege change
Large unauthorized access pattern
Credential compromise indicators
Suspicious API usage
Large data export
Mass deletion
Unusual tool activity
Repeated policy violations
Not every log event should create an alert.
Otherwise the security team experiences alert fatigue.
55.21 Alert Severity
A useful classification is:
INFO
LOW
MEDIUM
HIGH
CRITICAL
Example:
INFO:
Normal login.
LOW:
Single failed login.
MEDIUM:
Repeated failed logins.
HIGH:
Successful login after extensive failures from a new device.
CRITICAL:
Evidence of unauthorized privileged activity affecting many users.
Severity should be based on impact and confidence.
55.22 Alert Deduplication
One event may produce thousands of similar signals.
For example:
10,000 failed requests
should not necessarily generate:
10,000 individual alerts
Instead, the system can group related events:
ALERT:
10,000 authorization failures
Source: API cluster
Window: 5 minutes
This makes investigation manageable.
55.23 Incident Response Lifecycle
A mature incident-response process generally includes:
PREPARE
↓
DETECT
↓
TRIAGE
↓
CONTAIN
↓
ERADICATE
↓
RECOVER
↓
LEARN
55.24 Preparation
Before an incident occurs, define:
- incident roles
- escalation paths
- contact procedures
- logging infrastructure
- backup strategy
- access controls
- evidence handling
- communication procedures
- recovery procedures
Preparation dramatically reduces response time.
55.25 Detection
Detection can originate from:
automated alerts
user reports
security monitoring
provider notifications
application errors
audit reviews
external reports
The event should be converted into an investigation record.
55.26 Triage
Triage determines:
What happened?
How severe is it?
Which systems are affected?
Is the attack ongoing?
Which users are affected?
What evidence exists?
A useful incident record might contain:
incident_id
severity
status
detected_at
owner
affected_services
affected_tenants
containment_status
55.27 Containment
Containment limits ongoing impact.
Depending on the incident, actions may include:
revoke sessions
disable compromised account
rotate affected credentials
block abusive traffic
disable affected tool
quarantine files
pause background jobs
isolate service
Containment should follow predefined procedures where possible.
55.28 Eradication
After containment, identify and remove the underlying cause.
Examples:
vulnerable dependency
misconfigured permission
compromised credential
malicious integration
unsafe configuration
application bug
The objective is not simply to stop the visible symptom.
55.29 Recovery
Recovery restores normal operations safely.
Typical steps:
restore trusted configuration
rotate secrets
validate systems
restore services
monitor closely
verify user access
Recovery should include increased monitoring.
55.30 Post-Incident Review
Every meaningful incident should produce lessons.
Questions include:
What failed?
Why did it fail?
Why was it not detected earlier?
Which control should have prevented it?
Which control should have detected it?
How quickly was it contained?
How can recurrence be prevented?
The goal is improvement, not blame.
55.31 Immutable Audit Logs
Security-sensitive audit logs should be protected against unauthorized modification.
Possible architecture:
Application
↓
Audit Event
↓
Append-Only Pipeline
↓
Central Log Storage
↓
Restricted Access
For particularly sensitive systems, additional integrity mechanisms may be appropriate.
55.32 Separation of Duties
Administrators who can change security policies should not necessarily be able to erase the evidence of their actions.
For example:
Admin A:
Can change configuration.
Audit System:
Records the change.
Admin A:
Cannot silently delete the audit record.
This improves accountability.
55.33 Log Retention
Logs should have defined retention policies.
Consider:
security logs
application logs
debug logs
audit logs
billing logs
privacy events
They may have different retention requirements.
Longer retention is not automatically better because logs can contain sensitive information.
55.34 Log Integrity and Access
Access to logs should be restricted.
A typical model:
Application
↓
Write-only logging path
Security Team
↓
Read access
Regular User
↓
No raw log access
Application services generally should not be able to modify historical security records arbitrarily.
55.35 Centralized Observability Architecture
A reference design:
APPLICATIONS
|
+----------------+----------------+
| | |
Logs Metrics Traces
| | |
+----------------+----------------+
|
Observability
Pipeline
|
+---------+---------+
| |
Dashboards Detection
|
Alerts
|
Incident System
|
Security Team
55.36 AI Observability Architecture
For an AI platform:
USER
|
v
API
|
Correlation ID
|
v
AI Orchestrator
/ | \
/ | \
RAG Memory Agent
| | |
+---------+---------+
|
Model Gateway
|
Model Provider
|
Tool Layer
|
External Systems
All components
|
v
Logs + Metrics + Traces
|
v
Security Detection
|
v
Incident Response
55.37 Example Logging Interface
A TypeScript abstraction:
interface SecurityEvent {
event: string;
timestamp: string;
requestId?: string;
traceId?: string;
actorId?: string;
tenantId?: string;
severity: "INFO" | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
metadata?: Record<string, unknown>;
}
function recordSecurityEvent(event: SecurityEvent) {
// Send to centralized security logging pipeline.
}
The important architectural principle is that application code should use a controlled logging interface rather than arbitrary console output for security events.
55.38 Example Security Event
recordSecurityEvent({
event: "AUTHZ_ACCESS_DENIED",
timestamp: new Date().toISOString(),
requestId,
traceId,
actorId,
tenantId,
severity: "MEDIUM",
metadata: {
resourceType: "PROJECT",
action: "READ"
}
});
Avoid including unnecessary private resource contents.
55.39 Detection Rules
Detection rules can operate on normalized events.
Conceptually:
IF
authorization_denials > threshold
AND
unique_resources > threshold
AND
time_window < defined_window
THEN
create_security_alert
Rules should be version-controlled and tested.
55.40 Automated Response
Some events can trigger low-risk automated controls.
For example:
Repeated failed authentication
↓
Rate limit
Or:
Detected malicious upload
↓
Quarantine file
However, high-impact automated responses require caution.
An incorrect detection should not unnecessarily lock thousands of legitimate users out of the system.
55.41 Human-in-the-Loop Incident Response
For high-impact actions:
Detection
↓
Risk Assessment
↓
Human Review
↓
Containment Decision
↓
Execution
This is especially useful for:
- organization-wide account suspension
- destructive operations
- broad data-access restrictions
- major service shutdowns
55.42 Security Dashboard
A security dashboard can expose:
Active incidents
Authentication failures
Authorization denials
Suspicious sessions
AI policy blocks
Tool-call blocks
File quarantine events
Data export activity
Provider errors
Infrastructure health
Dashboards should prioritize actionable information.
55.43 Privacy-Aware Observability
Observability systems must themselves follow privacy principles.
The monitoring system should collect:
minimum necessary data
rather than:
everything possible
Sensitive fields should be:
redacted
hashed
tokenized
excluded
when full values are unnecessary.
55.44 Observability Testing
Security observability should be tested like any other production capability.
Test:
Can a failed login generate an event?
Can an authorization denial be detected?
Can a tool block be traced?
Can a memory deletion be audited?
Can a suspicious session generate an alert?
Can an incident be correlated across services?
A security control that is never tested may fail silently.
55.45 Failure of the Logging System
The application should define what happens if observability infrastructure becomes unavailable.
Possible strategies:
local temporary buffering
durable event queue
retry
backpressure
fail-open for noncritical telemetry
fail-closed for certain security-critical operations
The correct behavior depends on the event.
For example, losing a debug metric should not necessarily stop the application.
But inability to record a mandatory security audit event may require stricter handling.
55.46 Incident Evidence
During an investigation, useful evidence may include:
authentication events
session events
API traces
authorization decisions
database audit events
AI policy decisions
tool calls
file-processing events
configuration changes
deployment history
Evidence should be protected from accidental alteration.
55.47 Incident Simulation
Organizations should periodically conduct exercises.
Example scenario:
Scenario:
A privileged account shows unusual AI-agent activity.
Team must:
1. detect the anomaly
2. identify the account
3. trace the activity
4. revoke sessions
5. contain the agent
6. rotate credentials
7. verify recovery
8. document lessons
The objective is to test the process before a real incident occurs.
55.48 Security Observability Checklist
Logging
- [ ] Structured logs implemented.
- [ ] Security events normalized.
- [ ] Sensitive fields redacted.
- [ ] Correlation IDs implemented.
- [ ] Log access restricted.
Metrics
- [ ] Authentication metrics.
- [ ] Authorization metrics.
- [ ] AI usage metrics.
- [ ] Tool-call metrics.
- [ ] Infrastructure metrics.
- [ ] Abuse metrics.
Tracing
- [ ] Distributed tracing available.
- [ ] AI workflows traceable.
- [ ] Tool calls correlated.
- [ ] RAG operations traceable.
- [ ] Provider calls traceable.
Detection
- [ ] Security rules defined.
- [ ] Thresholds tested.
- [ ] Alert deduplication implemented.
- [ ] False-positive handling defined.
- [ ] High-risk activity monitored.
Incident Response
- [ ] Incident severity model exists.
- [ ] Escalation paths exist.
- [ ] Containment procedures exist.
- [ ] Recovery procedures exist.
- [ ] Post-incident reviews occur.
Privacy
- [ ] Logs minimize sensitive content.
- [ ] Retention policies exist.
- [ ] Access is controlled.
- [ ] Audit records are protected.
55.49 Final Architecture Principle
A secure AI platform should not merely prevent attacks.
It should also be able to recognize when something unusual occurs, reconstruct what happened, contain the impact, recover safely, and learn from the event.
The complete security loop is:
PREVENT
↓
OBSERVE
↓
DETECT
↓
INVESTIGATE
↓
CONTAIN
↓
RECOVER
↓
LEARN
↓
IMPROVE
For AI systems, this loop must include not only traditional infrastructure events but also:
AI requests
RAG retrieval
memory access
model decisions
policy decisions
agent plans
tool calls
human approvals
generated outputs
The central principle is:
Security without observability is difficult to verify; observability without response is incomplete security.
A mature AI architecture therefore treats logs, metrics, traces, detections, audit trails, and incident response as core security infrastructure rather than optional operational tooling.
Top comments (0)