Kaspersky Endpoint Security 12.9 para Windows presenta soporte con acciones de Respuesta ante amenazas de EDR (EDR responses) usando Kaspersky Security Center OpenAPI. Es decir, puede llamar a métodos de OpenAPI para automatizar la respuesta a amenazas de EDR usando Python. Puede llamar a estos métodos cuando se integran con soluciones SIEM. Kaspersky Unified Monitoring and Analysis Platform, la solución de Kaspersky SIEM, es compatible con la OpenAPI de Respuesta ante amenazas de EDR a partir de la versión 3.4.1. Para ver scripts de ejemplo, consulte la documentación de KUMA.
Para realizar acciones de Respuesta ante amenazas de EDR, debe crear una solicitud y enviarla mediante 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 ante 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. No se admiten otras consolas, incluidas las consolas de las soluciones Kaspersky Detection and Response.
Para la Respuesta ante amenazas de EDR, debe especificar parámetros de solicitud básicos; por ejemplo, en formato JSON:
task es el tipo de tarea (consulte a continuación).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 añade al nombre de la tarea creada.Para configurar la Respuesta ante 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 el [Response][KUMA] <task type> - <Date> <Time> - <ID> en la consola de Kaspersky Security Center.
Conexión a Kaspersky Security Center OpenAPI
Como parte de EDR Threat Response, la aplicación crea tareas especiales en la consola de Kaspersky Security Center. La creación de estas tareas requiere 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 requerido. |
|
|
Puerto de conexión al Servidor de administración. Parámetro requerido. |
|
|
Ruta a un archivo de certificado para conectar al Servidor de administración de Kaspersky Security Center. De forma predeterminada, el parámetro está establecido en |
|
|
Nombre de la cuenta de usuario. Parámetro requerido. |
|
|
Contraseña de la cuenta de usuario. Parámetro requerido. |
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 tanto, debe dedicar un usuario independiente que se utilizará solo para realizar 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. |
|
|
Busca el archivo que desea eliminar en 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;
};
Mover archivo a Cuarentena – quarantineFile
Configuración de la tarea Mover archivo a 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 ZIP con un archivo de IOC que desee usar para el análisis. |
|
|
Aísle el equipo de la red cuando se detecte un indicador de peligro 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 la 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 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;
};
Terminar proceso – terminateProcess
Configuración de la tarea Terminar 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 de 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 equipos de la red – isolateHost
Configuración del aislamiento de equipos de la red
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
Configuración de prevención de ejecución
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Hash MD5 del archivo cuya ejecución desea evitar. |
|
|
Ruta al archivo cuya ejecución desea evitar. |
|
|
Distinción de 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 antimalware – onDemandScan
Configuración de la tarea Análisis antimalware
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Lista delimitada por espacios de archivos y carpetas para análisis personalizado. |
|
|
Modo de análisis recursivo. |
|
|
Cobertura 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