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:
task este tipul sarcinii (vezi mai jos).targetHost este ID-ul computerului pe care trebuie rulat scriptul. Argument obligatoriu. Scriptul primește acest argument de la eveniment.responseEventIncidentArea este numele aplicației care a rulat scriptul (de exemplu, KUMA). Acest parametru este adăugat la numele sarcinii create.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 |
|---|---|---|
|
|
Adresă a serverului de administrare Kaspersky Security Center. Parametru obligatoriu. |
|
|
Port de conectare la Serverul de administrare. Parametru obligatoriu. |
|
|
Calea către un fișier de certificat pentru conectarea la serverul de administrare Kaspersky Security Center. Implicit, parametrul este setat la |
|
|
Numele contului de utilizator. Parametru obligatoriu. |
|
|
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șier – getFile
Setări activitate Obținere fișier
Parametru |
Tip |
Descriere |
|---|---|---|
|
|
Hash MD5 al fișierului pe care vrei să îl obții. |
|
|
SHA256 hash al fișierului pe care vrei să îl obții. |
|
|
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șier – deleteFile
Setări activitate Șterge fișier
Parametru |
Tip |
Descriere |
|---|---|---|
|
|
Hash MD5 al fișierului pe care vrei să îl ștergi. |
|
|
SHA256 hash al fișierului pe care vrei să îl ștergi. |
|
|
Calea către fișierul pe care vrei să îl ștergi. |
|
|
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 |
|---|---|---|
|
|
Hash MD5 al fișierului pe care vrei să îl pui în carantină. |
|
|
Hash SHA256 al fișierului pe care vrei să îl pui în carantină. |
|
|
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 IOC – iocScan
Setări activitate Scanare IOC
Parametru |
Tip |
Descriere |
|---|---|---|
|
|
Calea către arhiva ZIP cu fișiere IOC pe care dorești să le utilizezi pentru scanare. |
|
|
Izolează computerul de rețea atunci când este detectat un indicator de compromis pentru a preveni răspândirea amenințării. |
|
|
Rulează sarcina Scanare zone critice atunci când este detectat un indicator de compromis. |
|
|
Ș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 procesul – startProcess
Setări activitate Pornește procesul
Parametru |
Tip |
Descriere |
|---|---|---|
|
|
Calea către fișierul executabil care este utilizat pentru a începe procesul. |
|
|
Argumente suplimentare ale liniei de comandă pentru pornirea procesului. |
|
|
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ă procesul – terminateProcess
Setări activitate Termină procesul
Parametru |
Tip |
Descriere |
|---|---|---|
|
|
Hash MD5 al fișierului al cărui proces vrei să îl închizi. |
|
|
Hash SHA256 al fișierului al cărui proces vrei să îl închizi. |
|
|
Calea către fișierul pe care vrei să îl ștergi. |
|
|
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 |
|---|---|---|
|
|
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 MD5 al fișierului pe care vrei să îl împiedici să ruleze. |
|
|
Calea către fișierul pe care vrei să îl împiedici să ruleze. |
|
|
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 malware – onDemandScan
Setări activitate Scanare malware
Parametru |
Tip |
Descriere |
|---|---|---|
|
|
Listă de fișiere și foldere delimitate de spațiu pentru scanare personalizată. |
|
|
Mod de scanare recursiv. |
|
|
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