Bu makale teknolojiye aşina olanlar için faydalı olacaktır. Check Point dosya öykünmesiyle (Tehdit Emülasyonu) ve proaktif dosya temizleme (Tehdit Çıkarma) ve bu görevleri otomatikleştirmeye yönelik bir adım atmak istiyor. Kontrol Noktası var
Temel kısaltmalar
Tehdit Önleme API'si, API'de aşağıdaki metin değerleri aracılığıyla çağrılan üç ana bileşenle çalışır:
av — Bilinen tehditlerin imza analizinden sorumlu Anti-Virüs bileşeni.
te - Korumalı alandaki dosyaları kontrol etmekten ve öykünmeden sonra kötü niyetli/iyi niyetli bir karara varmaktan sorumlu Tehdit Emülasyonu bileşeni.
çıkarma - Tehdit Çıkarma bileşeni, ofis belgelerini kullanıcılara/sistemlere hızlı bir şekilde teslim etmek için hızlı bir şekilde güvenli bir forma dönüştürmekten (potansiyel olarak kötü amaçlı tüm içeriğin kaldırıldığı) sorumludur.
API yapısı ve ana sınırlamalar
Tehdit Önleme API'si yalnızca 4 istek kullanır - yükleme, sorgulama, indirme ve kota. Dört isteğin tamamı için başlıkta, parametreyi kullanarak API anahtarını iletmeniz gerekir. Yetki. İlk bakışta yapı, olduğundan çok daha basit görünebilir.
Şu anda Tehdit Önleme API'sinin tek sürümü yayınlandı - 1.0; API çağrılarının URL'si şunları içermelidir; v1 sürümü belirtmeniz gereken kısımda. Management API'den farklı olarak URL'de API sürümünün belirtilmesi gerekir, aksi takdirde istek yürütülmeyecektir.
Anti-Virüs bileşeni, diğer bileşenler (te, çıkarma) olmadan çağrıldığında şu anda yalnızca md5 karma toplamlarına sahip sorgu isteklerini desteklemektedir. Tehdit Emülasyonu ve Tehdit Çıkarma aynı zamanda sha1 ve sha256 hash toplamlarını da destekler.
Sorgularda hata yapmamak çok önemli! İstek hatasız olarak yürütülebilir, ancak tamamen gerçekleştirilemez. Biraz ileriye baktığımızda sorgularda hata/yazım hatası olduğunda neler olabileceğine bakalım.
Raporlar(raporlar) kelimesiyle yazım hatası içeren istek
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}
Yanıtta hata olmayacak ancak raporlar hakkında hiçbir bilgi olmayacak
{
"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."
}
}
}
]
}
Ancak rapor anahtarında yazım hatası olmayan bir istek için
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}
Raporları indirmek için zaten kimlik içeren bir yanıt alıyoruz
{
"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."
}
}
}
]
}
Yanlış/süresi dolmuş bir API anahtarı gönderirsek yanıt olarak 403 hatası alırız.
SandBlast API: bulutta ve yerel cihazlarda
API istekleri, Tehdit Emülasyonu bileşeninin (blade) etkin olduğu Check Point cihazlarına gönderilebilir. İsteklerin adresi olarak cihazın ip/url'sini ve 18194 numaralı bağlantı noktasını kullanmanız gerekir (örneğin, https://10.10.57.19:18194/tecloud/api/v1/dosya/sorgu). Ayrıca cihazdaki güvenlik politikasının bu bağlantıya izin verdiğinden de emin olmalısınız. Varsayılan olarak yerel cihazlarda API anahtarı aracılığıyla yetkilendirme kapalı ve istek başlıklarındaki Yetkilendirme anahtarı hiç gönderilmeyebilir.
CheckPoint bulutuna yönelik API istekleri şu adrese gönderilmelidir: te.checkpoint.com (örneğin - https://te.checkpoint.com/tecloud/api/v1/dosya/sorgu). API anahtarı, Check Point ortakları veya şirketin yerel ofisi ile iletişime geçilerek 60 günlük deneme lisansı olarak edinilebilir.
Yerel cihazlarda Tehdit Çıkarma henüz standart olarak desteklenmemektedir.
Yerel cihazlar kota isteğini desteklemez.
Aksi takdirde yerel cihazlara yapılan talepler ile buluta yapılan talepler arasında hiçbir fark yoktur.
API çağrısını yükle
Kullanılan yöntem – POST
Arama adresi - https:///tecloud/api/v1/dosya/yükleme
İstek iki bölümden (form-veri) oluşur: öykünme/temizleme amaçlı bir dosya ve metin içeren bir istek gövdesi.
Metin isteği boş olamaz ancak herhangi bir yapılandırma içermeyebilir. İsteğin başarılı olması için istekte en azından aşağıdaki metni göndermelisiniz:
Bir yükleme isteği için gereken minimum miktar
HTTP GÖNDERİ
https:///tecloud/api/v1/dosya/yükleme
Başlıkları:
Yetki:
Vücut
{
"rica etmek": {
}
}
fileto
fileto
Bu durumda dosya varsayılan parametrelere uygun olarak işlenecektir: bileşen - te, işletim sistemi görüntüleri - XP kazanın ve 7 kazanın, bir rapor oluşturmadan.
Metin isteğindeki ana alanlara ilişkin yorumlar:
dosya adı и dosya tipi Bunları boş bırakabilir veya hiç göndermeyebilirsiniz çünkü bu, dosya yüklerken özellikle yararlı bir bilgi değildir. API yanıtında bu alanlar, indirilen dosyanın adına göre otomatik olarak doldurulacak ve önbellekteki bilgilerin yine de md5/sha1/sha256 hash miktarları kullanılarak aranması gerekecek.
Boş dosya_adı ve dosya_tipi içeren örnek istek
{
"request": {
"file_name": "",
"file_type": "",
}
}
Özellikler — sanal alanda işlem yaparken gerekli işlevselliği gösteren bir liste - av (Anti-Virüs), te (Tehdit Emülasyonu), çıkarma (Tehdit Çıkarma). Bu parametre hiç aktarılmazsa, yalnızca varsayılan bileşen kullanılacaktır - te (Tehdit Emülasyonu).
Mevcut üç bileşenin kontrolünü etkinleştirmek için bu bileşenleri API isteğinde belirtmeniz gerekir.
Av, te ve çıkarma işlemlerini kontrol eden bir istek örneği
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
Te bölümündeki tuşlar
görüntüleri — Kontrolün gerçekleştirileceği işletim sistemlerinin kimlik ve revizyon numaralarını içeren sözlükleri içeren bir liste. Kimlikler ve revizyon numaraları tüm yerel cihazlar ve bulut için aynıdır.
İşletim sistemleri ve revizyonların listesi
Kullanılabilir İşletim Sistemi Görüntü Kimliği
Revizyon
Görüntü İşletim Sistemi ve Uygulama
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP - 32bit SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 ve ActiveX 10.0
Java Çalışma Zamanı: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 - 32bit
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash player: 10.2r152 (Fişe takmak& ActiveX)
Java Çalışma Zamanı: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 - 32bit
Office: 2010
Adobe Acrobat Reader: 9.4
Flash player: 11.0.1.152 (Fişe takmak & ActiveX)
Java Çalışma Zamanı: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 - 32bit
Office: 2013
Adobe Acrobat Reader: 11.0
Flash player: 15 (Fişe takmak & ActiveX)
Java Çalışma Zamanı: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7 - 64bit
Office: 2013 (32 bit)
Adobe Acrobat Reader: 11.0.01
Flash player: 13 (Fişe takmak & ActiveX)
Java Çalışma Zamanı: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
Microsoft Windows: 8.1 - 64bit
Office: 2013 (64 bit)
Adobe Acrobat Reader: 11.0.10
Flash player: 18.0.0.160 (Fişe takmak & ActiveX)
Java Çalışma Zamanı: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Office: Professional Plus 2016 tr-tr
Adobe Acrobat Reader: DC 2015 MUI
Flash player: 20 (Fişe takmak & ActiveX)
Java Çalışma Zamanı: 1.7.0u9
Görüntü anahtarı hiç belirtilmezse, Check Point tarafından önerilen görüntülerde (şu anda Win XP ve Win 7) öykünme gerçekleşecektir. Bu görseller, performans ve yakalama oranı arasındaki en iyi denge dikkate alınarak önerilmektedir.
raporları — dosyanın kötü amaçlı olduğunun ortaya çıkması durumunda talep edeceğimiz raporların listesi. Aşağıdaki seçenekler mevcuttur:
-
özet - Emülasyonla ilgili bir rapor içeren .tar.gz arşivi herkes istenen görüntüler (hem bir html sayfası hem de emülatör işletim sisteminden bir video, bir ağ trafiği dökümü, json'da bir rapor ve parola korumalı bir arşivdeki örneğin kendisi gibi bileşenler). Cevabın anahtarını arıyoruz - Özet raporu Raporun daha sonra indirilmesi için.
-
pdf - emülasyonla ilgili belge biri Birçoğunun Akıllı Konsol aracılığıyla almaya alışkın olduğu görüntü. Cevabın anahtarını arıyoruz - pdf_report Raporun daha sonra indirilmesi için.
-
xml - emülasyonla ilgili belge biri rapordaki parametrelerin daha sonra ayrıştırılması için uygun görüntü. Cevabın anahtarını arıyoruz - xml_report Raporun daha sonra indirilmesi için.
-
katran - emülasyonla ilgili bir rapor içeren .tar.gz arşivi biri istenen görüntüler (hem bir html sayfası hem de emülatör işletim sisteminden bir video, bir ağ trafiği dökümü, json'da bir rapor ve parola korumalı bir arşivdeki örneğin kendisi gibi bileşenler). Cevabın anahtarını arıyoruz - tam rapor Raporun daha sonra indirilmesi için.
Özet raporun içinde neler var?
Full_report, pdf_report, xml_report anahtarları her işletim sistemi için sözlükte bulunur
{
"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."
}
}
}
]
}
Ancak Summary_report anahtarı - genel olarak öykünme için bir tane var
{
"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."
}
}
}
]
}
Tar ve xml ve pdf raporlarını aynı anda talep edebilir, özet ve tar ve xml talep edebilirsiniz. Özet rapor ve pdf dosyasını aynı anda talep etmek mümkün olmayacaktır.
Çıkarma bölümündeki tuşlar
Tehdit ayıklama için yalnızca iki anahtar kullanılır:
yöntem — pdf (pdf'ye dönüştürün, varsayılan olarak kullanılır) veya temizleyin (etkin içeriğin temizlenmesi).
extract_parts_codes - yalnızca temizleme yöntemi için geçerli olan aktif içeriğin kaldırılmasına yönelik kodların listesi
İçeriği dosyalardan kaldırmak için kodlar
Kod
Açıklama
1025
Bağlantılı Nesneler
1026
Makrolar ve Kod
1034
Hassas Köprüler
1137
PDF GoToR Eylemleri
1139
PDF Başlatma Eylemleri
1141
PDF URI Eylemleri
1142
PDF Ses Eylemleri
1143
PDF Film Eylemleri
1150
PDF JavaScript Eylemleri
1151
PDF Gönderim Formu Eylemleri
1018
Veritabanı Sorguları
1019
Gömülü Nesneler
1021
Hızlı Veri Kaydetme
1017
Özel Özellikler
1036
İstatistiksel Özellikler
1037
Özet Özellikler
Temizlenmiş bir kopyayı indirmek için, birkaç saniye sonra, istek metninde dosyanın karma miktarını ve çıkarma bileşenini belirterek bir sorgu isteği (aşağıda tartışılacaktır) yapmanız da gerekecektir. Temizlenen dosyayı, extract_file_download_id sorgusuna verilen yanıttaki kimliği kullanarak alabilirsiniz. Bir kez daha, biraz ileriye bakarak, temizlenmiş bir belgeyi indirmek için bir kimlik aramak için istek ve sorgu yanıtı örnekleri veriyorum.
Extract_file_download_id anahtarını aramak için sorgu isteği
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Sorguya yanıt (extract_file_download_id anahtarını arayın)
{
"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."
}
}
}
]
}
Genel bakış
Bir API çağrısında doğrulama için yalnızca bir dosya gönderebilirsiniz.
Av bileşeni, anahtarlarla ek bir bölüm gerektirmez, sözlükte belirtmeniz yeterlidir. Özellikler.
API çağrısını sorgula
Kullanılan yöntem – POST
Arama adresi - https:///tecloud/api/v1/dosya/sorgu
Bir dosyayı indirme için göndermeden önce (yükleme isteği), API sunucusundaki yükü optimize etmek için sanal alan önbelleğini (sorgu isteği) kontrol etmeniz önerilir, çünkü API sunucusu zaten indirilen dosya hakkında bilgi ve karara sahip olabilir. Çağrı yalnızca bir metin bölümünden oluşur. İsteğin gerekli kısmı dosyanın sha1/sha256/md5 hash miktarıdır. Bu arada, yükleme isteğine yanıt olarak alabilirsiniz.
Sorgu için gereken minimum değer
HTTP GÖNDERİ
https:///tecloud/api/v1/dosya/sorgu
Başlıkları:
Yetki:
Vücut
{
"rica etmek": {
"sha256":
}
}
Sha1/md5/sha256 hash miktarlarının görülebildiği bir yükleme isteğine verilen yanıt örneği
{
"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."
}
}
}
}
Sorgu isteği, karma miktarına ek olarak ideal olarak yükleme isteğiyle aynı (veya olması planlanan) veya hatta "zaten" olmalıdır (sorgu isteğinde yükleme isteğinden daha az alan içermelidir). Sorgu isteğinin, yükleme isteğinde bulunandan daha fazla alan içermesi durumunda, gerekli tüm bilgileri yanıtta alamazsınız.
Gerekli tüm verilerin bulunmadığı bir sorguya verilen yanıtın bir örneğini burada bulabilirsiniz
{
"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."
}
}
}
]
}
Alanlara dikkat edin kod и etiket. Bu alanlar durum sözlüklerinde üç kez görünür. İlk önce global anahtar olan “code”: 1006 ve “label”: “PARTIALLY_FOUND”u görüyoruz. Daha sonra, bu anahtarlar talep ettiğimiz her bir bileşen için bulunur - te ve çıkarma. Ve eğer verinin bulunduğu açıksa, o zaman çıkarma için hiçbir bilgi yoktur.
Yukarıdaki örnekte sorgu böyle görünüyordu
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Çıkarma bileşeni olmadan bir sorgu isteği gönderirseniz
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Daha sonra cevap tüm bilgileri içerecektir (“kod”: 1001, “etiket”: “BULUNDU”)
{
"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."
}
}
}
]
}
Önbellekte hiç bilgi yoksa yanıt "etiket" olacaktır: "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."
}
}
}
]
}
Tek bir API çağrısında, doğrulama için birden fazla karma miktarını aynı anda gönderebilirsiniz. Yanıt, verileri istekte gönderildiği sırayla döndürecektir.
Birkaç sha256 tutarını içeren örnek sorgu isteği
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Birden fazla sha256 tutarı içeren bir sorguya yanıt
{
"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."
}
}
}
]
}
Bir sorgu isteğinde birden fazla hash toplamının aynı anda talep edilmesi, API sunucusunun performansı üzerinde de faydalı bir etkiye sahip olacaktır.
API çağrısını indir
Kullanılan yöntem – POST (belgelere göre), GET ayrıca işe yarıyor (ve daha mantıklı görünebilir)
Arama adresi - https:///tecloud/api/v1/file/download?id=
Başlık, API anahtarının iletilmesini gerektiriyor, isteğin gövdesi boş, indirme kimliği URL adresine aktarılıyor.
Bir sorgu isteğine yanıt olarak, öykünme tamamlanmışsa ve dosya indirilirken raporlar istenmişse, raporların indirilmesine ilişkin kimlik görünür olacaktır. Temizlenmiş bir kopya isteniyorsa, temizlenmiş belgeyi indirmek için kimliği aramalısınız.
Toplamda, yükleme için kimlik değerini içeren sorguya verilen yanıttaki anahtarlar şunlar olabilir:
-
Özet raporu
-
tam rapor
-
pdf_report
-
xml_report
-
extract_file_download_id
Elbette, sorgu isteğine yanıt olarak bu anahtarların alınabilmesi için bunların istekte belirtilmesi (raporlar için) veya çıkarma işlevini kullanarak bir istekte bulunmayı unutmaması (temizlenmiş belgeler için) gerekir.
Kota API çağrısı
Kullanılan yöntem – POST
Arama adresi - https:///tecloud/api/v1/dosya/kota
Bulutta kalan kotayı kontrol etmek için kota sorgusunu kullanın. İstek gövdesi boş.
Kota isteğine örnek yanıt
{
"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"
}
]
}
Güvenlik Ağ Geçidi için Tehdit Önleme API'si
Bu API, Tehdit Önleme API'sinden önce geliştirilmiştir ve yalnızca yerel cihazlara yöneliktir. Şimdilik yalnızca Tehdit Çıkarma API'sine ihtiyacınız varsa faydalı olabilir. Tehdit Emülasyonu için normal Tehdit Önleme API'sini kullanmak daha iyidir. Açmak için SG için TP API'si ve aşağıdaki adımları izlemeniz gereken API anahtarını yapılandırın:
Şimdi fonksiyonlara daha yakından bakalım te и çıkarma bu API'de.
Bileşen için te sözlük sağlandı te_options yükleme/sorgu isteklerinde ve bu istekteki anahtarlar, içindeki anahtarlarla tamamen örtüşmektedir.
Win10'da raporlarla dosya öykünmesi için örnek istek
{
"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"]
}
}
]
}
Bileşen için çıkarma sözlük sağlandı scrub_options. Bu istek temizleme yöntemini belirtir: PDF'ye dönüştürün, etkin içeriği temizleyin veya Tehdit Önleme profiline uygun bir mod seçin (profil adı belirtilir). Bir dosya için çıkarma API isteğine yanıt vermenin harika yanı, bu isteğe yanıt olarak base64 şifreli dize olarak temizlenmiş bir kopya almanızdır (bir sorgu isteği yapmanıza ve dosyayı indirmek için kimliğe bakmanıza gerek yoktur). belge)
Bir dosyayı temizleme isteği örneği
{
"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
}
}]
}
Bir isteği yanıtlama
{
"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": ""
}
}]
}
Temizlenmiş bir kopya elde etmek için daha az API isteği gerekmesine rağmen, bu seçeneği, burada kullanılan form verisi isteğine göre daha az tercih edilir ve kullanışlı buluyorum.
Postacı Koleksiyonları
Postman'da hem Tehdit Önleme API'si hem de Güvenlik Ağ Geçidi için Tehdit Önleme API'si için, en yaygın API isteklerini temsil eden koleksiyonlar oluşturdum. Sunucu ip/url API ve anahtarının isteklere otomatik olarak eklenmesi ve dosya indirildikten sonra sha256 hash miktarının hatırlanması için koleksiyonların içinde üç değişken oluşturulmuştur (bunları koleksiyon ayarlarına giderek bulabilirsiniz) Düzenle -> Değişkenler): te_api (gerekli), api_key (yerel cihazlarla TP API kullanılması dışında doldurulması gerekir), sha256 (boş bırakın, SG için TP API'sinde kullanılmaz).
Примеры использования
Toplulukta
Kaynak: habr.com