Événements menaçants 3rd Intégration des partis
Événements de menace Intégration de 3rd
Introduction :
IBM Security Verify offre des fonctionnalités complètes de détection et de correction des menaces liées à l'identité (ITDR) qui permettent d'identifier les comportements de connexion anormaux et les modèles de menaces qui indiquent des attaques afin de générer des événements de menace. L'administrateur peut examiner ces événements dans des rapports sur les menaces. En outre, l'administrateur peut configurer des règles pour des actions de remédiation proactives afin de remédier au trafic suspect, par exemple en bloquant le trafic provenant d'adresses IP signalées comme suspectes dans les alertes critiques. Ce document traite de l'intégration des événements liés aux menaces dans des outils externes tels que SIEM par le biais de webhooks de notification. Avec ces webhooks de notification, l'administrateur peut définir plusieurs webhooks pour différents outils. Chaque webhook peut contenir plusieurs clauses pour filtrer les événements.
À titre d'exemple, Slack a été utilisé comme outil externe pour montrer comment configurer les webhooks de notification afin d'envoyer les événements de menace à des outils externes. De même, ces webhooks de notification peuvent être utilisés pour l'intégration avec PagerDuty ou d'autres outils externes.
Configurer les Webhooks de notification :
- Connectez-vous à votre locataire avec des privilèges d'administrateur.
- Allez dans votre profil et "passez en mode administrateur".
- Allez dans Intégrations -> Notification Webhooks et cliquez sur
Create Webhook
pour créer un webhook de notification.

- Fournir un nom pour le webhook de notification et les détails de contact. L'exemple suivant montre l'intégration de Slack par le biais de webhooks de notification en utilisant des fonctions cloud.

- Indiquer le point de contact externe qui reçoit l'événement de menace. Fournir le point de terminaison des fonctions en nuage qui reçoit l'événement de menace en tant que charge utile. La fonction "cloud" contient un code permettant de traiter les événements de menace dans le format requis pour Slack et d'envoyer l'alerte Slack.

- Choisissez le type d'authentification compatible avec votre terminal externe et fournissez les détails.
- Ajoutez les en-têtes requis dans la section des en-têtes personnalisés.
- Les lettres mortes peuvent être activées pour réessayer d'envoyer l'événement de menace si le point de terminaison externe n'est pas démarré.
- Cliquez sur
Next
. - Certains événements prédéfinis peuvent être activés directement pour notification.
- Pour envoyer des événements de menace, cliquez sur
Add custom event
.

- Donnez un nom et une description à l'événement.

- Sous Intérêts, fournir les adresses
Event key property = event_type
etField value = threat
pour obtenir tous les événements de menace par le biais de notifications.

- Des événements de menace spécifiques peuvent être filtrés en ajoutant des clauses supplémentaires.

- Cliquez sur
Add
pour créer un filtre pour le webhook de notification.

- Il est possible d'ajouter d'autres événements au même webhook en ajoutant plusieurs événements personnalisés.

- Cliquez sur "Créer" pour créer le webhook de notification.
- En haut à droite, vous trouverez l'option permettant de tester la connexion à un point de terminaison externe.

- Appuyez sur
Send Test
pour vérifier la connexion au point d'extrémité externe.

La création du webhook est réussie.
Création d'une fonction "cloud" :
- Les fonctions du nuage peuvent être créées à partir de https://cloud.ibm.com/functions/.
- Connectez-vous au cloud IBM ou au lien précédent en utilisant vos identifiants cloud IBM.
- Pour trouver des fonctions cloud à partir de la page d'accueil IBM cloud, recherchez
functions
dans la barre de recherche. - Pour créer une nouvelle fonction de nuage, appuyez sur le bouton
Start Creating
.

- Cliquez sur
Trigger
pour créer une charge utile de réception d'événement de menace.

- Cliquez sur
Custom Trigger
pour créer un point de terminaison public qui recevra la charge utile de l'événement de menace via une requête HTTP.

- Fournir un nom et une description du déclencheur.

- Le déclencheur est créé. Les points de terminaison et l'exemple de requête curl se trouvent dans la section Points de terminaison.


- Pour activer l'envoi d'alertes à Slack, allez dans les actions connectées et cliquez sur
Add
. - Pour créer une action, sélectionnez l'onglet
Create New
et indiquez le nom de l'action et sa durée d'exécution. Sélectionnez Python comme moteur d'exécution. Cliquez ensuite surCreate & Add
. Si vous avez déjà créé une action, vous pouvez la sélectionner sous l'ongletSelect Existing
.

- Sélectionnez l'action créée et écrivez le code pour envoyer des alertes à Slack. Un exemple de code est fourni à titre de référence.
import sys
import requests
import json
def main(dict):
print(dict)
if "test" in dict:
slack_payload = {"text":str(dict)}
else:
slack_payload = {"text":"Alert from notification webhook",
"blocks":[
{
"type": "header",
"text": {
"type": "plain_text",
"text": f"{dict['data']['rule_name']}"
}
},
{
"type": "divider"
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "*" + dict['data']['summary'].replace('[', '`[', 1) + "`*"
}
]
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Start Time:* " + "`" + dict['data']['start_time'] + "`"
},
{
"type": "mrkdwn",
"text": "*End Time:* " + "`" + dict['data']['end_time'] + "`"
},
{
"type": "mrkdwn",
"text": "*Anomalous Event Count*: " + str(dict['data']['anomalous_event_count'])
},
{
"type": "mrkdwn",
"text": "*Severity*: " + dict['data']['severity']
}
]
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Alert Details:*\n"
},
"fields": [
{
"type": "mrkdwn",
"text": "*Top 5 tenants:*\n" + "```" + str(dict['tenantname']) + "```"
}
]
},
{
"type": "divider"
}
]
}
url = "<Provide Slack Webhook URL>"
headers = {"Content-type": "application/json"}
payload = {"text": "Received this message from cloud functions"}
response = requests.request('POST', url,headers = headers, data=json.dumps(slack_payload))
print(response.status_code, response.text)
if response.status_code == 200:
return {"message":"Succefully sent the alert to slack"}
return json.dumps({"status_code": 200, "message": "Received this message from cloud functions"})
- Les journaux d'activation des fonctions de nuage sont disponibles à l'adresse
Activation Dashboard
sur la page principale des fonctions de nuage. - Le point de terminaison de la fonction cloud est prêt à recevoir des requêtes HTTP provenant de webhooks de notification et peut envoyer des alertes à Slack.
- L'exemple d'alerte Slack ressemble à l'image suivante lorsque des événements de menace sont générés.

- De même, un code python peut être écrit pour envoyer des événements de menace à PagerDuty ou à tout autre outil.
- Pour plus d'informations sur les fonctions du nuage, reportez-vous à la page de documentation https://cloud.ibm.com/docs/openwhisk?topic=openwhisk-getting-started
Priti Patil & M Krishnakant Achary, IBM Security
Updated about 1 month ago