API-ээр дамжуулан Check Point SandBlast-тай харилцах

API-ээр дамжуулан Check Point SandBlast-тай харилцах

Энэ нийтлэл нь технологийг мэддэг хүмүүст хэрэгтэй болно Шалгах цэг файлын эмуляцаар (Аюул заналхийллийн эмуляц) болон идэвхтэй файл цэвэрлэх (Аюулын олборлолт) мөн эдгээр ажлыг автоматжуулах алхам хийхийг хүсч байна. Check Point байна Аюулаас урьдчилан сэргийлэх API, энэ нь үүлэн болон дотоод төхөөрөмж дээр ажилладаг, мөн функциональ байдлаар энэ нь web/smtp/ftp/smb/nfs урсгал дахь файлуудыг шалгахтай адил юм.. Энэ нийтлэл нь албан ёсны баримт бичгийн багц нийтлэлийн зохиогчийн тайлбар боловч миний өөрийн үйл ажиллагааны туршлага болон өөрийн жишээн дээр үндэслэсэн болно. Мөн нийтлэлээс та Threat Prevention API-тэй ажиллах зохиогчийн Postman цуглуулгуудыг олох болно.

Үндсэн товчлолууд

Threat Prevention API нь дараах текст утгуудаар дамжуулан API-д дуудагддаг гурван үндсэн бүрэлдэхүүн хэсэгтэй ажилладаг:

av - Вирусын эсрэг бүрэлдэхүүн хэсэг нь мэдэгдэж буй аюулын гарын үсгийн шинжилгээг хариуцдаг.

te - Аюулгүй байдлын эмуляцийн бүрэлдэхүүн хэсэг нь хамгаалагдсан хязгаарлагдмал орчинд байгаа файлуудыг шалгах, эмуляц хийсний дараа хортой/хор хөнөөлтэй шийдвэр гаргах үүрэгтэй.

олборлолт - Хэрэглэгчид/системд хурдан хүргэхийн тулд оффисын баримт бичгүүдийг аюулгүй хэлбэрт (бүх хортой агуулгыг устгадаг) хурдан хөрвүүлэх үүрэгтэй Threat Extraction бүрэлдэхүүн хэсэг.

API бүтэц ба үндсэн хязгаарлалтууд

Threat Prevention API нь зөвхөн 4 хүсэлтийг ашигладаг - байршуулах, асуулга, татаж авах, квот. Бүх дөрвөн хүсэлтийн толгой хэсэгт та параметрийг ашиглан API түлхүүрийг дамжуулах шаардлагатай Зөвшөөрөл. Эхлээд харахад бүтэц нь өмнөхөөсөө хамаагүй хялбар мэт санагдаж магадгүй юм Удирдлагын API, гэхдээ байршуулах болон асуулга хүсэлтийн талбаруудын тоо болон эдгээр хүсэлтийн бүтэц нь нэлээд төвөгтэй байдаг. Эдгээрийг гарц/sandbox аюулгүй байдлын бодлого дахь Аюулаас урьдчилан сэргийлэх профайлуудтай функциональ байдлаар харьцуулж болно.

Одоогийн байдлаар Threat Prevention API-ийн цорын ганц хувилбар гарсан - 1.0; API дуудлагын URL-д оруулах ёстой. v1 хувилбарыг зааж өгөх шаардлагатай хэсэгт. Менежментийн API-ээс ялгаатай нь URL-д API хувилбарыг зааж өгөх шаардлагатай бөгөөд эс тэгвээс хүсэлтийг биелүүлэхгүй.

Антивирусын бүрэлдэхүүн хэсэг нь бусад бүрэлдэхүүн хэсэггүйгээр (te, олборлолт) дуудагдсан үед одоогоор зөвхөн md5 хэш нийлбэртэй асуулгын хүсэлтийг дэмждэг. Threat Emulation болон Threat Extraction нь мөн sha1 болон sha256 хэш нийлбэрийг дэмждэг.

Асуулгад алдаа гаргахгүй байх нь маш чухал юм! Хүсэлтийг алдаагүйгээр гүйцэтгэх боломжтой, гэхдээ бүрэн биш. Цаашид бага зэрэг харвал асуулгад алдаа/үсгийн алдаа гарсан тохиолдолд юу тохиолдож болохыг харцгаая.

Reports (reportss) гэсэн үгтэй үсгийн алдаатай хүсэлт

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

Бид тайланг татаж авах id-г агуулсан хариу хүлээн авдаг

{
  "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 хүсэлтийг Threat Emulation бүрэлдэхүүн хэсэг (ир) идэвхжүүлсэн Check Point төхөөрөмжүүдэд илгээж болно. Хүсэлтийн хаягийн хувьд та төхөөрөмжийн ip/url болон 18194 портыг (жишээ нь, https://) ашиглах шаардлагатай.10.10.57.19:18194/tecloud/api/v1/file/query). Та мөн төхөөрөмж дээрх аюулгүй байдлын бодлого ийм холболтыг зөвшөөрдөг эсэхийг шалгах хэрэгтэй. Өгөгдмөлөөр локал төхөөрөмж дээрх API түлхүүрээр дамжуулан зөвшөөрөл авах унтраах мөн хүсэлтийн толгой хэсэгт байгаа Зөвшөөрлийн түлхүүрийг огт илгээхгүй байж болно.

CheckPoint үүл рүү API хүсэлтийг илгээх ёстой te.checkpoint.com (жишээ нь - https://te.checkpoint.com/tecloud/api/v1/file/query). API түлхүүрийг Check Point-ийн түншүүд эсвэл компанийн орон нутгийн оффистой холбогдож 60 хоногийн турш туршилтын лиценз хэлбэрээр авах боломжтой.

Орон нутгийн төхөөрөмж дээр Threat Extraction стандартыг хараахан дэмжээгүй байна. Аюулаас урьдчилан сэргийлэх API мөн ашиглах ёстой Аюулгүй байдлын гарцын аюулаас урьдчилан сэргийлэх API (Бид нийтлэлийн төгсгөлд энэ талаар илүү дэлгэрэнгүй ярих болно).

Орон нутгийн төхөөрөмжүүд квотын хүсэлтийг дэмждэггүй.

Үгүй бол локал төхөөрөмж болон үүл рүү илгээх хүсэлтийн хооронд ямар ч ялгаа байхгүй.

API дуудлагыг байршуулах

Ашигласан арга - Шуудан

Дуудлагын хаяг - https:///tecloud/api/v1/file/upload

Хүсэлт нь эмуляци/цэвэрлэхэд зориулагдсан файл ба текст бүхий хүсэлтийн хэсэг гэсэн хоёр хэсгээс бүрдэнэ (формат-өгөгдөл).

Текстийн хүсэлт хоосон байж болохгүй, гэхдээ ямар ч тохиргоо агуулаагүй байж болно. Хүсэлтийг амжилттай болгохын тулд та хүсэлтэд дор хаяж дараах текстийг илгээх ёстой.

Байршуулах хүсэлтийн хамгийн бага хэмжээ

HTTP POST

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

Гарчиг:

Зөвшөөрөл:

Биеийн

{

"хүсэлт": {

}

}

Файлын

Файлын

Энэ тохиолдолд файлыг үндсэн параметрүүдийн дагуу боловсруулна: бүрэлдэхүүн хэсэг - te, OS зураг - Win XP болон Win 7, тайлан үүсгэхгүйгээр.

Текст хүсэлтийн үндсэн талбаруудын тайлбар:

файлын нэр и Файлын төрөл Файл байршуулах үед энэ нь тийм ч ашигтай мэдээлэл биш тул та тэдгээрийг хоосон орхиж эсвэл огт илгээхгүй. API хариултанд эдгээр талбаруудыг татаж авсан файлын нэр дээр үндэслэн автоматаар бөглөх бөгөөд кэш дэх мэдээллийг md5/sha1/sha256 хэш дүнг ашиглан хайх шаардлагатай хэвээр байх болно.

Хоосон файлын нэр болон файлын төрөл бүхий жишээ хүсэлт

{

"request": {

"file_name": "",

"file_type": "",

}

}

онцлог — хамгаалагдсан хязгаарлагдмал орчинд боловсруулахад шаардлагатай функцийг харуулсан жагсаалт - av (Антивирус), te (Аюул эмуляц), олборлолт (Аюул задаргаа). Хэрэв энэ параметрийг огт дамжуулаагүй бол зөвхөн анхдагч бүрэлдэхүүн хэсгийг ашиглах болно - te (Threat Emulation).

Боломжтой гурван бүрэлдэхүүн хэсгийг шалгахыг идэвхжүүлэхийн тулд API хүсэлтэд эдгээр бүрэлдэхүүн хэсгүүдийг зааж өгөх шаардлагатай.

Ав, тэ болон олборлолтыг шалгах хүсэлтийн жишээ

{ "request":  [  

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

Te хэсэгт байгаа түлхүүрүүд

зургууд - шалгалт хийх үйлдлийн системийн id болон засварын дугаар бүхий толь бичгүүдийг агуулсан жагсаалт. ID болон засварын дугаар нь бүх локал төхөөрөмж болон үүлэнд ижил байна.

Үйлдлийн систем ба засварын жагсаалт

Боломжтой үйлдлийн системийн зургийн ID

Засвар хийсэн

Зургийн үйлдлийн систем ба програм

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32 бит SP3
газар: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash тоглуулагч 9r115 ба ActiveX 10.0
Java ажиллах хугацаа: 1.6.0u22

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

1

Microsoft Windows: 7 - 32 бит
газар: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash тоглуулагч: 10.2r152 (ЗалгахActiveX)
Java ажиллах хугацаа: 1.6.0u0

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

1

Microsoft Windows: 7 - 32 бит
газар: 2010
Adobe Acrobat Reader: 9.4
Flash тоглуулагч: 11.0.1.152 (Залгах & ActiveX)
Java ажиллах хугацаа: 1.7.0u0

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

1

Microsoft Windows: 7 - 32 бит
газар: 2013
Adobe Acrobat Reader: 11.0
Flash тоглуулагч: 15 (Залгах & ActiveX)
Java ажиллах хугацаа: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64 бит
газар: 2013 (32 бит)
Adobe Acrobat Reader: 11.0.01
Flash тоглуулагч: 13 (Залгах & ActiveX)
Java ажиллах хугацаа: 1.7.0u9

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

 

Microsoft Windows: 8.1 - 64 бит
газар: 2013 (64 бит)
Adobe Acrobat Reader: 11.0.10
Flash тоглуулагч: 18.0.0.160 (Залгах & ActiveX)
Java ажиллах хугацаа: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
газар: Professional Plus 2016 en-us  
Adobe Acrobat Reader: DC 2015 MUI
Flash тоглуулагч: 20 (Залгах & ActiveX)
Java ажиллах хугацаа: 1.7.0u9

Хэрэв зургийн товчлуурыг огт заагаагүй бол Check Point-аас санал болгосон зургуудад эмуляци явагдана (одоо Win XP болон Win 7). Гүйцэтгэл болон барих хурдын хамгийн сайн тэнцвэрийг харгалзан үзсэний үндсэн дээр эдгээр зургуудыг санал болгож байна.

мэдээ - файл нь хортой болох нь тогтоогдсон тохиолдолд бидний хүсэлт гаргах тайлангийн жагсаалт. Дараах сонголтууд боломжтой.

  1. хураангуй - Эмуляцийн талаарх тайланг агуулсан .tar.gz архив бүх хүмүүст хүссэн зургууд (html хуудас болон эмулятор үйлдлийн системээс авсан видео, сүлжээний траффик, json дахь тайлан, нууц үгээр хамгаалагдсан архивт байгаа дээж зэрэг бүрэлдэхүүн хэсгүүд). Бид хариултын түлхүүрийг хайж байна - хураангуй_тайлан тайланг дараа нь татаж авах.

  2. PDF - эмуляцийн тухай баримт бичиг нэг нь Ухаалаг консолоор дамжуулан олон хүн хүлээн авч дассан зураг. Бид хариултын түлхүүрийг хайж байна - pdf_тайлан тайланг дараа нь татаж авах.

  3. XML - эмуляцийн тухай баримт бичиг нэг нь Тайлан дахь параметрүүдийг дараа нь задлан шинжлэхэд тохиромжтой зураг. Бид хариултын түлхүүрийг хайж байна - xml_report тайланг дараа нь татаж авах.

  4. давирхай - .tar.gz архивт эмуляцийн талаарх тайланг агуулсан нэг нь хүссэн зургууд (html хуудас болон эмулятор үйлдлийн системээс авсан видео, сүлжээний траффик, json дахь тайлан, нууц үгээр хамгаалагдсан архивт байгаа дээж зэрэг бүрэлдэхүүн хэсгүүд). Бид хариултын түлхүүрийг хайж байна - бүрэн_тайлан тайланг дараа нь татаж авах.

Хураангуй тайлан дотор юу байнаAPI-ээр дамжуулан Check Point SandBlast-тай харилцах

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

PDF URI үйлдлүүд

1142

PDF дууны үйлдлүүд

1143

PDF киноны үйлдлүүд

1150

PDF JavaScript үйлдэл

1151

PDF маягтыг илгээх үйлдлүүд

1018

Мэдээллийн сангийн асуулга

1019

Оруулсан объект

1021

Өгөгдлийг хурдан хадгалах

1017

Захиалгат шинж чанарууд

1036

Статистикийн шинж чанарууд

1037

Хураангуй шинж чанарууд

Цэвэрлэсэн хуулбарыг татаж авахын тулд та мөн хэдхэн секундын дараа хүсэлтийн текст дэх файлын хэш хэмжээ болон задлах бүрэлдэхүүн хэсгийг зааж асуулгын хүсэлт (үүнийг доор хэлэлцэх болно) хийх шаардлагатай болно. Та асуулгад хариулах ID-г ашиглан цэвэрлэсэн файлаа авч болно - extracted_file_download_id. Дахин нэг удаа, бага зэрэг урагшаа харж, би арилгасан баримт бичгийг татаж авах id хайх хүсэлт, асуулгын хариултын жишээг өгөв.

Extract_file_download_id түлхүүрийг хайх хүсэлт

{ "request":  [  

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

Асуулгад хариу өгөх (залагдсан_файлын_татаж авах_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 болон "шошго": "PARTIALY_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, "шошго": "ОЛСОН")

{
  "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 дуудлагыг татаж авах

Ашигласан арга - Шуудан (баримт бичгийн дагуу), GET бас ажилладаг (мөн илүү логик мэт санагдаж магадгүй)

Дуудлагын хаяг - https:///tecloud/api/v1/file/download?id=

Толгой хэсэг нь API түлхүүрийг дамжуулахыг шаарддаг, хүсэлтийн хэсэг хоосон, татаж авах id нь URL хаягаар дамждаг.

Асуулгын хүсэлтийн хариуд хэрэв эмуляцийг дуусгаж, файлыг татаж авах үед тайланг хүссэн бол тайланг татаж авах id харагдах болно. Хэрэв цэвэрлэсэн хуулбарыг хүссэн бол та цэвэрлэсэн баримтыг татаж авах ID-г хайх хэрэгтэй.

Ачаалах id утгыг агуулсан асуулгад хариулах түлхүүрүүд нь нийтдээ:

  • хураангуй_тайлан

  • бүрэн_тайлан

  • pdf_тайлан

  • xml_report

  • задалсан_файлын_татаж авах_id

Мэдээжийн хэрэг, асуулгын хүсэлтийн хариуд эдгээр түлхүүрүүдийг хүлээн авахын тулд тэдгээрийг хүсэлтэд (тайлангийн хувьд) зааж өгөх ёстой эсвэл олборлох функцийг ашиглан хүсэлт гаргахаа бүү мартаарай (цэвэрлэсэн баримт бичгийн хувьд)

Квотын 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"
    }
  ]
}

Аюулгүй байдлын гарцын аюулаас урьдчилан сэргийлэх API

Энэхүү API нь Threat Prevention API-ээс өмнө бүтээгдсэн бөгөөд зөвхөн дотоод төхөөрөмжүүдэд зориулагдсан. Одоохондоо энэ нь танд Threat Extraction API хэрэгтэй үед л хэрэг болно. Threat Emulation-ийн хувьд ердийн Threat Prevention API ашиглах нь дээр. Асаахын тулд SG-д зориулсан TP API мөн алхам алхмуудыг дагах хэрэгтэй API түлхүүрээ тохируулна уу sk113599. Би 6b алхамд анхаарлаа хандуулж, хуудасны хүртээмжтэй эсэхийг шалгахыг зөвлөж байна https://<IPAddressofSecurityGateway>/UserCheck/TPAPI Учир нь сөрөг үр дүн гарсан тохиолдолд цаашдын тохиргоо хийх нь утгагүй болно. Бүх API дуудлагыг энэ URL руу илгээх болно. Дуудлагын төрлийг (байршуулах/асуулга) дуудлагын үндсэн түлхүүрээр зохицуулдаг хүсэлт_нэр. Мөн шаардлагатай түлхүүрүүд байна - api_key (тохируулгын явцад үүнийг санах хэрэгтэй) ба протоколын хувилбар (одоогийн хувилбар нь 1.1). Та энэ API-ийн албан ёсны баримт бичгийг эндээс олж болно sk137032. Харьцангуй давуу талууд нь файлууд нь base64 текстийн мөр хэлбэрээр илгээгддэг тул тэдгээрийг ачаалах үед эмуляц хийх зорилгоор хэд хэдэн файлыг нэг дор илгээх боломжтой байдаг. Base64-ээс файлуудыг кодчилох/декодлохын тулд та үзүүлэнгийн зорилгоор Postman дахь онлайн хөрвүүлэгчийг ашиглаж болно, жишээлбэл - https://base64.guru. Практик зорилгоор та код бичихдээ суулгасан кодлох, тайлах аргыг ашиглах хэрэгтэй.

Одоо функцуудыг нарийвчлан авч үзье te и олборлолт энэ API дээр.

Бүрэлдэхүүн хэсгийн хувьд te толь бичиг өгсөн сонголтууд байршуулах/асуулга хүсэлтэнд байгаа бөгөөд энэ хүсэлтийн түлхүүрүүд нь 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 болгон хөрвүүлэх, идэвхтэй контентыг арилгах эсвэл аюулаас урьдчилан сэргийлэх профайлын дагуу горимыг сонгох (профайлын нэрийг зааж өгсөн). Файлын олборлолтын API хүсэлтэд хариу өгөх хамгийн сайхан зүйл бол та тухайн хүсэлтийн хариуд цэвэр хуулбарыг base64 шифрлэгдсэн стринг болгон авдаг (та асуулга хүсэлт гаргаж, татаж авахын тулд id хайх шаардлагагүй) юм. бичиг баримт)

Файлыг цэвэрлэх хүсэлтийн жишээ

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

Шуудангийн цуглуулгууд

Би хамгийн түгээмэл API хүсэлтүүдийг төлөөлдөг Threat Prevention API болон Security Gateway-д зориулсан Threat Prevention API-д зориулж Postman дээр цуглуулгуудыг үүсгэсэн. Серверийн IP/url API болон түлхүүрийг хүсэлтэд автоматаар сольж, файлыг татаж авсны дараа sha256 хэш хэмжээг санахын тулд цуглуулгууд дотор гурван хувьсагч үүсгэсэн (та цуглуулгын тохиргоо руу орж тэдгээрийг олох боломжтой) Засварлах -> Хувьсагч): te_api (шаардлагатай), api_key (орон нутгийн төхөөрөмжтэй TP API ашиглахаас бусад тохиолдолд бөглөх шаардлагатай), sha256 (хоосон орхи, SG-д зориулсан TP API-д ашиглагдаагүй).

Threat Prevention API-д зориулсан Postman цуглуулгыг татаж аваарай

Security Gateway API-д зориулсан Threat Prevention-д зориулсан Postman цуглуулгыг татаж авна уу

Хэрэглэх жишээ

Нийгэмд Найзуудыг шалгана уу Python дээр бичигдсэн скриптүүд нь хүссэн лавлахаас файлуудыг шалгах боломжтой TP APIТэгээд SG-д зориулсан TP API. Threat Prevention API-тай харилцан үйлчлэлцсэнээр таны файлуудыг сканнердах чадвар мэдэгдэхүйц өргөжсөн тул одоо та хэд хэдэн платформ дээрх файлуудыг нэгэн зэрэг сканнердах боломжтой болсон. VirusTotal API, дараа нь Шалгах цэгийн хамгаалагдсан хязгаарлагдмал орчинд), зөвхөн сүлжээний траффикаас файлуудыг хүлээн авахаас гадна тэдгээрийг ямар ч сүлжээний хөтчөөс, жишээлбэл, CRM системээс авах боломжтой.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх