Este artigo será útil para aqueles que estean familiarizados coa tecnoloxía Punto de verificación mediante emulación de ficheiros (Emulación de ameazas) e limpeza proactiva de ficheiros (Extracción de ameazas) e quere dar un paso cara a automatizar estas tarefas. Check Point ten
Abreviaturas básicas
A API de prevención de ameazas funciona con tres compoñentes principais, que se chaman na API a través dos seguintes valores de texto:
av — Compoñente antivirus, responsable da análise de sinaturas das ameazas coñecidas.
te - Compoñente de emulación de ameazas, responsable de comprobar os ficheiros no sandbox e de emitir un veredicto malicioso/benigno despois da emulación.
extracción - Compoñente de extracción de ameazas, responsable de converter rapidamente os documentos ofimáticos nun formulario seguro (no que se elimina todo o contido potencialmente malicioso), para entregalos rapidamente aos usuarios/sistemas.
Estrutura da API e principais limitacións
A API de prevención de ameazas usa só 4 solicitudes − carga, consulta, descarga e cota. Na cabeceira das catro solicitudes, cómpre pasar a clave API mediante o parámetro autorización. A primeira vista, a estrutura pode parecer moito máis sinxela que en
Polo momento, lanzouse a única versión da API de prevención de ameazas: 1.0; o URL das chamadas á API debe incluír v1 na parte onde precisa especificar a versión. A diferenza da API de xestión, é necesario indicar a versión da API na URL, se non, a solicitude non se executará.
O compoñente antivirus, cando se chama sen outros compoñentes (te, extracción), actualmente só admite solicitudes de consulta con sumas hash md5. A emulación de ameazas e a extracción de ameazas tamén admiten as sumas hash sha1 e sha256.
É moi importante non cometer erros nas consultas! A solicitude pódese executar sen erros, pero non completamente. Mirando un pouco cara adiante, vexamos o que pode ocorrer cando hai erros/erros tipográficos nas consultas.
Solicitude cun erro tipográfico coa palabra informes(informes)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}
Non haberá ningún erro na resposta, pero non haberá información sobre os 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 unha solicitude sen erros na clave de informes
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}
Recibimos unha resposta que xa contén ID 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."
}
}
}
]
}
Se enviamos unha clave API incorrecta/caducada, recibiremos un erro 403 como resposta.
API SandBlast: na nube e en dispositivos locais
As solicitudes de API pódense enviar a dispositivos Check Point que teñan activado o compoñente de emulación de ameazas (blade). Como enderezo para as solicitudes, cómpre utilizar a ip/url do dispositivo e o porto 18194 (por exemplo, https://10.10.57.19:18194/tecloud/api/v1/file/query). Tamén debes asegurarte de que a política de seguranza do dispositivo permite esta conexión. Autorización mediante clave API en dispositivos locais de forma predeterminada apagado e é posible que non se envíe a clave de autorización nas cabeceiras da solicitude.
As solicitudes de API á nube CheckPoint deben enviarse a te.checkpoint.com (por exemplo - https://te.checkpoint.com/tecloud/api/v1/file/query). A clave API pódese obter como licenza de proba durante 60 días contactando cos socios de Check Point ou coa oficina local da empresa.
Nos dispositivos locais, Threat Extraction aínda non é compatible de forma estándar.
Os dispositivos locais non admiten a solicitude de cota.
En caso contrario, non hai diferenzas entre as solicitudes aos dispositivos locais e á nube.
Cargar chamada API
Método utilizado − POST
Enderezo de chamada - https:///tecloud/api/v1/file/upload
A solicitude consta de dúas partes (formulario-datos): un ficheiro destinado á emulación/limpeza e un corpo da solicitude con texto.
A solicitude de texto non pode estar baleira, pero pode non conter ningunha configuración. Para que a solicitude teña éxito, debe enviar polo menos o seguinte texto na solicitude:
Mínimo necesario para unha solicitude de carga
POST HTTP
https:///tecloud/api/v1/file/upload
Cabeceiras:
Autorización:
Corpo
{
"solicitude": {
}
}
Arquivo
Arquivo
Neste caso, o ficheiro procesarase de acordo cos parámetros predeterminados: compoñente - te, imaxes do sistema operativo - Win XP e Win 7, sen xerar un informe.
Comentarios sobre os campos principais da solicitude de texto:
Nome de arquivo и tipo_ficheiro Podes deixalos en branco ou non envialos en absoluto, xa que esta información non é especialmente útil cando se carga un ficheiro. Na resposta da API, estes campos encheranse automaticamente en función do nome do ficheiro descargado e a información da caché aínda terá que buscarse usando as cantidades hash md5/sha1/sha256.
Exemplo de solicitude con nome_ficheiro e tipo_ficheiro baleiros
{
"request": {
"file_name": "",
"file_type": "",
}
}
características — unha lista que indica a funcionalidade necesaria ao procesar no sandbox: av (Anti-Virus), te (Emulación de ameazas), extracción (Extracción de ameazas). Se non se pasa este parámetro, só se utilizará o compoñente predeterminado - te (Emulación de ameazas).
Para activar a comprobación dos tres compoñentes dispoñibles, cómpre especificar estes compoñentes na solicitude da API.
Exemplo de solicitude con facturación av, te e extracción
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
Claves na sección te
imaxes — unha lista que conteña dicionarios con ID e número de revisión dos sistemas operativos nos que se realizará a comprobación. Os ID e os números de revisión son os mesmos para todos os dispositivos locais e para a nube.
Lista de sistemas operativos e revisións
ID de imaxe do sistema operativo dispoñible
Revisión
Imaxe SO e aplicación
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP - 32 bits SP3
Oficina: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 e Activo X 10.0
Tempo de execució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
Flash Player: 10.2r152 (Extensión& Activo X)
Tempo de execución de Java: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 - 32 bits
Oficina: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Extensión & Activo X)
Tempo de execución de Java: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 - 32 bits
Oficina: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Extensión & Activo X)
Tempo de execució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
Flash Player: 13 (Extensión & Activo X)
Tempo de execució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
Flash Player: 18.0.0.160 (Extensión & Activo X)
Tempo de execución de Java: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Oficina: Professional Plus 2016 en-us
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Extensión & Activo X)
Tempo de execución de Java: 1.7.0u9
Se non se especifica a clave de imaxes, a emulación terá lugar nas imaxes recomendadas por Check Point (actualmente Win XP e Win 7). Estas imaxes recoméndanse en función do mellor equilibrio entre rendemento e taxa de captura.
informes — unha lista de informes que solicitamos no caso de que o ficheiro resulte ser malicioso. As seguintes opcións están dispoñibles:
-
resumo - Arquivo .tar.gz que contén un informe sobre a emulación por para todos imaxes solicitadas (tanto unha páxina html como compoñentes como un vídeo do sistema operativo do emulador, un volcado de tráfico de rede, un informe en json e a propia mostra nun arquivo protexido con contrasinal). Buscamos a clave na resposta - informe_resumo para a posterior descarga do informe.
-
pdf - documento sobre a emulación en un imaxe, que moitos están acostumados a recibir a través da Smart Console. Buscamos a clave na resposta - informe_pdf para a posterior descarga do informe.
-
xml - documento sobre a emulación en un imaxe, conveniente para a posterior análise de parámetros no informe. Buscamos a clave na resposta - informe_xml para a posterior descarga do informe.
-
alcatrán - Arquivo .tar.gz que contén un informe sobre a emulación en un imaxes solicitadas (tanto unha páxina html como compoñentes como un vídeo do sistema operativo do emulador, un volcado de tráfico de rede, un informe en json e a propia mostra nun arquivo protexido con contrasinal). Buscamos a clave na resposta - informe_completo para a posterior descarga do informe.
O que hai dentro do informe resumo
As claves full_report, pdf_report, xml_report están no dicionario de cada SO
{
"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 a chave summary_report: hai unha para a emulación en xeral
{
"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."
}
}
}
]
}
Podes solicitar informes tar e xml e pdf ao mesmo tempo, podes solicitar un resumo e tar e xml. Non se poderá solicitar ao mesmo tempo un informe resumo e un pdf.
Claves na sección de extracción
Para a extracción de ameazas, só se utilizan dúas claves:
método — pdf (converter a pdf, usado por defecto) ou clean (limpar contido activo).
códigos_de_partes_extraídas - lista de códigos para eliminar contido activo, aplicable só ao método limpo
Códigos para eliminar contido dos ficheiros
código
descrición
1025
Obxectos vinculados
1026
Macros e Código
1034
Hipervínculos sensibles
1137
PDF GoToR Actions
1139
Accións de lanzamento de PDF
1141
Accións de URI PDF
1142
Accións sonoras en PDF
1143
Accións de películas en PDF
1150
Accións de JavaScript en PDF
1151
PDF Enviar accións do formulario
1018
Consultas de base de datos
1019
Obxectos incrustados
1021
Garda rápido de datos
1017
Propiedades personalizadas
1036
Propiedades estatísticas
1037
Propiedades de resumo
Para descargar unha copia limpa, tamén terás que facer unha solicitude de consulta (que se comentará a continuación) despois duns segundos, especificando a cantidade de hash do ficheiro e o compoñente de extracción no texto da solicitude. Podes recoller o ficheiro limpo usando o identificador da resposta á consulta: extracted_file_download_id. Unha vez máis, mirando un pouco cara adiante, dou exemplos de solicitude e resposta de consulta para buscar un identificador para descargar un documento borrado.
Solicitude de consulta para buscar a clave extracted_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Resposta á consulta (busque a clave extracted_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 global
Nunha chamada de API, só podes enviar un ficheiro para a verificación.
O compoñente av non require unha sección adicional con claves, abonda con especificalo no dicionario características.
Consulta a chamada da API
Método utilizado − POST
Enderezo de chamada - https:///tecloud/api/v1/file/query
Antes de enviar un ficheiro para descargar (solicitude de carga), é recomendable comprobar a caché do sandbox (solicitude de consulta) para optimizar a carga no servidor API, xa que o servidor API xa pode ter información e un veredicto sobre o ficheiro descargado. A convocatoria consta só dunha parte de texto. A parte necesaria da solicitude é a cantidade hash sha1/sha256/md5 do ficheiro. Por certo, podes obtelo na resposta á solicitude de carga.
Mínimo necesario para a consulta
POST HTTP
https:///tecloud/api/v1/file/query
Cabeceiras:
Autorización:
Corpo
{
"solicitude": {
"sha256":
}
}
Un exemplo de resposta a unha solicitude de carga, onde as 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."
}
}
}
}
A solicitude de consulta, ademais da cantidade de hash, debería ser idealmente a mesma que a solicitude de carga foi (ou está previsto que sexa), ou incluso "xa" (conter menos campos na solicitude de consulta que na solicitude de carga). No caso de que a solicitude de consulta conteña máis campos dos que había na solicitude de carga, non recibirá toda a información requirida na resposta.
Aquí tes un exemplo de resposta a unha consulta na que non se atoparon todos os datos necesarios
{
"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 aos campos código и etiqueta. Estes campos aparecen tres veces nos dicionarios de estado. Primeiro vemos a chave global "code": 1006 e "label": "PARTIALLY_FOUND". A continuación, atópanse estas claves para cada compoñente individual que solicitamos: te e extracción. E se para te está claro que se atoparon os datos, entón para a extracción non hai información.
Este é o aspecto da consulta para o exemplo anterior
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Se envía unha solicitude de consulta sen o compoñente de extracción
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
A continuación, a resposta conterá información completa ("código": 1001, "etiqueta": "FOUND")
{
"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."
}
}
}
]
}
Se non hai información na caché, entón a resposta será "label": "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."
}
}
}
]
}
Nunha chamada á API, podes enviar varias cantidades de hash á vez para a verificación. A resposta devolverá os datos na mesma orde na que se enviaron na solicitude.
Exemplo de solicitude de consulta con varias cantidades sha256
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Resposta a unha consulta con varias cantidades 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 á vez nunha solicitude de consulta tamén terá un efecto beneficioso sobre o rendemento do servidor API.
Descargar chamada API
Método utilizado − POST (segundo documentación), GET tamén funciona (e pode parecer máis lóxico)
Enderezo de chamada - https:///tecloud/api/v1/file/download?id=
A cabeceira require que se pase a clave da API, o corpo da solicitude está baleiro, o ID de descarga pásase no enderezo URL.
En resposta a unha solicitude de consulta, se a emulación se completa e se solicitaron informes ao descargar o ficheiro, o ID para descargar informes estará visible. Se se solicita unha copia limpa, debes buscar o identificador para descargar o documento limpo.
En total, as claves na resposta á consulta que contén o valor de id para cargar poden ser:
-
informe_resumo
-
informe_completo
-
informe_pdf
-
informe_xml
-
identificador_de_descarga_de_ficheiro_extraído
Por suposto, para recibir estas claves en resposta á solicitude de consulta, hai que especificalas na solicitude (para informes) ou lembrar facer unha solicitude mediante a función de extracción (para documentos limpos)
Chamada á API de cuota
Método utilizado − POST
Enderezo de chamada - https:///tecloud/api/v1/file/quota
Para comprobar a cota restante na nube, utiliza a consulta de cota. O corpo da solicitude está baleiro.
Exemplo de resposta a unha solicitude de cota
{
"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 ameazas para Security Gateway
Esta API desenvolveuse antes da API de prevención de ameazas e está pensada só para dispositivos locais. Polo momento só pode ser útil se necesitas a API de extracción de ameazas. Para a emulación de ameazas, é mellor usar a API de prevención de ameazas normal. Para acender TP API para SG e configure a clave API desde a que precisa seguir os pasos
Agora vexamos máis de cerca as funcións te и extracción nesta API.
Para compoñente te dicionario proporcionado te_opcións en solicitudes de carga/consulta, e as claves desta solicitude coinciden completamente coas teclas te in
Exemplo de solicitude de emulación de ficheiros 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 compoñente extracción dicionario proporcionado scrub_options. Esta solicitude especifica o método de limpeza: converter a PDF, borrar o contido activo ou seleccionar un modo de acordo co perfil de Prevención de ameazas (indícase o nome do perfil). O fantástico de responder a unha solicitude da API de extracción dun ficheiro é que obtén unha copia limpa na resposta a esa solicitude como unha cadea cifrada base64 (non precisa facer unha solicitude de consulta e buscar o ID para descargar o documento)
Exemplo de solicitude para borrar un ficheiro
{
"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 unha solicitude
{
"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 son necesarias menos solicitudes de API para obter unha copia borrada, paréceme que esta opción é menos preferible e conveniente que a solicitude de datos do formulario utilizada en
Coleccións carteiro
Creei coleccións en Postman tanto para a API de prevención de ameazas como para a API de prevención de ameazas para Security Gateway, que representan as solicitudes de API máis comúns. Para que a API e a chave ip/url do servidor se substitúan automaticamente nas solicitudes e se recorde a cantidade de hash sha256 despois de descargar o ficheiro, creáronse tres variables dentro das coleccións (podes atopalas indo á configuración da colección). Editar -> Variables): te_api (obrigatorio), api_key (necesario que se enche, excepto cando se usa a API TP con dispositivos locais), sha256 (deixe en branco, non se usa na API de TP para SG).
Exemplos de uso
Na comunidade
Fonte: www.habr.com