Passa al contenuto principale

Regole

Recupero di tutte le regole

Richiesta

Definizione

GET /api/v1/rules
  • Authorization richiesto

    Token di autenticazione con privilegi di lettura per la risorsa.

    Bearer {token}

Parametri query string

ParametroTipoRichiestoDescrizione
paginatebooleanSiIndica se il risultato debba essere paginato.
pageintegerSi se paginate è trueIndice della pagina.
page_sizeintegerSi se paginate è trueNumero di elementi visualizzati per pagina.
idstringNoFiltra i risultati il cui ID corrisponde alla stringa inserita.
id_listarray<string>NoFiltra i risultati il cui ID corrisponde a uno degli elementi della lista.
kindstringNoFiltra i risultati il cui kind corrisponde alla stringa inserita.
patternstringNoFiltra i risultati relativi al pattern inserito.
rq_hoststringNoFiltra i risultati relativi all'Host inserito.
rq_host_listarray<string>NoFiltra i risultati relativi alla lista di Host inserita.
rq_host_searchstringNoFiltra i risultati il cui Host corrisponde interamente o parzialmente alla stringa inserita.
targetstringNoFiltra i risultati relativi al target inserito.
target_listarray<string>NoFiltra i risultati relativi alla lista di target inserita.
target_searchstringNoFiltra i risultati il cui target corrisponde interamente o parzialmente alla stringa inserita.
actionstringNoFiltra i risultati relativi all'azione inserita.
action_listarray<string>NoFiltra i risultati relativi alla lista di azioni inserita.
not_action_listarray<string>NoFiltra i risultati la cui azione non corrisponde a nessuna di quelle contenute nella lista inserita.
network_onlybooleanNoSe true, filtra le regole di rete.
alert_idstringNoFiltra i risultati relativi all'alert di cui è stato inserito l'ID.
alert_id_listarray<string>NoFiltra i risultati relativi a uno degli alert (indicati con il loro ID) nella lista inserita.
attack_codestringNoFiltra i risultati relativi all'attack code inserito.
attack_code_listarray<string>NoFiltra i risultati relativi alla lista di attack code inserita.
timestampintegerNoFiltra i risultati relativi al timestamp inserito.
timestamp_startintegerNoFiltra i risultati la cui creazione è avvenuta dopo la data inserita.
timestamp_endintegerNoFiltra i risultati la cui creazione è avvenuta prima della data inserita.
usernamestringNoFiltra i risultati il cui nome utente di chi ha creato la regola corrisponde alla stringa inserita.
username_listarray<string>NoFiltra i risultati il cui nome utente di chi ha creato la regola corrisponde a uno degli elementi della lista.
username_searchstringNoFiltra i risultati il cui nome utente di chi ha creato la regola corrisponde interamente o parzialmente alla stringa inserita.

Risposta

Codici di stato

Codice di statoMessaggio
200"List of rules"
400"Error with pagination fields"
403"Forbidden"

Corpo

  • data.rules.action string

    Azione definita nella regola.

  • data.rules.attack_category string

    Categoria di attacco.

  • data.rules.attack_code string

    Codice identificativo della tipologia di attacco.

  • data.rules.attack_name string

    Tipologia di attacco.

  • data.rules.case_sensitive boolean

    Indica se il match della regola debba essere case sensitive.

  • data.rules.id string

    Codice identificativo della regola.

  • data.rules.alert_id string

    Codice identificativo dell'alert a cui la regola fa riferimento.

  • data.rules.deleted boolean

    Indica se la regola è stata eliminata.

  • data.rules.rq_host string

    Header Host indicato nella richiesta.

  • data.rules.target string

    Campo della richiesta sul quale la regola dovrà intervenire.

  • data.rules.timestamp integer

    Data e ora in formato UNIX (in microsecondi) in cui la regola è stata creata.

  • data.rules.username string

    Nome utente di chi ha creato la regola.

  • data.rules.description string

    Descrizione della regola.

  • data.rules.duration integer

    Durata della regola a partire dallo start_time.

  • data.rules.enabled boolean

    Indica se la regola è attiva.

  • data.rules.expression object

    Oggetto che indica le direttive di matching della regola.

  • data.rules.kind string

    Tipologia di regola.

  • data.rules.loaded string

    Indica se la regola è stata caricata sul firewall.

  • data.rules.matching_method string

    Indica come il valore dell'expression debba essere confrontato con il target.

  • data.rules.network_only boolean

    Se true, definisce una regola di rete.

  • data.rules.pattern string

    Pattern bloccato dalla regola se associata ad un alert.

  • data.rules.priority string

    Priorità con cui la regola viene attivata rispetto alle altre.

  • data.rules.rq_host string

    Header Host associato alla regola.

  • data.rules.spec_values object

    Specifiche sul contesto della regola se associata ad un alert.

  • data.rules.start_time integer

    In caso di regola di rete, data e ora di attivazione della regola in formato timestamp UNIX (microsecondi).

Recupero di una specifica regola

Richiesta

Definizione

GET /api/v1/rules/{rule_id}

Header

  • Authorization richiesto

    Token di autenticazione con privilegi di lettura per la risorsa.

    Bearer {token}

Risposta

Codici di stato

Codice di statoMessaggio
200"Rule retrieved."
400"Error retrieving rule"
400"Error with pagination fields"
403"Forbidden"

Corpo

{
"data": {
"rule": {
"action": "deny",
"alert_id": null,
"attack_category": null,
"attack_code": null,
"attack_name": null,
"case_sensitive": true,
"deleted": false,
"description": null,
"duration": null,
"enabled": true,
"expression": {
"type": "values",
"values": [
"A=0"
]
},
"id": "CxxQnxxx£Cx=",
"kind": "negative",
"loaded": "off",
"matching_method": "full",
"network_only": false,
"pattern": null,
"priority": "1",
"rq_host": "www.xxxxxxxxx-xxx.it",
"spec_values": {
"path": "any",
"request:Host": [
"www.xxxxxxx-xxx.it"
]
},
"start_time": null,
"target": "parameter_key",
"timestamp": 10,
"username": "admin"
}
},
"message": "Rule retrieved",
"status": "ok"
}

Creazione di una nuova regola

Richiesta

Definizione

POST /api/v1/rules

Header

  • Authorization richiesto

    Token di autenticazione con privilegi di lettura per la risorsa.

    Bearer {token}
  • Content-Type richiesto

    application/json

Corpo della richiesta

{
"rules": [
{
"action": "deny",
"description": "Negative rule",
"enabled": true,
"expression": {
"type": "values",
"values": [
"A=0"
]
},
"kind": "negative",
"matching_method": "substring",
"priority": "100",
"rq_host": "www.xxxxxxxx-xxx.it",
"spec_values": {
"path": "any",
"request:Host": [
"www.xxxxxxxx-xxx.it"
]
},
"target": "parameter_key"
}
]
}

Risposta

Codici di stato

Codice di statoMessaggio
200"Rules created"
400"Error creating rules"
403"Forbidden"

Corpo

{
"data": {
"rule_ids": {
"new_rule_ids": [
"x2TjxxxiJ2xxxVE0Ykkxxxxrvm0iVxxxJmS0fkxxxT+4g704DxxxxxYEGxxxxPxY"
],
"upd_rule_ids": []
}
},
"message": "Rules created",
"status": "ok"
}

Modifica di una regola specifica

Richiesta

Definizione

PUT /api/v1/rules/{rule_id}

Header

  • Authorization richiesto

    Token di autenticazione con privilegi di lettura per la risorsa.

    Bearer {token}
  • Content-Type richiesto

    application/json

Corpo della richiesta

{
"attrs": {
"action": "do_nothing",
"description": "New description",
"duration": 500,
"enabled": "false",
"priority": "1000",
"start_time": 1669038092678996
}
}

Risposta

Codici di stato

Codice di statoMessaggio
200"Rules updated"
400"Error updating the rule"
403"Forbidden"

Corpo

{
"data": {
"rule_ids": [
"x2TjxxxiJ2xxxVE0Ykkxxxxrvm0iVxxxJmS0fkxxxT+4g704DxxxxxYEGxxxxPxY"
]
},
"message": "Rules updated",
"status": "ok"
}

Eliminazione di più regole

Richiesta

Definizione

DELETE /api/v1/rules

Header

  • Authorization richiesto

    Token di autenticazione con privilegi di lettura per la risorsa.

    Bearer {token}
  • Content-Type richiesto

    application/json

Corpo della richiesta

{
"rule_ids": [
"x2TjxxxiJ2xxxVE0Ykkxxxxrvm0iVxxxJmS0fkxxxT+4g704DxxxxxYEGxxxxPxY"
]
}

Risposta

Codici di stato

Codice di statoMessaggio
200"Rules deleted"
400"Error deleting rules."
403"Forbidden"

Corpo

{
"data": {
"rule_ids": [
"x2TjxxxiJ2xxxVE0Ykkxxxxrvm0iVxxxJmS0fkxxxT+4g704DxxxxxYEGxxxxPxY"
]
},
"message": "Rules deleted",
"status": "ok"
}