Communitygithub.com

building-incident-response-dashboard

Construit des tableaux de bord de réponse aux incidents en temps réel dans Splunk, Elastic, ou Grafana.

Qu'est-ce que building-incident-response-dashboard ?

Cette compétence permet aux équipes SOC et aux analystes de réponse aux incidents de créer des tableaux de bord dynamiques et en temps réel pour coordonner les investigations, suivre la progression de la remédiation et communiquer avec la direction. Elle prend en charge les plateformes SIEM courantes comme Splunk Dashboard Studio, Elastic Kibana, Grafana et Microsoft Sentinel Workbooks. Le workflow guide l'utilisateur à travers sept étapes : conception du layout du tableau de bord, suivi des systèmes affectés, surveillance des IOCs, chronologie des actions, métriques opérationnelles SOC, rapports exécutifs et automatisation via des recherches planifiées. L'outil est idéal pour les incidents actifs (ransomware, brèche de données, phishing), les revues post-incident, les briefings de direction et les audits de conformité.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/building-incident-response-dashboard

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Construction d'un tableau de bord de réponse aux incidents

Quand l'utiliser

Utilisez cette compétence lorsque :

  • Les équipes de réponse aux incidents ont besoin de tableaux de bord en temps réel pendant des incidents actifs pour la coordination et le suivi.
  • La direction du SOC a besoin de tableaux de bord opérationnels montrant l'état des incidents et la charge de travail des analystes.
  • Les revues post-incident nécessitent des chronologies visuelles et des évaluations d'impact.
  • Les briefings exécutifs exigent des métriques d'incidents de haut niveau et des analyses de tendances.

Ne pas utiliser pour les tableaux de bord de surveillance SOC quotidiens (utilisez Incident Review à la place) — les tableaux de bord de réponse aux incidents sont conçus pour la coordination d'incidents actifs et les rapports de gestion.

Prérequis

  • Plateforme SIEM (Splunk avec Dashboard Studio, Elastic Kibana ou Grafana)
  • Données d'événements notables et d'incidents dans le SIEM (index incident_review de Splunk ES)
  • Intégration d'un système de ticketing (ServiceNow, Jira) pour le suivi de la remédiation
  • Tables de recherche d'actifs et d'identités pour l'enrichissement contextuel
  • Accès à la publication de tableaux de bord pour la distribution à l'équipe SOC et à la direction

Workflow

Étape 1 : Concevoir la disposition du tableau de bord d'incident actif

Construisez un tableau de bord Splunk Dashboard Studio pour le suivi d'incident actif :

<dashboard version="2" theme="dark">
  <label>Tableau de bord de réponse aux incidents actifs</label>
  <description>Suivi en temps réel pour IR-2024-0450</description>

  <row>
    <panel>
      <title>Résumé de l'incident</title>
      <single>
        <search>
          <query>
| makeresults
| eval incident_id="IR-2024-0450",
       status="CONFINEMENT",
       severity="Critique",
       affected_hosts=7,
       contained_hosts=5,
       iocs_identified=23,
       hours_elapsed=round((now()-strptime("2024-03-15 14:00","%Y-%m-%d %H:%M"))/3600,1)
| table incident_id, status, severity, affected_hosts, contained_hosts, iocs_identified, hours_elapsed
          </query>
        </search>
      </single>
    </panel>
  </row>
</dashboard>

Étape 2 : Construire le panneau des systèmes affectés en temps réel

Suivez les systèmes affectés et leur statut de confinement :

| inputlookup ir_affected_systems.csv
| eval status_color = case(
    status="Confiné", "#2ecc71",
    status="Compromis", "#e74c3c",
    status="En cours d'investigation", "#f39c12",
    status="Récupéré", "#3498db",
    1=1, "#95a5a6"
  )
| stats count by status
| eval order = case(status="Compromis", 1, status="En cours d'investigation", 2,
                    status="Confiné", 3, status="Récupéré", 4)
| sort order
| table status, count

--- Table détaillée des hôtes
| inputlookup ir_affected_systems.csv
| lookup asset_lookup_by_cidr ip AS host_ip OUTPUT category, owner, priority
| table hostname, host_ip, category, owner, status, containment_time,
        compromise_vector, analyst_assigned
| sort status, hostname

Étape 3 : Construire le panneau de suivi des IOC

Surveillez la propagation des IOC dans l'environnement :

--- IOC identifiés pendant l'incident
index=* (src_ip IN ("185.234.218.50", "45.77.123.45") OR
         dest IN ("evil-c2.com", "malware-drop.com") OR
         file_hash IN ("a1b2c3d4...", "e5f6a7b8..."))
earliest="2024-03-14"
| stats count AS hits, dc(src_ip) AS unique_sources,
        dc(dest) AS unique_dests, latest(_time) AS last_seen
  by sourcetype
| sort - hits

--- Chronologie des IOC
index=* (src_ip IN ("185.234.218.50") OR dest="evil-c2.com")
earliest="2024-03-14"
| timechart span=1h count by sourcetype

--- Suivi de la découverte de nouveaux IOC
| inputlookup ir_ioc_list.csv
| stats count by ioc_type, source, discovery_time
| sort discovery_time
| table discovery_time, ioc_type, ioc_value, source, status

Étape 4 : Construire le panneau de chronologie de réponse

Créez une chronologie d'incident chronologique :

| inputlookup ir_timeline.csv
| sort _time
| eval phase = case(
    action_type="detection", "Détection",
    action_type="triage", "Triage",
    action_type="containment", "Confinement",
    action_type="eradication", "Éradication",
    action_type="recovery", "Récupération",
    1=1, "Autre"
  )
| eval phase_color = case(
    phase="Détection", "#e74c3c",
    phase="Triage", "#f39c12",
    phase="Confinement", "#e67e22",
    phase="Éradication", "#2ecc71",
    phase="Récupération", "#3498db"
  )
| table _time, phase, action, analyst, details

Exemple de données de chronologie :

_time,action_type,action,analyst,details
2024-03-15 14:00,detection,Alerte déclenchée - Beacon Cobalt Strike détecté,splunk_es,Événement notable NE-2024-08921
2024-03-15 14:12,triage,Alerte triée - confirmé vrai positif,analyst_jdoe,Score VT 52/72 sur le hash du beacon
2024-03-15 14:23,containment,Poste de travail WORKSTATION-042 isolé,analyst_jdoe,Isolement réseau CrowdStrike
2024-03-15 14:35,containment,Domaine C2 bloqué sur le pare-feu,analyst_msmith,Règle Palo Alto déployée
2024-03-15 15:00,eradication,Analyse IOC à l'échelle de l'entreprise lancée,analyst_jdoe,Recherche Splunk sur tous les index
2024-03-15 15:30,containment,3 hôtes supplémentaires identifiés et isolés,analyst_msmith,Mouvement latéral confirmé
2024-03-15 16:00,eradication,Malware supprimé de tous les hôtes affectés,analyst_tier3,Nettoyage CrowdStrike RTR
2024-03-15 18:00,recovery,Systèmes restaurés et surveillés,analyst_msmith,Période de surveillance de 72 heures démarrée

Étape 5 : Construire le tableau de bord des opérations SOC

Suivez les métriques globales de performance du SOC :

--- Volume d'incidents par sévérité (30 derniers jours)
index=notable earliest=-30d
| stats count by urgency
| eval order = case(urgency="critical", 1, urgency="high", 2, urgency="medium", 3,
                    urgency="low", 4, urgency="informational", 5)
| sort order

--- MTTD (Délai moyen de détection)
index=notable earliest=-30d status_label="Résolu*"
| eval mttd_minutes = round((time_of_first_event - orig_time) / 60, 1)
| stats avg(mttd_minutes) AS avg_mttd, median(mttd_minutes) AS med_mttd,
        perc95(mttd_minutes) AS p95_mttd

--- MTTR (Délai moyen de réponse/résolution)
index=notable earliest=-30d status_label="Résolu*"
| eval mttr_hours = round((status_end - _time) / 3600, 1)
| stats avg(mttr_hours) AS avg_mttr, median(mttr_hours) AS med_mttr by urgency

--- Répartition de la charge de travail des analystes
index=notable earliest=-7d
| stats count by owner
| sort - count

--- Répartition des statuts de clôture des alertes
index=notable earliest=-30d status_label IN ("Résolu*", "Fermé*")
| stats count by disposition
| eval percentage = round(count / sum(count) * 100, 1)
| sort - count

Étape 6 : Construire le tableau de bord des briefings exécutifs

Créez un tableau de bord de haut niveau pour la direction lors des incidents majeurs :

--- Panneau résumé exécutif
| makeresults
| eval metrics = "Impact métier : 1 serveur de fichiers hors ligne (service Finances), "
                ."Récupération estimée : 4 heures, "
                ."Risque de perte de données : Faible (sauvegardes vérifiées), "
                ."Impact client : Aucun, "
                ."Notification réglementaire : Non requise (aucune exposition de PII confirmée)"

--- Comparaison de tendances (ce mois vs mois précédent)
index=notable earliest=-60d
| eval period = if(_time > relative_time(now(), "-30d"), "Mois en cours", "Mois précédent")
| stats count by period, urgency
| chart sum(count) AS incidents by period, urgency

--- Principales catégories de menaces
index=notable earliest=-30d
| top rule_name limit=10
| table rule_name, count, percent

Étape 7 : Automatiser les mises à jour du tableau de bord

Utilisez des recherches planifiées Splunk pour maintenir les données du tableau de bord :

--- Recherche planifiée pour mettre à jour la table de recherche des systèmes affectés (s'exécute toutes les 5 minutes)
index=* (src_ip IN [| inputlookup ir_ioc_list.csv | search ioc_type="ip"
                    | fields ioc_value | rename ioc_value AS src_ip])
earliest=-1h
| stats latest(_time) AS last_seen, count AS event_count,
        values(sourcetype) AS data_sources by src_ip
| eval status = if(last_seen > relative_time(now(), "-15m"), "Actif", "Inactif")
| outputlookup ir_affected_systems_auto.csv

Concepts clés

TermeDéfinition
Connaissance de la situationCompréhension en temps réel de l'étendue de l'incident, des systèmes affectés et de la progression de la réponse
MTTDDélai moyen de détection — temps moyen entre l'apparition de la menace et la génération d'une alerte SOC
MTTRDélai moyen de réponse — temps moyen entre l'alerte et la résolution ou le confinement de l'incident
Taux de confinementPourcentage de systèmes affectés isolés avec succès par rapport au total des systèmes compromis
Diagramme de brûlureSuivi visuel des tâches d'investigation restantes au fil du temps pendant un incident
Briefing exécutifTableau de bord résumé non technique montrant l'impact métier, la chronologie et l'état de la récupération

Outils et systèmes

  • Splunk Dashboard Studio : Cadre de tableau de bord moderne avec visualisation par glisser-déposer et données en temps réel
  • Elastic Kibana Dashboard : Plateforme de visualisation avec Lens, Maps et Canvas pour les tableaux de bord de sécurité
  • Grafana : Plateforme de visualisation open-source prenant en charge plusieurs sources de données, dont Elasticsearch et Splunk
  • Microsoft Sentinel Workbooks : Cadre de tableau de bord natif Azure avec visualisation analytique basée sur Kusto
  • TheHive : Plateforme de réponse aux incidents open-source avec suivi de cas intégré et tableaux de bord de métriques

Scénarios courants

  • Incident ransomware actif : Tableau de bord montrant la propagation du chiffrement, l'état du confinement, la vérification des sauvegardes, la progression de la récupération
  • Investigation de brèche de données : Tableau de bord suivant les magasins de données affectés, le volume d'exfiltration, les exigences de notification
  • Réponse à une campagne de phishing : Tableau de bord montrant le nombre de destinataires, le taux de clics, l'exposition des identifiants, l'état de la remédiation
  • Rapport SOC mensuel : Tableau de bord de direction avec tendances des incidents, métriques MTTD/MTTR, performance des analystes
  • Audit de conformité : Tableau de bord démontrant la couverture de détection, la conformité aux SLA de réponse et les métriques de clôture des incidents

Format de sortie

TABLEAU DE BORD DE RÉPONSE AUX INCIDENTS — IR-2024-0450
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STATUT : PHASE DE CONFINEMENT (6h30m écoulées)

Systèmes affectés :          Progression du confinement :
  Compromis :   2            [==========----------] 71%
  Investigation : 1          5 des 7 systèmes confinés
  Confiné :     3
  Récupéré :     1

Résumé IOC :                 Chronologie de réponse :
  IPs :      4               14:00 — Alerte déclenchée
  Domaines :  2              14:12 — Confirmé malveillant
  Hashs :   3               14:23 — Premier hôte isolé
  URLs :     5              15:00 — Analyse d'entreprise démarrée
  Emails :   1              15:30 — 3 hôtes supplémentaires isolés

Métriques clés :
  MTTD :    12 minutes
  MTTC :    23 minutes (premier hôte)
  Analystes actifs : 3 (Niveau 2 : 2, Niveau 3 : 1)

Impact métier : FAIBLE — Serveur de fichiers des Finances hors ligne, aucun système orienté client affecté

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Skills associés