
Бул макала технология менен тааныш болгондор үчүн пайдалуу болот өткөрүү пунктун файл эмуляциясы боюнча (Threat Emulation) жана проактивдүү файлдарды тазалоо (Коркунучту чыгаруу) жана бул милдеттерди автоматташтырууга кадам таштагысы келет. Check Point бар , булутта да, жергиликтүү түзмөктөрдө да иштейт жана Функционалдык жактан ал web/smtp/ftp/smb/nfs трафик агымындагы файлдарды текшерүүгө окшош.. Бул макала жарым-жартылай автордун расмий документтердеги макалалардын жыйындысын чечмелеп берген, бирок менин жеке тажрыйбама жана өз мисалдарыма негизделген. Ошондой эле макалада сиз Threat Prevention API менен иштөө үчүн автордун Почтачы жыйнактарын таба аласыз.
Негизги аббревиатуралар
Threat Prevention API төмөнкү тексттик маанилер аркылуу APIде чакырылган үч негизги компонент менен иштейт:
av — Белгилүү коркунучтарга кол талдоо үчүн жооптуу Антивирус компоненти.
te - Коркунучту эмуляциялоо компоненти, кумкоргондогу файлдарды текшерүү жана эмуляциядан кийин зыяндуу/жакшы чечим чыгаруу үчүн жооптуу.
казып алуу - Колдонуучуларга/системаларга тез жеткирүү үчүн офис документтерин коопсуз формага (баардык потенциалдуу зыяндуу мазмун жок кылынган) тез айландыруу үчүн жооптуу Threat Extraction компоненти.
API түзүмү жана негизги чектөөлөр
Threat Prevention API 4 гана өтүнүчтү колдонот - жүктөө, суроо, жүктөө жана квота. Бардык төрт сурамдын аталышында параметрди колдонуу менен API ачкычын өткөрүшүңүз керек укук берүү. Бир караганда, структурасы караганда алда канча жөнөкөй сезилиши мүмкүн , бирок жүктөө жана суроо сурамдарындагы талаалардын саны жана бул суроо-талаптардын структурасы кыйла татаал. Аларды шлюз/кумдук коопсуздук саясатындагы Коркунучтун алдын алуу профилдери менен функционалдык жактан салыштырса болот.
Учурда Threat Prevention API'нин жалгыз версиясы чыкты - API чалуулары үчүн URL камтышы керек v1 версиясын көрсөтүү керек болгон бөлүгүндө. Management API'ден айырмаланып, URL'де API версиясын көрсөтүү керек, антпесе сурам аткарылбайт.
Anti-Virus компоненти, башка компоненттерсиз (te, экстракция) чакырылганда, учурда md5 хэш суммалары менен суроо-талаптарды гана колдойт. Threat Emulation жана Threat Extraction да sha1 жана sha256 хэш суммаларын колдойт.
Суроолордо ката кетирбөө абдан маанилүү! Сурам катасыз аткарылышы мүмкүн, бирок толук эмес. Бир аз алдыга карап, суроо-талаптарда каталар/каталар болгондо эмне болорун карап көрөлү.
Reports (отчеттор) деген сөз менен ката менен суроо
{ "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 ачкычын 60 күнгө сыноо лицензиясы катары Check Point өнөктөштөрүнө же компаниянын жергиликтүү кеңсесине кайрылуу аркылуу алууга болот.
Жергиликтүү түзмөктөрдө Threat Extraction стандарт катары азырынча колдоого алынбайт. жана колдонулушу керек (бул тууралуу макаланын аягында кененирээк сөз кылабыз).
Жергиликтүү түзмөктөр квота сурамын колдоого албайт.
Болбосо, жергиликтүү түзмөктөргө жана булутка суроо-талаптардын ортосунда эч кандай айырмачылыктар жок.
API чалуу жүктөө
Колдонулган ыкма - POST
Чалуу дареги - https:///tecloud/api/v1/file/upload
Сурам эки бөлүктөн турат (форма-маалыматтар): эмуляция/тазалоо үчүн арналган файл жана тексти бар суроо-талаптын корпусу.
Текст сурамы бош болушу мүмкүн эмес, бирок анда эч кандай конфигурация камтылбашы мүмкүн. Сурам ийгиликтүү болушу үчүн, сурамда жок дегенде төмөнкү текстти жөнөтүшүңүз керек:
Жүктөп берүү өтүнүчү үчүн минималдуу талап кылынат
HTTP POST
https:///tecloud/api/v1/file/upload
Баш аты:
уруксат берүү:
дене
{
"суроо": {
}
}
File
File
Бул учурда, файл демейки параметрлерге ылайык иштетилет: компонент - te, OS сүрөттөрү - Win XP жана Win 7, отчетту түзбөстөн.
Тексттик суроо-талаптын негизги талаалары боюнча комментарийлер:
Шилтемелер аты и файл түрү Сиз аларды бош калтырсаңыз же такыр жөнөтпөй койсоңуз болот, анткени бул файлды жүктөөдө өзгөчө пайдалуу маалымат эмес. API жоопунда бул талаалар жүктөлүп алынган файлдын аталышына жараша автоматтык түрдө толтурулат жана кэштеги маалымат дагы эле md5/sha1/sha256 хэш суммалары аркылуу изделиши керек болот.
Бош файлдын_аты жана файлдын_тиби менен сурамдын мисалы
{
"request": {
"file_name": "",
"file_type": "",
}
}Өзгөчөлүктөрү — кум чөйрөсүндө иштетүүдө зарыл болгон функцияларды көрсөткөн тизме - av (Антивирус), te (Threat Emulation), экстракция (Threat Extraction). Эгерде бул параметр такыр өтпөй калса, анда демейки компонент гана колдонулат - te (Threat Emulation).
Үч жеткиликтүү компоненттерди текшерүүнү иштетүү үчүн, API сурамында бул компоненттерди көрсөтүшүңүз керек.
Ав, те жана экстракцияны текшерүү менен сурамдын мисалы
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}Те бөлүмүндөгү ачкычтар
сүрөттөр — текшерүү жүргүзүлө турган операциялык системалардын id жана ревизия номери менен сөздүктөрдү камтыган тизме. Идентификаторлор жана версия номерлери бардык жергиликтүү түзмөктөр жана булут үчүн бирдей.
Операциялык системалардын жана оңдоолордун тизмеси
Жеткиликтүү OS Image ID
кайрадан кароо
Image OS жана колдонмо
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP - 32bit SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 жана ActiveX 10.0
Java Runtime: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 - 32бит
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (Плагин& ActiveX)
Java Runtime: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 - 32бит
Office: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Плагин & ActiveX)
Java Runtime: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 - 32бит
Office: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Плагин & ActiveX)
Java Runtime: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7 - 64бит
Office: 2013 (32бит)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (Плагин & ActiveX)
Java Runtime: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
Microsoft Windows: 8.1 - 64бит
Office: 2013 (64бит)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (Плагин & ActiveX)
Java Runtime: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Office: Professional Plus 2016 en-us
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Плагин & ActiveX)
Java Runtime: 1.7.0u9
Эгерде сүрөттөр ачкычы такыр көрсөтүлбөсө, эмуляция Check Point сунуштаган сүрөттөрдө ишке ашат (учурда Win XP жана Win 7). Бул сүрөттөр аткаруунун жана кармоо ылдамдыгынын эң жакшы балансынын негизинде сунушталат.
отчеттор — файл зыяндуу болуп чыккан учурда биз сурай турган отчеттордун тизмеси. Төмөнкү опциялар жеткиликтүү:
на - .tar.gz архивинде эмуляция жөнүндө отчет камтылган бардык суралган сүрөттөр (html баракчасы жана эмулятордун OS видеосу, тармактык трафиктин таштандысы, json тилиндеги отчет жана сырсөз менен корголгон архивдеги үлгүнүн өзү сыяктуу компоненттер). Биз жооптун ачкычын издеп жатабыз - корутунду_отчет отчетту кийинки жүктөө үчүн.
PDF - эмуляция жөнүндө документ бир көптөр Smart Console аркылуу алууга көнүп калган сүрөт. Биз жооптун ачкычын издеп жатабыз - pdf_отчет отчетту кийинки жүктөө үчүн.
XML - эмуляция жөнүндө документ бир отчеттогу параметрлерди кийинки талдоо үчүн ыңгайлуу сүрөт. Биз жооптун ачкычын издеп жатабыз - xml_report отчетту кийинки жүктөө үчүн.
кара май - .tar.gz архивинде эмуляция боюнча отчет камтылган бир суралган сүрөттөр (html баракчасы жана эмулятордун OS видеосу, тармактык трафиктин таштандысы, json тилиндеги отчет жана сырсөз менен корголгон архивдеги үлгүнүн өзү сыяктуу компоненттер). Биз жооптун ачкычын издеп жатабыз - толук_отчет отчетту кийинки жүктөө үчүн.
Кыскача отчеттун ичинде эмне бар
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 Movie Actions
1150
PDF JavaScript аракеттери
1151
PDF формасын тапшыруу аракеттери
1018
базасы Queries
1019
Киргизилген объекттер
1021
Маалыматтарды тез сактоо
1017
Ыңгайлаштырылган касиеттер
1036
Statistic Properties
1037
Жыйынтык касиеттери
Тазаланган көчүрмөнү жүктөп алуу үчүн, ошондой эле бир нече секунддан кийин файлдын хэш көлөмүн жана суроонун текстиндеги экстракция компонентин көрсөтүү менен суроо-талапты (төмөндө талкууланат) жасашыңыз керек болот. Тазаланган файлды суроого жооптун идентификатору менен ала аласыз - extracted_file_download_id. Дагы бир жолу, бир аз алдыга карап, мен тазаланган документти жүктөп алуу үчүн 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 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". Андан кийин, бул ачкычтар биз сураган ар бир жеке компонент үчүн табылат - те жана казып алуу. Эгер маалымат табылганы анык болсо, анда алуу үчүн эч кандай маалымат жок.
Жогорудагы мисал үчүн суроо ушундай көрүндү
{ "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 чалууларын жүктөп алыңыз
Колдонулган ыкма - POST (документтерге ылайык), ТААНЫШ ошондой эле иштейт (жана логикалуураак сезилиши мүмкүн)
Чалуу дареги - https:///tecloud/api/v1/file/download?id=
Баш маалымат API ачкычынын өткөрүлүшүн талап кылат, сурамдын негизги бөлүгү бош, жүктөө идентификатору URL дарегинде өткөрүлөт.
Суроо суроо-талабына жооп катары, эмуляция аяктап, файлды жүктөөдө отчеттор суралса, отчетторду жүктөө идентификатору көрүнөт. Тазаланган көчүрмө талап кылынса, тазаланган документти жүктөп алуу үчүн id издешиңиз керек.
Бардыгы болуп, жүктөө үчүн id маанисин камтыган суроого жооптун ачкычтары болушу мүмкүн:
корутунду_отчет
толук_отчет
pdf_отчет
xml_report
алынган_файл_жүктөө_идентификатору
Албетте, суроо-талапка жооп катары бул ачкычтарды алуу үчүн, алар суроо-талапта көрсөтүлүшү керек (отчеттор үчүн) же экстракция функциясын колдонуу менен суроо-талапты жасоону унутпаңыз (тазаланган документтер үчүн)
Квота 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 колдонуу жакшы. Күйгүзүү SG үчүн TP API жана кадамдарды аткарышыңыз керек болгон API ачкычын конфигурациялаңыз . Мен 6b кадамына көңүл бурууну жана барактын жеткиликтүүлүгүн текшерүүнү сунуштайм https://<IPAddressofSecurityGateway>/UserCheck/TPAPI анткени терс натыйжа болгон учурда, андан ары конфигурация мааниси жок. Бардык API чалуулары бул urlге жөнөтүлөт. Чалуу түрү (жүктөө/суроо) чалуунун негизги баскычында жөнгө салынат - суроо_аты. Ошондой эле керектүү ачкычтар бар - api_key (конфигурациялоо процессинде аны эстеп калуу керек) жана протокол_версиясы (учурда учурдагы версия 1.1). Сиз бул API үчүн расмий документтерди таба аласыз . Салыштырмалуу артыкчылыктарга бир эле учурда бир нече файлдарды жүктөөдө эмуляция үчүн жөнөтүү мүмкүнчүлүгү кирет, анткени файлдар base64 тексттик сап катары жөнөтүлөт. Файлдарды base64тен коддоо/декоддоо үчүн сиз Почтачыдагы онлайн конвертерди демонстрациялоо максатында колдонсоңуз болот, мисалы - . Практикалык максаттар үчүн код жазууда камтылган коддоо жана декоддоо ыкмаларын колдонушуңуз керек.
Эми функцияларды кененирээк карап чыгалы te и казып алуу бул APIде.
Компонент үчүн te сөздүк берилген te_options жүктөө/суроо суроо-талаптарында жана бул сурамдагы ачкычтар ичиндеги баскычтарга толугу менен дал келет .
Отчеттор менен 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 шифрленген сап катары аласыз (сизге суроо-талапты жасап, жүктөп алуу үчүн 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 сурамдары талап кылынганына карабастан, мен бул параметрди форма-маалымат суроосуна караганда азыраак жана ыңгайлуу деп эсептейм. .
Почтачылар жыйнактары
Мен Почтачыда Threat Prevention API жана Threat Prevention API for Security Gateway үчүн коллекцияларды түздүм, алар эң кеңири таралган API сурамдарын чагылдырат. IP/url серверинин API жана ачкычы автоматтык түрдө суроо-талаптарга алмаштырылышы жана sha256 хэш суммасы файлды жүктөп алгандан кийин эсте калышы үчүн коллекциялардын ичинде үч өзгөрмө түзүлдү (сиз аларды коллекциянын жөндөөлөрүнө өтүү аркылуу таба аласыз. Түзөтүү -> Өзгөрмөлөр): te_api (милдеттүү), api_key (жергиликтүү түзмөктөр менен TP API колдонуудан тышкары, толтурулушу керек), sha256 (бош калтырыңыз, SG үчүн TP API колдонулбайт).
Колдонуунун мисалдары
Коомчулукта каалаган каталогдон файлдарды текшере турган Python тилинде жазылган скрипттер сунушталат жана . Threat Prevention API менен өз ара аракеттенүү аркылуу файлдарды скандоо мүмкүнчүлүгүңүз кыйла кеңейди, анткени азыр сиз бир эле учурда бир нече платформадагы файлдарды сканерлей аласыз (текшерүү , анан Текшерүү пунктунун кум чөйрөсүндө) жана файлдарды тармак трафигинен гана кабыл албастан, аларды каалаган тармактык дисктерден жана, мисалы, CRM тутумдарынан да алыңыз.
Source: www.habr.com
