Este artículo será útil para quienes estén familiarizados con la tecnología. Check Point mediante emulación de archivos (Emulación de amenazas) y limpieza proactiva de archivos (Extracción de amenazas) y quiere dar un paso hacia la automatización de estas tareas. Punto de control tiene
Abreviaturas básicas
La API de Prevención de amenazas funciona con tres componentes principales, a los que se llama en la API mediante los siguientes valores de texto:
av — Componente antivirus, responsable del análisis de firmas de amenazas conocidas.
te - Componente Threat Emulation, responsable de comprobar los archivos en el sandbox y emitir un veredicto malicioso/benigno después de la emulación.
Extracción - Componente de extracción de amenazas, responsable de convertir rápidamente los documentos de Office a un formato seguro (en el que se elimina todo el contenido potencialmente malicioso), para entregarlos rápidamente a los usuarios/sistemas.
Estructura API y principales limitaciones.
La API de prevención de amenazas utiliza solo 4 solicitudes: subir, consultar, descargar y cuota. En el encabezado de las cuatro solicitudes, debe pasar la clave API usando el parámetro Autorización. A primera vista, la estructura puede parecer mucho más simple que en
Por el momento, se ha lanzado la única versión de la API de Prevención de amenazas: 1.0; la URL para las llamadas a la API debe incluir v1 en la parte donde necesita especificar la versión. A diferencia de la API de administración, es necesario indicar la versión de la API en la URL; de lo contrario, la solicitud no se ejecutará.
El componente antivirus, cuando se llama sin otros componentes (te, extracción), actualmente solo admite solicitudes de consulta con sumas hash md5. La emulación de amenazas y la extracción de amenazas también admiten sumas hash sha1 y sha256.
¡Es muy importante no cometer errores en las consultas! La solicitud se puede ejecutar sin errores, pero no por completo. Mirando un poco hacia adelante, veamos lo que puede suceder cuando hay errores/errores tipográficos en las consultas.
Solicitud con un error tipográfico con la palabra informes(reportss)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}
No habrá ningún error en la respuesta, pero no habrá ninguna información sobre los informes.
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
"file_type": "pdf",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Pero para una solicitud sin un error tipográfico en la clave de informes
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}
Recibimos una respuesta que ya contiene identificación para descargar informes.
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
"file_type": "pdf",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious",
"full_report": "b684066e-e41c-481a-a5b4-be43c27d8b65",
"pdf_report": "e48f14f1-bcc7-4776-b04b-1a0a09335115",
"xml_report": "d416d4a9-4b7c-4d6d-84b9-62545c588963"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Si enviamos una clave API incorrecta o vencida, recibiremos un error 403 en respuesta.
SandBlast API: en la nube y en dispositivos locales
Las solicitudes de API se pueden enviar a dispositivos Check Point que tengan habilitado el componente Threat Emulation (blade). Como dirección para solicitudes, debe utilizar la ip/url del dispositivo y el puerto 18194 (por ejemplo, https://10.10.57.19:18194/tecloud/api/v1/archivo/query). También debe asegurarse de que la política de seguridad del dispositivo permita dicha conexión. Autorización mediante clave API en dispositivos locales de forma predeterminada apagado y es posible que la clave de autorización en los encabezados de la solicitud no se envíe en absoluto.
Las solicitudes de API a la nube de CheckPoint deben enviarse a te.checkpoint.com (por ejemplo - https://te.checkpoint.com/tecloud/api/v1/archivo/query). La clave API se puede obtener como licencia de prueba durante 60 días comunicándose con los socios de Check Point o con la oficina local de la empresa.
En dispositivos locales, Threat Extraction aún no es compatible como estándar.
Los dispositivos locales no admiten la solicitud de cuota.
Por lo demás, no existen diferencias entre las solicitudes a dispositivos locales y a la nube.
Cargar llamada API
Método utilizado: PUBLICAR
Dirección de llamada - https:///tecloud/api/v1/archivo/cargar
La solicitud consta de dos partes (formulario-datos): un archivo destinado a emulación/limpieza y un cuerpo de solicitud con texto.
La solicitud de texto no puede estar vacía, pero no puede contener ninguna configuración. Para que la solicitud tenga éxito deberá enviar al menos el siguiente texto en la solicitud:
Mínimo requerido para una solicitud de carga
POST HTTP
https:///tecloud/api/v1/archivo/cargar
Encabezados:
Autorización:
Cuerpo
{
"pedido": {
}
}
Archive
Archive
En este caso, el archivo se procesará de acuerdo con los parámetros predeterminados: componente - te, imágenes del sistema operativo - Gana XP y gana 7, sin generar un informe.
Comentarios sobre los campos principales de la solicitud de texto:
file_name и Tipo de archivo Puedes dejarlos en blanco o no enviarlos, ya que no es información especialmente útil a la hora de subir un archivo. En la respuesta de la API, estos campos se completarán automáticamente según el nombre del archivo descargado, y la información en el caché aún deberá buscarse usando cantidades de hash md5/sha1/sha256.
Solicitud de ejemplo con nombre_archivo y tipo_archivo vacíos
{
"request": {
"file_name": "",
"file_type": "",
}
}
Características — una lista que indica la funcionalidad necesaria al procesar en la zona de pruebas: av (Antivirus), te (Emulación de amenazas), extracción (Extracción de amenazas). Si este parámetro no se pasa en absoluto, solo se utilizará el componente predeterminado: te (Emulación de amenazas).
Para habilitar la incorporación de los tres componentes disponibles, debe especificar estos componentes en la solicitud de API.
Ejemplo de solicitud con check in av, te y extracción
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
Claves en la sección te
imágenes — una lista que contiene diccionarios con identificación y número de revisión de los sistemas operativos en los que se realizará la verificación. Los ID y los números de revisión son los mismos para todos los dispositivos locales y la nube.
Lista de sistemas operativos y revisiones.
ID de imagen del sistema operativo disponible
Revisión
Sistema operativo de imagen y aplicación
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP - SP32 de 3 bits
Oficina: 2003, 2007
Adobe Acrobat Reader: 9.0
Reproductor Flash 9r115 y ActiveX 10.0
Tiempo de ejecución de Java: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 - 32 bits
Oficina: 2003, 2007
Adobe Acrobat Reader: 9.0
Reproductor Flash: 10.2r152 (Enchufar& ActiveX)
Tiempo de ejecución de Java: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 - 32 bits
Oficina: 2010
Adobe Acrobat Reader: 9.4
Reproductor Flash: 11.0.1.152 (Enchufar & ActiveX)
Tiempo de ejecución de Java: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 - 32 bits
Oficina: 2013
Adobe Acrobat Reader: 11.0
Reproductor Flash: 15 (Enchufar & ActiveX)
Tiempo de ejecución de Java: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7 - 64 bits
Oficina: 2013 (32 bits)
Adobe Acrobat Reader: 11.0.01
Reproductor Flash: 13 (Enchufar & ActiveX)
Tiempo de ejecución de Java: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
Microsoft Windows: 8.1 - 64 bits
Oficina: 2013 (64 bits)
Adobe Acrobat Reader: 11.0.10
Reproductor Flash: 18.0.0.160 (Enchufar & ActiveX)
Tiempo de ejecución de Java: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Oficina: Professional Plus 2016 es-es
Adobe Acrobat Reader: DC 2015 MUI
Reproductor Flash: 20 (Enchufar & ActiveX)
Tiempo de ejecución de Java: 1.7.0u9
Si no se especifica ninguna clave de imágenes, la emulación se realizará en las imágenes recomendadas por Check Point (actualmente Win XP y Win 7). Estas imágenes se recomiendan en función de consideraciones sobre el mejor equilibrio entre rendimiento y tasa de captura.
informes — una lista de informes que solicitamos en caso de que el archivo resulte ser malicioso. Las siguientes opciones están disponibles:
-
resumen - Archivo .tar.gz que contiene un informe sobre la emulación de todos imágenes solicitadas (tanto una página html como componentes como un video del sistema operativo del emulador, un volcado de tráfico de red, un informe en json y la muestra en sí en un archivo protegido con contraseña). Buscamos la clave en la respuesta. informe resumido para su posterior descarga del informe.
-
pdf - documento sobre emulación en uno imagen, que muchos están acostumbrados a recibir a través de la Smart Console. Buscamos la clave en la respuesta. informe_pdf para su posterior descarga del informe.
-
xml - documento sobre emulación en uno imagen, conveniente para el análisis posterior de los parámetros en el informe. Buscamos la clave en la respuesta. informe_xml para su posterior descarga del informe.
-
alquitrán - Archivo .tar.gz que contiene un informe sobre la emulación en uno imágenes solicitadas (tanto una página html como componentes como un video del sistema operativo del emulador, un volcado de tráfico de red, un informe en json y la muestra en sí en un archivo protegido con contraseña). Buscamos la clave en la respuesta. reporte completo para su posterior descarga del informe.
¿Qué hay dentro del informe resumido?
Las claves full_report, pdf_report, xml_report están en el diccionario de cada sistema operativo
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "9e6f07d03b37db0d3902bde4e239687a9e3d650e8c368188c7095750e24ad2d5",
"file_type": "html",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious",
"full_report": "8d18067e-b24d-4103-8469-0117cd25eea9",
"pdf_report": "05848b2a-4cfd-494d-b949-6cfe15d0dc0b",
"xml_report": "ecb17c9d-8607-4904-af49-0970722dd5c8"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
},
{
"report": {
"verdict": "malicious",
"full_report": "d7c27012-8e0c-4c7e-8472-46cc895d9185",
"pdf_report": "488e850c-7c96-4da9-9bc9-7195506afe03",
"xml_report": "e5a3a78d-c8f0-4044-84c2-39dc80ddaea2"
},
"status": "found",
"id": "6c453c9b-20f7-471a-956c-3198a868dc92",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Pero la clave resumen_report: hay una para la emulación en general
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "d57eadb7b2f91eea66ea77a9e098d049c4ecebd5a4c70fb984688df08d1fa833",
"file_type": "exe",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious",
"full_report": "c9a1767b-741e-49da-996f-7d632296cf9f",
"xml_report": "cc4dbea9-518c-4e59-b6a3-4ea463ca384b"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
},
{
"report": {
"verdict": "malicious",
"full_report": "ba520713-8c0b-4672-a12f-0b4a1575b913",
"xml_report": "87bdb8ca-dc44-449d-a9ab-2d95e7fe2503"
},
"status": "found",
"id": "6c453c9b-20f7-471a-956c-3198a868dc92",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"summary_report": "7e7db12d-5df6-4e14-85f3-2c1e29cd3e34",
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Puede solicitar informes tar, xml y pdf al mismo tiempo, puede solicitar resumen, tar y xml. No será posible solicitar un informe resumido y un pdf al mismo tiempo.
Claves en la sección de extracción
Para la extracción de amenazas, sólo se utilizan dos claves:
Método — pdf (convertir a pdf, usado por defecto) o limpiar (limpiar contenido activo).
códigos_de_piezas_extraídas - lista de códigos para eliminar contenido activo, aplicable solo para el método limpio
Códigos para eliminar contenido de archivos
Código
Descripción
1025
Objetos vinculados
1026
Macros y código
1034
Hipervínculos sensibles
1137
Acciones PDF GoToR
1139
Acciones de lanzamiento de PDF
1141
Acciones de URI de PDF
1142
Acciones de sonido PDF
1143
Acciones de película PDF
1150
Acciones de JavaScript en PDF
1151
Acciones de envío de formulario PDF
1018
Las consultas de bases de datos
1019
Objetos incrustados
1021
Guardar datos rápidamente
1017
Propiedades personalizadas
1036
Propiedades estadísticas
1037
Propiedades de resumen
Para descargar una copia limpia, también deberá realizar una solicitud de consulta (que se analizará a continuación) después de unos segundos, especificando la cantidad de hash del archivo y el componente de extracción en el texto de la solicitud. Puede recoger el archivo limpio utilizando la identificación de la respuesta a la consulta: extraído_archivo_descarga_id. Una vez más, mirando un poco hacia el futuro, doy ejemplos de una solicitud y una respuesta a una consulta para buscar una identificación para descargar un documento borrado.
Solicitud de consulta para buscar la clave extract_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Respuesta a la consulta (busque la clave extract_file_download_id)
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"file_type": "",
"file_name": "",
"features": [
"extraction"
],
"extraction": {
"method": "pdf",
"extract_result": "CP_EXTRACT_RESULT_SUCCESS",
"extracted_file_download_id": "b5f2b34e-3603-4627-9e0e-54665a531ab2",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"time": "0.013",
"extract_content": "Macros and Code",
"extraction_data": {
"input_extension": "xls",
"input_real_extension": "xls",
"message": "OK",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"protection_name": "Potential malicious content extracted",
"protection_type": "Conversion to PDF",
"protocol_version": "1.0",
"risk": 5.0,
"scrub_activity": "Active content was found - XLS file was converted to PDF",
"scrub_method": "Convert to PDF",
"scrub_result": 0.0,
"scrub_time": "0.013",
"scrubbed_content": "Macros and Code"
},
"tex_product": false,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Visión de conjunto
En una llamada API, puede enviar solo un archivo para verificación.
El componente av no requiere una sección adicional con claves, basta con especificarlo en el diccionario Características.
Llamada API de consulta
Método utilizado: PUBLICAR
Dirección de llamada - https:///tecloud/api/v1/archivo/consulta
Antes de enviar un archivo para descargar (solicitud de carga), es recomendable verificar el caché de la zona de pruebas (solicitud de consulta) para optimizar la carga en el servidor API, ya que es posible que el servidor API ya tenga información y un veredicto sobre el archivo descargado. La llamada consta únicamente de una parte de texto. La parte requerida de la solicitud es la cantidad de hash sha1/sha256/md5 del archivo. Por cierto, puedes obtenerlo en la respuesta a la solicitud de carga.
Mínimo requerido para consulta
POST HTTP
https:///tecloud/api/v1/archivo/consulta
Encabezados:
Autorización:
Cuerpo
{
"pedido": {
"sha256":
}
}
Un ejemplo de una respuesta a una solicitud de carga, donde las cantidades de hash sha1/md5/sha256 son visibles
{
"response": {
"status": {
"code": 1002,
"label": "UPLOAD_SUCCESS",
"message": "The file was uploaded successfully."
},
"sha1": "954b5a851993d49ef8b2412b44f213153bfbdb32",
"md5": "ac29b7c26e7dcf6c6fdb13ac0efe98ec",
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "",
"file_name": "kp-20-doc.doc",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "unknown"
},
"status": "not_found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1002,
"label": "UPLOAD_SUCCESS",
"message": "The file was uploaded successfully."
}
}
}
}
La solicitud de consulta, además de la cantidad de hash, idealmente debería ser la misma que la solicitud de carga (o que se planea que sea), o incluso “ya” (contener menos campos en la solicitud de consulta que en la solicitud de carga). En el caso de que la solicitud de consulta contenga más campos que los que había en la solicitud de carga, no recibirá toda la información requerida en la respuesta.
A continuación se muestra un ejemplo de una respuesta a una consulta en la que no se encontraron todos los datos requeridos.
{
"response": [
{
"status": {
"code": 1006,
"label": "PARTIALLY_FOUND",
"message": "The request cannot be fully answered at this time."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "doc",
"file_name": "",
"features": [
"te",
"extraction"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious",
"pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
"xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 1,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
},
"extraction": {
"method": "pdf",
"tex_product": false,
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Could not find the requested file. Please upload it."
}
}
}
]
}
Presta atención a los campos. código и Label. Estos campos aparecen tres veces en los diccionarios de estado. Primero vemos la clave global “código”: 1006 y “etiqueta”: “PARTIALLY_FOUND”. A continuación, se encuentran estas claves para cada componente individual que solicitamos: te y extracción. Y si para ti está claro que se han encontrado los datos, entonces para la extracción no hay información.
Así es como se veía la consulta para el ejemplo anterior.
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Si envía una solicitud de consulta sin el componente de extracción
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Entonces la respuesta contendrá información completa (“código”: 1001, “etiqueta”: “ENCONTRADO”)
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "doc",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious",
"pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
"xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 1,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Si no hay ninguna información en el caché, entonces la respuesta será "etiqueta": "NOT_FOUND"
{
"response": [
{
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Could not find the requested file. Please upload it."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd91",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "unknown"
},
"status": "not_found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Could not find the requested file. Please upload it."
}
}
}
]
}
En una llamada API, puede enviar varias cantidades de hash a la vez para su verificación. La respuesta devolverá los datos en el mismo orden en que se enviaron en la solicitud.
Ejemplo de solicitud de consulta con varios importes sha256
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Respuesta a una consulta con múltiples montos sha256
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",
"file_type": "dll",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
},
{
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Could not find the requested file. Please upload it."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "unknown"
},
"status": "not_found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Could not find the requested file. Please upload it."
}
}
}
]
}
Solicitar varias sumas hash a la vez en una solicitud de consulta también tendrá un efecto beneficioso en el rendimiento del servidor API.
Descargar llamada API
Método utilizado: PUBLICAR (según documentación), también funciona (y puede parecer más lógico)
Dirección de llamada - https:///tecloud/api/v1/file/download?id=
El encabezado requiere que se pase la clave API, el cuerpo de la solicitud está vacío y la identificación de descarga se pasa en la dirección URL.
En respuesta a una solicitud de consulta, si se completa la emulación y se solicitaron informes al descargar el archivo, la identificación para descargar informes será visible. Si se solicita una copia limpia, debe buscar la identificación para descargar el documento limpio.
En total, las claves en la respuesta a la consulta que contiene el valor de id para cargar pueden ser:
-
informe resumido
-
reporte completo
-
informe_pdf
-
informe_xml
-
ID_descarga_archivo_extraído
Por supuesto, para recibir estas claves en respuesta a la solicitud de consulta, se deben especificar en la solicitud (para informes) o recordar realizar una solicitud utilizando la función de extracción (para documentos limpios)
Llamada API de cuota
Método utilizado: PUBLICAR
Dirección de llamada - https:///tecloud/api/v1/archivo/cuota
Para comprobar la cuota restante en la nube, utilice la consulta de cuota. El cuerpo de la solicitud está vacío.
Ejemplo de respuesta a una solicitud de cuota
{
"response": [
{
"remain_quota_hour": 1250,
"remain_quota_month": 10000000,
"assigned_quota_hour": 1250,
"assigned_quota_month": 10000000,
"hourly_quota_next_reset": "1599141600",
"monthly_quota_next_reset": "1601510400",
"quota_id": "TEST",
"cloud_monthly_quota_period_start": "1421712300",
"cloud_monthly_quota_usage_for_this_gw": 0,
"cloud_hourly_quota_usage_for_this_gw": 0,
"cloud_monthly_quota_usage_for_quota_id": 0,
"cloud_hourly_quota_usage_for_quota_id": 0,
"monthly_exceeded_quota": 0,
"hourly_exceeded_quota": 0,
"cloud_quota_max_allow_to_exceed_percentage": 1000,
"pod_time_gmt": "1599138715",
"quota_expiration": "0",
"action": "ALLOW"
}
]
}
API de prevención de amenazas para Security Gateway
Esta API se desarrolló antes que la API de Prevención de amenazas y está destinada únicamente a dispositivos locales. Por ahora, solo puede ser útil si necesita la API Threat Extraction. Para Emulación de amenazas, es mejor utilizar la API de Prevención de amenazas normal. Encender API de TP para SG y configure la clave API que necesita para realizar los pasos desde
Ahora echemos un vistazo más de cerca a las funciones. te и Extracción en esta API.
Para componente te diccionario proporcionado te_opciones en solicitudes de carga/consulta, y las claves en esta solicitud coinciden completamente con las claves en
Solicitud de ejemplo para emulación de archivos en Win10 con informes
{
"request": [{
"protocol_version": "1.1",
"api_key": "<api_key>",
"request_name": "UploadFile",
"file_enc_data": "<base64_encoded_file>",
"file_orig_name": "<filename>",
"te_options": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": ["summary", "xml"]
}
}
]
}
Para componente Extracción diccionario proporcionado opciones de fregado. Esta solicitud especifica el método de limpieza: convertir a PDF, borrar el contenido activo o seleccionar un modo de acuerdo con el perfil de Prevención de amenazas (se indica el nombre del perfil). Lo mejor de responder a una solicitud de API de extracción para un archivo es que obtienes una copia limpia en la respuesta a esa solicitud como una cadena cifrada en base64 (no necesitas realizar una solicitud de consulta y buscar la identificación para descargar el documento)
Ejemplo de una solicitud para borrar un archivo
{
"request": [{
"protocol_version": "1.1",
"api_key": "<API_KEY>",
"request_name": "UploadFile",
"file_enc_data": "<base64_encoded_file>",
"file_orig_name": "hi.txt",
"scrub_options": {
"scrub_method": 2
}
}]
}
Responder a una solicitud
{
"response": [{
"protocol_version": "1.1",
"src_ip": "<IP_ADDRESS>",
"scrub": {
"file_enc_data": "<base64_encoded_converted_to_PDF_file>",
"input_real_extension": "js",
"message": "OK",
"orig_file_url": "",
"output_file_name": "hi.cleaned.pdf",
"protection_name": "Extract potentially malicious content",
"protection_type": "Conversion to PDF",
"real_extension": "txt",
"risk": 0,
"scrub_activity": "TXT file was converted to PDF",
"scrub_method": "Convert to PDF",
"scrub_result": 0,
"scrub_time": "0.011",
"scrubbed_content": ""
}
}]
}
A pesar de que se requieren menos solicitudes de API para obtener una copia limpia, considero que esta opción es menos preferible y conveniente que la solicitud de datos de formulario utilizada en
Colecciones de cartero
Creé colecciones en Postman tanto para la API de Prevención de amenazas como para la API de Prevención de amenazas para Security Gateway, que representan las solicitudes de API más comunes. Para que la API y la clave de IP/URL del servidor se sustituyan automáticamente en las solicitudes, y para que la cantidad de hash sha256 se recuerde después de descargar el archivo, se han creado tres variables dentro de las colecciones (puede encontrarlas yendo a la configuración de la colección). Editar -> Variables): te_api (obligatorio), api_key (es necesario completarlo, excepto cuando se usa TP API con dispositivos locales), sha256 (dejar vacío, no se usa en TP API para SG).
Ejemplos de uso
En la comunidad
Fuente: habr.com