API pentru Răspunsul la amenințare EDR

Kaspersky Endpoint Security 12.9 for Windows introduce suport pentru acțiunile EDR Threat Response (EDR responses) folosind un Kaspersky Security Center OpenAPI. Adică, puteți folosi metode OpenAPI pentru a automatiza răspunsul la amenințările EDR folosind Python. Puteți folosi aceste metode atunci când sunt integrate cu soluțiile SIEM. Kaspersky Unified Monitoring and Analysis Platform, soluția Kaspersky SIEM, acceptă EDR Threat Response OpenAPI începând cu versiunea 3.4.1. Pentru scripturi de exemplu, vezi documentația KUMA.

Pentru a efectua acțiuni EDR Threat Response, trebuie să creezi o solicitare și să o trimiți folosind KSC Open API (AddIncident). După procesarea cererii, este creată o sarcină specială în consola Kaspersky Security Center.

Pentru a crea sarcini atunci când răspunzi la amenințările EDR, trebuie stabilită o conexiune de fundal între Serverul de administrare și Consola web Kaspersky Security Center. Serviciul de conectare în fundal este disponibil în Kaspersky Security Center Windows 14.2 sau o versiune ulterioară și în Kaspersky Security Center Linux 15.2. Alte console, inclusiv consolele soluțiilor Kaspersky Detection and Response, nu sunt acceptate.

Pentru EDR Threat Response, trebuie să specifici parametrii de bază de solicitare, de exemplu, în format JSON:

Pentru a configura EDR Threat Response, trebuie să specifici setările sarcinii în format JSON în parametrul "KLINCDT_BODY": json.dumps(data). Ca rezultat, aplicația creează [Response][KUMA] <task type> - <Date> <Time> - <ID> în consola Kaspersky Security Center.

Conectarea la Kaspersky Security Center OpenAPI

Ca parte a EDR Threat Response, aplicația creează sarcini speciale în consola Kaspersky Security Center. Crearea acestor sarcini necesită stabilirea unei conexiuni între computer și Kaspersky Security Center. Pentru a realiza acest lucru, parametrii de conexiune Kaspersky Security Center trebuie să fie specificați în cerere.

Parametrii de conexiune Kaspersky Security Center

Parametru

Tip

Descriere

kscHost

string

Adresă a serverului de administrare Kaspersky Security Center. Parametru obligatoriu.

kscPort

int

Port de conectare la Serverul de administrare. Parametru obligatoriu.

kscCert

string

Calea către un fișier de certificat pentru conectarea la serverul de administrare Kaspersky Security Center. Implicit, parametrul este setat la False.

kscUser

string

Numele contului de utilizator. Parametru obligatoriu.

kscPassword

string

Parola contului de utilizator. Parametru obligatoriu.

Exemplu

# 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})

Datele contului de utilizator nu sunt protejate, prin urmare trebuie să aloci un utilizator separat care va fi folosit doar pentru a efectua aceste acțiuni.

Obținere fișiergetFile

Setări activitate Obținere fișier

Parametru

Tip

Descriere

md5hash

string

Hash MD5 al fișierului pe care vrei să îl obții.

sha256hash

string

SHA256 hash al fișierului pe care vrei să îl obții.

path

string

Calea către fișierul pe care vrei să îl obții.

Exemplu

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;

};

Șterge fișierdeleteFile

Setări activitate Șterge fișier

Parametru

Tip

Descriere

md5hash

string

Hash MD5 al fișierului pe care vrei să îl ștergi.

sha256hash

string

SHA256 hash al fișierului pe care vrei să îl ștergi.

path

string

Calea către fișierul pe care vrei să îl ștergi.

searchInSubfolders?

boolean

Caută fișierul pe care dorești să îl ștergi în sub-directoare.

Exemplu

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;

};

Mută fișierul în CarantinăquarantineFile

Setări activitate Mută fișierul în Carantină

Parametru

Tip

Descriere

md5hash

string

Hash MD5 al fișierului pe care vrei să îl pui în carantină.

sha256hash

string

Hash SHA256 al fișierului pe care vrei să îl pui în carantină.

path

string

Calea către fișierul pe care vrei să îl pui în carantină.

Exemplu

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;

};

Scanare IOCiocScan

Setări activitate Scanare IOC

Parametru

Tip

Descriere

ioc

string

Calea către arhiva ZIP cu fișiere IOC pe care dorești să le utilizezi pentru scanare.

isolateHost

boolean

Izolează computerul de rețea atunci când este detectat un indicator de compromis pentru a preveni răspândirea amenințării.

scanCriticalAreas

boolean

Rulează sarcina Scanare zone critice atunci când este detectat un indicator de compromis.

quarantineObject

boolean

Șterge obiectul rău intenționat atunci când un indicator de compromis este detectat. Înainte de a șterge obiectul, Kaspersky Endpoint Security creează o copie de rezervă în caz că obiectul trebuie restaurat ulterior. Kaspersky Endpoint Security mută copia de rezervă în Carantină.

Exemplu

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;

};

Pornește procesulstartProcess

Setări activitate Pornește procesul

Parametru

Tip

Descriere

executablePath

string

Calea către fișierul executabil care este utilizat pentru a începe procesul.

arguments?

string

Argumente suplimentare ale liniei de comandă pentru pornirea procesului.

workingFolder?

string

Calea către folderul de lucru al procesului.

Exemplu

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;

};

Termină procesulterminateProcess

Setări activitate Termină procesul

Parametru

Tip

Descriere

md5hash

string

Hash MD5 al fișierului al cărui proces vrei să îl închizi.

sha256hash

string

Hash SHA256 al fișierului al cărui proces vrei să îl închizi.

path

string

Calea către fișierul pe care vrei să îl ștergi.

caseSensitive

boolean

Sensibilitate la litere mari și mici la căutarea fișierului.

Exemplu

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;

};

Izolarea rețelei de computere – isolateHost

Setările izolării rețelei de computere

Parametru

Tip

Descriere

action

string

Hash MD5 al fișierului pe care vrei să îl obții.

Exemplu

type isolateHost = {

task: 'isolateHost';

targetHost: string;

params: {

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

action: number;

};

responseEventIncidentArea: string;

};

Prevenirea executării – preventExecution

Setările pentru prevenirea executării

Parametru

Tip

Descriere

hash

string

Hash MD5 al fișierului pe care vrei să îl împiedici să ruleze.

path

string

Calea către fișierul pe care vrei să îl împiedici să ruleze.

caseSensitive

boolean

Sensibilitate la litere mari și mici la căutarea fișierului.

Exemplu

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;

};

Scanare malwareonDemandScan

Setări activitate Scanare malware

Parametru

Tip

Descriere

path

string

Listă de fișiere și foldere delimitate de spațiu pentru scanare personalizată.

recursive

boolean

Mod de scanare recursiv.

type

number

Domeniu de scanare.

ScanObjectType = Enum("ScanObjectType",

[

("SystemMemory", 14),

("StartupObjectsAndRunningProcesses", 15),

("DiskBootSectors", 16),

("SystemBackupStorage", 17),

("Email", 18),

("Folder", 22),

("AllRemovableDrives", 23),

("AllNetworkDrives", 24),

("AllFixedDrives", 25)])

Exemplu

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;

};

Începutul paginii