Consultation des évènements de sécurité
Description
Cette API permet de récupérer une quantité limitée de journaux d'accès dans une plage horaire définie, avec la possibilité d'appliquer des filtres optionnels.
Méthode : POST
URL : https://console.baleen.cloud/api/logs/waf-logs
Authentification
L'utilisateur doit être authentifié avec son token d'accès personnel.
Le namespace de Baleen doit être défini dans le cookie baleen-namespace
.
Format de la requête
Paramètres de la requête (Query Params)
Paramètre | Requis/Optionnel | Type | Description |
---|---|---|---|
start | optionnel | long | Le timestamp (en secondes) à partir duquel collecter les données. |
end | optionnel | long | Le timestamp (en secondes) jusqu'auquel collecter les données. |
size | optionnel | integer | Le nombre d'entrées de logs à récupérer (entre 1 et 100). |
page | optionnel | integer | Le numéro de la page des entrées de logs à récupérer. |
Paramètres du corps de la requête (Body Params)
filters (objet optionnel) : tableau définissant les filtres à appliquer aux logs WAF avec les paramètres suivants :
Paramètre | Type | Description |
---|---|---|
field | enum | Le champ ciblé pour filtrer les logs. Doit être "ruleId". |
operator | enum | L'opérateur utilisé pour filtrer les logs : "equals" pour récupérer les logs dont le champ spécifié est strictement égal à la valeur indiquée. |
value | string | La valeur à utiliser pour filtrer les logs. |
Format de la réponse
Requête réussie
Code : 200 OK
Objet transaction :
Cet objet rassemble des informations sur la menace identifiée par les règles OWASP.
Champ | Type | Description |
---|---|---|
clientIP | string |
|
clientPort | integer |
|
hostIP | string |
|
hostPort | integer |
|
messages | object[] |
|
producer | object |
|
request | object |
|
response | object |
|
serverId | string |
|
timeStamp | string |
|
uniqueId | string |
|
Description de l'objet messages :
Cet array explique pourquoi la requête est considérée comme une menace, avec une occurrence pour chaque règle OWASP déclenchée.
Champ | Type | Description |
---|---|---|
details | object |
|
message | string |
|
Description de l'objet details :
Cet objet fournit des détails précis sur la règle déclenchée (ID, sévérité) et la raison du déclenchement.
Champ | Type | Description |
---|---|---|
accuracy | string |
|
data | string |
|
file | string |
|
lineNumber | string |
|
match | string |
|
maturity | string |
|
reference | string |
|
rev | string |
|
ruleId | string |
|
severity | string |
|
tags | string[] |
|
ver | string |
|
Description de l'objet producer :
Cet objet donne des informations sur ModSecurity, le producteur du log WAF.
Champ | Type | Description |
---|---|---|
components | string[] |
|
connector | string |
|
modsecurity | string |
|
secrulesEngine | string |
|
Description de l'objet request :
Cet objet regroupe des informations sur la requête HTTP initiale.
Champ | Type | Description |
---|---|---|
headers | string[] |
|
httpVersion | number |
|
method | string |
|
uri | string |
|
Description de l'objet response :
Cet objet regroupe des informations sur la réponse HTTP.
Champ | Type | Description |
---|---|---|
headers | string[] |
|
httpCode | string |
|
Requête échouée
400 Bad Request
500 Internal Server Error
Exemple
L'exemple suivant montre un appel d'API récupérant les événements de sécurité créés après une requête ayant déclenché la règle 920320 entre le 25 avril 2023 à 15h et le 25 avril 2023 à 20h.
Requête :
POST https://console.baleen.cloud/api/logs/waf-logs?start=1682427600&end=1682445600&page=0&size=100
Corps de la requête :
{
"filters": [
{
"field": "ruleId",
"value": "920320",
"operator": "equals"
}
]
}
Réponse :
[
{
"transaction": {
"clientPort": 33150,
"request": {
"headers": {
"BLN-REQUEST-FATE-ACTION": "pass",
"x-request-id": "cbe396108b24cef402c1f2a63341ac73",
"clientipaddrwaf": "62.122.15.8",
...
},
"method": "GET",
"httpVersion": 1,
"uri": "/DisplayRwdHeader.mvc/0/0"
},
...
}
},
...
]