API voor EDR Threat Response

Kaspersky Endpoint Security 12.9 voor Windows introduceert ondersteuning voor EDR-acties voor Threat Response (EDR responses) met behulp van Kaspersky Security Center OpenAPI. Dat wil zeggen dat u OpenAPI-methoden kunt oproepen om de reactie op EDR-bedreigingen te automatiseren met behulp van Python. U kunt deze methoden oproepen wanneer ze zijn geïntegreerd met SIEM oplossingen. Kaspersky Unified Monitoring and Analysis Platform, de SIEM oplossing van Kaspersky ondersteunt de EDR Threat Response OpenAPI vanaf versie 3.4.1. Raadpleeg de KUMA-documentatie voor voorbeeldscripts.

Als u acties voor EDR Treat Response wilt uitvoeren, moet u een verzoek aanmaken en versturen met KSC Open API (AddIncident). Nadat het verzoek is verwerkt, wordt een speciale taak aangemaakt in de Kaspersky Security Center-console.

Als u taken wilt aanmaken voor het reageren op EDR-dreigingen, moet u een verbinding op de achtergrond tot stand brengen tussen de Administration Server en de Kaspersky Security Center Web Console. De verbindingsservice op de achtergrond is beschikbaar in Kaspersky Security Center Windows 14.2 of hoger en in Kaspersky Security Center Linux 15.2. Andere consoles, waaronder consoles van Kaspersky Detection and Response-oplossingen, worden niet ondersteund.

Voor EDR Threat Response moet u basisverzoekparameters opgeven, bijvoorbeeld in JSON-indeling:

Als u EDR Threat Response wilt configureren, moet u de taakinstellingen in JSON-indeling opgeven in de parameter "KLINCDT_BODY": json.dumps(data). Als gevolg hiervan maakt het programma de [Response][KUMA] <task type> - <Date> <Time> - <ID> aan in de Kaspersky Security Center-console.

Verbinding maken met Kaspersky Security Center OpenAPI

Als onderdeel van EDR Threat Response maakt het programma speciale taken aan in de console van Kaspersky Security Center . Voor het maken van deze taken moet u een verbinding tot stand brengen tussen de computer en Kaspersky Security Center. Hiervoor moeten de verbindingsparameters van Kaspersky Security Center in het verzoek worden opgegeven.

Verbindingsparameters van Kaspersky Security Center

Parameter

Type

Beschrijving

kscHost

string

Adres Administration Server van het Kaspersky Security Center. Vereiste parameter.

kscPort

int

Verbindingspoort Administration Server. Vereiste parameter.

kscCert

string

Pad naar een certificaatbestand voor de verbinding met de Administration Server van Kaspersky Security Center. Standaard is de parameter ingesteld op False.

kscUser

string

Naam van gebruikersaccount. Vereiste parameter.

kscPassword

string

Wachtwoord van gebruikersaccount. Vereiste parameter.

Voorbeeld

# KSC connection info

# reads Environment variables by default, change with corresponding values

# KSC host, string, required

kscHost = "kscHost"

# KSC port, required, default is "13299"

kscPort = "13299"

# KSC certificate file path, default is False

kscCert = False

# KSC user, string, required

kscUser = "kscUser"

# KSC password, string, required

kscPassword = "kscPassword"

server_url = 'https://' + kscHost + ':' + str(kscPort)

    server = KlAkAdmServer.Create(

        server_url, kscUser, kscPassword, verify=kscCert)

    params = validate(args)

    data = {"targetHost": <MyHost>,

            "task": task,

            "params": params,

            "responseEventIncident": True,

            "responseEventIncidentArea":"Kuma"}

    oHostGroup = KlAkHostGroup(server)

    incdnt = oHostGroup.AddIncident({"KLINCDT_SEVERITY": 2,

                                     "KLINCDT_ADDED": paramDateTime(datetime.datetime.now()),

                                     "KLINCDT_BODY": json.dumps(data),

                                     "KLHST_WKS_HOSTNAME":  args.targetHost}).RetVal()

    oHostGroup.UpdateIncident(incdnt, {"KLINCDT_IS_HANDLED": False,

                                       "KLHST_WKS_HOSTNAME":  args.targetHost})

De gegevens van het gebruikersaccount zijn niet beschermd. Daarom moet u een aparte gebruiker aanwijzen die alleen deze acties mag uitvoeren.

Bestand ophalengetFile

Instellingen van Bestand ophalen-taak

Parameter

Type

Beschrijving

md5hash

string

MD5-hash van het bestand dat u wilt ophalen.

sha256hash

string

SHA256-hash van het bestand dat u wilt ophalen.

path

string

Pad naar het bestand dat u wilt ophalen.

Voorbeeld

type getFile = {

task: 'getFile';

targetHost: string;

params: {

// an empty string or a valid md5 hash of the file

md5hash: string;

// an empty string or a valid sha256 hash of the file

sha256hash: string;

// the path to the file

path: string;

};

responseEventIncidentArea: string;

};

Bestand verwijderendeleteFile

Instellingen van Bestand verwijderen-taak

Parameter

Type

Beschrijving

md5hash

string

MD5-hash van het bestand dat u wilt verwijderen.

sha256hash

string

SHA256-hash van het bestand dat u wilt verwijderen.

path

string

Pad naar het bestand dat u wilt verwijderen.

searchInSubfolders?

boolean

Zoek het bestand dat u wilt verwijderen in submappen.

Voorbeeld

type deleteFile = {

task: 'deleteFile';

targetHost: string;

params: {

// an empty string or a valid md5 hash of the file

md5hash: string;

// an empty string or a valid sha256 hash of the file

sha256hash: string;

// the path to the file

path: string;

// recursive search for a file (subfolder), optional

searchInSubfolders?: boolean;

};

responseEventIncidentArea: string;

};

Bestand in Quarantaine plaatsenquarantineFile

Instellingen van Bestand in Quarantaine plaatsen-taak

Parameter

Type

Beschrijving

md5hash

string

MD5-hash van het bestand dat u in quarantaine wilt plaatsen.

sha256hash

string

SHA256-hash van het bestand dat u in quarantaine wilt plaatsen.

path

string

Pad naar het bestand dat u in quarantaine wilt plaatsen.

Voorbeeld

type quarantineFile = {

task: 'quarantineFile';

targetHost: string;

params: {

// an empty string or a valid md5 hash of the file

md5hash: string;

// an empty string or a valid sha256 hash of the file

sha256hash: string;

// the path to the file

path: string;

};

responseEventIncidentArea: string;

};

IOC-scaniocScan

Instellingen van IOC-scan-taak

Parameter

Type

Beschrijving

ioc

string

Pad naar het ZIP-archief met IOC-bestand die u wilt gebruiken voor het scannen.

isolateHost

boolean

Isoleer de computer van het netwerk wanneer een indicator of compromise wordt gedetecteerd om te voorkomen dat de dreiging zich verspreidt.

scanCriticalAreas

boolean

Start de taak Kritieke Gebiedenscan wanneer een indicator of compromise wordt gedetecteerd.

quarantineObject

boolean

Verwijder het kwaadaardige object wanneer een indicator of compromise wordt gedetecteerd. Voordat het object wordt verwijderd, maakt Kaspersky Endpoint Security een back-up voor het geval dat het object later moet worden teruggezet. Kaspersky Endpoint Security plaatst de back-up in Quarantaine.

Voorbeeld

type iocScan = {

task: 'iocScan';

targetHost: string;

params: {

// the path to the zip archive with ioc files in base64 encoding

ioc: string;

// isolation of the computer from the network

isolateHost: boolean;

// critical areas scan

scanCriticalAreas: boolean;

// quarantine the file

quarantineObject: boolean;

};

responseEventIncidentArea: string;

};

Process startenstartProcess

Instellingen van Process starten-taak

Parameter

Type

Beschrijving

executablePath

string

Pad naar het uitvoerbare bestand dat wordt gebruikt om het proces te starten.

arguments?

string

Aanvullende opdrachtregelargumenten om het proces te starten.

workingFolder?

string

Pad naar de werkmap van het proces.

Voorbeeld

type startProcess = {

task: 'startProcess';

targetHost: string;

params: {

// the path to the file

executablePath: string;

// command line arguments, optional

arguments?: string;

// a working folder, optional

workingFolder?: string;

};

responseEventIncidentArea: string;

};

Proces beëindigenterminateProcess

Instellingen van Proces beëindigen-taak

Parameter

Type

Beschrijving

md5hash

string

MD5-hash van het bestand waarvan u het proces wilt beëindigen.

sha256hash

string

SHA256-hash van het bestand waarvan u het proces wilt beëindigen.

path

string

Pad naar het bestand dat u wilt verwijderen.

caseSensitive

boolean

Hoofdlettergevoeligheid bij het zoeken naar het bestand.

Voorbeeld

type terminateProcess = {

task: 'terminateProcess';

targetHost: string;

params: {

// an empty string or a valid md5 hash of the file

md5hash: string;

// an empty string or a valid sha256 hash of the file

sha256hash: string;

// the path to the file

path: string;

// case sensitive of the file name

caseSensitive: boolean;

};

responseEventIncidentArea: string;

};

Computer isoleren van netwerk – isolateHost

Instellingen voor Computer isoleren van netwerk

Parameter

Type

Beschrijving

action

string

MD5-hash van het bestand dat u wilt ophalen.

Voorbeeld

type isolateHost = {

task: 'isolateHost';

targetHost: string;

params: {

// 0 - turning off network isolation, 1 - turning on network isolation

action: number;

};

responseEventIncidentArea: string;

};

Preventie van uitvoering – preventExecution

Instellingen preventie van uitvoering

Parameter

Type

Beschrijving

hash

string

MD5-hash van het bestand dat u niet wil uitvoeren.

path

string

Pad naar het bestand dat u niet wilt uitvoeren.

caseSensitive

boolean

Hoofdlettergevoeligheid bij het zoeken naar het bestand.

Voorbeeld

type preventExecution = {

task: 'preventExecution';

targetHost: string;

params: {

// a valid md5 hash of the file

hash: string;

// the path to the file

path: string;

// case sensitive of the file name

caseSensitive: boolean;

};

responseEventIncidentArea: string;

};

Malware-scanonDemandScan

Instellingen van Malware-scan-taak

Parameter

Type

Beschrijving

path

string

Een door spaties gescheiden lijst met bestanden en mappen voor Aangepaste Scan.

recursive

boolean

Recursieve scanmodus.

type

number

Scanbereik.

ScanObjectType = Enum("ScanObjectType",

[

("SystemMemory", 14),

("StartupObjectsAndRunningProcesses", 15),

("DiskBootSectors", 16),

("SystemBackupStorage", 17),

("Email", 18),

("Folder", 22),

("AllRemovableDrives", 23),

("AllNetworkDrives", 24),

("AllFixedDrives", 25)])

Voorbeeld

type onDemandScan = {

task: 'onDemandScan';

targetHost: string;

// please note, this is an array

// array of scan object

params: [{

// enabling the scan object

enabled: boolean;

// an empty string or the path to the folder to scan

path: string;

// recursive scan mode

recursive: boolean;

// ID scan object

type: number;

}];

responseEventIncidentArea: string;

};

Naar boven