Skip to main content

Documentation Index

Fetch the complete documentation index at: https://quintsecurity.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Status: mixed. Layer 1 (intrinsic) + Layer 3 (policy) are shipped. Layer 2 (GNN) and Layer 4 (temporal anomaly) are roadmap. See ML Roadmap for advancement triggers.

Risk Scoring Algorithm

Every agent event is scored through a 4-layer composite pipeline that combines deterministic graph metrics with learned GNN attention, customer policy evaluation, and temporal anomaly detection.

Composition Formula

raw_score = (w1 × L1 + w2 × L2 + w3 × L3) × L4
final_score = clamp(round(raw_score), 1, 100)

Default Weights

LayerWeightPurpose
L1: Intrinsic Action Risk0.15Floor signal — prevents zero scores on dangerous actions
L2: Structural GNN0.45Primary intelligence — captures relational patterns
L3: Policy Violation0.40Customer-specific enforcement
L4: Temporal ModifiermultiplierContext adjustment (×0.5 to ×2.0)
Weights are tunable per customer. A customer with precise policies might use w3=0.55, w2=0.30. A customer wanting anomaly detection might use w2=0.60, w3=0.20.

Layer 1: Intrinsic Action Risk (Deterministic, 0-100)

Every action carries a base risk score derived from its verb, data sensitivity, target scope, and MCP server trust. Computed instantly — no model inference.
L1 = min(100, verb_base × data_sensitivity × target_scope × mcp_trust)

Verb Base Scores

VerbScoreRationale
read, list, search, connect, start, stop5Passive/low-risk
invoke, authenticate, notify, receive10Medium baseline
write, create, import15Data modification
modify, update20Configuration change
send25Outbound data transfer
forward, post30Exfiltration/publication vector
delete, export, revoke35Data destruction/extraction
execute, authorize, install40Code execution/permission change

Data Sensitivity Multiplier

ClassificationMultiplierExamples
public1.0×Documentation, marketing
internal1.3×Revenue, roadmap, org chart
confidential1.8×Customer lists, contracts
restricted / pii_sensitive2.5×SSN, credit cards, medical records
top_secret / auth3.5×API keys, secrets, credentials

Target Scope Multiplier

TargetMultiplier
Same agent, local processing1.0×
Internal service, same customer1.1×
Internal service, different department1.3×
External endpoint, whitelisted1.5×
External endpoint, unknown2.5×
External endpoint, flagged/suspicious3.5×

MCP Server Trust Multiplier

Server TrustMultiplier
Verified, official integration1.0×
Known community server, audited1.2×
Unverified community server1.8×
Unknown/first-seen server2.5×
Server with recent description changes3.0×

Layer 2: Structural GNN Score (Learned, 0-100)

The GNN scores the structural context around the focal action — not just what happened, but the shape of the subgraph it sits within.
See GNN Architecture for the full model specification.

What the GNN Captures

  • Path-based risk: A query.execute preceded by permission.grant and followed by data.send forms an escalation-then-exfiltration chain
  • Neighborhood anomaly: A support_bot accessing sensitivity_level=4 resources triggers attention on that edge
  • Cross-server correlation: Two MCP servers exposing tools with identical names (shadowing detection)
  • Temporal chains: Sequences matching trained attack patterns even with benign actions interspersed

Layer 3: Policy Violation Score (Deterministic, 0-100)

Customer-specific layer. Evaluates the action against customer policies using the forward-chaining engine.
Match ResultScore Contribution
Action explicitly permitted-20 (reduces score)
No matching policy+0
Action matches flag policy+severity (typically 20-50)
Action matches block policy+severity (typically 50-90)
Action matches escalate policy+severity (typically 40-70)
Block overrides permit. If any block policy matches, the score floors at 70.

Layer 4: Temporal Anomaly Modifier (×0.5 to ×2.0)

Modifies the composite of Layers 1-3 based on behavioral context.
L4 = rate_factor × sequence_novelty × time_anomaly × session_drift
SignalNormalElevated
Rate anomalyCurrent rate within 0.5-1.5× historical avg → 1.0×Spike > 3× avg → 2.0×
Sequence noveltySeen 10+ times → 0.8×Never seen before → 1.3×
Time of dayWithin normal hours → 1.0×Weekend/holiday → 1.4×
Session driftCosine distance < 0.3 → 1.0×Distance > 0.6 → 1.3×

Confidence Score (0.0 - 1.0)

confidence = min(gnn_confidence, policy_clarity, data_completeness)
SignalHigh (>0.8)Low (<0.5)
GNN softmaxOne class dominates (>0.85 probability)Probabilities spread across classes
Policy clarityExact policy match foundNo matching or conflicting policies
Data completenessAll 8 fields presentMissing agent_type, resource_id, etc.
When confidence < 0.8: LLM fallback is triggered. Compliance context is retrieved via RAG and injected into the LLM prompt.

Worked Examples

Event: mcp:notion:page.read
Agent: support_bot (verified, normal hours)
Resource: internal knowledge base (sensitivity: 1)
Policy: permitted for all agents
L1 = 5 (read) × 1.0 (public) × 1.0 (internal) × 1.0 (verified) = 5
L2 = 3 (GNN: routine subgraph)
L3 = 0 (explicitly permitted)
L4 = 1.0 (normal rate, known sequence)

raw = (0.15 × 5 + 0.45 × 3 + 0.40 × 0) × 1.0 = 2.1
final_score = 2, confidence = 0.95
→ Risk Level: None, Allow silently

Score Decomposition in API Response

{
  "score_decomposition": {
    "intrinsic_action_risk": {
      "score": 100,
      "weight": 0.15,
      "components": {
        "verb_base": 25,
        "data_sensitivity": 3.5,
        "target_scope": 1.5,
        "mcp_trust": 2.5
      }
    },
    "structural_gnn": {
      "score": 88,
      "weight": 0.45,
      "confidence": 0.78,
      "detected_patterns": ["tool_poisoning", "credential_access"]
    },
    "policy_violation": {
      "score": 0,
      "weight": 0.40,
      "matched_policies": []
    },
    "temporal_modifier": {
      "multiplier": 1.3,
      "components": {
        "rate_anomaly": 1.0,
        "sequence_novelty": 1.3,
        "time_anomaly": 1.0,
        "session_drift": 1.0
      }
    }
  }
}

Performance Targets

MetricTarget
Layer 1 (intrinsic) latency< 1ms
Layer 2 (GNN) latency< 25ms
Layer 3 (policy) latency< 5ms
Layer 4 (temporal) latency< 3ms
Total scoring (p95)< 50ms without LLM
LLM fallback latency< 3s
LLM fallback rate< 25% of events