Tenable Security Center

Versione integrazione: 15.0

Integra Tenable Security Center con Google Security Operations

Per istruzioni dettagliate su come configurare un'integrazione in Google SecOps, vedi Configurare le integrazioni.

Input di integrazione

Per configurare l'integrazione, utilizza i seguenti parametri:

Parametri
Server Address Obbligatorio

L'indirizzo del server Tenable Security Center da utilizzare nell'integrazione.

Username Obbligatorio

Nome utente per accedere al server Tenable Security Center.

Password Obbligatorio

Password per accedere al server Tenable Security Center.

Verify SSL Optional

Se selezionata, verifica che il certificato SSL per la connessione al server Tenable sia valido.

Selezionata per impostazione predefinita.

Azioni

Aggiungere un asset elenco IP-IP

Aggiungi un asset elenco IP a IP in Tenable Security Center.

Parametri

Nome visualizzato del parametro Tipo Valore predefinito È obbligatorio Descrizione
Nome risorsa Stringa N/D Specifica il nome dell'asset elenco IP a cui vuoi aggiungere nuovi IP.

Pubblica su

Questa azione viene eseguita sull'entità Indirizzo IP.

Risultati dell'azione

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
{
    "type": "regular",
    "response": {
        "id": "41",
        "name": "api_test_5",
        "type": "static",
        "description": "",
        "tags": "qweqwe",
        "context": "",
        "status": "0",
        "createdTime": "1606129689",
        "modifiedTime": "1606129689",
        "ioSyncStatus": "Not Synced",
        "ioFirstSyncTime": "-1",
        "ioLastSyncSuccess": "-1",
        "ioLastSyncFailure": "-1",
        "ioSyncErrorDetails": null,
        "typeFields": {
            "definedIPs": "203.0.113.1,203.0.113.10"
        },
        "repositories": [
            {
                "ipCount": "-1",
                "repository": {
                    "id": "1",
                    "name": "Example-Repository",
                    "description": ""
                }
            }
        ],
        "ipCount": -1,
        "groups": [],
        "assetDataFields": [],
        "canUse": "true",
        "canManage": "true",
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "targetGroup": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "template": {
            "id": -1,
            "name": "",
            "description": ""
        }
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606129688
}
Bacheca casi
Tipo di risultato Valore/Descrizione Tipo
Messaggio di output*

L'azione non deve non riuscire né interrompere l'esecuzione di un playbook:
Se il codice statico 200(is_success = true): print "Successfully added the following IPs to the IP List Asset {0} in Tenable Security Center:\n{1}".format(name, entity.identifier)

Se non sono presenti entità IP: non sono stati aggiunti indirizzi IP all'asset elenco IP {0}.format(name)

L'azione deve non riuscire e interrompere l'esecuzione di un playbook:
se si verifica un errore irreversibile, ad esempio credenziali errate, nessuna connessione al server, altro: stampa "Errore durante l'esecuzione dell'azione "Aggiungi IP all'asset elenco IP". Motivo: {0}''.format(error.Stacktrace)


Se l'asset non viene trovato: stampa "Errore durante l'esecuzione dell'azione "Aggiungi IP all'asset Elenco IP". Motivo: l'asset {0} non è stato trovato in Tenable Security Center. ''.format(error.Stacktrace)

Se non è codice statico 200 (is_success = false): stampa "Errore durante l'esecuzione dell'azione "Aggiungi IP all'asset Elenco IP". Motivo: {0}''.format(error_msg)

Generale

Crea asset elenco IP

Crea un asset elenco IP in Tenable Security Center. Richiede almeno un'entità IP per l'esecuzione corretta.

Parametri

Nome visualizzato del parametro Tipo Valore predefinito È obbligatorio Descrizione
Nome Stringa N/D Specifica il nome della risorsa elenco IP.
Descrizione Stringa N/D No Specifica la descrizione dell'asset elenco IP.
Tag Stringa N/D No Specifica il tag dell'asset elenco IP.

Pubblica su

Questa azione viene eseguita sull'entità Indirizzo IP.

Risultati dell'azione

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
{
    "type": "regular",
    "response": {
        "id": "41",
        "name": "api_test_5",
        "type": "static",
        "description": "",
        "tags": "qweqwe",
        "context": "",
        "status": "0",
        "createdTime": "1606129689",
        "modifiedTime": "1606129689",
        "ioSyncStatus": "Not Synced",
        "ioFirstSyncTime": "-1",
        "ioLastSyncSuccess": "-1",
        "ioLastSyncFailure": "-1",
        "ioSyncErrorDetails": null,
        "typeFields": {
            "definedIPs": "203.0.113.1,203.0.113.10"
        },
        "repositories": [
            {
                "ipCount": "-1",
                "repository": {
                    "id": "1",
                    "name": "Example-Repository",
                    "description": ""
                }
            }
        ],
        "ipCount": -1,
        "groups": [],
        "assetDataFields": [],
        "canUse": "true",
        "canManage": "true",
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "targetGroup": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "template": {
            "id": -1,
            "name": "",
            "description": ""
        }
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606129688
}
Bacheca casi
Tipo di risultato Valore/Descrizione Tipo
Messaggio di output*

L'azione non deve non riuscire né interrompere l'esecuzione di un playbook:
Se il codice statico 200(is_success = true): print "Successfully created new IP List Asset {0} with the following IPs in Tenable Security Center:\n{1}".format(name, entity.identifier)

Se non sono presenti entità IP, stampa "Per creare un asset elenco IP deve essere disponibile almeno un'entità IP".


L'azione deve non riuscire e interrompere l'esecuzione di un playbook:
se si verifica un errore irreversibile, ad esempio credenziali errate, nessuna connessione al server, altro: stampa "Error executing action "Create IP List Asset". Motivo: {0}''.format(error.Stacktrace)

Se non è codice statico 200 (is_success = false): stampa "Error executing action "Create IP List Asset". Motivo: {0}''.format(error_msg)

Generale

Arricchisci IP

Ottieni informazioni sugli indirizzi IP e arricchiscile.

Parametri

Parametro Tipo Valore predefinito Descrizione
Nome repository Stringa N/D Il nome del repository.

Pubblica su

Questa azione viene eseguita sull'entità Indirizzo IP.

Risultati dell'azione

Arricchimento delle entità
Nome campo di arricchimento Logica: quando applicarla
macAddress Restituisce se esiste nel risultato JSON
severityLow Restituisce se esiste nel risultato JSON
link Restituisce se esiste nel risultato JSON
ip Restituisce se esiste nel risultato JSON
ultima scansione Restituisce se esiste nel risultato JSON
severityCritical Restituisce se esiste nel risultato JSON
totale Restituisce se esiste nel risultato JSON
severityAll Restituisce se esiste nel risultato JSON
mcafeeGUID Restituisce se esiste nel risultato JSON
policyName Restituisce se esiste nel risultato JSON
uuid Restituisce se esiste nel risultato JSON
lastAuthRun Restituisce se esiste nel risultato JSON
severityInfo Restituisce se esiste nel risultato JSON
osCPE Restituisce se esiste nel risultato JSON
unicità Restituisce se esiste nel risultato JSON
dnsName Restituisce se esiste nel risultato JSON
repository Restituisce se esiste nel risultato JSON
ip Restituisce se esiste nel risultato JSON
descrizione Restituisce se esiste nel risultato JSON
nome Restituisce se esiste nel risultato JSON
lastUnauthRun Restituisce se esiste nel risultato JSON
biosGUID Restituisce se esiste nel risultato JSON
tpmID Restituisce se esiste nel risultato JSON
punteggio Restituisce se esiste nel risultato JSON
hasPassive Restituisce se esiste nel risultato JSON
pluginSet Restituisce se esiste nel risultato JSON
hasCompliance Restituisce se esiste nel risultato JSON
severityHigh Restituisce se esiste nel risultato JSON
netbiosName Restituisce se esiste nel risultato JSON
severityMedium Restituisce se esiste nel risultato JSON
os Restituisce se esiste nel risultato JSON
Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
[
{
"EntityResult":
{
"macAddress": "",
"severityLow": "0",
"links": [],
"ip": "203.0.113.1",
"lastScan": "1549425224",
"severityCritical": "0",
"total": "2",
"severityAll": "0,0,0,0,2",
"mcafeeGUID": "",
"policyName": "1e2e4247-0de7-56d5-8026-34ab1f3150ef-1130313/Basic Discovery Scan",
"uuid": "",
"lastAuthRun": "",
"severityInfo": "2",
"osCPE": "",
"uniqueness": "repositoryID,ip,dnsName",
 "dnsName": "example.com",
"repository":
          {
"id": "1",
"description": "",
"name": "repository"
          },
"lastUnauthRun": "1549363419",
"biosGUID": "",
"tpmID": "",
"score": "0",
"hasPassive": "No",
"pluginSet": "201902020242",
"hasCompliance": "No",
"severityHigh": "0",
"netbiosName": "",
"severityMedium": "0",
"os": ""
},
"Entity": "203.0.113.1"
}
]

Ottieni asset correlati a un indirizzo IP.

Parametri

Parametro Tipo Valore predefinito Descrizione
Nome repository Stringa N/D Il nome del repository.

Pubblica su

Questa azione viene eseguita sull'entità Indirizzo IP.

Risultati dell'azione

Arricchimento delle entità
Nome campo di arricchimento Logica: quando applicarla
id Restituisce se esiste nel risultato JSON
nome Restituisce se esiste nel risultato JSON
Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
[
{
"EntityResult":
[
{
"id": "0",
"description": "All defining ranges of the Group in whose context this Asset is being evaluated.",
"name": "All Defined Ranges"
}, {
"id": "2",
"description": "This asset uses the Scan Summary plugin to detect if a host has been scanned by Nessus. The Scan Summary plugin contains the list of tests conducted during the most recent scan.",
"name": "Systems that have been Scanned"
}, {
"id": "13",
"description": "Leverage Nessus plugin 10180 (Ping the remote host) and Nessus plugin 12503 (Host Fully Qualified Domain Name (FQDN) Resolution) to find hosts that don't have a resolvable FQDN in DNS.",
"name": "Scanned Hosts Not in DNS"
}
],
"Entity": "203.0.113.1"
}
]

Scarica report

Recupera i contenuti del report per ID o nome.

Parametri

Parametro Tipo Valore predefinito Descrizione
ID report Stringa N/D Numero ID report.Si trova nell'URL del report.

Run On

Questa azione viene eseguita su tutte le entità.

Risultati dell'azione

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
{
"pubSites":
[
"https://example.com",
"https://example.net"
]
}

Recuperare i risultati della scansione

Attendi il completamento della scansione e ottieni i risultati.

Parametri

Parametro Tipo Valore predefinito Descrizione
ID risultato scansione

Stringa

N/D L'ID dei risultati della scansione.

Pubblica su

Questa azione viene eseguita su tutte le entità.

Risultati dell'azione

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON

{
"severity_summary":
[
{
"count": "0",
"severity":
{
"id": "4",
"name": "Critical",
"description": "Critical Severity"
}
}, {
"count": "0",
"severity":
{
"id": "3",
"name": "High",
"description": "High Severity"
}
}, {
"count": "3",
"severity":
{"id": "2",
"name": "Medium",
"description": "Medium Severity"
}}
],
"results":
[
{
"name": "DNS Server Recursive Query Cache Poisoning Weakness",
"family": "DNS",
"hostTotal": "1",
"pluginID": "10539",
"total": "1",
"severity": "Medium"
}, {
"name": "DNS Server Spoofed Request Amplification DDoS",
"family": "DNS",
"hostTotal": "1",
"pluginID": "35450",
"total": "1",
"severity": "Medium"
}, {
"name": "SSL Medium Strength Cipher Suites Supported",
"family": "General",
"hostTotal": "1",
"pluginID": "42873",
"total": "1",
"severity": "Medium"
}
]
}

Ottieni le vulnerabilità per l'IP

Ottieni un riepilogo delle vulnerabilità e della gravità per un indirizzo IP.

Parametri

N/D

Pubblica su

Questa azione viene eseguita sull'entità Indirizzo IP.

Risultati dell'azione

Arricchimento delle entità
Nome campo di arricchimento Logica: quando applicarla
macAddress Restituisce se esiste nel risultato JSON
protocollo Restituisce se esiste nel risultato JSON
uuid Restituisce se esiste nel risultato JSON
famiglia Restituisce se esiste nel risultato JSON
pluginInfo Restituisce se esiste nel risultato JSON
ip Restituisce se esiste nel risultato JSON
pluginID Restituisce se esiste nel risultato JSON
gravità Restituisce se esiste nel risultato JSON
repository Restituisce se esiste nel risultato JSON
unicità Restituisce se esiste nel risultato JSON
dnsName Restituisce se esiste nel risultato JSON
porta Restituisce se esiste nel risultato JSON
netbiosName Restituisce se esiste nel risultato JSON
nome

Restituisce il valore se esiste nel risultato JSON

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
[
{
"EntityResult":
[
{
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "Web Servers",
"pluginInfo": "10107 (443/6) HTTP Server Type and Version",
"ip": "203.0.113.1",
"pluginID": "10107",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "HTTP Server Type and Version"
}, {
"macAddress": "",
"protocol": "UDP",
"uuid": "",
"family": "DNS",
"pluginInfo": "10539 (53/17) DNS Server Recursive Query Cache Poisoning Weakness",
"ip": "203.0.113.1",
"pluginID": "10539",
"severity": "Medium",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "exaample.com",
"port": "53",
"netbiosName": "",
"name": "DNS Server Recursive Query Cache Poisoning Weakness"
}, {
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "General",
"pluginInfo": "10863 (443/6) SSL Certificate Information",
"ip": "203.0.113.1",
"pluginID": "10863",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "SSL Certificate Information"
}
],
"Entity": "203.0.113.1"
}
]

Dindin

Testa la connettività.

Pubblica su

Questa azione viene eseguita su tutte le entità.

Risultati dell'azione

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
null N/D N/D

Scansiona IP

Avvia una scansione degli indirizzi IP.

Parametri

Parametro Tipo Valore predefinito Descrizione
Nome scansione Stringa N/D Il nome della scansione da creare.
Nome del criterio Stringa N/D Il nome della policy.

Pubblica su

Questa azione viene eseguita sull'entità Indirizzo IP.

Risultati dell'azione

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
scan_result_id N/D N/D

Esegui scansione asset

Esegui la scansione degli asset in Tenable Security Center.

Dove trovare l'ID criterio e l'ID repository

Per l'ID norma:

  1. Vai a https://INSTANCE_IP_ADDRESS/#policies.
  2. Seleziona il criterio che vuoi utilizzare in azione.
  3. Nell'URL, potrai visualizzare un ID di queste norme.

Per l'ID repository:

  1. Vai a https://INSTANCE_IP_ADDRESS/#repositories.
  2. Seleziona il repository che vuoi utilizzare nell'azione.
  3. Nell'URL potrai visualizzare un ID del repository.

Parametri

Nome visualizzato del parametro Tipo Valore predefinito È obbligatorio Descrizione
Nome scansione N/D Specifica il nome della scansione.
Nome risorsa Stringa N/D Specifica il nome dell'asset da analizzare.
ID policy Numero intero N/D Specifica l'ID della policy da utilizzare nella scansione.
ID repository Numero intero N/D Specifica l'ID del repository da utilizzare nella scansione.
Descrizione Stringa N/D No Specifica la descrizione della scansione.

Pubblica su

Questa azione non viene eseguita sulle entità.

Risultati dell'azione

Risultato dello script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
{
    "type": "regular",
    "response": {
        "id": "11",
        "name": "Scan Name",
        "description": "",
        "ipList": "",
        "type": "policy",
        "dhcpTracking": "false",
        "classifyMitigatedAge": "0",
        "emailOnLaunch": "false",
        "emailOnFinish": "false",
        "timeoutAction": "import",
        "scanningVirtualHosts": "false",
        "rolloverType": "template",
        "status": "0",
        "createdTime": "1606132784",
        "modifiedTime": "1606132784",
        "maxScanTime": "3600",
        "reports": [],
        "assets": [
            {
                "id": "38",
                "name": "api_test_1",
                "description": ""
            }
        ],
        "credentials": [],
        "numDependents": "0",
        "schedule": {
            "id": -1,
            "objectType": -1,
            "type": "now",
            "start": "",
            "repeatRule": "",
            "enabled": "true",
            "nextRun": -1,
            "dependent": {
                "id": -1,
                "name": "",
                "description": ""
            }
        },
        "policy": {
            "id": "1000002",
            "context": "",
            "name": "Host Discovery",
            "description": "",
            "tags": "",
            "owner": {
                "id": "1",
                "username": "security_manager",
                "firstname": "Manager",
                "lastname": "Security"
            },
            "ownerGroup": {
                "id": "0",
                "name": "Full Access",
                "description": "Full Access group"
            }
        },
        "policyPrefs": [
            {
                "name": "MODE|discovery",
                "value": "host_enumeration"
            },
            {
                "name": "description",
                "value": ""
            },
            {
                "name": "display_unreachable_hosts",
                "value": "no"
            },
            {
                "name": "log_live_hosts",
                "value": "yes"
            },
            {
                "name": "name",
                "value": "Host Discovery"
            },
            {
                "name": "reverse_lookup",
                "value": "no"
            }
        ],
        "repository": {
            "id": "1",
            "name": "Example-Repository",
            "description": ""
        },
        "canUse": "true",
        "canManage": "true",
        "plugin": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "zone": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "scanResultID": "34"
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606132783
}
Bacheca casi
Tipo di risultato Valore/Descrizione Tipo
Messaggio di output*

L'azione non deve non riuscire né interrompere l'esecuzione di un playbook:
Se il codice statico è 200(is_success = true): print "Successfully started asset scan {0} in Tenable Security Center.".format(name)

L'azione deve non riuscire e interrompere l'esecuzione di un playbook:
se si verifica un errore irreversibile, ad esempio credenziali errate, nessuna connessione al server, altro: stampa "Error executing action "Run Asset Scan". Motivo: {0}''.format(error.Stacktrace)

Se l'asset non è stato trovato: stampa "Errore durante l'esecuzione dell'azione "Esegui scansione asset". Motivo: l'asset {0} non è stato trovato in Tenable Security Center. ''.format(name)

Se non è il codice statico 200 (is_success = false): stampa "Error executing action "Run Asset Scan". Motivo:{0}".format(error_msg)

Generale

Connettori

Connettore Tenable Security Center

Per istruzioni dettagliate su come configurare un connettore in Google SecOps, vedi Configurazione del connettore.

Parametri del connettore

Utilizza i seguenti parametri per configurare il connettore:

Parametro Tipo Valore predefinito Descrizione
DeviceProductField Stringa device_product Il nome del campo utilizzato per determinare il prodotto del dispositivo.
EventClassId Stringa nome Il nome del campo utilizzato per determinare il nome dell'evento (sottotipo).
PythonProcessTimeout Stringa 60 Il limite di timeout (in secondi) per il processo Python che esegue lo script corrente.
Indirizzo del server Stringa null N/D
Nome utente Stringa null N/D
Password Password null N/D
Use SSL (Usa SSL) Casella di controllo Deselezionata N/D
Max Days Backwards Numero intero 1 Il numero di giorni precedenti a partire dai quali vuoi recuperare i dati.
Limite per ciclo Numero intero 10 La quantità di avvisi importati nel connettore in ogni ciclo di esecuzione.
Indirizzo del server proxy Stringa null L'indirizzo del server proxy da utilizzare.
Nome utente proxy Stringa null Il nome utente del proxy con cui eseguire l'autenticazione.
Password proxy Password null La password del proxy per l'autenticazione.

Regole del connettore

Il connettore supporta i proxy.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.