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:
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
- Navegue a su AMP para el portal y la clave de las puntos finales
- Bajo cuentas, elija las credenciales API
- Haga clic las nuevas credenciales API
- Ingrese un valor en el campo de nombre de la aplicación
- Seleccione leído y escriba para el alcance
- El tecleo crea
- Salve estas credenciales en un encargado de la contraseña o un fichero cifrado
Cree la secuencia del evento
- Abra un shell de Python e importe el json, el SSL, pika y pide las bibliotecas.
import json
import pika
import requests
import ssl
- 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"
- 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]
}
- 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)
)
- Imprima el código de estado. Confirme que el código es 201.
print(r.status_code)
- Cargue el contenido de la respuesta en un objeto del json, y salve ese objeto en una variable.
j = json.loads(r.content)
- Revise el contenido de los datos de la respuesta.
for k, v in j.items():
print(f"{k}: {v}")
- 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"]
- 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)
- Prepare el AMQP URL de las variables que usted creó.
amqp_url = f"amqps://{user_name}:{password}@{host}:{port}"
- Prepare el contexto SSL
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
amqp_ssl = pika.SSLOptions(context)
- 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
)
- Inicie la secuencia.
channel.start_consuming()
- 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.