การโต้ตอบกับ Check Point SandBlast ผ่าน API

การโต้ตอบกับ Check Point SandBlast ผ่าน API

บทความนี้จะเป็นประโยชน์กับผู้ที่คุ้นเคยกับเทคโนโลยี Check Point โดยการจำลองไฟล์ (การจำลองภัยคุกคาม) และการทำความสะอาดไฟล์เชิงรุก (การสกัดภัยคุกคาม) และต้องการก้าวไปสู่การทำงานเหล่านี้โดยอัตโนมัติ เช็คพอยท์ก็มี API การป้องกันภัยคุกคามซึ่งทำงานทั้งในระบบคลาวด์และบนอุปกรณ์ภายในเครื่อง และ ในทางปฏิบัติมันเหมือนกับการตรวจสอบไฟล์ในสตรีมการรับส่งข้อมูล web/smtp/ftp/smb/nfs. บทความนี้เป็นส่วนหนึ่งของการตีความชุดบทความของผู้เขียนจากเอกสารอย่างเป็นทางการ แต่ขึ้นอยู่กับประสบการณ์การดำเนินงานของฉันเองและตัวอย่างของฉันเอง นอกจากนี้ในบทความคุณจะพบคอลเลกชั่นบุรุษไปรษณีย์ของผู้เขียนสำหรับการทำงานกับ Threat Prevention API

คำย่อพื้นฐาน

Threat Prevention API ทำงานร่วมกับองค์ประกอบหลักสามส่วน ซึ่งถูกเรียกใน API ผ่านค่าข้อความต่อไปนี้:

av — องค์ประกอบแอนติไวรัส รับผิดชอบในการวิเคราะห์ลายเซ็นของภัยคุกคามที่ทราบ

te - องค์ประกอบการจำลองภัยคุกคาม รับผิดชอบในการตรวจสอบไฟล์ในแซนด์บ็อกซ์ และทำการตัดสินที่เป็นอันตราย/เป็นพิษเป็นภัยหลังจากการจำลอง

การสกัด - องค์ประกอบการแยกภัยคุกคาม ซึ่งรับผิดชอบในการแปลงเอกสารสำนักงานให้อยู่ในรูปแบบที่ปลอดภัยอย่างรวดเร็ว (ซึ่งเนื้อหาที่อาจเป็นอันตรายจะถูกลบออก) เพื่อส่งมอบให้กับผู้ใช้/ระบบอย่างรวดเร็ว

โครงสร้าง API และข้อจำกัดหลัก

Threat Prevention API ใช้เพียง 4 คำขอเท่านั้น อัปโหลด สอบถาม ดาวน์โหลด และโควต้า. ในส่วนหัวของคำขอทั้งสี่คุณจะต้องส่งคีย์ API โดยใช้พารามิเตอร์ การอนุญาต. เมื่อมองแวบแรก โครงสร้างอาจดูง่ายกว่าในมาก API การจัดการแต่จำนวนฟิลด์ในคำขออัปโหลดและแบบสอบถาม รวมถึงโครงสร้างของคำขอเหล่านี้ค่อนข้างซับซ้อน สิ่งเหล่านี้สามารถเปรียบเทียบเชิงฟังก์ชันกับโปรไฟล์การป้องกันภัยคุกคามในนโยบายความปลอดภัยของเกตเวย์/แซนด์บ็อกซ์

ในขณะนี้ Threat Prevention API เวอร์ชันเดียวเปิดตัวแล้ว - 1.0 โดย URL สำหรับการเรียก API ควรมี v1 ในส่วนที่คุณต้องระบุเวอร์ชัน ต่างจาก API การจัดการตรงที่จำเป็นต้องระบุเวอร์ชัน API ใน URL ไม่เช่นนั้นคำขอจะไม่ได้รับการดำเนินการ

ส่วนประกอบ Anti-Virus เมื่อถูกเรียกโดยไม่มีส่วนประกอบอื่นๆ (te, extraction) ปัจจุบันรองรับเฉพาะคำขอสืบค้นที่มีผลรวมแฮช md5 เท่านั้น การจำลองภัยคุกคามและการแยกภัยคุกคามยังรองรับผลรวมแฮช 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 ที่เปิดใช้งานองค์ประกอบ Threat Emulation (เบลด) ได้ ในฐานะที่อยู่สำหรับคำขอ คุณต้องใช้ ip/url ของอุปกรณ์และพอร์ต 18194 (เช่น https://10.10.57.19:18194/tecloud/api/v1/file/query) คุณควรตรวจสอบให้แน่ใจด้วยว่านโยบายความปลอดภัยบนอุปกรณ์อนุญาตการเชื่อมต่อนี้ การอนุญาตผ่านคีย์ API บนอุปกรณ์ท้องถิ่นตามค่าเริ่มต้น ปิด และรหัสการอนุญาตในส่วนหัวของคำขออาจไม่ถูกส่งเลย

ควรส่งคำขอ API ไปยังคลาวด์ CheckPoint ไปที่ te.checkpoint.com (เช่น - https://te.checkpoint.com/tecloud/api/v1/file/query) สามารถรับคีย์ API เป็นใบอนุญาตทดลองใช้งานได้ 60 วันโดยติดต่อพันธมิตรของ Check Point หรือสำนักงานในพื้นที่ของบริษัท

บนอุปกรณ์ภายในเครื่อง Threat Extraction ยังไม่รองรับเป็นมาตรฐาน API การป้องกันภัยคุกคาม และควรใช้ API การป้องกันภัยคุกคามสำหรับเกตเวย์ความปลอดภัย (เราจะพูดถึงรายละเอียดเพิ่มเติมในตอนท้ายของบทความ)

อุปกรณ์ภายในไม่รองรับคำขอโควต้า

มิฉะนั้น จะไม่มีความแตกต่างระหว่างคำขอไปยังอุปกรณ์ภายในและไปยังระบบคลาวด์

อัปโหลดการเรียก API

วิธีที่ใช้ - POST

ที่อยู่ที่โทร - https:///tecloud/api/v1/file/upload

คำขอประกอบด้วยสองส่วน (ฟอร์ม-ข้อมูล): ไฟล์สำหรับการจำลอง/การทำความสะอาด และเนื้อหาคำขอพร้อมข้อความ

คำขอข้อความต้องไม่ว่างเปล่า แต่อาจไม่มีการกำหนดค่าใดๆ เพื่อให้คำขอประสบความสำเร็จ คุณต้องส่งข้อความต่อไปนี้ในคำขอเป็นอย่างน้อย:

ขั้นต่ำที่จำเป็นสำหรับการร้องขอการอัปโหลด

โพสต์ HTTP

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

ส่วนหัว:

อนุญาต:

ร่างกาย

{

"ขอ": {

}

}

เนื้อไม่มีมัน

เนื้อไม่มีมัน

ในกรณีนี้ ไฟล์จะถูกประมวลผลตามพารามิเตอร์เริ่มต้น: องค์ประกอบ - te, อิมเมจระบบปฏิบัติการ - วิน XP และวิน 7โดยไม่ต้องสร้างรายงาน

ความคิดเห็นเกี่ยวกับฟิลด์หลักในคำขอข้อความ:

ชื่อไฟล์ и file_type คุณสามารถปล่อยว่างไว้หรือไม่ส่งได้เลย เนื่องจากข้อมูลนี้อาจไม่เป็นประโยชน์อย่างยิ่งเมื่ออัปโหลดไฟล์ ในการตอบกลับของ API ช่องเหล่านี้จะถูกกรอกโดยอัตโนมัติตามชื่อของไฟล์ที่ดาวน์โหลด และข้อมูลในแคชจะยังคงต้องถูกค้นหาโดยใช้จำนวนแฮช md5/sha1/sha256

ตัวอย่างคำขอที่มี file_name และ file_type ว่างเปล่า

{

"request": {

"file_name": "",

"file_type": "",

}

}

คุณสมบัติ — รายการที่ระบุฟังก์ชันการทำงานที่จำเป็นเมื่อประมวลผลในแซนด์บ็อกซ์ - av (Anti-Virus), te (การจำลองภัยคุกคาม), การแยก (การแยกภัยคุกคาม) หากไม่ส่งพารามิเตอร์นี้เลย ระบบจะใช้เฉพาะองค์ประกอบเริ่มต้นเท่านั้น - te (การจำลองภัยคุกคาม)

หากต้องการเปิดใช้งานการตรวจสอบองค์ประกอบทั้งสามที่มีอยู่ คุณจะต้องระบุองค์ประกอบเหล่านี้ในคำขอ API

ตัวอย่างคำขอที่มีการเช็คอิน av, te และการแยกข้อมูล

{ "request":  [  

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

ปุ่มในส่วนเต

ภาพ — รายการที่มีพจนานุกรมพร้อมรหัสและหมายเลขการแก้ไขของระบบปฏิบัติการที่จะดำเนินการตรวจสอบ รหัสและหมายเลขการแก้ไขจะเหมือนกันสำหรับอุปกรณ์ภายในเครื่องและระบบคลาวด์ทั้งหมด

รายชื่อระบบปฏิบัติการและการแก้ไข

รหัสอิมเมจระบบปฏิบัติการที่มีอยู่

Revision

ระบบปฏิบัติการรูปภาพและแอปพลิเคชัน

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32 บิต SP3
Office: 2003, 2007
โปรแกรม Adobe Acrobat Reader: 9.0
flash Player 9r115 และ ActiveX 10.0
รันไทม์ของจาวา: 1.6.0u22

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

1

Microsoft Windows: 7 - 32บิต
Office: 2003, 2007
โปรแกรม Adobe Acrobat Reader: 9.0
แฟลชเพลเยอร์: 10.2r152 (เสียบเข้าไปActiveX)
รันไทม์ของจาวา: 1.6.0u0

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

1

Microsoft Windows: 7 - 32บิต
Office: 2010
โปรแกรม Adobe Acrobat Reader: 9.4
แฟลชเพลเยอร์: 11.0.1.152 (เสียบเข้าไป & ActiveX)
รันไทม์ของจาวา: 1.7.0u0

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

1

Microsoft Windows: 7 - 32บิต
Office: 2013
โปรแกรม Adobe Acrobat Reader: 11.0
แฟลชเพลเยอร์: 15 (เสียบเข้าไป & ActiveX)
รันไทม์ของจาวา: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64บิต
Office: 2013 (32 บิต)
โปรแกรม Adobe Acrobat Reader: 11.0.01
แฟลชเพลเยอร์: 13 (เสียบเข้าไป & ActiveX)
รันไทม์ของจาวา: 1.7.0u9

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

 

Microsoft Windows: 8.1 - 64บิต
Office: 2013 (64 บิต)
โปรแกรม Adobe Acrobat Reader: 11.0.10
แฟลชเพลเยอร์: 18.0.0.160 (เสียบเข้าไป & ActiveX)
รันไทม์ของจาวา: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Office: Professional Plus 2016 กับเรา  
โปรแกรม Adobe Acrobat Reader: DC 2015 มอย
แฟลชเพลเยอร์: 20 (เสียบเข้าไป & ActiveX)
รันไทม์ของจาวา: 1.7.0u9

หากไม่ได้ระบุคีย์รูปภาพเลย การจำลองจะเกิดขึ้นในรูปภาพที่แนะนำโดย Check Point (ปัจจุบันคือ Win XP และ Win 7) แนะนำให้ใช้รูปภาพเหล่านี้โดยพิจารณาจากความสมดุลระหว่างประสิทธิภาพและอัตราการจับภาพที่ดีที่สุด

รายงาน — รายการรายงานที่เราร้องขอในกรณีที่ไฟล์กลายเป็นอันตราย มีตัวเลือกต่อไปนี้:

  1. สรุป - ไฟล์เก็บถาวร .tar.gz ที่มีรายงานการจำลองโดย ทั้งหมด รูปภาพที่ร้องขอ (ทั้งหน้า html และส่วนประกอบ เช่น วิดีโอจากระบบปฏิบัติการจำลอง, ดัมพ์การรับส่งข้อมูลเครือข่าย, รายงานใน json และตัวอย่างในไฟล์เก็บถาวรที่มีการป้องกันด้วยรหัสผ่าน) เรากำลังมองหากุญแจในคำตอบ - รายงานสรุป เพื่อดาวน์โหลดรายงานต่อไป

  2. รูปแบบไฟล์ PDF - เอกสารเกี่ยวกับการจำลองใน หนึ่ง รูปภาพซึ่งหลายคนคุ้นเคยกับการรับผ่าน Smart Console เรากำลังมองหากุญแจในคำตอบ - pdf_รายงาน เพื่อดาวน์โหลดรายงานต่อไป

  3. XML - เอกสารเกี่ยวกับการจำลองใน หนึ่ง รูปภาพ สะดวกสำหรับการแยกวิเคราะห์พารามิเตอร์ในรายงานในภายหลัง เรากำลังมองหากุญแจในคำตอบ - xml_report เพื่อดาวน์โหลดรายงานต่อไป

  4. น้ำมันดิน - ไฟล์เก็บถาวร .tar.gz ที่มีรายงานเกี่ยวกับการจำลอง หนึ่ง รูปภาพที่ร้องขอ (ทั้งหน้า html และส่วนประกอบ เช่น วิดีโอจากระบบปฏิบัติการจำลอง, ดัมพ์การรับส่งข้อมูลเครือข่าย, รายงานใน json และตัวอย่างในไฟล์เก็บถาวรที่มีการป้องกันด้วยรหัสผ่าน) เรากำลังมองหากุญแจในคำตอบ - full_report เพื่อดาวน์โหลดรายงานต่อไป

มีอะไรอยู่ในรายงานสรุปการโต้ตอบกับ 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 ซึ่งใช้เป็นค่าเริ่มต้น) หรือล้าง (ล้างเนื้อหาที่ใช้งานอยู่)

extracted_parts_codes - รายการรหัสสำหรับการลบเนื้อหาที่ใช้งานอยู่ ใช้ได้กับวิธีการล้างเท่านั้น

รหัสสำหรับการลบเนื้อหาออกจากไฟล์

รหัส

รายละเอียด

1025

วัตถุที่เชื่อมโยง

1026

มาโครและโค้ด

1034

ไฮเปอร์ลิงก์ที่ละเอียดอ่อน

1137

การดำเนินการ PDF GoToR

1139

การดำเนินการเปิดตัว PDF

1141

การดำเนินการ PDF URI

1142

การกระทำเสียง PDF

1143

การดำเนินการภาพยนตร์ PDF

1150

การดำเนินการ PDF JavaScript

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

วิธีที่ใช้ - POST

ที่อยู่ที่โทร - https:///tecloud/api/v1/file/query

ก่อนที่จะส่งไฟล์เพื่อดาวน์โหลด (คำขออัปโหลด) ขอแนะนำให้ตรวจสอบแคชแซนด์บ็อกซ์ (คำขอสอบถาม) เพื่อเพิ่มประสิทธิภาพการโหลดบนเซิร์ฟเวอร์ API เนื่องจากเซิร์ฟเวอร์ API อาจมีข้อมูลและคำตัดสินเกี่ยวกับไฟล์ที่ดาวน์โหลดอยู่แล้ว การโทรประกอบด้วยส่วนข้อความเท่านั้น ส่วนที่จำเป็นของคำขอคือจำนวนแฮช sha1/sha256/md5 ของไฟล์ อย่างไรก็ตาม คุณสามารถรับมันได้ตามคำขออัปโหลด

ขั้นต่ำที่จำเป็นสำหรับการค้นหา

โพสต์ HTTP

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

จากนั้นคำตอบจะมีข้อมูลที่ครบถ้วน (“code”: 1001, “label”: “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."
        }
      }
    }
  ]
}

หากไม่มีข้อมูลในแคชเลย การตอบสนองจะเป็น "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."
        }
      }
    }
  ]
}

ในการเรียก 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

วิธีที่ใช้ - POST (ตามเอกสาร) GET ใช้งานได้ (และอาจดูสมเหตุสมผลมากกว่า)

ที่อยู่ที่โทร - https:///tecloud/api/v1/file/download?id=

ส่วนหัวกำหนดให้ต้องส่งคีย์ API ส่วนเนื้อหาของคำขอว่างเปล่า รหัสการดาวน์โหลดจะถูกส่งไปในที่อยู่ URL

เพื่อตอบสนองต่อคำขอสอบถาม หากการจำลองเสร็จสิ้นและมีการร้องขอรายงานเมื่อดาวน์โหลดไฟล์ รหัสสำหรับการดาวน์โหลดรายงานจะมองเห็นได้ หากมีการร้องขอสำเนาที่ล้างแล้ว คุณควรมองหารหัสเพื่อดาวน์โหลดเอกสารที่ล้างแล้ว

โดยรวมแล้ว คีย์ในการตอบสนองต่อแบบสอบถามที่มีค่า id สำหรับการโหลดสามารถเป็น:

  • รายงานสรุป

  • full_report

  • pdf_รายงาน

  • xml_report

  • extracted_file_download_id

แน่นอนว่าเพื่อที่จะรับคีย์เหล่านี้เพื่อตอบสนองต่อคำขอสืบค้น จะต้องระบุคีย์เหล่านี้ในคำขอ (สำหรับรายงาน) หรืออย่าลืมส่งคำขอโดยใช้ฟังก์ชันการแยกข้อมูล (สำหรับเอกสารที่ล้างแล้ว)

การเรียกโควต้า API

วิธีที่ใช้ - POST

ที่อยู่ที่โทร - 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"
    }
  ]
}

API การป้องกันภัยคุกคามสำหรับเกตเวย์ความปลอดภัย

API นี้ได้รับการพัฒนาก่อน Threat Prevention API และมีไว้สำหรับอุปกรณ์ในเครื่องเท่านั้น ในตอนนี้ จะมีประโยชน์ก็ต่อเมื่อคุณต้องการ Threat Extraction API เท่านั้น สำหรับ Threat Emulation ควรใช้ Threat Prevention API ปกติจะดีกว่า เปิด TP API สำหรับสิงคโปร์ และกำหนดค่าคีย์ API ที่คุณต้องทำตามขั้นตอน sk113599. ฉันแนะนำให้ใส่ใจกับขั้นตอนที่ 6b และตรวจสอบการเข้าถึงของเพจ https://<IPAddressofSecurityGateway>/UserCheck/TPAPI เพราะในกรณีที่ผลลัพธ์เป็นลบ การกำหนดค่าเพิ่มเติมไม่สมเหตุสมผล การเรียก API ทั้งหมดจะถูกส่งไปยัง URL นี้ ประเภทการโทร (อัปโหลด/สอบถาม) ได้รับการควบคุมในคีย์เนื้อหาการโทร - คำขอ_ชื่อ. กุญแจที่ต้องใช้ก็มีเช่นกัน - api_key (คุณต้องจำไว้ในระหว่างกระบวนการกำหนดค่า) และ protocol_version (ปัจจุบันเวอร์ชันปัจจุบันคือ 1.1) คุณสามารถค้นหาเอกสารอย่างเป็นทางการสำหรับ API นี้ได้ที่ sk137032. ข้อได้เปรียบเชิงสัมพัทธ์ ได้แก่ ความสามารถในการส่งไฟล์หลายไฟล์พร้อมกันสำหรับการจำลองเมื่อทำการโหลด เนื่องจากไฟล์จะถูกส่งเป็นสตริงข้อความ base64 หากต้องการเข้ารหัส/ถอดรหัสไฟล์เป็น/จาก base64 คุณสามารถใช้ตัวแปลงออนไลน์ในบุรุษไปรษณีย์เพื่อวัตถุประสงค์ในการสาธิต เช่น - 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"]
    }
    }
    ]
}

สำหรับส่วนประกอบ การสกัด พจนานุกรมที่ให้มา สครับ_ตัวเลือก. คำขอนี้ระบุวิธีการทำความสะอาด: แปลงเป็น PDF, ล้างเนื้อหาที่ใช้งานอยู่ หรือเลือกโหมดตามโปรไฟล์ Threat Prevention (ระบุชื่อโปรไฟล์) สิ่งที่ยอดเยี่ยมเกี่ยวกับการตอบกลับคำขอ 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 การป้องกันภัยคุกคาม.

คอลเลกชันบุรุษไปรษณีย์

ฉันสร้างคอลเลกชันในบุรุษไปรษณีย์สำหรับทั้ง Threat Prevention API และ Threat Prevention API สำหรับ Security Gateway ซึ่งแสดงถึงคำขอ API ที่พบบ่อยที่สุด เพื่อให้เซิร์ฟเวอร์ ip/url API และคีย์ถูกแทนที่ในคำขอโดยอัตโนมัติ และจำนวนแฮช sha256 ที่ต้องจดจำหลังจากดาวน์โหลดไฟล์ ตัวแปรสามตัวได้ถูกสร้างขึ้นภายในคอลเลกชัน (คุณสามารถค้นหาได้โดยไปที่การตั้งค่าคอลเลกชัน แก้ไข -> ตัวแปร): te_api (จำเป็น), api_key (ต้องกรอก ยกเว้นเมื่อใช้ TP API กับอุปกรณ์ในเครื่อง), sha256 (เว้นว่างไว้ ไม่ใช้ใน TP API สำหรับ SG).

ดาวน์โหลดคอลเลกชันบุรุษไปรษณีย์สำหรับ Threat Prevention API

ดาวน์โหลดคอลเลกชันบุรุษไปรษณีย์สำหรับ Threat Prevention สำหรับ Security Gateway API

ตัวอย่างการใช้งาน

ในสังคม ตรวจสอบเพื่อน สคริปต์ที่เขียนด้วย Python จะถูกนำเสนอซึ่งตรวจสอบไฟล์จากไดเร็กทอรีที่ต้องการผ่านทาง ทีพี เอพีไอและ TP API สำหรับสิงคโปร์. ด้วยการโต้ตอบกับ Threat Prevention API ความสามารถในการสแกนไฟล์ของคุณจึงขยายออกไปอย่างมาก เนื่องจากขณะนี้คุณสามารถสแกนไฟล์ในหลายแพลตฟอร์มพร้อมกันได้ (เช็คอิน API ไวรัสรวมจากนั้นในแซนด์บ็อกซ์ Check Point) และรับไฟล์ไม่เพียงแต่จากการรับส่งข้อมูลเครือข่าย แต่ยังนำไฟล์เหล่านั้นมาจากไดรฟ์เครือข่ายใด ๆ และตัวอย่างเช่น ระบบ CRM

ที่มา: will.com

เพิ่มความคิดเห็น