์ด ๊ธฐ์ฌ๋ ๊ธฐ์ ์ ์ต์ํ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ ๊ฒ์
๋๋ค. ์ฒดํฌ ํฌ์ธํธ ํ์ผ ์๋ฎฌ๋ ์ด์
๋ณ(์ํ ์๋ฎฌ๋ ์ด์
) ๋ฐ ์ฌ์ ํ์ผ ์ ๋ฆฌ(์ํ ์ถ์ถ) ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์์
์ ์๋ํํ๋ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๊ณ ์ถ์ดํฉ๋๋ค. ์ฒดํฌํฌ์ธํธ๋
๊ธฐ๋ณธ ์ฝ์ด
Threat Prevention API๋ ๋ค์ ํ ์คํธ ๊ฐ์ ํตํด API์์ ํธ์ถ๋๋ ์ธ ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์์ ํจ๊ป ์๋ํฉ๋๋ค.
av โ ์๋ ค์ง ์ํ์ ์๊ทธ๋์ฒ ๋ถ์์ ๋ด๋นํ๋ ์ํฐ ๋ฐ์ด๋ฌ์ค ๊ตฌ์ฑ ์์์ ๋๋ค.
te - ์๋๋ฐ์ค์ ํ์ผ์ ํ์ธํ๊ณ ์๋ฎฌ๋ ์ด์ ํ ์ ์ฑ/์์ฑ ํ์ ์ ๋ด๋ฆฌ๋ ์ํ ์๋ฎฌ๋ ์ด์ ๊ตฌ์ฑ ์์์ ๋๋ค.
์ถ์ถ - ์ฌ์ฉ์/์์คํ ์ ์ ์ํ๊ฒ ์ ๋ฌํ๊ธฐ ์ํด ์ฌ๋ฌด์ค ๋ฌธ์๋ฅผ ์์ ํ ํ์(์ ์ฌ์ ์ผ๋ก ๋ชจ๋ ์ ์ฑ ์ฝํ ์ธ ๊ฐ ์ ๊ฑฐ๋จ)์ผ๋ก ์ ์ํ๊ฒ ๋ณํํ๋ ์ญํ ์ ํ๋ ์ํ ์ถ์ถ ๊ตฌ์ฑ ์์์ ๋๋ค.
API ๊ตฌ์กฐ ๋ฐ ์ฃผ์ ์ ํ์ฌํญ
Threat Prevention API๋ 4๊ฐ์ ์์ฒญ๋ง ์ฌ์ฉํฉ๋๋ค. โ ์
๋ก๋, ์ฟผ๋ฆฌ, ๋ค์ด๋ก๋ ๋ฐ ํ ๋น๋. XNUMX๊ฐ ์์ฒญ ๋ชจ๋์ ํค๋์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ API ํค๋ฅผ ์ ๋ฌํด์ผ ํฉ๋๋ค. ๊ถํ ๋ถ์ฌ. ์ผํ ๋ณด๋ฉด ๊ตฌ์กฐ๊ฐ ์๊ฐ๋ณด๋ค ๋จ์ํด ๋ณด์ด์ง๋ง
ํ์ฌ Threat Prevention API์ ์ ์ผํ ๋ฒ์ ์ธ 1.0์ด ์ถ์๋์์ต๋๋ค. API ํธ์ถ์ URL์๋ ๋ค์์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค. v1 ๋ฒ์ ์ ์ง์ ํด์ผ ํ๋ ๋ถ๋ถ์์ ๊ด๋ฆฌ API์ ๋ฌ๋ฆฌ URL์ API ๋ฒ์ ์ ํ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ฒญ์ด ์คํ๋์ง ์์ต๋๋ค.
๋ค๋ฅธ ๊ตฌ์ฑ ์์(te, ์ถ์ถ) ์์ด ํธ์ถ๋๋ ๊ฒฝ์ฐ ์ํฐ ๋ฐ์ด๋ฌ์ค ๊ตฌ์ฑ ์์๋ ํ์ฌ md5 ํด์ ํฉ๊ณ๊ฐ ์๋ ์ฟผ๋ฆฌ ์์ฒญ๋ง ์ง์ํฉ๋๋ค. ์ํ ์๋ฎฌ๋ ์ด์ ๋ฐ ์ํ ์ถ์ถ์ sha1 ๋ฐ sha256 ํด์ ํฉ๊ณ๋ ์ง์ํฉ๋๋ค.
์ฟผ๋ฆฌ์์ ์ค์๋ฅผ ํ์ง ์๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค! ์์ฒญ์ ์ค๋ฅ ์์ด ์คํ๋ ์ ์์ง๋ง ์์ ํ ์คํ๋ ์๋ ์์ต๋๋ค. ์กฐ๊ธ ๋ ์์ ๋ด๋ค๋ณด๋ฉฐ ์ฟผ๋ฆฌ์ ์ค๋ฅ/์คํ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ค ์ผ์ด ๋ฐ์ํ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ณด๊ณ ์(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: ํด๋ผ์ฐ๋ ๋ฐ ๋ก์ปฌ ์ฅ์น
์ํ ์๋ฎฌ๋ ์ด์ ๊ตฌ์ฑ ์์(๋ธ๋ ์ด๋)๊ฐ ํ์ฑํ๋ Check Point ์ฅ์น๋ก API ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค. ์์ฒญ ์ฃผ์๋ก๋ ์ฅ์น์ ip/url๊ณผ ํฌํธ 18194๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค(์: https://10.10.57.19:18194/tecloud/api/v1/ํ์ผ/์ฟผ๋ฆฌ). ๋ํ ์ฅ์น์ ๋ณด์ ์ ์ฑ ์ด ์ด ์ฐ๊ฒฐ์ ํ์ฉํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ก์ปฌ ์ฅ์น์์ API ํค๋ฅผ ํตํ ์ธ์ฆ ๋๋ค ์์ฒญ ํค๋์ ์ธ์ฆ ํค๊ฐ ์ ํ ์ ์ก๋์ง ์์ ์ ์์ต๋๋ค.
CheckPoint ํด๋ผ์ฐ๋์ ๋ํ API ์์ฒญ์ ๋ค์์ผ๋ก ์ ์ก๋์ด์ผ ํฉ๋๋ค. te.checkpoint.com (์: https://te.checkpoint.com/tecloud/api/v1/ํ์ผ/์ฟผ๋ฆฌ). API ํค๋ Check Point ํํธ๋ ๋๋ ํ์ฌ ํ์ง ์ฌ๋ฌด์์ ๋ฌธ์ํ์ฌ 60์ผ ๋์ ํ๊ฐํ ๋ผ์ด์ ์ค๋ก ์ป์ ์ ์์ต๋๋ค.
๋ก์ปฌ ์ฅ์น์์๋ ์ํ ์ถ์ถ์ด ์์ง ํ์ค์ผ๋ก ์ง์๋์ง ์์ต๋๋ค.
๋ก์ปฌ ์ฅ์น๋ ํ ๋น๋ ์์ฒญ์ ์ง์ํ์ง ์์ต๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ๋ก์ปฌ ์ฅ์น์ ๋ํ ์์ฒญ๊ณผ ํด๋ผ์ฐ๋์ ๋ํ ์์ฒญ ๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ ๋ก๋ API ํธ์ถ
์ฌ์ฉ๋ฐฉ๋ฒ - POST
์ ํ์ฃผ์ - https:///tecloud/api/v1/ํ์ผ/์ ๋ก๋
์์ฒญ์ ์๋ฎฌ๋ ์ด์ /์ ๋ฆฌ์ฉ ํ์ผ๊ณผ ํ ์คํธ๊ฐ ํฌํจ๋ ์์ฒญ ๋ณธ๋ฌธ์ ๋ ๋ถ๋ถ(์์ ๋ฐ์ดํฐ)์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํ ์คํธ ์์ฒญ์ ๋น์๋ ์ ์์ง๋ง ๊ตฌ์ฑ์ ํฌํจํ ์๋ ์์ต๋๋ค. ์์ฒญ์ด ์ฑ๊ณตํ๋ ค๋ฉด ์์ฒญ์ ์ต์ํ ๋ค์ ํ ์คํธ๋ฅผ ๋ณด๋ด์ผ ํฉ๋๋ค.
์ ๋ก๋ ์์ฒญ์ ํ์ํ ์ต์๊ฐ
HTTP ํฌ์คํธ
https:///tecloud/api/v1/ํ์ผ/์ ๋ก๋
ํค๋ :
๊ถํ ๋ถ์ฌ:
์ ์ฒด
{
"์๊ตฌ": {
}
}
์ ์ ๋ถ๋ชจ๋ก์์ ๊ทํ์ ์ ํฉ์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ฏธ๊ตญ ์ด๋ฏผ๊ตญ์
์ ์ ๋ถ๋ชจ๋ก์์ ๊ทํ์ ์ ํฉ์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ฏธ๊ตญ ์ด๋ฏผ๊ตญ์
์ด ๊ฒฝ์ฐ ํ์ผ์ ๊ธฐ๋ณธ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋ฉ๋๋ค: ๊ตฌ์ฑ์์ - te, OS ์ด๋ฏธ์ง - Win XP ๋ฐ Win 7, ๋ณด๊ณ ์๋ฅผ ์์ฑํ์ง ์๊ณ .
ํ ์คํธ ์์ฒญ์ ๊ธฐ๋ณธ ํ๋์ ๋ํ ์ค๋ช :
ํ์ผ ์ด๋ฆ ะธ ํ์ผ ์ ํ ํ์ผ์ ์ ๋ก๋ํ ๋ ํน๋ณํ ์ ์ฉํ ์ ๋ณด๋ ์๋๊ธฐ ๋๋ฌธ์ ๊ณต๋ฐฑ์ผ๋ก ๋จ๊ฒจ๋๊ฑฐ๋ ์ ํ ๋ณด๋ด์ง ์์ ์ ์์ต๋๋ค. API ์๋ต์์ ์ด๋ฌํ ํ๋๋ ๋ค์ด๋ก๋ํ ํ์ผ์ ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ์๋์ผ๋ก ์ฑ์์ง๋ฉฐ ์บ์์ ์ ๋ณด๋ ์ฌ์ ํ md5/sha1/sha256 ํด์ ์์ ์ฌ์ฉํ์ฌ ๊ฒ์ํด์ผ ํฉ๋๋ค.
file_name ๋ฐ file_type์ด ๋น์ด ์๋ ์์ฒญ ์์
{
"request": {
"file_name": "",
"file_type": "",
}
}
ํ๋ชจ โ ์๋๋ฐ์ค์์ ์ฒ๋ฆฌํ ๋ ํ์ํ ๊ธฐ๋ฅ์ ๋ํ๋ด๋ ๋ชฉ๋ก - av(์ํฐ๋ฐ์ด๋ฌ์ค), te(์ํ ์๋ฎฌ๋ ์ด์ ), ์ถ์ถ(์ํ ์ถ์ถ). ์ด ๋งค๊ฐ ๋ณ์๊ฐ ์ ํ ์ ๋ฌ๋์ง ์์ผ๋ฉด ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์์ธ te(Threat Emulation)๋ง ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๋ฅผ ์ฒดํฌ์ธํ๋ ค๋ฉด API ์์ฒญ์์ ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
av, te ๋ฐ ์ถ์ถ์ ์ฒดํฌ์ธํ๋ ์์ฒญ์ ์
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
te ์น์ ์ ํค
ํ์ โ ๊ฒ์ฌ๋ฅผ ์ํํ ์ด์ ์ฒด์ ์ ID ๋ฐ ๊ฐ์ ๋ฒํธ๊ฐ ํฌํจ๋ ์ฌ์ ์ด ํฌํจ๋ ๋ชฉ๋ก์ ๋๋ค. ID์ ๊ฐ์ ๋ฒํธ๋ ๋ชจ๋ ๋ก์ปฌ ์ฅ์น์ ํด๋ผ์ฐ๋์์ ๋์ผํฉ๋๋ค.
์ด์ ์ฒด์ ๋ฐ ๊ฐ์ ๋ชฉ๋ก
์ฌ์ฉ ๊ฐ๋ฅํ OS ์ด๋ฏธ์ง ID
๊ฐ์
์ด๋ฏธ์ง OS ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
๋ง์ดํฌ๋ก ์ํํธ ์๋์ฐ: XP - 32๋นํธ SP3
Office: 2003, 2007
Adobe Acrobat Reader๊ฐ: 9.0
ํ๋์ ํ๋ ์ด์ด 9r115 ๋ฐ ActiveX 10.0
์๋ฐ ๋ฐํ์: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
๋ง์ดํฌ๋ก ์ํํธ ์๋์ฐ: 7 - 32๋นํธ
Office: 2003, 2007
Adobe Acrobat Reader๊ฐ: 9.0
ํ๋์ ํ๋ ์ด์ด: 10.2r152(ํ๋ฌ๊ทธ์ธ& ActiveX)
์๋ฐ ๋ฐํ์: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
๋ง์ดํฌ๋ก ์ํํธ ์๋์ฐ: 7 - 32๋นํธ
Office: 2010
Adobe Acrobat Reader๊ฐ: 9.4
ํ๋์ ํ๋ ์ด์ด: 11.0.1.152 (ํ๋ฌ๊ทธ์ธ & ActiveX)
์๋ฐ ๋ฐํ์: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
๋ง์ดํฌ๋ก ์ํํธ ์๋์ฐ: 7 - 32๋นํธ
Office: 2013
Adobe Acrobat Reader๊ฐ: 11.0
ํ๋์ ํ๋ ์ด์ด: 15 (ํ๋ฌ๊ทธ์ธ & ActiveX)
์๋ฐ ๋ฐํ์: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
๋ง์ดํฌ๋ก ์ํํธ ์๋์ฐ: 7 - 64๋นํธ
Office: 2013๋
(32๋นํธ)
Adobe Acrobat Reader๊ฐ: 11.0.01
ํ๋์ ํ๋ ์ด์ด: 13 (ํ๋ฌ๊ทธ์ธ & ActiveX)
์๋ฐ ๋ฐํ์: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
๋ง์ดํฌ๋ก ์ํํธ ์๋์ฐ: 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
๋ง์ดํฌ๋ก ์ํํธ ์๋์ฐ: 10
Office: Professional Plus 2016 en-us
Adobe Acrobat Reader๊ฐ: DC 2015 MUI
ํ๋์ ํ๋ ์ด์ด: 20 (ํ๋ฌ๊ทธ์ธ & ActiveX)
์๋ฐ ๋ฐํ์: 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 ํค๋ ๊ฐ OS์ ์ฌ์ ์ ์์ต๋๋ค.
{
"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๋ก ๋ณํ, ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋จ) ๋๋ clean(ํ์ฑ ์ฝํ ์ธ ์ ๋ฆฌ).
์ถ์ถ_๋ถํ_์ฝ๋ - ํ์ฑ ์ฝํ ์ธ ์ ๊ฑฐ ์ฝ๋ ๋ชฉ๋ก, ์ ๋ฆฌ ๋ฐฉ๋ฒ์๋ง ์ ์ฉ ๊ฐ๋ฅ
ํ์ผ์์ ์ฝํ ์ธ ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํ ์ฝ๋
์ํธ
์ํ ์ค๋ช
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์ธ extract_file_download_id๋ฅผ ์ฌ์ฉํ์ฌ ์น๋ฃ๋ ํ์ผ์ ์ ํํ ์ ์์ต๋๋ค. ๋ค์ ํ ๋ฒ ์กฐ๊ธ ์์ ๋ด๋ค๋ณด๋ฉฐ, ์ ๋ฆฌ๋ ๋ฌธ์๋ฅผ ๋ค์ด๋ก๋ํ๊ธฐ ์ํ ID๋ฅผ ๊ฒ์ํ๋ ์์ฒญ ๋ฐ ์ฟผ๋ฆฌ ์๋ต์ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
extract_file_download_id ํค๋ฅผ ๊ฒ์ํ๋ ์ฟผ๋ฆฌ ์์ฒญ
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
์ฟผ๋ฆฌ์ ๋ํ ์๋ต(extract_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."
}
}
}
]
}
๋ถ์ผ์ ์ฃผ๋ชฉํ๋ผ ์ํธ ะธ ์ํ. ์ด๋ฌํ ํ๋๋ ์ํ ์ฌ์ ์ ์ธ ๋ฒ ๋ํ๋ฉ๋๋ค. ๋จผ์ ์ ์ญ ํค "code": 1006 ๋ฐ "label": "PARTIALLY_FOUND"๋ฅผ ํ์ธํฉ๋๋ค. ๋ค์์ผ๋ก, ์ด๋ฌํ ํค๋ ์ฐ๋ฆฌ๊ฐ ์์ฒญํ ๊ฐ ๊ฐ๋ณ ๊ตฌ์ฑ์์(te ๋ฐ ์ถ์ถ)์ ๋ํด ๋ฐ๊ฒฌ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๊ฐ ๋ฐ๊ฒฌ๋ ๊ฒ์ด ๋ถ๋ช ํ๋ค๋ฉด ์ถ์ถ์ ์ํ ์ ๋ณด๊ฐ ์์ต๋๋ค.
์ ์์ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
์ถ์ถ ๊ตฌ์ฑ ์์ ์์ด ์ฟผ๋ฆฌ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒฝ์ฐ
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
๊ทธ๋ฌ๋ฉด ๋ต๋ณ์ ์์ ํ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค(โ์ฝ๋โ: 1001, โ๋ ์ด๋ธโ: โFOUNDโ).
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "doc",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious",
"pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
"xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 1,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
์บ์์ ์ ๋ณด๊ฐ ์ ํ ์์ผ๋ฉด ์๋ต์ "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 (๋ฌธ์์ ๋ฐ๋ฅด๋ฉด), ๋ฐ๋ก ๋ํ ์๋ํฉ๋๋ค(๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ณด์ผ ์ ์์).
์ ํ์ฃผ์ - https:///tecloud/api/v1/file/download?id=
ํค๋์๋ API ํค๊ฐ ์ ๋ฌ๋์ด์ผ ํ๋ฉฐ ์์ฒญ ๋ณธ๋ฌธ์ ๋น์ด ์์ผ๋ฉฐ ๋ค์ด๋ก๋ ID๋ URL ์ฃผ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
์ฟผ๋ฆฌ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ์๋ฎฌ๋ ์ด์ ์ด ์๋ฃ๋๊ณ ํ์ผ ๋ค์ด๋ก๋ ์ ๋ณด๊ณ ์๋ฅผ ์์ฒญํ ๊ฒฝ์ฐ ๋ณด๊ณ ์ ๋ค์ด๋ก๋์ฉ ID๊ฐ ํ์๋ฉ๋๋ค. ์ ๋ฆฌ๋ ์ฌ๋ณธ์ ์์ฒญํ๋ ๊ฒฝ์ฐ ์ ๋ฆฌ๋ ๋ฌธ์๋ฅผ ๋ค์ด๋ก๋ํ๋ ค๋ฉด ID๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค.
์ ์ฒด์ ์ผ๋ก ๋ก๋ํ id ๊ฐ์ด ํฌํจ๋ ์ฟผ๋ฆฌ์ ๋ํ ์๋ต์ ํค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
์์ฝ_๋ณด๊ณ ์
-
์ ์ฒด ๋ณด๊ณ ์
-
pdf_๋ณด๊ณ ์
-
xml_report
-
extract_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๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ ์ฉํ ์ ์์ต๋๋ค. ์ํ ์๋ฎฌ๋ ์ด์
์ ๊ฒฝ์ฐ ์ผ๋ฐ ์ํ ์๋ฐฉ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ผ๋ ค๋ฉด SG์ฉ TP API ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ๋ ๋ฐ ํ์ํ API ํค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ด์ ๊ธฐ๋ฅ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. te ะธ ์ถ์ถ ์ด API์์.
๋ถํ์ฉ te ์ฌ์ ์ ๊ณต te_options ์
๋ก๋/์ฟผ๋ฆฌ ์์ฒญ์์ ์ด ์์ฒญ์ ํค๋ ๋ค์์ te ํค์ ์์ ํ ์ผ์นํฉ๋๋ค.
๋ณด๊ณ ์๊ฐ ํฌํจ๋ 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 ์ํธํ๋ ๋ฌธ์์ด๋ก ์ ๋ฆฌ๋ ๋ณต์ฌ๋ณธ์ ์ป์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฌธ์)
ํ์ผ ์ง์ฐ๊ธฐ ์์ฒญ์ ์
{
"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์ ๋ณด์ ๊ฒ์ดํธ์จ์ด์ฉ ์ํ ์๋ฐฉ API ๋ชจ๋์ ๋ํด Postman์์ ์ปฌ๋ ์ ์ ๋ง๋ค์์ต๋๋ค. ์๋ฒ ip/url API ๋ฐ ํค๊ฐ ์๋์ผ๋ก ์์ฒญ์ผ๋ก ๋์ฒด๋๊ณ sha256 ํด์ ์์ด ํ์ผ ๋ค์ด๋ก๋ ํ ๊ธฐ์ต๋๋๋ก ์ปฌ๋ ์ ๋ด๋ถ์ ์ธ ๊ฐ์ง ๋ณ์๊ฐ ์์ฑ๋์์ต๋๋ค(์ปฌ๋ ์ ์ค์ ์ผ๋ก ์ด๋ํ์ฌ ์ฐพ์ ์ ์์ต๋๋ค). ํธ์ง -> ๋ณ์): te_api (ํ์), api_key (๋ก์ปฌ ์ฅ์น์์ TP API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ํ์ ์ ๋ ฅ), sha256(๋น์ ๋์ธ์. SG์ฉ TP API์์๋ ์ฌ์ฉ๋์ง ์์).
์ฌ์ฉ ์
์ปค๋ฎค๋ํฐ์์
์ถ์ฒ : habr.com