メインコンテンツまでスキップ

マルウェア検査リクエスト

SHIELDEX マルウェア検査リクエストに使用します。

非同期で動作し、リクエストに即座に応答します。検査結果は別の状態確認APIを通じて確認できます。

Notes

  • Malware Engine: TurboVaccineワクチンエンジンを使用してリアルタイム検査を実施します。
  • Tenant Support: マルチテナント環境をサポートし、テナントごとにデータが分離して保存されます。
  • Backup: 検査リクエストが成功裏に受け入れられると、元のファイルを暗号化したバックアップが自動的に生成されます。
  • Status Check: 検査結果はGET /inspection/malware/{jobId}APIを通じて照会できます。
  • Egnine Process: サーバーのCPUコア数だけ並列処理が可能です。
  • Queue Size: リクエストキューはコア数 * 12 です。超過した場合は例外応答を返します。

Method

POST

/inspection/malware
/inspection/malware/{jobId}

Request Path Parameter

KEYOBJECTDESC
jobIdString作業 ID (任意、未入力の場合は時間ベースの UUID が自動生成されます。最大 36 文字)

Request Parts (multipart/form-data)

KEYOBJECTDESC
dataJSONマルウェア検査リクエストデータ (必須)
fileFile検査対象ファイル (必須)

Request Data JSON Structure

{
"userInfo": {
"userId": "string",
"name": "string",
"department": "string",
"dutyname": "string",
"sysCode": "string",
"businessCode": "string"
},
"fileInfo": {
"fileName": "string"
}
}

Request Data Fields

KEYOBJECTREQUIREDDESC
userInfo.userIdStringYesユーザーID (1-40文字)
userInfo.nameStringNoユーザー名 (最大 40文字)
userInfo.departmentStringNoユーザー部門 (最大 256文字)
userInfo.dutynameStringNoユーザー職名 (最大 40文字)
userInfo.sysCodeStringYesチャンネルコード、APIアクセス制御に使用されます。(最大40文字)
userInfo.businessCodeStringYes業務コード、APIアクセス制御に使用されます。(最大40文字)
fileInfo.fileNameStringYesファイル名

Response Body (json)

KEYOBJECTDESC
codeint応答コード(下の表を参照)
msgString結果メッセージ
jobIdString作業 ID (検査結果照会時に使用)
logReasonint例外やエラー時の結果コード値

Response Code

CODEDESCDESC_DETAIL
0検査リクエスト成功検査リクエストが正常に受理されました。検査結果は状態照会APIで確認してください。
1検査リクエスト例外重複作業ID、ファイルサイズ超過などにより、検査が実行されませんでした。
2検査リクエストエラーファイルの保存に失敗しました。サービスエラーなどにより、リクエストが失敗しました。
5アクセスブロックAPIアクセス制御によりリクエストがブロックされました。

Log Reason List

例外やエラー時に返される結果です。

例外

code: 1

CODETITLEMESSAGE
990008[例外] ワクチン検査ファイルサイズ超過ファイルサイズがウイルススキャンの制限サイズを超えているため、スキャンが実行されませんでした。
990010[例外] 重複作業ID検査要求既存の作業IDでは、検査リクエストを実行しませんでした。別の作業IDを使用してください。
990011[例外] ワクチン検査未使用ワクチン検査機能が無効になっています。
990015[例外] ワクチン検査待機列の超過サーバーの処理キューが満杯で、リクエストを受け付けることができませんでした。しばらくしてから再試行してください。

エラー

code: 2

CODETITLEMESSAGE
990014[エラー] ワクチン検査リクエストエラーワクチンサービスでリクエスト前にエラーが発生し、検査できませんでした。

Sample

REQUEST

curl -X POST "/inspection/malware" \
-H "Content-Type: multipart/form-data" \
-F 'data={
"userInfo": {
"userId": "user001",
"name": "홍길동",
"department": "보안팀",
"dutyname": "보안관리자",
"sysCode": "SYS001",
"businessCode": "BIZ001"
},
"fileInfo": {
"fileName": "suspicious_file.exe"
}
};type=application/json' \
-F "file=@/path/to/suspicious_file.exe"

RESPONSE - 検査リクエスト成功 (200 OK)

{
"code": 0,
"msg": "success",
"jobId": "8bc422e1-af1b-11f0-bf7b-7117406ac6f5"
}

RESPONSE - [例外] 重複作業ID検査リクエスト (200 OK)

{
"code": 1,
"msg": "기존에 사용된 작업 ID로, 검사 요청을 수행하지 않았습니다. 다른 작업 ID를 사용해 주세요",
"jobId": "8bc422e1-af1b-11f0-bf7b-7117406ac6f5",
"logReason": 990010
}

RESPONSE - [例外] ワクチン検査ファイルサイズ超過 (200 OK)

{
"code": 1,
"msg": "파일 크기가 백신 검사 제한 크기를 초과하여 검사가 수행되지 않았습니다.",
"jobId": "7a3c5d9e-af1c-11f0-bf7b-7117406ac6f5",
"logReason": 990008
}

RESPONSE - [例外] ワクチン検査未使用 (200 OK)

{
"code": 1,
"msg": "백신 검사 기능이 비활성화되어 있습니다.",
"jobId": "9f2e8b4a-af1c-11f0-bf7b-7117406ac6f5",
"logReason": 990011
}

RESPONSE - [例外] ワクチン検査キューの超過 (200 OK)

{
"code": 1,
"msg": "서버의 처리 대기열이 가득차 요청을 수락하지 못했습니다. 잠시 후 다시 시도해 주세요",
"jobId": "c4d7f3e2-af1c-11f0-bf7b-7117406ac6f5",
"logReason": 990015
}

RESPONSE - [エラー] ワクチン検査リクエストエラー (200 OK)

{
"code": 2,
"msg": "백신 서비스로 요청 전 오류가 발생하여 검사하지 못했습니다.",
"jobId": "395ebb96-af1c-11f0-bf7b-7117406ac6f5",
"logReason": 990014
}

RESPONSE - Access Denied (200 OK)

{
"code": 5,
"msg": "Sanitization Request Blocked by API Access control.",
"jobId": "52617927-af1c-11f0-bf7b-7117406ac6f5"
}

Exception Messages (400 Bad Request)

{
"code": 1,
"msg": "필수 요청 파라미터가 누락되었습니다.",
"details": {
"missingPart": "file",
"description": "'file' 파라미터를 포함하여 요청해 주세요."
}
}

{
"code": 1,
"msg": "잘못된 JSON 형식입니다.",
"details": {
"missingPart": "line 10, column 2",
"description": "line 10, column 2에서 JSON 문법 오류가 발생했습니다. 콤마, 중괄호, 대괄호 등을 확인해주세요."
}
}
{
"code": 1,
"msg": "요청 값이 올바르지 않습니다.",
"details": {
"missingPart_1": "userInfo.businessCode",
"description_1": "공백일 수 없습니다",
"missingPart_2": "userInfo.sysCode",
"description_2": "공백일 수 없습니다",
"missingPart_3": "userInfo.userId",
"description_3": "공백일 수 없습니다"
}
}

Processing Flow

  • このフローは参考用として顧客に提供されません。
  • cdrbroker.properties設定ファイルの次の値を使用(開発記録用)
shieldex.vaccine.scan.useVaccine=true  // 기본값: false | 백신 사용 여부, cdrApiService의 백신도 해당 설정 사용
shieldex.vaccine.scan.time-out=60 // 기본값: 60 | 백신 검사의 타임아웃,
shieldex.vaccine.scan.maxSizeMB=30 // 기본값: 30 | 백신 검사 최대 크기, cdrApiService의 백신도 해당 설정 사용
shieldex.vaccine.scan.queue-size-mulitpiter=12 // 기본값: 12 | 백신 검사 대기열 크기 배율, CPU * 설정값(4 * 12 = 48)