Ansichten:
Verwenden Sie die API, um Informationen über den Sicherheitsstatus der Computer zu sammeln, die Server- und Workload Protection schützt. Um beispielsweise einen monatlichen Bericht über Ihren Sicherheitsstatus zu erstellen, sammeln Sie Informationen über Sicherheitsmodule, wie deren Betriebszustand (ein oder aus) und ob die neuesten Regeln zugewiesen sind.
Sie können auch herausfinden, ob Sie gegen eine bestimmte Bedrohung geschützt sind. Wenn beispielsweise eine CVE für eine Zero-Day-Sicherheitslücke veröffentlicht wird, können Sie die Eindringungspräventionsregel für diese CVE finden und auf Ihre Computer anwenden.

Unentdeckte Computer finden Übergeordnetes Thema

Entdecken Sie ungeschützte Computer basierend auf dem Echtzeitstatus des Agenten oder Geräts oder auf dem Status eines Schutzmoduls:
  • Auf dem Computer ist kein Agent oder Gerät installiert, oder der Agent oder das Gerät ist nicht aktiv
  • Das Schutzmodul ist nicht eingeschaltet oder es ist eingeschaltet und nicht aktiv
Für virtuelle Maschinen können Sie auch den Maschinenstatus und andere Informationen abrufen, die bei der Fehlerbehebung nützlich sein können.
Weitere Informationen zu Computer-Status finden Sie unter Computer- und Agentenstatus

Computer basierend auf dem Agentenstatus finden Übergeordnetes Thema

Computer, auf denen kein Agent installiert ist, sind nicht durch Server- und Workload Protection geschützt. Computer könnten auch ungeschützt sein, wenn Probleme mit ihrem Agent oder Gerät bestehen.
Um festzustellen, ob ein Agent oder Gerät installiert ist, überprüfen Sie den Fingerabdruck des Agents und des Geräts. Kein Fingerabdruck weist darauf hin, dass kein Agent oder Gerät installiert ist und der Computer daher ungeschützt ist. Wenn ein Agent oder Gerät installiert ist, überprüfen Sie auch deren Status. Ein Status wie active zeigt beispielsweise an, dass der Agent oder das Gerät korrekt läuft. Andere Status, wie error oder inactive, weisen auf ein Problem hin, das Sie untersuchen sollten.
Das folgende JSON-Beispiel stellt die Datenstruktur eines Computer-Objekts dar (einige Elemente sind weggelassen, um das Beispiel übersichtlicher zu gestalten). Der agentFingerPrint zeigt, dass ein Agent installiert ist, und der computerStatus zeigt, dass er aktiv ist.
{
    "hostName": "laptop_adaggs",
    ...
    "policyID": 34,
    "agentFingerPrint": "71:3E:81:64:65:EB:34:78:FC:72:C2:CB:37:6B:1D:F0:8C:D1:9B:1E",
    "agentVersion": "11.3.2.883",
    "computerStatus": {
        "agentStatus": "active",
        "agentStatusMessages": [
            "Managed (Online)"
        ]
    },
    "computerSettings": {...},
    "ID": 48,
    "antiMalware": {...},
    ...
}
Tipp
Tipp
Ein offline-Status kann darauf hinweisen, dass Server- und Workload Protection nicht mit dem Computer kommunizieren kann. Mit diesem Status kann der Agent oder das Gerät normal laufen und Schutz bieten. Allerdings kann Server- und Workload Protection keine Komponenten-Updates an den Agenten oder das Gerät senden.
Verwenden Sie das folgende allgemeine Verfahren, um ungeschützte Computer zu entdecken:

Prozedur

  1. Verwenden Sie ComputersApi, um ein Computer-Objekt zu erhalten.
  2. Überprüfen Sie die AgentFingerPrint- und ApplianceFingerPrint-Eigenschaft des Computers.
  3. Holen Sie das ComputerStatus-Objekt aus dem Computer-Objekt und überprüfen Sie die AgentStatus-Eigenschaft. Jeder Wert außer ACTIVE kann auf ein Problem hinweisen.
  4. Optional können Sie den AgentStatusMessages des ComputerStatus-Objekts und die AgentTasks-Eigenschaft des Computer-Objekts für nützliche Informationen abrufen.

Nächste Schritte

Tipp
Tipp
Da der Wert des computerStatus-Feldes eines Computers ein Objekt (ComputerStatus) ist, können Sie in diesem Feld nicht suchen.
Um den Status aller Computer zu überprüfen, verwenden Sie zuerst die ComputersApi-Klasse, um alle Computer aufzulisten:
computers_api = api.ComputersApi(api.ApiClient(configuration))
computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False)
Für jeden Computer überprüfen Sie den Agenten- und Appliance-Fingerabdruck. Kein Fingerabdruck bedeutet, dass kein Agent oder keine Appliance installiert ist und der Computer nicht geschützt ist. Beachten Sie, dass ein Computer sowohl einen Agenten als auch eine Appliance installiert haben kann. Sie müssen den Wert beider Fingerabdrücke überprüfen.
if computer.agent_finger_print == None and computer.appliance_finger_print == None:
Wenn ein Fingerabdruck gefunden wird, holen Sie den Status des Agents oder Geräts ein, um festzustellen, ob es aktiv ist. Jeder andere Status als aktiv kann auf ein Problem mit dem Agenten oder Gerät hinweisen.
agent_status = computer.computer_status.agent_status
if computer.agent_finger_print != None and agent_status != "active":
    ...
appliance_status = computer.computer_status.appliance_status
if computer.appliance_finger_print != None and appliance_status != "active":
    ...
Wenn der Status nicht aktiv ist, rufen Sie die Statusmeldung und Aufgaben des Agents oder Geräts ab. Das folgende Beispiel zeigt, wie die Informationen für einen Agenten abgerufen werden.
if computer.computer_status.agent_status_messages != None:
    computer_info.append(str(computer.computer_status.agent_status_messages))
else:
    computer_info.append("")

if computer.tasks != None:
    computer_info.append(str(computer.tasks.agent_tasks))
else:
computer_info.append("")
Das folgende Beispiel findet Computer, auf denen weder ein Agent noch ein Gerät installiert ist, oder der Status des Agents und/oder Geräts nicht aktiv ist. Im vollständigen Quellcode-Beispiel werden die Ergebnisse in einem Format zusammengestellt, das als CSV-Datei gespeichert werden kann, um es als Tabellenkalkulation zu öffnen.
# Include computer status information in the returned Computer objects
expand = api.Expand(api.Expand.computer_status)

# Get all computers
computers_api = api.ComputersApi(api.ApiClient(configuration))
computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False)

for computer in computers.computers:
    computer_info = []

    # Report on computers with no agent or appliance
    if computer.agent_finger_print is None and computer.appliance_finger_print is None:
        # Hostname and protection type
        computer_info.append(computer.host_name)
        computer_info.append("None")

        # Agent/appliance status and status messages
        computer_info.append("No agent/appliance")
        status_messages = ""
        if computer.computer_status is not None and computer.computer_status.agent_status is not None:
            status_messages = str(computer.computer_status.agent_status_messages)
        computer_info.append(status_messages)

    else:
        # Report on problem agents and appliances
        agent_status = computer.computer_status.agent_status
        appliance_status = computer.computer_status.appliance_status

        # Agent is installed but is not active
        if computer.agent_finger_print is not None and agent_status != "active":
            # Hostname and protection type
            computer_info.append(computer.host_name)
            computer_info.append("Agent")

            # Agent status, status messages, and tasks
            if computer.computer_status.agent_status is not None:
                computer_info.append(computer.computer_status.agent_status)
            else:
                computer_info.append("")

            if computer.computer_status.agent_status_messages is not None:
                computer_info.append(str(computer.computer_status.agent_status_messages))
            else:
                computer_info.append("")

            if computer.tasks is not None:
                computer_info.append(str(computer.tasks.agent_tasks))
            else:
                computer_info.append("")

        # Appliance is installed but is not active
        if computer.appliance_finger_print is not None and appliance_status != "active":
            # Hostname and protection type
            computer_info.append(computer.host_name)
            computer_info.append("Appliance")

            # Appliance status, status messages, and tasks
            if computer.computer_status.appliance_status is not None:
                computer_info.append(computer.computer_status.appliance_status)
            else:
                computer_info.append("")

            if computer.computer_status.appliance_status_messages is not None:
                computer_info.append(str(computer.computer_status.appliance_status_messages))
            else:
                computer_info.append("")

            if computer.tasks is not None:
                computer_info.append(str(computer.tasks.appliance_tasks))
            else:
            computer_info.append("")
Siehe auch die Computer auflisten, Einen Computer beschreiben und Computer suchen Vorgänge im API-Referenz.

Computer basierend auf dem Modulstatus finden Übergeordnetes Thema

Computer sind anfällig, wenn ein Schutzmodul ausgeschaltet ist oder ein Problem den Agenten oder das Gerät daran hindert, das Modul korrekt auszuführen. Um zu überprüfen, ob ein Computer durch ein Schutzmodul geschützt ist, überprüfen Sie den Modulstatus (ein oder aus). Wenn der Status auf ein steht, überprüfen Sie auch den Modulstatus, der die Fähigkeit des Agenten und/oder des Geräts anzeigt, das Modul auszuführen. Jeder andere Status als active kann auf ein Problem hinweisen, das Ihre Aufmerksamkeit erfordert. Sie können auch Statusmeldungen erhalten, die Einblick in den Status geben können.
Das folgende JSON-Beispiel stellt die Datenstruktur eines Computer-Objekts dar (einige Elemente sind ausgelassen, um das Beispiel übersichtlicher zu gestalten). Das Anti-Malware-Modul ist on, jedoch zeigt der Agentenstatus für das Modul eine Warnung an.
{
    "hostName": "192.168.60.128",
    ...
    "policyID": 9,
    "agentFingerPrint": "76:C8:CE:B3:70:61:A3:BE:84:A2:2A:5D:1F:3A:29:8A:DC:7A:70:6C",
    "agentVersion": "11.2.0.147",
    "computerStatus": {...},
    "computerSettings": {...},
    ...
    "ID": 2,
    "antiMalware": {
        "state": "on",
        "moduleStatus": {
            "agentStatus": "warning",
            "agentStatusMessage": "Software Update: Anti-Malware Module Installation Failed"
        },
        "realTimeScanConfigurationID": 1,
        "realTimeScanScheduleID": 4,
        "manualScanConfigurationID": 2,
        "scheduledScanConfigurationID": 3
    },
    "webReputation": {...},
    "firewall": {...},
    "intrusionPrevention": {...},
    "integrityMonitoring": {...},
    "logInspection": {...},
    "applicationControl": {...}
}
Verwenden Sie das folgende allgemeine Verfahren, um mithilfe von Modulstatus ungeschützte Computer zu entdecken:

Prozedur

  1. Verwenden Sie ComputersApi, um ein Computer-Objekt zu erhalten.
  2. Rufen Sie das Computererweiterungsobjekt für das Schutzmodul ab, an dem Sie interessiert sind, wie z. B. AntiMalwareComputerExtension oder IntrusonPreventionComputerExtension.
  3. Vom Computererweiterungsobjekt den Wert des Modulstatus abrufen, um zu sehen, ob das Modul ein- oder ausgeschaltet ist.
  4. Auch vom Computer-Erweiterungsobjekt das ModuleStatus-Objekt abrufen und den Status des Agenten und der Appliance sowie Statusmeldungen erhalten.

Nächste Schritte

Tipp
Tipp
Da der Wert des moduleStatus-Feldes einer Computererweiterung ein Objekt (ModuleStatus) ist, können Sie in diesem Feld nicht suchen.
Um den Modulstatus aller Computer zu überprüfen, verwenden Sie zuerst die ComputersApi-Klasse, um alle Computer aufzulisten:
computers_api = api.ComputersApi(api.ApiClient(configuration))
computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False)
Für jeden Computer holen Sie den Agentenstatus für das Schutzmodul, an dem Sie interessiert sind. Holen Sie den Modulstatus und überprüfen Sie dann den Status des Agenten oder der Appliance. Jeder Status, der nicht aktiv ist, kann auf ein Problem mit dem Agenten oder der Appliance hinweisen. Beachten Sie, dass, wenn kein Agent installiert ist, kein Agentenstatus vorhanden ist. Ebenso gibt es keinen Appliancestatus, wenn keine Appliance installiert ist.
if computer.anti_malware.module_status:
    agent_status = computer.anti_malware.module_status.agent_status
    appliance_status = computer.anti_malware.module_status.appliance_status
else:
    agent_status = None
    appliance_status = None

if agent_status and agent_status != "active":
    ...

if appliance_status and appliance_status != "active":
    ...
Für nicht-aktive Status erhalten Sie die Agenten- oder Geräte-Statusmeldung für das Modul:
module_info.append(computer.anti_malware.module_status.agent_status_message)
    module_info.append(computer.anti_malware.module_status.appliance_status_message)
Das folgende Beispiel findet Computer, bei denen das Anti-Malware-Modul deaktiviert ist oder der Status des Moduls nicht aktiv ist. Im vollständigen Quellcode-Beispiel werden die Ergebnisse in einem Format zurückgegeben, das als CSV-Datei gespeichert werden kann, um es als Tabellenkalkulation zu öffnen.
computers_api = api.ComputersApi(api.ApiClient(configuration))
computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False)

# Get the list of computers and iterate over it
for computer in computers.computers:
    # Module information to add to the CSV string
    module_info = []

    # Check that the computer has a an agent or appliance status
    if computer.anti_malware.module_status:
        agent_status = computer.anti_malware.module_status.agent_status
        appliance_status = computer.anti_malware.module_status.appliance_status
    else:
        agent_status = None
        appliance_status = None

    # Agents that are not active for the module
    if agent_status and agent_status != "active":
        # Host name
        module_info.append(computer.host_name)

        # Module state
        module_info.append(computer.anti_malware.state)

        # Agent status and status message
        module_info.append("Agent")
        module_info.append(agent_status)
        module_info.append(computer.anti_malware.module_status.agent_status_message)

    # Appliances that are not active for the module
    if appliance_status and appliance_status != "active":
        # Host name
        module_info.append(computer.host_name)

        # Module state
        module_info.append(computer.anti_malware.state)

        # Appliance status and status message
        module_info.append("Appliance")
        module_info.append(appliance_status)
        module_info.append(computer.anti_malware.module_status.appliance_status_message)
Siehe auch die Computer auflisten, Einen Computer beschreiben und Computer suchen Vorgänge im API-Referenz.

Den Status einer virtuellen Maschine anzeigen Übergeordnetes Thema

Wenn ein Computer eine virtuelle Maschine ist, können Sie mehrere Eigenschaften der virtuellen Maschine erhalten, einschließlich des Zustands (wie vom Anbieter der virtuellen Maschine definiert). Die Computer-Klasse bietet Zugriff auf mehrere Zusammenfassungsobjekte der virtuellen Maschine, wie azureARMVirtualMachineSummary, ec2VirtualMachineSummary und vmwareVMVirtualMachineSummary. (Für eine vollständige Liste siehe die API-Referenz.)
Sie können die Zusammenfassung der virtuellen Maschine für Ihren Computer abrufen und sie verwenden, um die Eigenschaften der virtuellen Maschine, wie den Status, zu überprüfen.

Computer-Konfigurationen abrufen Übergeordnetes Thema

Computer-Objekte enthalten die Konfigurationsinformationen für einen Computer. Um Computer-Objekte zu erhalten, erstellen Sie ein ComputersApi-Objekt und rufen Sie dann entweder einen bestimmten Computer anhand der ID ab, suchen Sie nach einer anderen Eigenschaft oder listen Sie alle Computer auf und iterieren Sie über sie.
Tipp
Tipp
Wenn Sie einen Computer erhalten, geben Sie an, ob alle Eigenschaften oder nur die Überschreibungen, die auf diesem Computer festgelegt sind, einbezogen werden sollen:
  • Alle Eigenschaften: Beinhaltet sowohl die vom Computer zugewiesene Richtlinie geerbten als auch die überschriebenen Eigenschaften.
  • Nur Überschreibungen: Beinhaltet nur die Eigenschaften, die auf diesem Computer überschrieben wurden. Alle geerbten Eigenschaften sind null.
Um auf die aktuelle Konfiguration eines Computers zuzugreifen, verwenden Sie das Computer-Objekt, um ein Computererweiterungsobjekt für ein Schutzmodul zu erhalten. Um beispielsweise Informationen über die Anti-Malware-Konfiguration oder den Status eines Computers zu erhalten, verwenden Sie das AntiMalwareComputerExtension-Objekt. Verwenden Sie den expand-Parameter, um nur die Computerinformationen abzurufen, die Sie benötigen.
# Include Anti-Malware information in the returned Computer object
expand = api.Expand(api.Expand.anti_malware, api.Expand.computer_settings)

# Get the computer object from Server- und Workload Protection
computers_api = api.ComputersApi(api.ApiClient(configuration))
computer = computers_api.describe_computer(computer_id, api_version, expand=expand.list(), overrides=False)

# Get the Anti-Malware scan configuration id for the computer
real_time_scan_configuration_id = computer.anti_malware.real_time_scan_configuration_id

# Get the Anti-Malware properties for the computer
am_configs_api = api.AntiMalwareConfigurationsApi(api.ApiClient(configuration))
return am_configs_api.describe_anti_malware(real_time_scan_configuration_id, api_version)

Entdecken Sie die Anti-Malware-Konfiguration eines Computers Übergeordnetes Thema

AntiMalwareComputerExtension-Objekte bieten Zugriff auf die folgenden Elemente der Anti-Malware-Konfiguration für einen Computer:
  • Anti-Malware-Modul Betriebszustand (ein oder aus)
  • Malware-Suche Konfigurationen
Verwenden Sie die folgenden allgemeinen Schritte, um die Anti-Malware-Konfiguration für Ihre Computer zu erhalten:

Prozedur

  1. Verwenden Sie ein ComputersApi-Objekt, um das Computer-Objekt zu erhalten.
  2. Verwenden Sie das Computer-Objekt, um das AntiMalwareComputerExtension-Objekt zu erhalten.
  3. Den Status des Anti-Malware-Moduls abrufen.
  4. Abrufen der Durchsuchungskonfigurationen.

Nächste Schritte

Das folgende Beispiel ermittelt bestimmte Eigenschaften der Anti-Malware-Konfigurationen eines Computers
# Get the anti-malware scan configuration id for the computer
real_time_scan_configuration_id = computer.anti_malware.real_time_scan_configuration_id

# Get the anti-malware properties for the computer
am_configs_api = api.AntiMalwareConfigurationsApi(api.ApiClient(configuration))
return am_configs_api.describe_anti_malware(real_time_scan_configuration_id, api_version)
Siehe auch die Computer auflisten, Einen Computer beschreiben und Computer suchen Vorgänge im API-Referenz.

Angewandte Regeln zum Eindringschutz abrufen Übergeordnetes Thema

Bestimmen Sie die Regeln zum Eindringschutz, die auf Ihre Computer angewendet werden, um sicherzustellen, dass die erforderlichen Schutzmaßnahmen vorhanden sind.

Prozedur

  1. Verwenden Sie ein ComputersApi-Objekt, um die Computer-Objekte zu erhalten.
  2. Für jedes Computer-Objekt das IntrusionPreventionComputerExtension-Objekt abrufen.
  3. Erhalten Sie die Liste der Regeln zum Eindringschutz.

Nächste Schritte

Das folgende Beispiel ruft die Regeln zum Eindringschutz ab, die auf Computer angewendet werden.
# Extract intrusion prevention rules from the computers
im_rules = {}
for computer in computers_list.computers:
    im_rules[computer.host_name] = computer.intrusion_prevention.rule_ids
    return im_rules
Siehe auch die Computer auflisten, Einen Computer beschreiben und Computer durchsuchen Operationen im API-Referenzhandbuch. Für Informationen zur Authentifizierung von API-Aufrufen siehe Authentifizierung mit Server- und Workload Protection.