Resposta a ameaças da API para EDR

O Kaspersky Endpoint Security 12.9 for Windows apresenta compatibilidade com Ações de Resposta a ameaças do EDR (EDR responses) usando a OpenAPI do Kaspersky Security Center. Ou seja, você pode chamar os métodos OpenAPI para automatizar a resposta a ameaças do EDR usando o Python. Você pode chamar esses métodos quando integrado com soluções SIEM. A Kaspersky Unified Monitoring and Analysis Platform, a solução SIEM da Kaspersky, é compatível com a OpenAPI de Resposta a ameaças do EDR a partir da versão 3.4.1. Para scripts de exemplo, consulte a documentação do KUMA.

Para executar ações de resposta a ameaças EDR, é preciso criar uma solicitação e enviá-la usando KSC Open API (AddIncident). Após o processamento da solicitação, uma tarefa especial será criada no console do Kaspersky Security Center.

Para criar tarefas ao responder a ameaças EDR, é necessário estabelecer uma conexão em segundo plano entre o Servidor de Administração e o Kaspersky Security Center Web Console. O serviço de conexão em segundo plano está disponível no Kaspersky Security Center Windows 14.2 ou posterior e no Kaspersky Security Center Linux 15.2. Outros consoles, incluindo consoles das soluções Detection and Response da Kaspersky, não são compatíveis.

Para a resposta a ameaças EDR, é necessário especificar parâmetros básicos de solicitação, por exemplo, no formato JSON:

Para configurar a resposta a ameaças EDR, é preciso especificar as configurações da tarefa no formato JSON no parâmetro "KLINCDT_BODY": json.dumps(data). Como resultado, o aplicativo cria o [Response][KUMA] <task type> - <Date> <Time> - <ID> no console do Kaspersky Security Center .

Conectar-se à OpenAPI do Kaspersky Security Center

Como parte da resposta a ameaças EDR, o aplicativo cria tarefas especiais no console do Kaspersky Security Center . A criação de tarefas requer o estabelecimento de uma conexão entre o computador e o Kaspersky Security Center. Para conseguir isso, os parâmetros de conexão do Kaspersky Security Center devem ser especificados na solicitação.

Parâmetros de conexão do Kaspersky Security Center

Parâmetro

Tipo

Descrição

kscHost

string

Endereço do Servidor de Administração do Kaspersky Security Center. Parâmetro obrigatório.

kscPort

int

Porta da conexão do Servidor de Administração Parâmetro obrigatório.

kscCert

string

Caminho para um arquivo de certificado para conexão ao Servidor de Administração do Kaspersky Security Center. Por padrão, o parâmetro é definido como False.

kscUser

string

Nome da conta do usuário. Parâmetro obrigatório.

kscPassword

string

Senha da conta de usuário. Parâmetro obrigatório.

Exemplo

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

Os dados da conta do usuário não são protegidos, portanto, é necessário dedicar um usuário separado que será usado para executar somente essas ações.

Obter o arquivogetFile

Configurações da tarefa Obter o arquivo

Parâmetro

Tipo

Descrição

md5hash

string

Hash MD5 do arquivo que o usuário deseja obter.

sha256hash

string

Hash SHA256 do arquivo que o usuário deseja obter.

path

string

Caminho para o arquivo que o usuário deseja obter.

Exemplo

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;

};

Excluir arquivodeleteFile

Configurações da tarefa Excluir arquivo

Parâmetro

Tipo

Descrição

md5hash

string

Hash MD5 do arquivo que o usuário deseja excluir.

sha256hash

string

Hash SHA256 do arquivo que o usuário deseja excluir.

path

string

Caminho para o arquivo que o usuário deseja excluir.

searchInSubfolders?

boolean

Pesquise o arquivo que deseja excluir nas subpastas.

Exemplo

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 arquivo para a QuarentenaquarantineFile

Configurações da tarefa Mover arquivo para a Quarentena

Parâmetro

Tipo

Descrição

md5hash

string

Hash MD5 do arquivo que o usuário deseja colocar em quarentena.

sha256hash

string

Hash SHA256 do arquivo que o usuário deseja colocar em quarentena.

path

string

Caminho para o arquivo que o usuário deseja colocar em quarentena.

Exemplo

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;

};

Verificação de IOCiocScan

Configurações da tarefa Verificação de IOC

Parâmetro

Tipo

Descrição

ioc

string

Caminho para o arquivo comprimido Zip com arquivos IOC que você deseja usar para verificação.

isolateHost

boolean

Isole o computador da rede quando um indicador de comprometimento for detectado para impedir que a ameaça se espalhe.

scanCriticalAreas

boolean

Execute a tarefa Verificação de áreas críticas quando um indicador de comprometimento for detectado.

quarantineObject

boolean

Exclua o objeto malicioso quando um indicador de comprometimento for detectado. Antes de excluir o objeto, o Kaspersky Endpoint Security cria uma cópia de backup, caso o objeto precise ser restaurado posteriormente. O Kaspersky Endpoint Security move a cópia de backup para a quarentena.

Exemplo

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 processostartProcess

Configurações da tarefa Iniciar processo

Parâmetro

Tipo

Descrição

executablePath

string

Caminho para o arquivo executável usado para iniciar o processo.

arguments?

string

Argumentos de linha de comando adicionais para iniciar o processo.

workingFolder?

string

Caminho para a pasta de trabalho do processo.

Exemplo

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;

};

Encerrar processoterminateProcess

Configurações da tarefa Encerrar processo

Parâmetro

Tipo

Descrição

md5hash

string

Hash MD5 do arquivo cujo processo o usuário deseja encerrar.

sha256hash

string

Hash SHA256 do arquivo cujo processo o usuário deseja encerrar.

path

string

Caminho para o arquivo que o usuário deseja excluir.

caseSensitive

boolean

Diferenciação entre maiúsculas e minúsculas ao procurar o arquivo.

Exemplo

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;

};

Isolamento de rede do computador – isolateHost

Configurações de isolamento de rede do computador

Parâmetro

Tipo

Descrição

action

string

Hash MD5 do arquivo que o usuário deseja obter.

Exemplo

type isolateHost = {

task: 'isolateHost';

targetHost: string;

params: {

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

action: number;

};

responseEventIncidentArea: string;

};

Prevenção de execução – preventExecution

Configurações de prevenção de execução

Parâmetro

Tipo

Descrição

hash

string

Hash MD5 do arquivo do qual o usuário deseja impedir a execução.

path

string

Caminho para o arquivo do qual o usuário deseja impedir a execução.

caseSensitive

boolean

Diferenciação entre maiúsculas e minúsculas ao procurar o arquivo.

Exemplo

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;

};

Verificação de malwareonDemandScan

Configurações da tarefa Verificação de malware

Parâmetro

Tipo

Descrição

path

string

Lista delimitada por espaços de arquivos e pastas para Verificação personalizada.

recursive

boolean

Modo de Verificação recursiva.

type

number

Escopo da verificação.

ScanObjectType = Enum("ScanObjectType",

[

("SystemMemory", 14),

("StartupObjectsAndRunningProcesses", 15),

("DiskBootSectors", 16),

("SystemBackupStorage", 17),

("Email", 18),

("Folder", 22),

("AllRemovableDrives", 23),

("AllNetworkDrives", 24),

("AllFixedDrives", 25)])

Exemplo

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;

};

Início da página