위험을 줄이기 위한 실제 파일 형식 식별
파일을 전자적으로 처리할 때는 파일 유형을 정확하게 식별하는 것이 중요합니다. 이렇게 하면 파일이 잘못된 확장자나 MIME 유형으로 허위 표시될 수 있는 파일 유형 위장 위협을 제거할 수 있습니다.
당사의 API는 실제 파일 유형을 정확하게 식별하므로, 시스템이 보안 침해, 데이터 손상 또는 의도하지 않은 파일 처리 방지를 위해 적절한 조치를 취할 수 있습니다.
올바른 파일 유형이 식별되면 다음 시나리오를 기반으로 애플리케이션 내에서 정보에 입각한 결정을 내릴 수 있습니다:
지원되는 파일 유형
감지된 파일 유형이 지원되는 파일 유형 목록에 포함되어 있으면, 시스템 내에서 해당 파일에 대해 일반적인 CDR 처리를 안심하고 진행할 수 있습니다.
지원되지 않는 파일 유형
감지된 파일 유형이 지원되지 않는 파일 유형 목록에 해당하는 경우, 시스템 내에서 해당 파일이 더 이상 진행되지 않도록 즉시 조치를 취하는 것이 중요합니다.
이러한 경우에는 파일의 추가 처리를 중단하는 "fail fast" 메커니즘을 구현하여, 잠재적으로 유해하거나 호환되지 않는 파일을 시스템이 처리하지 않도록 보호하는 것이 좋습니다.
파일 유형 위장
감지된 파일 형식이 파일의 선언된 확장자 또는 MIME type과 다를 경우, 이는 악의적인 행위자가 시스템을 오도하려는 파일 위장을 나타낼 수 있습니다.
이러한 경우에는 시스템 내에서 해당 파일을 처리하기 위해 보다 회피적인 조치를 고려하십시오. 이러한 조치에는 파일 격리, 추가 보안 검사 실행 또는 추가 조사를 위해 관리자에게 알림 전송이 포함될 수 있습니다.
Glasswall Halo 이벤트
Glasswall Halo에 요청하는 방법:
- 파일 형식에 따라 적절한 엔드포인트를 선택하여 Glasswall Halo API에 대한 요청을 시작합니다:
- Binary 파일의 경우
api/v3/cdr-file엔드포인트를 사용합니다. - Base64 인코딩 파일의 경우
api/v3/cdr엔드포인트를 사용합니다.
-
Glasswall Halo는 요청을 처리하고 원본 파일에 대해 파일 형식 감지를 수행합니다.
-
추가 작업 없이 파일 형식 감지만 수행되도록 하려면 URL에
response-content파라미터를 포함하고 값을noRebuiltFile,noAnalysisReport로 설정하십시오. 그러면 파일 형식 감지 전용 모드가 활성화됩니다. -
Glasswall Halo는 실제 파일 형식을 확인하기 위해 Glasswall Embedded Engine을 사용하여 파일을 분석합니다.
-
감지가 성공하면 Glasswall Halo는 응답 헤더에 헤더 키
x-filetype와 함께 식별된 실제 파일 형식을 포함합니다. -
이제 획득한 실제 파일 형식 정보를 애플리케이션 또는 시스템 내에서 추가 처리, 보안 검사 또는 기타 필요한 작업에 사용할 수 있습니다.
API 인증
Glasswall Halo는 Basic 및 Bearer의 두 가지 인증 유형을 지원합니다. 요청을 보내기 전에 구성에 따라 적절한 방식으로 인증해야 합니다.
Basic
시스템이 Basic 인증으로 구성된 경우 System Administrator로부터 organisation ID와 token을 받아야 합니다. 이 값들을 <OrganisationId>:<Token> 형식으로 결합한 다음 Base64로 인코딩하십시오. 생성된 인코딩 값은 다음과 같이 요청 헤더에 포함되어야 합니다:
Authorization: Basic ZGVtbzpwQDU1dzByZA==
Bearer
bearer 인증의 경우 identity provider에서 발급받은 bearer token이 필요합니다. token을 획득한 후 다음과 같이 요청 헤더에 포함하십시오:
Authorization: Bearer ZGVtbzpwQDU1dzByZA==
참고: 시스템 구성에 따라 적절한 인증 방법을 사용해야 합니다. 올바른 인증을 사용하면 Glasswall Halo API에 성공적으로 액세스할 수 있으며 권한 부여 문제를 방지할 수 있습니다.
Glasswall Halo 인증에 대해 자세히 알아보기
요청 구성
Glasswall Halo를 사용하여 바이너리 파일 또는 base64 인코딩 파일을 처리하려면 아래 지침을 따르세요:
바이너리 파일 처리
요청 본문에 바이너리 문자열을 포함하여 다음 엔드포인트로 제출하세요:
POST {baseUrl}/api/v3/cdr-file?response-content=noRebuiltFile,noAnalysisReport
Base64 인코딩 파일 처리
요청 본문에 Base64 인코딩 문자열을 담아 다음 엔드포인트로 제출합니다:
POST {baseUrl}/api/v3/cdr?response-content=noRebuiltFile,noAnalysisReport
요청 본문 형식
요청 본문은 JSON 형식이어야 하며, 파일의 Base64 인코딩 문자열을 포함하는 Base64 필드와 원본 파일 이름(적절한 파일 확장자 포함)을 지정하는 filename 필드를 포함해야 합니다.
{
"base64": "string",
"fileName": "filename.pdf",
}
참고
- {baseurl}을 Glasswall Halo API의 실제 기본 URL로 바꾸십시오.
- 각 요청에는 올바른
auth header가 제공되어야 합니다. - URL에서
response-content를noRebuiltFile,noAnalysisReport로 설정하면 파일을 재구성하거나 분석 보고서를 생성하지 않고 파일 형식 탐지만 수행되도록 보장합니다. - 바이너리 파일 처리에는 multipart form post를 사용하고, Base64 인코딩 파일 처리에는 적절한 파일 이름과 함께 JSON 요청 본문에 파일 내용을 제공하십시오.
응답 처리
요청이 성공하면 201 상태 코드를 받게 됩니다. 그러나 API를 파일 형식 감지 모드로 실행하는 경우 응답에는 파일 출력이 없습니다. 실제 파일 형식을 식별하려면 응답 헤더를 확인하고 x-filetype 키를 찾으세요. 이 헤더의 값이 실제 파일 형식을 나타냅니다.
-
x-filetype값이 unknown이면 Glasswall이 해당 파일의 실제 파일 형식을 식별할 수 없었다는 의미입니다. -
x-filetype값이 'txt'이면 파일에 순수한 UTF-8 또는 ASCII 텍스트가 포함되어 있음을 나타냅니다.
Status: 201 Created
Headers:
access-control-allow-origin: *
access-control-expose-headers: *
content-length: 0
content-type: text/plain
date: Thu,20 Jul 2023 10:55:46 GMT
strict-transport-security: max-age=31536000; includeSubDomains
x-applied-policy: service-dynamic
x-file-size: 301189
x-filetype: pdf
x-processing-id: 779b6828-1e1b-4148-9dc0-a3f1e38cb119
x-processing-status: rebuilt
위 예에서 x-filetype 값은 PDF이며, 이는 실제 파일 형식이 PDF 문서임을 나타냅니다.
API가 반환할 수 있는 오류 코드에 대한 자세한 내용은 API Documentation을 참조하세요. 여기에서 다양한 오류 시나리오를 처리하기 위한 포괄적인 정보도 확인할 수 있습니다.
예상 값
출력 파일 형식은 개별 확장자가 아니라 파일 형식 그룹과 연결됩니다. Glasswall의 Embedded Engine에서는 여러 확장자가 단일 값으로 식별됩니다. 파일 형식 헤더의 출력 값을 더 잘 이해하려면 아래 표를 참조하세요:
| 파일 형식 값 | 확장자 |
|---|---|
| Doc | .Doc, .dot |
| Xls | .Xls, .xlt |
| Ppt | .Ppt, .pps, .pot |
| Docx | .Docx, .docm, .dotx, .dotm |
| Xlsx | .Xlsx, .xltx, .xltm, .xlsm |
| Pptx | .Pptx, .pptm, .ppsx, .ppam, .potm, .ppsm, .potx |
| Tiff | .Tif, .tiff, .geotiff |
| Svg | .Svg |
| Emf | .Emf |
| Wmf | .Wmf |
| Jpeg | .Jpeg, .jpg, .jpe, .jif, .jfif, .jfi |
| Png | .Png |
| Gif | .Gif |
| Bmp | .Bmp, .dib |
요약
애플리케이션에 실제 파일 형식 감지를 구현하면 시스템이 파일을 안전하고 효율적으로 처리하도록 보장하여, 지원되지 않거나 잠재적으로 악의적인 파일 형식과 관련된 위험을 완화할 수 있습니다. 파일 형식 감지를 적절히 처리하고 다양한 상황에 맞게 적절히 대응하면 인프라의 보안성과 안정성을 유지하는 데 도움이 됩니다.
빠른 시작
Glasswall Halo를 직접 사용해 보려면 Quick Start Guide를 참조하세요.