Skip to content

Risk Scoring

Every identity in VeraID carries a dynamic risk score ranging from 0 to 100. This score is continuously recalculated based on behavioral signals, credential hygiene, access patterns, and policy compliance. Risk scores drive automated responses such as step-up verification, access restrictions, suspension, and alerting.

How Risk Scoring Works

VeraID evaluates each identity against a set of weighted risk factors. When a factor’s conditions are met, its weight is added to the identity’s score. The final score is capped at 100 and rounded to the nearest integer.

Risk scores are recalculated:

  • After every authenticated action
  • On a scheduled basis (every 15 minutes for active identities)
  • When credential, policy, or ownership changes occur
  • When anomaly detection triggers fire

Risk Levels

Scores map to four risk levels that determine the severity of automated responses and dashboard indicators.

Score RangeLevelDashboard IndicatorDefault Behavior
0 – 24LowGreenNormal operations
25 – 49MediumYellowFlagged for review, optional notifications
50 – 74HighOrangeStep-up verification, access restrictions triggered
75 – 100CriticalRedAutomatic suspension, incident alert, SOC notification

Standard Risk Factors

The following nine factors apply to all identity types. Each factor has a weight (the number of points added to the score) and a trigger condition.

Failed Authentication Attempts

Weight+25
Trigger10 or more failed authentication attempts within a 30-day window
RationaleRepeated failures may indicate a credential stuffing attack, brute-force attempt, or misconfigured client

Policy Violations

Weight+25
Trigger10 or more denied policy evaluations within 7 days
RationaleFrequent policy denials suggest the identity is attempting unauthorized actions or has drifted from its intended scope

Geographic Anomaly

Weight+20
TriggerAuthentication from an IP address in a geographic region not previously associated with this identity
RationaleUnexpected geographic shifts may indicate credential theft or proxy-based access from an unauthorized location

Dormant Reactivation

Weight+20
TriggerIdentity inactive for 30 or more days, followed by 10 or more actions within 24 hours
RationaleA sudden burst of activity from a long-dormant identity is a strong indicator of compromise

Unusual Request Rate

Weight+20
TriggerRequest rate exceeds 3x the identity’s rolling 30-day average
RationaleTraffic spikes well above baseline may indicate automated abuse, data exfiltration, or a compromised credential

Credential Not Rotated

Weight+15
TriggerAny associated credential has not been rotated in 90 or more days
RationaleLong-lived credentials increase the window of exposure if compromised; regular rotation is an industry best practice

Unusual Access Hours

Weight+15
Trigger50% or more of requests occur during off-hours (10:00 PM – 6:00 AM in the identity’s configured timezone)
RationaleWhile some automation legitimately runs overnight, a shift toward off-hours access can indicate unauthorized use

Expiring Credential

Weight+10
TriggerAny associated credential expires within 7 days
RationaleImpending expiration increases operational risk; teams should be alerted to rotate before an outage occurs

Excessive Permissions

Weight+10
TriggerIdentity has more policy bindings than the 90th percentile for its type
RationaleOver-permissioned identities expand the blast radius if compromised; least-privilege principles should be enforced

AI Agent-Specific Risk Factors

Identities of type AI_AGENT are evaluated against five additional risk factors that address the unique threat surface of autonomous AI systems.

Prompt Injection Detected

Weight+30
TriggerVeraID’s prompt injection detection system identifies a potential injection attempt in the agent’s input or output
RationalePrompt injection is a critical threat to AI agents; a detected attempt may indicate an active attack on the agent’s decision-making process

Capability Abuse

Weight+25
Trigger5 or more denied capability requests (MCP tool calls, API actions outside allowed scope)
RationaleRepeated attempts to use unauthorized capabilities suggest the agent has been manipulated or is behaving outside its intended parameters

Budget Exceeded

Weight+20
TriggerAgent has consumed more than 80% of its configured budget for the current period
RationaleRunaway spending may indicate an infinite loop, prompt injection causing excessive API calls, or unauthorized task escalation

Unusual Model Usage

Weight+15
TriggerAgent has used 3 or more different AI models within a single evaluation period
RationaleUnexpected model switching may indicate an attacker probing for vulnerabilities across model providers or attempting to bypass model-specific safety controls

High Cost Rate

Weight+15
TriggerCurrent daily spending rate exceeds 2x the identity’s rolling daily average
RationaleA sudden increase in cost rate — independent of total budget consumption — signals anomalous behavior that warrants investigation

Risk Factor Summary

The table below provides a complete reference of all risk factors sorted by weight.

FactorWeightCategoryTrigger Summary
Prompt Injection Detected+30AI AgentInjection attempt detected
Failed Authentication+25Standard10+ failures in 30 days
Policy Violations+25Standard10+ denied evaluations in 7 days
Capability Abuse+25AI Agent5+ denied capability requests
Geographic Anomaly+20StandardRequest from new geographic region
Dormant Reactivation+20Standard30+ days inactive, then 10+ actions in 24h
Unusual Request Rate+20Standard3x above 30-day average
Budget Exceeded+20AI Agent>80% of budget consumed
Credential Not Rotated+15Standard90+ days without rotation
Unusual Access Hours+15Standard50%+ requests during 10 PM – 6 AM
Unusual Model Usage+15AI Agent3+ models used in one period
High Cost Rate+15AI Agent2x above daily spending average
Expiring Credential+10StandardCredential expires within 7 days
Excessive Permissions+10StandardPermissions above 90th percentile

Viewing Risk Scores

Dashboard

The VeraID dashboard displays risk scores with color-coded indicators on the identity list view, identity detail page, and the risk analytics overview. Identities in the High or Critical range are surfaced in the priority queue on the dashboard home page.

API

Retrieve an identity’s current risk score as part of the identity object:

Terminal window
curl -X GET https://app.veraid.io/api/v1/identities/idt_3a1f8c29-b7d4-4e2a-9c8f-1d5e7a2b4c6d \
-H "Authorization: Bearer kd_live_your_api_key"

The riskScore field in the response contains the current score:

{
"id": "idt_3a1f8c29-b7d4-4e2a-9c8f-1d5e7a2b4c6d",
"name": "payment-processor",
"riskScore": 35,
"status": "ACTIVE"
}

Configuring Risk-Based Policies

Risk scores integrate directly with the VeraID policy engine. You can create policies that trigger automated actions based on risk thresholds:

{
"name": "auto-suspend-critical-risk",
"type": "RISK_THRESHOLD",
"conditions": {
"riskScore": { "gte": 75 },
"identityType": ["SERVICE_ACCOUNT", "API_KEY", "CI_CD"]
},
"actions": [
{ "type": "SUSPEND_IDENTITY" },
{ "type": "NOTIFY", "channels": ["email", "webhook"] },
{ "type": "CREATE_INCIDENT", "severity": "critical" }
]
}

What’s Next

  • Identity Groups — Apply risk-based policies to groups of identities
  • Policies Overview — Build policies that respond to risk scores and behavioral signals
  • Audit Logs — Review the audit trail for risk score changes and automated actions