تعامل با Check Point SandBlast از طریق API

تعامل با Check Point SandBlast از طریق API

این مقاله برای کسانی که با تکنولوژی آشنایی دارند مفید خواهد بود Check Point است. با شبیه سازی فایل (شبیه سازی تهدید) و پاکسازی پیشگیرانه فایل (استخراج تهدید) و می خواهد گامی در جهت خودکارسازی این وظایف بردارد. چک پوینت دارد API پیشگیری از تهدید، که هم در فضای ابری و هم در دستگاه های محلی اجرا می شود و از نظر عملکردی با بررسی فایل‌ها در جریان‌های ترافیک web/smtp/ftp/smb/nfs یکسان است.. این مقاله تا حدی تفسیر نویسنده از مجموعه ای از مقالات از اسناد رسمی است، اما بر اساس تجربه عملیاتی خودم و نمونه های خودم. همچنین در مقاله مجموعه‌های Postman نویسنده برای کار با Threat Prevention API را خواهید یافت.

اختصارات پایه

Threat Prevention API با سه جزء اصلی کار می کند که در API از طریق مقادیر متنی زیر فراخوانی می شوند:

av - جزء آنتی ویروس، مسئول تجزیه و تحلیل امضای تهدیدات شناخته شده.

te - مؤلفه Threat Emulation، مسئول بررسی فایل‌ها در sandbox و صدور یک حکم مخرب/خوش خیم پس از شبیه‌سازی است.

استخراج - مؤلفه استخراج تهدید، مسئول تبدیل سریع اسناد اداری به فرم ایمن (که در آن تمام محتوای مخرب بالقوه حذف می شود)، به منظور تحویل سریع آنها به کاربران/سیستم ها.

ساختار API و محدودیت های اصلی

Threat Prevention API فقط از 4 درخواست استفاده می کند آپلود، پرس و جو، دانلود و سهمیه. در هدر هر چهار درخواست، باید کلید API را با استفاده از پارامتر ارسال کنید اجازه. در نگاه اول، ساختار ممکن است بسیار ساده تر از آنچه در آن وجود دارد به نظر برسد مدیریت API، اما تعداد فیلدها در درخواست های آپلود و پرس و جو و ساختار این درخواست ها کاملاً پیچیده است. اینها را می‌توان از نظر عملکردی با نمایه‌های Threat Prevention در خط‌مشی امنیتی دروازه/سندباکس مقایسه کرد.

در حال حاضر، تنها نسخه Threat Prevention API منتشر شده است - 1.0؛ URL برای تماس های API باید شامل شود v1 در قسمتی که باید نسخه را مشخص کنید. برخلاف مدیریت API، لازم است نسخه API در URL مشخص شود، در غیر این صورت درخواست اجرا نمی شود.

کامپوننت آنتی ویروس، زمانی که بدون سایر مؤلفه ها (te، استخراج) فراخوانی می شود، در حال حاضر فقط از درخواست های پرس و جو با مجموع هش md5 ​​پشتیبانی می کند. Threat Emulation و Threat Extraction نیز از مجموع هش sha1 و sha256 پشتیبانی می کنند.

بسیار مهم است که در پرس و جوها اشتباه نکنید! درخواست را می توان بدون خطا اجرا کرد، اما نه به طور کامل. با کمی نگاه کردن به آینده، بیایید ببینیم که در صورت وجود خطا/اشتباهات تایپی در کوئری ها چه اتفاقی می افتد.

درخواست با اشتباه تایپی با کلمه گزارش ها (گزارش ها)

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                reportss: ["tar", "pdf", "xml"]
            }
		}
	] 
}

هیچ خطایی در پاسخ وجود نخواهد داشت، اما به هیچ وجه اطلاعاتی در مورد گزارش ها وجود نخواهد داشت

{
  "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."
        }
      }
    }
  ]
}

اما برای درخواست بدون اشتباه تایپی در گزارشات کلید

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                reports: ["tar", "pdf", "xml"]
            }
		}
	] 
}

ما پاسخی دریافت می‌کنیم که قبلاً حاوی شناسه بارگیری گزارش‌ها است

{
  "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."
        }
      }
    }
  ]
}

اگر یک کلید API نادرست/منقضی شده ارسال کنیم، در پاسخ یک خطای 403 دریافت خواهیم کرد.

SandBlast API: در ابر و در دستگاه‌های محلی

درخواست‌های API را می‌توان به دستگاه‌های Check Point که مؤلفه شبیه‌سازی تهدید (blade) را فعال کرده‌اند ارسال کرد. به عنوان یک آدرس برای درخواست ها، باید از ip/url دستگاه و پورت 18194 استفاده کنید (به عنوان مثال، https://10.10.57.19:18194/tecloud/api/v1/file/query). همچنین باید مطمئن شوید که خط مشی امنیتی دستگاه اجازه چنین اتصالی را می دهد. مجوز از طریق کلید API در دستگاه های محلی به طور پیش فرض خاموش و ممکن است کلید Authorization در سرصفحه های درخواست اصلا ارسال نشود.

درخواست های API به چک پوینت ابری باید به آن ارسال شود te.checkpoint.com (به عنوان مثال - https://te.checkpoint.com/tecloud/api/v1/file/query). با تماس با شرکای Check Point یا دفتر محلی شرکت، کلید API را می توان به عنوان مجوز آزمایشی به مدت 60 روز دریافت کرد.

در دستگاه های محلی، Threat Extraction هنوز به صورت استاندارد پشتیبانی نمی شود. API پیشگیری از تهدید و باید استفاده شود Threat Prevention API for Security Gateway (در پایان مقاله در مورد آن با جزئیات بیشتر صحبت خواهیم کرد).

دستگاه های محلی از درخواست سهمیه پشتیبانی نمی کنند.

در غیر این صورت، هیچ تفاوتی بین درخواست ها به دستگاه های محلی و ابر وجود ندارد.

تماس API را آپلود کنید

روش استفاده شده - پست

آدرس تماس - https:///tecloud/api/v1/file/upload

درخواست از دو بخش (فرم-داده) تشکیل شده است: یک فایل در نظر گرفته شده برای شبیه سازی/تمیز کردن و یک بدنه درخواست با متن.

درخواست متنی نمی تواند خالی باشد، اما ممکن است حاوی هیچ گونه پیکربندی نباشد. برای اینکه درخواست موفقیت آمیز باشد، باید حداقل متن زیر را در درخواست ارسال کنید:

حداقل مورد نیاز برای درخواست آپلود

HTTP POST

https:///tecloud/api/v1/file/upload

سرفصل ها:

مجوز:

بدن

{

"درخواست": {

}

}

پرونده

پرونده

در این حالت، فایل مطابق با پارامترهای پیش فرض پردازش می شود: جزء - te، تصاویر سیستم عامل - Win XP و Win 7، بدون ایجاد گزارش.

نظرات در مورد فیلدهای اصلی در درخواست متن:

نام فایل и نوع فایل می‌توانید آن‌ها را خالی بگذارید یا اصلاً آنها را ارسال نکنید، زیرا این اطلاعات مفیدی در هنگام آپلود یک فایل نیست. در پاسخ API، این فیلدها به طور خودکار بر اساس نام فایل دانلود شده پر می شوند و اطلاعات موجود در حافظه پنهان همچنان باید با استفاده از مقادیر هش md5/sha1/sha256 جستجو شوند.

درخواست مثال با file_name و file_type خالی

{

"request": {

"file_name": "",

"file_type": "",

}

}

امکانات - لیستی که عملکردهای لازم را هنگام پردازش در جعبه شنی نشان می دهد - av (ضد ویروس)، te (تشبیه تهدید)، استخراج (استخراج تهدید). اگر این پارامتر به هیچ وجه ارسال نشود، فقط از مؤلفه پیش فرض استفاده می شود - te (Threat Emulation).

برای فعال کردن بررسی سه مؤلفه موجود، باید این مؤلفه‌ها را در درخواست API مشخص کنید.

نمونه ای از درخواست با چک کردن در av، te و استخراج

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["av", "te", "extraction"]  
		}
	] 
}

کلیدها در بخش te

تصاویر - فهرستی حاوی فرهنگ لغت با شناسه و شماره تجدیدنظر سیستم عامل هایی که بررسی در آنها انجام می شود. شناسه‌ها و شماره‌های ویرایش برای همه دستگاه‌های محلی و ابر یکسان است.

لیست سیستم عامل ها و ویرایش ها

شناسه تصویر سیستم عامل موجود

تجدید نظر

سیستم عامل تصویر و برنامه

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

ویندوز مایکروسافت: XP - 32bit SP3
دفتر: 2003، 2007
نرم افزار Adobe Acrobat Reader: 9.0
فلش پلیر 9r115 و اکتیو ایکس 10.0
زمان اجرا جاوا: 1.6.0u22

7e6fe36e-889e-4c25-8704-56378f0830df

1

ویندوز مایکروسافت: 7 - 32 بیت
دفتر: 2003، 2007
نرم افزار Adobe Acrobat Reader: 9.0
فلش پلیر: 10.2r152 (پلاگیناکتیو ایکس)
زمان اجرا جاوا: 1.6.0u0

8d188031-1010-4466-828b-0cd13d4303ff

1

ویندوز مایکروسافت: 7 - 32 بیت
دفتر: 2010
نرم افزار Adobe Acrobat Reader: 9.4
فلش پلیر: 11.0.1.152 (پلاگین & اکتیو ایکس)
زمان اجرا جاوا: 1.7.0u0

5e5de275-a103-4f67-b55b-47532918fa59

1

ویندوز مایکروسافت: 7 - 32 بیت
دفتر: 2013
نرم افزار Adobe Acrobat Reader: 11.0
فلش پلیر: 15 (پلاگین & اکتیو ایکس)
زمان اجرا جاوا: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

ویندوز مایکروسافت: 7 - 64 بیت
دفتر: 2013 (32 بیت)
نرم افزار Adobe Acrobat Reader: 11.0.01
فلش پلیر: 13 (پلاگین & اکتیو ایکس)
زمان اجرا جاوا: 1.7.0u9

6c453c9b-20f7-471a-956c-3198a868dc92 

 

ویندوز مایکروسافت: 8.1 - 64 بیت
دفتر: 2013 (64 بیت)
نرم افزار Adobe Acrobat Reader: 11.0.10
فلش پلیر: 18.0.0.160 (پلاگین & اکتیو ایکس)
زمان اجرا جاوا: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

ویندوز مایکروسافت: 10
دفتر: Professional Plus 2016 en-us  
نرم افزار Adobe Acrobat Reader: DC 2015 MUI
فلش پلیر: 20 (پلاگین & اکتیو ایکس)
زمان اجرا جاوا: 1.7.0u9

اگر کلید images اصلا مشخص نشده باشد، در تصاویر توصیه شده توسط Check Point (در حال حاضر Win XP و Win 7) شبیه سازی خواهد شد. این تصاویر بر اساس ملاحظات بهترین تعادل عملکرد و نرخ گرفتن توصیه می شوند.

گزارش - فهرستی از گزارش‌هایی که در صورت مشخص شدن مخرب بودن فایل، درخواست می‌کنیم. گزینه های ذیل در دسترس هستند:

  1. خلاصه - آرشیو tar.gz حاوی گزارش تقلید توسط همه تصاویر درخواست شده (هم یک صفحه html و هم اجزایی مانند یک ویدیو از سیستم عامل شبیه ساز، یک تخلیه ترافیک شبکه، یک گزارش در json، و خود نمونه در یک آرشیو محافظت شده با رمز عبور). ما به دنبال کلید در پاسخ هستیم - خلاصه_گزارش برای دانلود بعدی گزارش

  2. پی دی اف - سند در مورد شبیه سازی در یکی تصویری که بسیاری به دریافت آن از طریق کنسول هوشمند عادت دارند. ما به دنبال کلید در پاسخ هستیم - pdf_گزارش برای دانلود بعدی گزارش

  3. XML - سند در مورد شبیه سازی در یکی تصویر، مناسب برای تجزیه بعدی پارامترها در گزارش. ما به دنبال کلید در پاسخ هستیم - xml_report برای دانلود بعدی گزارش

  4. قیر - آرشیو tar.gz حاوی گزارشی در مورد شبیه سازی در یکی تصاویر درخواست شده (هم یک صفحه html و هم اجزایی مانند یک ویدیو از سیستم عامل شبیه ساز، یک تخلیه ترافیک شبکه، یک گزارش در json، و خود نمونه در یک آرشیو محافظت شده با رمز عبور). ما به دنبال کلید در پاسخ هستیم - گزارش کامل برای دانلود بعدی گزارش

آنچه در گزارش خلاصه وجود داردتعامل با Check Point SandBlast از طریق API

کلیدهای full_report، pdf_report، xml_report در فرهنگ لغت هر سیستم‌عامل موجود است

{
  "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."
        }
      }
    }
  ]
}

اما کلید summary_report - یک کلید برای شبیه سازی به طور کلی وجود دارد

{
  "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 و xml و pdf را همزمان درخواست کنید، می توانید خلاصه و tar و xml را درخواست کنید. امکان درخواست گزارش خلاصه و pdf به صورت همزمان وجود نخواهد داشت.

کلیدها در بخش استخراج

برای استخراج تهدید، فقط از دو کلید استفاده می شود:

روش — pdf (تبدیل به pdf، به طور پیش فرض استفاده می شود) یا پاک (پاک کردن محتوای فعال).

کدهای_قطعات_ استخراج شده - لیست کدهای حذف محتوای فعال، فقط برای روش تمیز قابل استفاده است

کدهایی برای حذف محتوا از فایل ها

رمز

توضیحات:

1025

اشیاء مرتبط

1026

ماکروها و کدها

1034

هایپرلینک های حساس

1137

اقدامات PDF GoToR

1139

اقدامات راه اندازی PDF

1141

اقدامات URI PDF

1142

اقدامات صوتی PDF

1143

اکشن های فیلم PDF

1150

PDF اقدامات جاوا اسکریپت

1151

اقدامات فرم ارسال PDF

1018

س .الات پایگاه داده

1019

اشیاء جاسازی شده

1021

ذخیره سریع داده ها

1017

خصوصیات سفارشی

1036

ویژگی های آماری

1037

خصوصیات خلاصه

برای دانلود یک کپی پاک شده، همچنین باید پس از چند ثانیه یک درخواست پرس و جو (که در ادامه به آن پرداخته خواهد شد) بدهید و مقدار هش فایل و جزء استخراج را در متن درخواست مشخص کنید. می توانید فایل پاک شده را با استفاده از شناسه از پاسخ به پرس و جو - extracted_file_download_id بردارید. یک بار دیگر، کمی به آینده نگاه می کنم، نمونه هایی از یک درخواست و یک پاسخ پرس و جو را برای جستجوی یک شناسه برای دانلود یک سند پاک شده ارائه می کنم.

درخواست جستجو برای جستجوی کلید extracted_file_download_id

{ "request":  [  

		{	
			"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
			"features": ["extraction"] , 
			"extraction": {
		        "method": "pdf"
            }
		}
	] 
}

پاسخ به پرس و جو (به دنبال کلید 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."
                }
            }
        }
    ]
}

بازنگری

در یک تماس API، می توانید فقط یک فایل را برای تأیید ارسال کنید.

جزء av نیازی به بخش اضافی با کلید ندارد، کافی است آن را در فرهنگ لغت مشخص کنید امکانات.

درخواست تماس API

روش استفاده شده - پست

آدرس تماس - https:///tecloud/api/v1/file/query

قبل از ارسال یک فایل برای دانلود (درخواست آپلود)، توصیه می شود که حافظه پنهان جعبه سند (درخواست پرس و جو) را بررسی کنید تا بارگذاری روی سرور API بهینه شود، زیرا ممکن است سرور API از قبل اطلاعات و حکمی در مورد فایل دانلود شده داشته باشد. تماس فقط از یک بخش متنی تشکیل شده است. قسمت مورد نیاز درخواست مقدار هش فایل sha1/sha256/md5 است. به هر حال، شما می توانید آن را در پاسخ به درخواست آپلود دریافت کنید.

حداقل مورد نیاز برای پرس و جو

HTTP POST

https:///tecloud/api/v1/file/query

سرفصل ها:

مجوز:

بدن

{

"درخواست": {

"sha256":

}

}

نمونه ای از پاسخ به درخواست آپلود، که در آن مقادیر هش sha1/md5/sha256 قابل مشاهده است

{
  "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."
      }
    }
  }
}

درخواست پرس و جو، علاوه بر مقدار هش، در حالت ایده آل باید همان درخواست آپلود باشد (یا برنامه ریزی شده است) یا حتی «از قبل» (شامل فیلدهای کمتری در درخواست پرس و جو نسبت به درخواست آپلود) باشد. در صورتی که درخواست پرس و جو حاوی فیلدهای بیشتری نسبت به درخواست آپلود باشد، تمام اطلاعات مورد نیاز را در پاسخ دریافت نخواهید کرد.

در اینجا نمونه ای از پاسخ به یک پرس و جو است که در آن همه داده های مورد نیاز یافت نشد

{
  "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."
        }
      }
    }
  ]
}

به زمینه ها توجه کنید رمز и برچسب. این فیلدها سه بار در دیکشنری وضعیت ظاهر می شوند. ابتدا کلید جهانی "کد" را می بینیم: 1006 و "برچسب": "PARTIALLY_FOUND". در مرحله بعد، این کلیدها برای هر مؤلفه جداگانه ای که ما درخواست کردیم پیدا می شوند - te و استخراج. و اگر برای شما مشخص است که داده ها پیدا شده است، برای استخراج هیچ اطلاعاتی وجود ندارد.

این همان چیزی است که پرس و جو برای مثال بالا به نظر می رسد

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te", "extraction"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                "reports": [
                    "xml", "pdf"
                ]
            }
		}
	] 
}

اگر درخواست پرس و جو را بدون جزء استخراج ارسال کنید

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                "reports": [
                    "xml", "pdf"
                ]
            }
		}
	] 
}

سپس پاسخ حاوی اطلاعات کامل خواهد بود ("کد": 1001، "برچسب": "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."
        }
      }
    }
  ]
}

اگر اصلاً اطلاعاتی در حافظه پنهان وجود نداشته باشد، پاسخ "برچسب" خواهد بود: "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."
        }
      }
    }
  ]
}

در یک تماس API، می توانید چندین مقدار هش را به طور همزمان برای تأیید ارسال کنید. پاسخ داده ها را به همان ترتیبی که در درخواست ارسال شده است برمی گرداند.

نمونه درخواست پرس و جو با چندین مقدار sha256

{ "request":  [  

		{	
			"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
        },
        		{	
			"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
        }
	] 
}

پاسخ به یک پرس و جو با چندین مقدار 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."
        }
      }
    }
  ]
}

درخواست چندین مبلغ هش به طور همزمان در یک درخواست پرس و جو نیز تأثیر مفیدی بر عملکرد سرور API خواهد داشت.

تماس API را دانلود کنید

روش استفاده شده - پست (طبق مستندات) شو همچنین کار می کند (و ممکن است منطقی تر به نظر برسد)

آدرس تماس - https:///tecloud/api/v1/file/download?id=

هدر نیاز به ارسال کلید API دارد، بدنه درخواست خالی است، شناسه دانلود در آدرس URL ارسال می شود.

در پاسخ به درخواست پرس و جو، در صورت تکمیل شبیه سازی و درخواست گزارش هنگام دانلود فایل، شناسه دانلود گزارش ها قابل مشاهده خواهد بود. اگر یک کپی پاک شده درخواست می شود، باید به دنبال شناسه برای دانلود سند پاک شده بگردید.

در مجموع، کلیدهای پاسخ به پرس و جو حاوی مقدار شناسه برای بارگیری می توانند:

  • خلاصه_گزارش

  • گزارش کامل

  • pdf_گزارش

  • xml_report

  • استخراج_فایل_دانلود_id

البته برای دریافت این کلیدها در پاسخ به درخواست پرس و جو، باید آنها را در درخواست (برای گزارش) مشخص کنید یا به یاد داشته باشید که با استفاده از تابع استخراج (برای اسناد پاک شده) درخواستی را ارسال کنید.

فراخوان Quota API

روش استفاده شده - پست

آدرس تماس - https:///tecloud/api/v1/file/quota

برای بررسی سهمیه باقیمانده در ابر، از کوئری سهمیه استفاده کنید. بدنه درخواست خالی است.

نمونه پاسخ به درخواست سهمیه

{
  "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"
    }
  ]
}

Threat Prevention API for Security Gateway

این API قبل از Threat Prevention API توسعه یافته است و فقط برای دستگاه های محلی در نظر گرفته شده است. در حال حاضر تنها در صورت نیاز به Threat Extraction API می تواند مفید باشد. برای شبیه سازی تهدید بهتر است از API معمولی Threat Prevention استفاده کنید. برای روشن کردن TP API برای SG و کلید API را که باید مراحل آن را دنبال کنید پیکربندی کنید sk113599. توصیه می کنم به مرحله 6b توجه کنید و دسترسی به صفحه را بررسی کنید https://<IPAddressofSecurityGateway>/UserCheck/TPAPI زیرا در صورت منفی بودن، پیکربندی بیشتر معنا ندارد. همه تماس‌های API به این آدرس اینترنتی ارسال می‌شود. نوع تماس (آپلود/پرس و جو) در کلید بدنه تماس تنظیم می شود درخواست_نام. همچنین کلیدهای مورد نیاز هستند - کلید ای پی ای (شما باید آن را در طول فرآیند پیکربندی به خاطر بسپارید) و protocol_version (نسخه فعلی 1.1 است). می توانید اسناد رسمی این API را در اینجا بیابید sk137032. مزایای نسبی شامل امکان ارسال چندین فایل به صورت همزمان برای شبیه سازی هنگام بارگذاری آنها است، زیرا فایل ها به عنوان یک رشته متنی base64 ارسال می شوند. برای کدگذاری/رمزگشایی فایل ها به/از base64 می توانید از یک مبدل آنلاین در Postman برای اهداف نمایشی استفاده کنید، به عنوان مثال - https://base64.guru. برای اهداف عملی، هنگام نوشتن کد باید از روش‌های رمزگشایی و رمزگشایی داخلی استفاده کنید.

حالا بیایید نگاهی دقیق تر به توابع بیندازیم te и استخراج در این API

برای جزء te فرهنگ لغت ارائه شده است te_options در درخواست‌های آپلود/پرس و جو، و کلیدهای این درخواست کاملاً با کلیدهای te مطابقت دارند API پیشگیری از تهدید.

درخواست مثال برای شبیه سازی فایل در Win10 با گزارش

{
"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"]
    }
    }
    ]
}

برای جزء استخراج فرهنگ لغت ارائه شده است scrub_Options. این درخواست روش تمیز کردن را مشخص می کند: تبدیل به PDF، پاک کردن محتوای فعال، یا انتخاب یک حالت مطابق با نمایه پیشگیری از تهدید (نام نمایه مشخص شده است). نکته مهم در مورد پاسخ دادن به درخواست API استخراج برای یک فایل این است که یک کپی پاک شده در پاسخ به آن درخواست به عنوان یک رشته رمزگذاری شده base64 دریافت می کنید (برای دانلود نیازی به درخواست پرس و جو و جستجوی شناسه ندارید. سند)

نمونه ای از درخواست برای پاک کردن یک فایل

    {
	"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
		}
	}]
}

به یک درخواست پاسخ دهید

{
	"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": ""
		}
	}]
} 

علیرغم این واقعیت که برای به دست آوردن یک کپی پاک شده به درخواست های API کمتری نیاز است، به نظر من این گزینه نسبت به درخواست فرم-داده استفاده شده در API پیشگیری از تهدید.

مجموعه پستچی

من مجموعه‌هایی را در Postman برای API Prevention و Threat Prevention API برای دروازه امنیتی ایجاد کردم که رایج‌ترین درخواست‌های API را نشان می‌دهند. برای اینکه API و کلید ip/url سرور به طور خودکار در درخواست ها جایگزین شوند و مقدار هش sha256 پس از دانلود فایل به خاطر سپرده شود، سه متغیر در داخل مجموعه ها ایجاد شده است (با رفتن به تنظیمات مجموعه می توانید آنها را پیدا کنید. ویرایش -> متغیرها): te_api (الزامی), api_key (پر کردن الزامی است، مگر زمانی که از TP API با دستگاه های محلی استفاده می شود), sha256 (خالی بگذارید، در TP API برای SG استفاده نشده است).

مجموعه Postman برای API پیشگیری از تهدید را دانلود کنید

مجموعه Postman برای API Prevention برای امنیت دروازه را دانلود کنید

نمونه هایی از استفاده

در جامعه Mates را بررسی کنید اسکریپت های نوشته شده در پایتون ارائه می شوند که فایل ها را از دایرکتوری مورد نظر بررسی می کنند TP APIو TP API برای SG. از طریق تعامل با Threat Prevention API، توانایی شما برای اسکن فایل‌ها به طور قابل توجهی گسترش می‌یابد، زیرا اکنون می‌توانید فایل‌ها را در چندین پلتفرم به طور همزمان اسکن کنید (بررسی VirusTotal API، و سپس در جعبه چک پوینت)، و فایل ها را نه تنها از ترافیک شبکه دریافت کنید، بلکه آنها را از هر درایو شبکه و، به عنوان مثال، سیستم های CRM نیز دریافت کنید.

منبع: www.habr.com

اضافه کردن نظر