{% extends "base.html" %} {% block title %}Case {{ case_id }} | ExtensionGuard{% endblock %} {% block content %}

Case {{ case_id }}

Extension

Name
{{ coc.extension.name or '—' }}
ID
{{ coc.extension.id or '—' }}
Manifest version
MV{{ coc.extension.manifest_version or '?' }}
Claimed version
{{ coc.extension.claimed_version or '—' }}
Preserved at
Operator
{{ coc.operator }} on {{ coc.operator_host }}
{% if triage %}

AI triage

{{ triage.risk_level|upper }} · Score: {{ triage.final_score or triage.ai_risk_score or triage.composite_score }}/100

{% if triage.mitre_techniques %}

MITRE: {% for t in triage.mitre_techniques %}{{ t }} {% endfor %}

{% endif %} {% if triage.iocs %}
{{ triage.iocs|length }} IOC(s)
{% endif %} {% if triage.analyst_narrative %}
Analyst narrative
{{ triage.analyst_narrative }}
{% endif %}
{% endif %}

Chain of custody

    {% for entry in coc.custody_log %}
  1. · {{ entry.action }} by {{ entry.actor }} on {{ entry.host }} {% if entry.notes %}

    {{ entry.notes }}

    {% endif %}
  2. {% endfor %}

Artifacts & integrity

{% for filename, h in coc.sha256.items() %} {% endfor %}
FileSHA-256
{{ filename }}{{ h }}
{% if playbook_md %}

Credential rotation playbook

Open playbook ({{ playbook_md|length }} chars)
{{ playbook_md }}
{% endif %}

Remediation decision

These actions don't directly modify Chrome policy — they enqueue a request that extguard-remediate --process-queue executes. Your name is recorded in the queue and the chain of custody.

{% endblock %}