Kaspersky Endpoint Security 12.9 para Windows es compatible con las acciones de respuesta a amenazas de EDR (EDR responses) utilizando Kaspersky Security Center OpenAPI. Es decir, puede llamar a métodos de OpenAPI para automatizar la respuesta a amenazas de EDR con Python. Puede llamar a estos métodos al realizar la integración con las soluciones SIEM. Kaspersky Unified Monitoring and Analysis Platform, la solución de Kaspersky SIEM, es compatible con OpenAPI de respuesta a amenazas de EDR a partir de la versión 3.4.1. Para ver ejemplos de scripts, consulte la documentación de KUMA.
Para realizar acciones de respuesta a amenazas de EDR, debe crear una solicitud y enviarla utilizando KSC Open API (AddIncident). Una vez que se procesa la solicitud, se crea una tarea especial en la consola de Kaspersky Security Center.
Para crear tareas al responder a amenazas de EDR, debe establecer una conexión en segundo plano entre el Servidor de administración y Kaspersky Security Center Web Console. El servicio de conexión en segundo plano está disponible en Kaspersky Security Center Windows 14.2 o posterior y en Kaspersky Security Center Linux 15.2. Otras consolas, incluidas las consolas de las soluciones de Kaspersky Detection and Response, no son compatibles.
Para la respuesta a amenazas de EDR, debe especificar los parámetros básicos de la solicitud, por ejemplo, en formato JSON:
task es el tipo de tarea (ver más abajo).targetHost es el Id. del equipo en el que se debe ejecutar el script. Argumento requerido. El script obtiene este argumento del evento.responseEventIncidentArea es el nombre de la aplicación que ejecutó el script (por ejemplo, KUMA). Este parámetro se agrega al nombre de la tarea creada.Para configurar la respuesta a amenazas de EDR, debe especificar la configuración de la tarea en formato JSON en el parámetro "KLINCDT_BODY": json.dumps(data). Como resultado, la aplicación crea la [Response][KUMA] <task type> - <Date> <Time> - <ID> en la consola de Kaspersky Security Center.
Conexión a Kaspersky Security Center OpenAPI
Como parte de respuesta a amenazas de EDR, la aplicación crea tareas especiales en la consola de Kaspersky Security Center. Para crear estas tareas, es necesario establecer una conexión entre el equipo y Kaspersky Security Center. Para lograr esto, los parámetros de conexión de Kaspersky Security Center deben especificarse en la solicitud.
Parámetros de conexión de Kaspersky Security Center
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Dirección del servidor de administración de Kaspersky Security Center. Parámetro obligatorio. |
|
|
Puerto de la conexión del Servidor de administración Parámetro obligatorio. |
|
|
Ruta a un archivo de certificado para conectarse al Servidor de administración de Kaspersky Security Center. De manera predeterminada, el parámetro está establecido en |
|
|
Nombre de cuenta del usuario. Parámetro obligatorio. |
|
|
Contraseña de la cuenta de usuario. Parámetro obligatorio. |
Ejemplo
# 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})
Los datos de la cuenta de usuario no están protegidos, por lo tanto, debe especificar un usuario separado que se usará para realizar solo estas acciones.
Obtener archivo – getFile
Configuración de la tarea Obtener archivo
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Hash MD5 del archivo que desea obtener. |
|
|
Hash SHA256 del archivo que desea obtener. |
|
|
Ruta al archivo que desea obtener. |
Ejemplo
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;
};
Eliminar archivo – deleteFile
Configuración de la tarea Eliminar archivo
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Hash MD5 del archivo que desea eliminar. |
|
|
Hash SHA256 del archivo que desea eliminar. |
|
|
Ruta al archivo que desea eliminar. |
|
|
Busque el archivo que desea eliminar en las subcarpetas. |
Ejemplo
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;
};
Poner archivo en cuarentena – quarantineFile
Configuración de la tarea Poner archivo en cuarentena
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Hash MD5 del archivo que desea poner en cuarentena. |
|
|
Hash SHA256 del archivo que desea poner en cuarentena. |
|
|
Ruta al archivo que desea poner en cuarentena. |
Ejemplo
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;
};
Análisis de IOC – iocScan
Configuración de la tarea Análisis de IOC
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Ruta al archivo de almacenamiento Zip con archivos de IOC que desea usar para analizar. |
|
|
Aísle el equipo de la red cuando se detecte un indicador de compromiso para evitar que la amenaza se propague. |
|
|
Ejecute la tarea Análisis de áreas críticas cuando se detecte un indicador de compromiso. |
|
|
Elimine el objeto malicioso cuando se detecte un indicador de compromiso. Antes de eliminar el objeto, Kaspersky Endpoint Security crea una copia de seguridad en caso de que sea necesario restaurar el objeto más adelante. Kaspersky Endpoint Security mueve la copia de seguridad a Cuarentena. |
Ejemplo
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;
};
Iniciar proceso – startProcess
Configuración de la tarea Iniciar proceso
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Ruta al archivo ejecutable que se utiliza para iniciar el proceso. |
|
|
Argumentos de línea de comandos adicionales para iniciar el proceso. |
|
|
Ruta de acceso a la carpeta de trabajo del proceso. |
Ejemplo
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;
};
Finalizar proceso – terminateProcess
Configuración de la tarea Finalizar proceso
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Hash MD5 del archivo cuyo proceso desea finalizar. |
|
|
Hash SHA256 del archivo cuyo proceso desea finalizar. |
|
|
Ruta al archivo que desea eliminar. |
|
|
Distinción entre mayúsculas y minúsculas al buscar el archivo. |
Ejemplo
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;
};
Aislamiento de la red del equipo – isolateHost
Configuración de aislamiento de la red del equipo
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Hash MD5 del archivo que desea obtener. |
Ejemplo
type isolateHost = {
task: 'isolateHost';
targetHost: string;
params: {
// 0 - turning off network isolation, 1 - turning on network isolation
action: number;
};
responseEventIncidentArea: string;
};
Prevención de ejecución – preventExecution
Ajustes de prevención de ejecución
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Hash MD5 del archivo que desea evitar que se ejecute. |
|
|
Ruta al archivo que desea evitar que se ejecute. |
|
|
Distinción entre mayúsculas y minúsculas al buscar el archivo. |
Ejemplo
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;
};
Análisis de malware – onDemandScan
Configuración de la tarea Análisis de malware
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Lista delimitada por espacios de archivos y carpetas para análisis personalizado. |
|
|
Modo de análisis recursivo. |
|
|
Alcance del análisis. |
ScanObjectType = Enum("ScanObjectType", [ ("SystemMemory", 14), ("StartupObjectsAndRunningProcesses", 15), ("DiskBootSectors", 16), ("SystemBackupStorage", 17), ("Email", 18), ("Folder", 22), ("AllRemovableDrives", 23), ("AllNetworkDrives", 24), ("AllFixedDrives", 25)]) |
||
Ejemplo
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;
};
Inicio de página