Aller au contenu

Ingénieurs en détection

Vous venez d'écrire une analyse qui détecte une activité suspecte et vous aimeriez que votre centre d'opérations de sécurité (SOC) en bénéficie. Dans Howler, un événement intéressant est appelé un hit. Le terme alerte est réservé aux hits qui nécessitent un triage.

Pour créer un nouveau hit, produisez un objet JSON dans lequel vous avez normalisé les données de l'événement selon Elastic Common Schema (ECS). Nous procédons ainsi pour que les analystes de triage disposent d'un schéma unique à apprendre quelle que soit la source des alertes, ce qui leur facilitera grandement la tâche.

Champs spécifiques à Howler

Ensuite, vous devez remplir certains champs spécifiques à Howler :

Champs requis

Champ Description Notes
howler.analytic Le produit qui effectue la détection. Certains produits analytiques exécuteront plusieurs détections distinctes. Doit contenir uniquement des lettres et des espaces pour les meilleures pratiques

Champs générés automatiquement

Ces champs sont automatiquement remplis par Howler s'ils ne sont pas fournis :

Champ Description Comportement par défaut
howler.id Un identifiant unique pour le hit UUID généré automatiquement
howler.hash Un hash utilisé pour dédupliquer les hits Auto-généré à partir de l'analytique, de la détection et des données brutes si non fourni
event.created Horodatage de création de l'événement Défini à l'heure actuelle si non fourni

Champs recommandés

Bien que non strictement requis, ces champs sont fortement recommandés pour un triage efficace :

Champ Description Défaut Notes
howler.detection Un identifiant court et unique pour la détection spécifique Aucun Doit contenir uniquement des lettres et des espaces pour les meilleures pratiques
howler.outline.threat L'identifiant qui représente le mieux l'attaquant Aucun Peut être une IP, une adresse électronique, etc.
howler.outline.target L'identifiant qui représente le mieux la victime Aucun Une IP, un domaine, une adresse électronique, etc.
howler.outline.indicators Une liste libre d'indicateurs de compromission (IoC) Liste vide Généralement des IPs, des domaines et des hashes
howler.outline.summary Un résumé expliquant l'activité détectée Aucun Décrivez l'événement en supposant que la détection est correcte
howler.data Une liste de données d'événement brut avant normalisation Liste vide Facilite les enquêtes en dehors de Howler
howler.escalation Le niveau d'escalade du hit hit Valeurs valides : miss, hit, alert, evidence
howler.status Le statut actuel du hit open Valeurs valides : open, in-progress, on-hold, resolved
howler.scrutiny Niveau de scrutiny appliqué au hit unseen Valeurs valides : unseen, surveyed, scanned, inspected, investigated

Niveaux d'escalade

Howler utilise des niveaux d'escalade (howler.escalation) pour catégoriser les hits :

  • miss - L'événement est évalué comme n'étant pas lié à la détection (faux-positif).
  • hit - (par défaut) L'événement peut ne pas être très fiable sans contexte supplémentaire.
  • alert - L'événement doit être évalué par un analyste de triage.
  • evidence - L'événement a été évalué comme étant lié à la détection (vrai-positif).

Vous pouvez promouvoir certains hits en alertes immédiates au moment de la création si l'on s'attend à ce que tous les hits méritent d'être triés.

Une fois l'objet JSON complété, utilisez le client Howler pour créer un nouveau hit. Ce hit sera immédiatement disponible pour les analystes de triage à partir de l'interface utilisateur de Howler.

Exemple : Créer un hit

Tout d'abord, assurez-vous d'avoir installé le client Howler et un moyen de vous authentifier auprès de Howler (voir Authentification et connexion pour plus de détails).

from howler_client import get_client
from hashlib import sha256

# Se connecter à Howler
client = get_client("https://votre-instance-howler.com", apikey=(USERNAME, APIKEY))

# Créer un hit
hit = {
    "howler": {
        "analytic": "Détecteur de connexions suspectes",
        "detection": "Pic de connexions échouées",
        "hash": sha256(b"user123-2024-10-22-failed-logins").hexdigest(),
        "escalation": "alert",  # Promouvoir en alerte pour triage
        "outline": {
            "threat": "203.0.113.42",
            "target": "user123@example.com",
            "indicators": ["203.0.113.42"],
            "summary": "Le compte utilisateur a subi 15 tentatives de connexion échouées depuis une seule IP en 5 minutes",
        },
        "data": [{"raw_event": "données_log_originales_ici"}],
    },
    "source": {"ip": "203.0.113.42"},
    "user": {"email": "user123@example.com"},
    "event": {"category": ["authentication"], "outcome": "failure"},
}

response = client.hit.create(hit)
print(f"Hit créé : {response['valid'][0]['id']}")

Pour plus d'exemples et une utilisation détaillée, consultez le Guide de développement client.

Page d'analyse

La section Analytics de l'interface utilisateur de Howler fournit une page de support pour les analyses et les détections individuelles. Elle contient des informations utiles à la fois pour l'auteur d'une analyse ou d'une détection et pour les analystes de triage qui enquêtent sur les hits.

Vue d'ensemble

Ici, vous êtes encouragé à fournir de la documentation de votre analytique en Markdown. Celle-ci devrait fournir plus de détails sur le fonctionnement de l'analyse ou de la détection, sur ce qu'elle recherche et sur la manière de valider les hits.

Des mesures sont automatiquement générées pour donner un aperçu des performances. Un taux de faux positifs très élevé peut être le signe que la détection doit être améliorée. En revanche, un taux élevé de vrais positifs peut justifier que les hits soient automatiquement promus au rang d'alertes.

Commentaires

Dans cet onglet, les utilisateurs peuvent laisser des commentaires sur une analyse ou une détection. Considérez ceci comme votre ligne de communication avec l'utilisateur final.

Commentaires sur les hits

À partir de cet onglet, vous pouvez consulter tous les commentaires laissés sur des hits spécifiques afin de mieux comprendre ce que les analystes de triage se signalent les uns aux autres.

Carnets de notes

Si vos analystes de triage ont fréquemment besoin d'enquêter sur des alertes en dehors de Howler, vous pouvez créer un lien vers un carnet de notes Jupyter. Cela signifie qu'un bouton apparaîtra dans l'interface utilisateur de Howler. Lorsqu'un utilisateur clique sur le bouton, il est dirigé vers JupyterHub avec le Notebook spécifié ouvert et le hit spécifique chargé, ce qui permet aux requêtes d'être pré-remplies avec des valeurs pertinentes.

Paramètres de triage

Configurez quelles options d'évaluation sont valides pour votre analytique. Par exemple, si votre analytique ne détecte que des activités malveillantes, vous pourriez limiter les évaluations à compromise, attempt ou mitigated - en excluant des options comme false-positive ou legitimate qui n'ont pas de sens pour votre logique de détection.

Cela aide à guider les analystes vers des évaluations appropriées et maintient la cohérence dans la façon dont les hits sont triés.

Documentation connexe

  • Guide de développement client - Guide complet sur l'utilisation du client Python Howler, y compris l'installation, l'authentification et les opérations avancées sur les hits
  • Elastic Common Schema (ECS) - Documentation officielle Elastic pour la référence des champs ECS et les directives
  • Référence du schéma Hit - Consultez le schéma complet des hits Howler dans votre instance Howler sous Aide → Schéma Hit
  • Documentation API - Documentation API interactive pour votre instance Howler (remplacez par votre URL réelle)