Contenido

Introducción

prerrequisitos

Requisitos

Componentes Utilizados

Configurar

Diagrama de la red

Configuraciones

Cree las credenciales API

Cree la secuencia del evento

Verificación

Troubleshooting

Códigos de estado

Introducción

Este documento describe cómo configurar y consumir la característica de la secuencia del evento para la protección avanzada de Malware (AMP) para las puntos finales.

Prerrequisitos

Requisitos

Cisco recomienda que usted tiene conocimiento de los temas siguientes:

- AMP para terminales

- Conocimiento básico de la programación de Python

Componentes Utilizados

La información en este documento se basa en Python 3.7 con el pika (versión 1.1.0) y las bibliotecas externas de las peticiones (versión 2.22.0).

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Configurar

Diagrama de la red

Esta imagen proporciona a un ejemplo de la secuencia de la secuencia del evento:

Configuraciones

Cree las credenciales API

1. Navegue a su AMP para el portal y la clave de las puntos finales

2. Bajo cuentas, elija las credenciales API

3. Haga clic las nuevas credenciales API

4. Ingrese un valor en el campo de nombre de la aplicación

5. Seleccione leído y escriba para el alcance

6. El tecleo crea

7. Salve estas credenciales en un encargado de la contraseña o un fichero cifrado

Cree la secuencia del evento

1. Abra un shell de Python e importe el json, el SSL, pika y pide las bibliotecas.

import json

import pika

import requests

import ssl

2. Salve los valores para el URL, el client_id, y el api_key.  Su URL puede variar si usted no está utilizando la nube norteamericana.  También, su client_id y api_key es únicos a su entorno.

url = "https://api.amp.cisco.com/v1/event_streams"

client_id = "d16aff14860af496e848"

api_key = "d01ed435-b00d-4a4d-a299-1806ac117e72"

3. Cree el objeto de datos para pasar a la petición.  Esto debe incluir el nombre, y puede incluir el event_type y el group_guid para restringir los eventos y a los grupos incluidos en la secuencia.  Si no se pasa ningún group_guid o event_type, la secuencia del evento incluirá todos los grupos y tipos de evento.

data = {

"name": "Event Stream for ACME Inc",

"group_guid": ["5cdf70dd-1b14-46a0-be90-e08da14172d8"],

"event_type": [1090519054]

}

4. Haga la llamada de la petición post, y salve el valor en una variable.

r = requests.post(

url = url,

data = data,

auth = (client_id, api_key)

)

5. Imprima el código de estado.  Confirme que el código es 201.

print(r.status_code)

6. Cargue el contenido de la respuesta en un objeto del json, y salve ese objeto en una variable.

j = json.loads(r.content)

7. Revise el contenido de los datos de la respuesta.

for k, v in j.items():

print(f"{k}: {v}")

8. Los datos avanzados del protocolo del envío de mensajes a la cola (AMQP) están dentro de la respuesta.  Extraiga los datos en las variables respectivas.

user_name = j["data"]["amqp_credentials"]["user_name"]

queue_name = j["data"]["amqp_credentials"]["queue_name"]

password = j["data"]["amqp_credentials"]["password"]

host = j["data"]["amqp_credentials"]["host"]

port = j["data"]["amqp_credentials"]["port"]

proto = j["data"]["amqp_credentials"]["proto"]

9. Defina una función de devolución de llamada con estos parámetros.  En esta disposición, usted imprime el cuerpo del evento a la pantalla.  Sin embargo, usted puede cambiar este contenido de esta función para adaptarse a sus objetivos.

def callback(channel, method, properties, body):

print(body)

10. Prepare el AMQP URL de las variables que usted creó.

amqp_url = f"amqps://{user_name}:{password}@{host}:{port}"

11. Prepare el contexto SSL

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)

amqp_ssl = pika.SSLOptions(context)

12. Prepare la secuencia AMQP con los métodos de la biblioteca del pika.

params = pika.URLParameters(amqp_url)

params.ssl_options = amqp_ssl

connection = pika.BlockingConnection(params)

channel = connection.channel()

channel.basic_consume(

queue_name,

callback,

auto_ack = False

)

13. Inicie la secuencia.

channel.start_consuming()

14. La secuencia ahora es viva y que aguarda los eventos.

Verificación

Accione un evento en una punto final en su entorno.  Por ejemplo, inicie una exploración de destello.  Note que la secuencia imprime los datos de eventos a la pantalla.

Presione Ctrl+C (Windows) o el comando C (mac) de interrumpir la secuencia.

Troubleshooting

Códigos de estado

- Un código de estado de 401 indica que hay un problema con la autorización.  Controle su client_id y api_key, o genere las nuevas claves.

- Un código de estado de 400 indica que hay un mún problema de la petición.  Controle que usted no tiene una secuencia del evento creada con ese nombre, o que usted no tiene más de 5 secuencias del evento creadas.