Premiers pas avec l’API QRadar XDR en utilisant python et Alienvault OTX

IBM QRadar XDR est une plateforme de gestion des informations et des événements de sécurité (SIEM) utilisée pour surveiller la sécurité du réseau d’une organisation et répondre aux incidents de sécurité aussi rapidement et complètement que possible. Bien que QRadar soit déjà incroyablement puissant et personnalisable, il y a plusieurs raisons pour lesquelles nous pourrions vouloir l’améliorer avec des scripts Python en utilisant son API complète.

Démarrer avec l’API QRadar

Voyons un exemple de la manière dont vous pouvez utiliser l’API QRadar pour obtenir différentes informations de sa base de données (ArielDB) à l’aide de Python. La première chose dont nous avons besoin est un jeton, qui est créé à partir de l’interface Admin – > Authorised Services.

Générer du code python pour l’API QRadar

Commençons par quelque chose de très simple, se connecter et récupérer les 100 derniers événements détectés par la plateforme.

import requests
import json

# Configura las credenciales y la URL del servidor QRadar
qradar_host = 'https://<your_qradar_host>'
api_token = '<your_api_token>'

# Define la URL de la API para obtener los eventos
url = f'{qradar_host}/api/ariel/searches'

# Define los encabezados de la solicitud
headers = {
'SEC': api_token,
'Content-Type': 'application/json',
'Accept': 'application/json'
}

# Define la consulta AQL (Ariel Query Language) para obtener los últimos 100 eventos
query_data = {
'query_expression': 'SELECT * FROM events LAST 100'
}

# Realiza la solicitud a la API de QRadar
response = requests.post(url, headers=headers, data=json.dumps(query_data))

# Verifica que la solicitud fue exitosa
if response.status_code == 201:
print("Solicitud de búsqueda enviada correctamente.")
search_id = response.json()['search_id']
else:
print("Error al enviar la solicitud de búsqueda:", response.content)

Dans cet exemple, remplacez <your_qradar_host> par l’adresse de votre serveur QRadar et <your_api_token> par le jeton API que vous avez obtenu de votre instance QRadar.

Ce code invite QRadar à effectuer une recherche sur les 100 derniers événements. La réponse à cette demande de recherche comprendra un “search_id” que vous pourrez utiliser pour récupérer les résultats de la recherche une fois qu’ils seront disponibles. Vous pouvez remplacer cette requête par n’importe laquelle des requêtes disponibles dans le
guide fourni par IBM
sur la manière de tirer le meilleur parti du langage de requête Ariel de QRadar.

Détection d’IP malveillantes dans QRadar à l’aide des sources ouvertes AlienVault OTX

Alors que dans QRadar nous avons X-Force comme module prédéfini pour effectuer des recherches d’IP malveillantes et les intégrer dans nos règles, pour une multitude de raisons (y compris la fin du support / paiement SWMA à IBM) nous pouvons vouloir utiliser des sources ouvertes pour effectuer ces types de fonctions. Un exemple assez courant que nous abordons dans nos cours et ateliers consiste à maintenir une série de structures de données mises à jour avec des adresses IP “malveillantes” obtenues par le biais de sources de données ouvertes sur la cybersécurité.

En utilisant l’API QRadar, nous pouvons créer un code python pour créer une règle qui met constamment à jour un ensemble de références que nous utiliserons plus tard dans d’autres règles.

Pour réaliser ce que vous demandez, vous devez le diviser en deux étapes.

  1. Tout d’abord, vous devez disposer d’une source ouverte de renseignements sur la sécurité qui fournit une liste d’adresses IP malveillantes. Un exemple couramment utilisé est la liste d’adresses IP malveillantes AlienVault Open Threat Exchange (OTX) que nous venons de mentionner.
  2. Ensuite, nous utiliserons l’API QRadar pour mettre à jour un ensemble de référence avec cette liste d’adresses IP.

La programmation en Python est très simple :

Tout d’abord, téléchargez les adresses IP malveillantes à partir de la source ouverte de renseignements sur la sécurité (dans ce cas, AlienVault OTX) :

import requests
import json

otx_api_key = '<your_otx_api_key>'
otx_url = 'https://otx.alienvault.com:443/api/v1/indicators/export'

headers = {
'X-OTX-API-KEY': otx_api_key,
}

response = requests.get(otx_url, headers=headers)

if response.status_code == 200:
malicious_ips = response.json()
else:
print("Error al obtener las IPs maliciosas:", response.content)

Nous utilisons ensuite l’API QRadar pour mettre à jour un ensemble de références avec ces IP :

qradar_host = 'https://<your_qradar_host>'
api_token = '<your_api_token>'
reference_set_name = '<your_reference_set_name>'

url = f'{qradar_host}/api/reference_data/sets/{reference_set_name}'

headers = {
'SEC': api_token,
'Content-Type': 'application/json',
'Accept': 'application/json'
}

for ip in malicious_ips:
data = {'value': ip}
response = requests.post(url, headers=headers, data=json.dumps(data))

if response.status_code != 201:
print(f"Error al agregar la IP {ip} al conjunto de referencia:", response.content)

La prochaine et dernière étape consiste à utiliser ce jeu de référence dans les règles dont nous avons besoin – facile !

Vous souhaitez en savoir plus sur IBM QRadar XDR ?

Consultez nos services de vente, déploiement, conseilet formation officielle.

sixe

Compartir
Publicado por
sixe

Entradas recientes

SIXE : Ton partenaire spécialisé dans LinuxONE 5

Peux-tu imaginer ce que ce serait d'avoir une infrastructure puissante sans payer de licences propriétaires…

2 weeks hace

IBM i 7.6 vs Ubuntu : analyse pour choisir (ou combiner) judicieusement

Lorsque nous parlons des serveurs IBM Power, de nombreuses décisions semblent être un combat entre…

2 months hace

IBM i 7.6 | Tout ce que tu dois savoir sur la dernière version du système d’exploitation d’IBM

IBM i 7.6 sera disponible le 18 avril 2025. IBM i est la dernière évolution…

2 months hace

Webinaires IBM Power 2025 : apprends gratuitement avec des experts

Peux-tu imaginer trouver des solutions à tes problèmes Linux, AIX, IBM i, etc... tout en…

3 months hace

Comment mettre en place une architecture ML sans échouer dans sa tentative.

📌 Tu t'intéresses à l'automatisation, à l'IA, etc. Tu es au bon endroit. Chez SIXE,…

3 months hace

IBM Power11 : ce que nous savons jusqu’à présent

Poste constamment mis à jour (basé exclusivement sur les opinions et les attentes de SIXE).…

4 months hace