Parameter an ein benutzerdefiniertes Aktionsscript übergeben
Beispielscripts in Bash, Python und Perl zeigen, wie Parameter an benutzerdefinierte Aktionsscripts übergeben werden.
Die folgenden einfachen Beispielscripts zeigen, wie die Assetmodell-API nach einem, Asset mit der übergebenen IP-Adresse der Angriffsquelle abgefragt wird. Für dieses Beispiel geben die Scripts das JSON-Format aus, das vom Endpunkt zurückgegeben wird.
Für die Scripts sind drei Parameter erforderlich:
- IP-Adresse der Konsole
- API-Token
- IP-Adresse der Angriffsquelle
Diese Parameter werden im Bereich Scriptparameter des Fensters 'Benutzerdefinierte Aktion definieren' konfiguriert:

Die Parameter werden in der Reihenfolge an das Script übergeben, in der sie im Fenster Benutzerdefinierte Aktion definieren hinzugefügt werden. Das ist in diesem Fall folgende Reihenfolge:
- console_ip
- api_token
- offense_source_ip
Für die Variablen, die am Anfang jedes der Beispielscripts definiert sind, werden die Beispielparameternamen verwendet, die im Fenster 'Benutzerdefinierte Aktion definieren' hinzugefügt wurden.
#!/bin/bash
console_ip=$1
api_token=$2
offense_source_ip=$3
auth_header="SEC:$api_token"
output=$(curl -k -H $auth_header https://$console_ip/console/restapi/api/
asset_model/assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29)
# Basic print out of the output of the command
echo $output
#!/usr/bin/python
import sys
import requests
console_ip = sys.argv[1]
api_token = sys.argv[2]
offense_source_ip = sys.argv[3]
auth_header = {'SEC' : api_token }
endpoint = "https://{0}/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22{1}%22%29%29"
.format(console_ip, offense_source_ip)
response = requests.get(endpoint, headers=auth_header, verify=False)
# Basic print out of the output of the command
print(response.json())
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $console_ip = $ARGV[0];
my $api_token = $ARGV[1];
my $offense_source_ip = $ARGV[2];
my $endpoint = "https://$console_ip/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29";
my $client = LWP::UserAgent -> new(ssl_opts => { verify_hostname => 0 });
my $response = $client -> get($endpoint, "SEC" => $api_token);
# Basic print out of the output of the command
print $response -> decoded_content;