주요 콘텐츠로 건너뛰기

Engine 보고

분석 프로세스

Glasswall 라이브러리는 공개된 API를 통해 파일을 수신하고 이를 여러 처리 사이클에 걸쳐 전달합니다. 각 사이클의 출력은 다음 사이클의 입력이 되므로, 프로세스 간 일정 수준의 분리가 유지됩니다. 파일 분석은 각 사이클에서 수행됩니다. 초기 사이클에서는 파일의 구조와 그 구성 요소의 크기를 파악합니다. 이후 사이클에서는 구문 및 의미 검사를 수행하여 잠재적 위험 요소, 범위를 벗어난 필드 또는 잘못된 형식의 구조를 식별합니다.

파일의 요소가 압축되어 있는 경우 이를 확장하고, 그 결과를 평가, 분석 및 검증합니다. 이를 통해 프로세스 종료 시 게시되는 분석 보고서는 파일의 내용과 구조를 철저하게 평가할 수 있습니다. Glasswall은 sanitisation 및 remediation 프로세스를 단계적으로 수행함으로써, Glasswall의 regeneration 기능이 수행할 수 있는 작업을 정확하게 보고할 수 있으며, 그 결과 파일이 사양에 부합하도록 만듭니다.

각 사이클 동안 처리 중인 파일은 Glasswall 고유의 내부 표현으로 변환됩니다. 이는 parsing 및 traversing 프로세스를 단순화하고 격리를 제공하는 데 도움이 됩니다. 분석 프로세스가 Glasswall 구조를 탐색하는 동안, 세부 검사는 개별 구성 요소에 대해서만 수행되는 것이 아니라 파일 구성 요소 간 관계에 대해서도 더 높은 수준에서 수행됩니다. 이러한 상위 수준 검사를 통해 파일의 의미 구조와 일관성을 적절히 검증할 수 있습니다.

분석 보고서

Embedded Engine 분석 보고서는 데이터에 대한 상세하고 파일 형식에 구애받지 않는 설명을 제공하며 XML 형식으로 기록됩니다. 이 보고서의 구조는 parsing 및 processing을 단순화하도록 설계된 Analysis Report XSD를 따릅니다. analysis report XSD는 Embedded Engine 릴리스 패키지의 /schemas/sdk_editor 폴더에 있습니다.

분석 보고서에는 다음 파일 정보가 포함됩니다:

  • 문서 요약 — 파일별 상위 수준 정보입니다.
  • 콘텐츠 관리 policy — 처리된 파일에 적용된 콘텐츠 관리 스위치의 설정입니다.
  • 콘텐츠 그룹 — 처리된 파일에서 감지된 콘텐츠의 주요 그룹화입니다.
  • 콘텐츠 항목 — 처리된 파일에서 감지된 하위 수준 구조입니다.
  • 이슈 항목 — 제조업체 사양과 일치하지 않거나 감지된 구조가 policy에 의해 허용되지 않는 구조입니다(두 경우 모두 파일이 거부됨).
  • Sanitisation 항목 — 콘텐츠 관리 대상 구조 중 policy에 의해 제거 대상으로 표시된 감지 구조입니다.
  • 허용된 항목 — 콘텐츠 관리 대상 구조 중 policy에 의해 허용된 감지 구조입니다.
  • Remedy 항목 — 파일을 제조업체 사양에 맞추기 위해 처리된 파일에 적용된 자동 수정입니다.

샘플 분석 보고서

이 섹션에는 일반적인 보고서의 주요 요소를 모두 포함한 축약된 Glasswall Analysis Report가 들어 있습니다. 이 특정 예시는 PDF 파일을 기반으로 합니다.

문서 요약

각 XML 보고서는 아래와 같이 표시되는 문서 요약으로 시작합니다:

    <gw:DocumentSummary>
<gw:TotalSizeInBytes>2293803</gw:TotalSizeInBytes>
<gw:FileType>pdf</gw:FileType>
<gw:Version>PDF-1.6</gw:Version>
<gw:FileTypeDetectionMethod>signature match</gw:FileTypeDetectionMethod>
<gw:InputSHA256>DEE7CEB7AB57227121FF65F0D8D0878CBEDF90864069D9525698257972498099</gw:InputSHA256>
<gw:OutputSHA256>83EE59FAB5972429CE65CBB22EBF8B592D53F47927E0FA751584875D4F80CA1E</gw:OutputSHA256>
<gw:ProcessingTimeMilliseconds>101</gw:ProcessingTimeMilliseconds>
<gw:ComplexityLevel>4.41</gw:ComplexityLevel>
</gw:DocumentSummary>

  • TotalSizeInBytes - 입력 파일의 크기
  • FileType - Glasswall이 감지한 파일 유형
  • Version - 파일 형식 버전(판별 가능한 경우)
  • FileTypeDetectionMethod - 파일 형식을 판별하기 위해 사용된 Glasswall 감지 방법
  • InputSHA256 - 원본 입력 파일의 SHA-256
  • OutputSHA256 - Glasswall 처리 후 출력 파일의 SHA-256(파일이 재생성된 경우)
  • ProcessingTimeMilliseconds - 파일 처리에 소요된 시간을 Glasswall이 측정한 값
  • ComplexityLevel - 파일에서 식별된 아티팩트 수의 log10 값을 소수점 둘째 자리까지 계산하여 산출한, 파일 복잡도 수준에 대한 Glasswall 추정치

콘텐츠 관리

그런 다음 파일에 사용된 콘텐츠 관리 policy가 나열됩니다.

참고: 각 보고서에는 모든 파일 유형에 대한 모든 policy가 나열됩니다. policy가 구성되지 않았지만 사용 가능한 경우에는 적용된 기본 policy 설정도 함께 나열됩니다.

아래에는 PDF 콘텐츠 관리 스위치 설정의 일부가 나와 있습니다:

    <gw:ContentManagementPolicy>
<gw:Camera cameraName="pdfConfig">
<gw:ContentSwitch>
<gw:ContentName>javascript</gw:ContentName>
<gw:ContentValue>sanitise</gw:ContentValue>
</gw:ContentSwitch>
<gw:ContentSwitch>
<gw:ContentName>acroform</gw:ContentName>
<gw:ContentValue>sanitise</gw:ContentValue>
</gw:ContentSwitch>
<gw:ContentSwitch>
<gw:ContentName>embedded_files</gw:ContentName>
<gw:ContentValue>sanitise</gw:ContentValue>
</gw:ContentSwitch>
</gw:Camera>
</gw:ContentManagementPolicy>

콘텐츠 그룹 및 항목

파일에서 발견된 서로 다른 콘텐츠 그룹의 수(16)와 첫 번째 그룹의 콘텐츠 항목 예시는 아래와 같습니다:

    <gw:ContentGroups groupCount="16">
<gw:ContentGroup>
<gw:BriefDescription>PDF document has Basic File Section structure instances</gw:BriefDescription>
<gw:ContentItems itemCount="5">
<gw:ContentItem>
<gw:TechnicalDescription>PDF Header Instances</gw:TechnicalDescription>
<gw:InstanceCount>1</gw:InstanceCount>
<gw:TotalSizeInBytes>15</gw:TotalSizeInBytes>
<gw:AverageSizeInBytes>15</gw:AverageSizeInBytes>
<gw:MinSizeInBytes>15</gw:MinSizeInBytes>
<gw:MaxSizeInBytes>15</gw:MaxSizeInBytes>
</gw:ContentItem>
</gw:ContentItems>>
</gw:ContentGroup>
...
</gw:ContentGroups>

정화 항목

이 예에서는 metadata 스위치가 sanitise로 설정되어 있으므로, 사전 구조가 제거 대상으로 태그된 것으로 표시됩니다.

    <gw:SanitisationItems itemCount="1">
<gw:SanitisationItem>
<gw:TechnicalDescription>Document information dictionary detected in a document trailer dictionary.</gw:TechnicalDescription>
<gw:SanitisationId>16872998749</gw:SanitisationId>
<gw:InstanceCount>1</gw:InstanceCount>
<gw:TotalSizeInBytes>0</gw:TotalSizeInBytes>
</gw:SanitisationItem>
</gw:SanitisationItems>

허용된 항목

이 예에서는 metadata 스위치가 allow로 설정되어 있으므로, 사전 구조가 유지됩니다.

    <gw:AllowedItems itemCount="1">
<gw:AllowedItem>
<gw:TechnicalDescription>Document information dictionary detected in a document trailer dictionary.</gw:TechnicalDescription>
<gw:AllowedId>16872998749</gw:AllowedId>
<gw:InstanceCount>1</gw:InstanceCount>
<gw:TotalSizeInBytes>0</gw:TotalSizeInBytes>
</gw:AllowedItem>

Remedy 항목

모든 XML 보고서에 Remedies가 포함되는 것은 아닙니다. 이는 재생성된 파일이 파일 사양에 부합하도록 하기 위해 수행되는 자동 수정이기 때문입니다. 이 예에서는 파일에서 remedy 항목이 보고되었습니다.

    <gw:RemedyItems itemCount="1">
<gw:RemedyItem>
<gw:TechnicalDescription>
PDF Stream is missing an End-Of-Line before the &apos;EndStream&apos; marker.
</w:TechnicalDescription>
<gw:RemedyId>1605893787</gw:RemedyId>
<gw:InstanceCount>7</gw:InstanceCount>
</gw:RemedyItem>
</gw:RemedyItems>

Issue Items

문제가 있는 파일은 매우 드뭅니다. 이는 해당 파일이 파일 사양을 준수하지 않을 뿐만 아니라, Glasswall이 그 문제를 사양에서 정한 표준으로 다시 Remedy하지 못했음을 의미합니다. issue item이 있는 파일은 재생성할 수 없습니다.

    <gw:IssueItems itemCount="1">
<gw:IssueItem>
<gw:TechnicalDescription>
/Info dictionary contained an unexpected key (/GTS_PDFXConformance).
</gw:TechnicalDescription>
<gw:IssueId>1670998746</gw:IssueId>
<gw:InstanceCount>1</gw:InstanceCount>
</gw:IssueItem>
</gw:IssueItems>

파일이 콘텐츠 관리 policy로 인해 비준수(non-conformant)한 것으로 판단된 경우(disallow 설정이 사용된 경우)에도 Issue 항목이 보고됩니다.

각 Sanitisation 항목, Allowed Item, Remedy 항목 또는 Issue 항목에는 고유한 숫자 ID가 연결되어 있으므로, XML 보고서를 처리하려는 다른 애플리케이션에서 해당 항목을 고유하게 식별할 수 있습니다.