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:
task is het type taak (zie hieronder).targetHost is de ID van de computer waarop het script moet worden uitgevoerd. Vereist argument. Het script haalt dit argument uit de gebeurtenis.responseEventIncidentArea is de naam van het programma dat het script heeft uitgevoerd (bijvoorbeeld KUMA). Deze parameter wordt toegevoegd aan de naam van de gemaakte taak.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 |
|---|---|---|
|
|
Adres Administration Server van het Kaspersky Security Center. Vereiste parameter. |
|
|
Verbindingspoort Administration Server. Vereiste parameter. |
|
|
Pad naar een certificaatbestand voor de verbinding met de Administration Server van Kaspersky Security Center. Standaard is de parameter ingesteld op |
|
|
Naam van gebruikersaccount. Vereiste parameter. |
|
|
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 ophalen – getFile
Instellingen van Bestand ophalen-taak
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
MD5-hash van het bestand dat u wilt ophalen. |
|
|
SHA256-hash van het bestand dat u wilt ophalen. |
|
|
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 verwijderen – deleteFile
Instellingen van Bestand verwijderen-taak
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
MD5-hash van het bestand dat u wilt verwijderen. |
|
|
SHA256-hash van het bestand dat u wilt verwijderen. |
|
|
Pad naar het bestand dat u wilt verwijderen. |
|
|
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 plaatsen – quarantineFile
Instellingen van Bestand in Quarantaine plaatsen-taak
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
MD5-hash van het bestand dat u in quarantaine wilt plaatsen. |
|
|
SHA256-hash van het bestand dat u in quarantaine wilt plaatsen. |
|
|
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-scan – iocScan
Instellingen van IOC-scan-taak
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Pad naar het ZIP-archief met IOC-bestand die u wilt gebruiken voor het scannen. |
|
|
Isoleer de computer van het netwerk wanneer een indicator of compromise wordt gedetecteerd om te voorkomen dat de dreiging zich verspreidt. |
|
|
Start de taak Kritieke Gebiedenscan wanneer een indicator of compromise wordt gedetecteerd. |
|
|
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 starten – startProcess
Instellingen van Process starten-taak
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Pad naar het uitvoerbare bestand dat wordt gebruikt om het proces te starten. |
|
|
Aanvullende opdrachtregelargumenten om het proces te starten. |
|
|
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ëindigen – terminateProcess
Instellingen van Proces beëindigen-taak
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
MD5-hash van het bestand waarvan u het proces wilt beëindigen. |
|
|
SHA256-hash van het bestand waarvan u het proces wilt beëindigen. |
|
|
Pad naar het bestand dat u wilt verwijderen. |
|
|
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 |
|---|---|---|
|
|
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 |
|---|---|---|
|
|
MD5-hash van het bestand dat u niet wil uitvoeren. |
|
|
Pad naar het bestand dat u niet wilt uitvoeren. |
|
|
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-scan – onDemandScan
Instellingen van Malware-scan-taak
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een door spaties gescheiden lijst met bestanden en mappen voor Aangepaste Scan. |
|
|
Recursieve scanmodus. |
|
|
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