Classic/VPC 환경에서 이용 가능합니다.
File Filter REST API를 사용하여 File Filter 코드를 작성하는 방법을 설명합니다.
File Filter 개발에 앞서 File Safer 이용 신청, API Gateway 이용 신청 및 API Key 생성을 해야 합니다. 자세한 내용은 File Safer 시작을 참고해 주십시오.
File Filter 구현 시나리오
File Filter를 적용하는 시나리오는 다음과 같습니다.
1. 파일 검사 요청(inputFile)
1-1. 악성 코드로 의심되는 파일을 구분
1-2. 인증값 생성
1-3. 요청 Body 생성
1-4. 요청 파라미터 추가
1-5. API 요청
2. 검사 결과 확인(getInputFileLog)
2-1. 검사 결과를 확인할 Hash 값 구분
2-2. 인증값 생성
2-3. 요청 파라미터 추가
2-4. API 요청
2-5. 응답 값 확인 및 차단 여부 판단
File Filter에서 악성 코드로 확인되는 경우 Hash Filter의 Hash 값을 업데이트하기 때문에 검사 결과를 Hash Filter에서 조회하여도 동일한 결과를 얻을 수 있습니다.
File Filter 코드 작성
File Filter 구현 시나리오에 따라 코드를 작성해 주십시오.
1. 파일 검사 요청(inputFile)
File Filter API 중 inputFile을 사용하여 파일 검사를 요청합니다.
inputFile API 사양은 inputFile (File Filter)를 참고해 주십시오.
1-1. 악성 코드로 의심되는 파일을 구분
Hash Filter로 확인이 안되는 파일이거나 악성 여부 확인이 필요한 파일을 구분해 주십시오. 파일 제약 사항은 다음과 같습니다.
- 파일 개수 제한: inputFile API 호출 시 요청당 파일 한 개만 처리. 파일이 2개 이상 전송되는 경우 파일 한 개만 임의로 선택되어 처리
- 파일 크기 제한: API 호출당 파일 용량 10 MB로 제한
1-2. 인증값 생성
네이버 클라우드 플랫폼 API 사용 인증에 필요한 IAM 인증값을 생성해 주십시오. 인증에 필요한 헤더는 다음과 같습니다.
x-ncp-iam-access-key
: 네이버 클라우드 플랫폼 포털의 마이페이지 > API 인증키 관리 메뉴에서 Access Key 발급x-ncp-apigw-signature-v2
: Access Key와 매핑되는 Secret Key를 HmacSHA256 암호화하여 signature 값 생성 (개행 문자는 \n 사용)x-ncp-apigw-api-key
: API Gateway를 통해 API Key 발급x-ncp-apigw-timestamp
: 인증값은 아니지만 요청 헤더에 포함. API 명세 참고
signature 값을 생성하는 방법과 예제 코드는 네이버 클라우드 플랫폼 API 가이드 > API 개요 > 기본 API > Ncloud API > 2.헤더 생성를 참조하시기 바랍니다.
1-3. 요청 Body 생성
Multipart로 Body에 파일을 포함한 요청을 생성해 주십시오.
- Key: file
- Value: binary
1-4. 요청 파라미터 추가
전송하려는 파일이 패스워드가 설정된 압축 파일인 경우 아래의 파라미터를 요청에 추가해 주십시오.
- Key: archivePassword
- Value: 압축파일 패스워드 String
다음은 파라미터가 추가된 POST 요청 Body의 포맷입니다. boundary 값은 엔티티 구분자로 사용하며 boundary 설정 값 앞에는 '--'을 넣어야 합니다. 각 엔티티 끝에는 crlf('\r\n')를 사용해야 합니다.
1-5. API 요청
File Filter inputFile URI로 요청을 전송해 주십시오. 다음은 inputFile 요청 예제 코드입니다.
2. 검사 결과 확인(getInputFileLog)
File Filter API 중 getInputFileLog를 사용하여 악성 코드 검사 결과를 확인합니다.
getInputFileLog API 사양은 getInputFileLog (File Filter)를 참고해 주십시오.
2-1. 검사 결과를 확인할 Hash 값 구분
파일 검사 요청 시나리오를 통해 File Filter에 검사를 요청했던 파일의 Hash 값을 구분해 주십시오.
2-2. 인증값 생성
네이버 클라우드 플랫폼 API 사용 인증에 필요한 IAM 인증값을 생성해 주십시오. 인증에 필요한 헤더는 다음과 같습니다.
x-ncp-iam-access-key
: 네이버 클라우드 플랫폼 포털의 마이페이지 > API 인증키 관리 메뉴에서 Access Key 발급x-ncp-apigw-signature-v2
: Access Key와 매핑되는 Secret Key를 HmacSHA256 암호화하여 signature 값 생성 (개행 문자는 \n 사용)x-ncp-apigw-api-key
: API Gateway를 통해 API Key 발급x-ncp-apigw-timestamp
: 인증값은 아니지만 요청 헤더에 포함. API 명세 참고
signature 값을 생성하는 방법과 예제 코드는 네이버 클라우드 플랫폼 API 가이드 > API 개요 > 기본 API > Ncloud API > 2.헤더 생성를 참조하시기 바랍니다.
2-3. 요청 파라미터 추가
getInputFileLog API 요청 파라미터 값을 추가해 주십시오. 요청 파라미터는 다음과 같습니다.
- hashCode: Hash 값을 스트링으로 추가
- hashType: Hash 값의 알고리즘을 표기(MD5 또는 SHA-1)
다음은 생성된 파라미터 예시입니다.
2-4. API 요청
File Filter getInputFileLog URI로 요청을 전송해 주십시오. 다음은 getInputFileLog 요청 예제 코드입니다.
2-5. 응답 값 확인 및 차단 여부 판단
getInputFileLog 응답에 따라서 차단 또는 허용 여부를 판단해 주십시오.
inputFileLogList
의 개수가 0이면 요청한 결과가 없는 경우이고, inputFileLogList
가 2개 이상일 경우는 2번 이상 분석된 경우입니다. inputFileLogList
의 analysisStatusCode
필드 값을 읽어서 검사 진행 상황을 확인해 주십시오.
analysisStatusCode 코드 | 값 | 설명 |
---|---|---|
IPRG | Analyzing | 분석 중 |
CMPL | Analysis completed | 분석 완료 |
RDY | Ready | 분석 대기 |
ERR | Analysis error | 오류 |
EXCN | Exclude analysis | 예외 |
inputFileLogList
의 analysisResultCode
필드 값을 읽어서 검사 결과를 확인해 주십시오.
analysisResultCode | 값 | 설명 |
---|---|---|
M | Malware detected | 악성 코드 탐지 |
N | Malware not detected | 정상 파일 |
E | Detection error | 오류 |
악성 코드가 검출된 경우에는 파일을 시스템에서 삭제하거나 안전하게 격리해 주십시오.
다음은 검사 분석 완료 상태이면서 악성 코드가 검출된 경우의 응답 예시입니다.