Threat Hub Events
Rate Limit
Assim como toda a API GoCache, as requisições são contabilizadas e limitadas a 30 requisições/minuto, se isso for ultrapassado você poderá ser penalizado com um bloqueio, para integrações que necessitem consumir eventos de forma massiva, sugerimos o uso do Log Streaming.
Listar Eventos
Lista os eventos de segurança relacionados aos domínios cadastrados na conta.
POST /v1/threat-hub/events
$ curl -i https://api.gocache.com.br/v1/threat-hub/events \
-X POST \
-H 'Content-Type: application/json' \
-H 'GoCache-Token: seu_token' \
--data-binary \
'{
"start_date": 1723556861,
"end_date": 1723555000,
"type": ["waf", "firewall"],
"action": ["challenge", "block"],
"country_code": ["BR", "US"],
"client_ip": ["192.168.10.2"],
"host": ["api.example.com.br"],
"domain": ["example.com.br"]
}'
const fetch = require('node-fetch');
const url = 'https://api.gocache.com.br/v1/threat-hub/events';
const token = 'seu_token';
const data = {
start_date: 1723556861,
end_date: 1723555000,
type: ['waf', 'firewall'],
action: ['challenge', 'block'],
country_code: ['BR', 'US'],
client_ip: ['192.168.10.2'],
host: ['api.example.com.br'],
domain: ['example.com.br']
};
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'GoCache-Token': token
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
console.log('Response:', data);
})
.catch(error => console.error('Erro:', error));
import requests
import json
url = 'https://api.gocache.com.br/v1/threat-hub/events'
token = 'seu_token'
data = {
"start_date": 1723556861,
"end_date": 1723555000,
"type": ["waf", "firewall"],
"action": ["challenge", "block"],
"country_code": ["BR", "US"],
"client_ip": ["192.168.10.2"],
"host": ["api.example.com.br"],
"domain": ["example.com.br"]
}
headers = {
'Content-Type': 'application/json',
'GoCache-Token': token
}
response = requests.post(url, headers=headers, data=json.dumps(data))
response_data = response.json()
print('Response:', response_data)
Parâmetros do body
Os parâmetros são utilizados para filtrar os eventos. Os parâmetros do tipo array terão o comportamento de 'ou'.
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
start_date | Number | Sim | Data de início da busca (em timestamp). |
end_date | Number | Sim | Data de término da busca (em timestamp). |
page | Number | Não | Número da página de resultados. Valor padrão: 0 |
limit | Number | Não | Limite de eventos retornados. Valor padrão: 100 |
type | Array | Não | Feature que gerou o evento. Valores permitidos: "bot-mitigation", "waf", "rate-limit", "firewall" |
action | Array | Não | Ação do evento. Valores permitidos: "challenge", "block" e "simulate". |
country_code | Array | Não | Países a serem incluídos na busca. Máximo de 10. |
client_ip | Array | Não | IP do evento. Máximo de 20. |
host | Array | Não | Hosts do evento. Máximo de 10. |
domain | Array | Não | Domínio do evento. Máximo de 10. |
id | Array | Não | ID do evento. Máximo de 10. |
Headers
Nome | Obrigatório | Descrição |
---|---|---|
GoCache-Token | Sim | Token de API da conta. |
Exemplo de Sucesso
HTTP/1.1 200 OK
{
"status_code": 1,
"response": {
"total": 3,
"pages": 10,
"current_page": 1,
"events": [
{
"host": "example.com.br",
"uri": "/example?q=1+1",
"action": "block",
"ip": "192.168.10.1",
"timestamp": 1546308000,
"country_code": "BR",
"type": "waf",
"method": "GET",
"referer": "https://seudominio.com.br/",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64; rv:93.0)",
"id": "5e3396c0afbca534e24005",
"alerts": [
{
"match": "is (",
"msg": "SQL Injection attempt",
"id": "41008"
}
]
}
]
}
}
Response: {
"status_code": 1,
"response": {
"total": 3,
"pages": 10,
"current_page": 1,
"events": [
{
"host": "example.com.br",
"uri": "/example?q=1+1",
"action": "block",
"ip": "192.168.10.1",
"timestamp": 1546308000,
"country_code": "BR",
"type": "waf",
"method": "GET",
"referer": "https://seudominio.com.br/",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64; rv:93.0)",
"id": "5e3396c0afbca534e24005",
"alerts": [
{
"match": "is (",
"msg": "SQL Injection attempt",
"id": "41008"
}
]
}
]
}
}
Response: {
"status_code": 1,
"response": {
"total": 3,
"pages": 10,
"current_page": 1,
"events": [
{
"host": "example.com.br",
"uri": "/example?q=1+1",
"action": "block",
"ip": "192.168.10.1",
"timestamp": 1546308000,
"country_code": "BR",
"type": "waf",
"method": "GET",
"referer": "https://seudominio.com.br/",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64; rv:93.0)",
"id": "5e3396c0afbca534e24005",
"alerts": [
{
"match": "is (",
"msg": "SQL Injection attempt",
"id": "41008"
}
]
}
]
}
}