ข้ามไปยังเนื้อหาหลัก

การรายงานของ Engine

กระบวนการวิเคราะห์

ไลบรารี Glasswall รับไฟล์ผ่าน API ที่เผยแพร่ไว้ และส่งไฟล์นั้นผ่านรอบกระบวนการหลายรอบ เอาต์พุตจากแต่ละรอบจะกลายเป็นอินพุตสำหรับรอบถัดไป จึงช่วยคงระดับการแยกจากกันระหว่างกระบวนการไว้ การวิเคราะห์ไฟล์จะเกิดขึ้นในแต่ละรอบ รอบแรก ๆ จะดึงโครงสร้างของไฟล์และขนาดของส่วนประกอบต่าง ๆ ออกมา ส่วนรอบหลัง ๆ จะมุ่งเน้นการตรวจสอบทางไวยากรณ์และเชิงความหมาย ซึ่งช่วยระบุแหล่งความเสี่ยงที่เป็นไปได้ ฟิลด์ที่อยู่นอกช่วง หรือโครงสร้างที่ผิดรูปแบบ

ในกรณีที่องค์ประกอบของไฟล์ถูกบีบอัด องค์ประกอบเหล่านั้นจะถูกขยายออก และผลลัพธ์จะถูกประเมิน วิเคราะห์ และตรวจสอบยืนยัน สิ่งนี้ทำให้รายงานการวิเคราะห์ที่เผยแพร่เมื่อสิ้นสุดกระบวนการสามารถให้การประเมินเนื้อหาและโครงสร้างของไฟล์ได้อย่างละเอียด ด้วยการไล่ผ่านกระบวนการ sanitisation และ remediation ทำให้ Glasswall สามารถจัดทำรายงานที่แม่นยำเกี่ยวกับการดำเนินการที่สามารถทำได้โดยฟังก์ชันการ regenerate ของ Glasswall ซึ่งทำให้ไฟล์สอดคล้องกับข้อกำหนด

ในแต่ละรอบ ไฟล์ที่กำลังประมวลผลจะถูกแปลงเป็นรูปแบบภายในของ Glasswall เอง ซึ่งช่วยให้กระบวนการ parsing และ traversing ง่ายขึ้น และช่วยสร้างการแยกส่วน เมื่อกระบวนการวิเคราะห์นำทางผ่านโครงสร้างของ Glasswall การตรวจสอบแบบละเอียดจะไม่ได้ทำเฉพาะกับองค์ประกอบแต่ละรายการเท่านั้น แต่ยังทำในระดับที่สูงขึ้นกับความสัมพันธ์ระหว่างองค์ประกอบของไฟล์ด้วย การตรวจสอบระดับสูงเหล่านี้ช่วยให้สามารถตรวจสอบโครงสร้างเชิงความหมายและความสอดคล้องของไฟล์ได้อย่างถูกต้อง

รายงานการวิเคราะห์

รายงานการวิเคราะห์ของ Embedded Engine ให้คำอธิบายข้อมูลโดยละเอียดที่ไม่ขึ้นกับชนิดไฟล์ และถูกบันทึกในรูปแบบ XML โครงสร้างของรายงานนี้เป็นไปตาม Analysis Report XSD ซึ่งออกแบบมาเพื่อให้การ parsing และการประมวลผลง่ายขึ้น analysis report XSD อยู่ในโฟลเดอร์ /schemas/sdk_editor ของแพ็กเกจรีลีส Embedded Engine

รายงานการวิเคราะห์ประกอบด้วยข้อมูลไฟล์ดังต่อไปนี้:

  • สรุปเอกสาร — ข้อมูลระดับสูงที่เฉพาะเจาะจงกับไฟล์
  • policy การจัดการเนื้อหา — การตั้งค่าของสวิตช์การจัดการเนื้อหาที่ถูกนำไปใช้กับไฟล์ที่ประมวลผลแล้ว
  • กลุ่มเนื้อหา — การจัดกลุ่มหลักของเนื้อหาที่ตรวจพบในไฟล์ที่ประมวลผลแล้ว
  • รายการเนื้อหา — โครงสร้างระดับล่างที่ตรวจพบในไฟล์ที่ประมวลผลแล้ว
  • รายการปัญหา — โครงสร้างที่ตรวจพบซึ่งไม่ตรงกับข้อกำหนดของผู้ผลิต หรือโครงสร้างที่ตรวจพบซึ่งไม่ได้รับอนุญาตตาม policy (ซึ่งทั้งสองกรณีจะปฏิเสธไฟล์)
  • รายการ Sanitisation — โครงสร้างที่ตรวจพบภายใต้การจัดการเนื้อหาซึ่งถูกทำเครื่องหมายให้ลบออกตาม policy
  • รายการที่อนุญาต — โครงสร้างที่ตรวจพบภายใต้การจัดการเนื้อหาซึ่งได้รับอนุญาตตาม policy
  • รายการการแก้ไข — การแก้ไขอัตโนมัติที่นำไปใช้กับไฟล์ที่ประมวลผลแล้ว เพื่อทำให้ไฟล์สอดคล้องกับข้อกำหนดของผู้ผลิต

ตัวอย่างรายงานการวิเคราะห์

ส่วนนี้ประกอบด้วย 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 - SHA-256 ของไฟล์เอาต์พุตหลังจากผ่านการประมวลผลโดย Glasswall (หากมีการสร้างไฟล์ขึ้นใหม่)
  • ProcessingTimeMilliseconds - เวลาที่ Glasswall วัดได้ซึ่งใช้ในการประมวลผลไฟล์
  • ComplexityLevel - ค่าประมาณระดับความซับซ้อนของไฟล์โดย Glasswall ซึ่งได้จากการคำนวณ log10 โดยแสดงทศนิยม 2 ตำแหน่งของจำนวนอาร์ติแฟกต์ที่ระบุพบในไฟล์

การจัดการเนื้อหา

จากนั้นจะแสดงรายการ policy การจัดการเนื้อหาที่ใช้กับไฟล์

หมายเหตุ: รายงานแต่ละฉบับจะแสดงรายการ policies ทั้งหมดสำหรับไฟล์ทุกประเภท หาก 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>

รายการ Sanitisation

ในตัวอย่างนี้ เนื่องจากสวิตช์ 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

มีไฟล์เพียงไม่กี่ไฟล์ที่มี issue เนื่องจากนั่นหมายความว่าไฟล์เหล่านั้นไม่ได้เพียงแค่ไม่เป็นไปตามข้อกำหนดของไฟล์เท่านั้น แต่ Glasswall ยังไม่สามารถ Remedy ปัญหานั้นให้กลับไปเป็นไปตามมาตรฐานที่กำหนดไว้ในข้อกำหนดได้ ไฟล์ที่มีรายการ issue ไม่สามารถสร้างใหม่ได้

    <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 การจัดการเนื้อหา (ในกรณีที่มีการใช้การตั้งค่า disallow)

แต่ละรายการ Sanitisation, Allowed Item, Remedy item หรือ Issue item จะมี ID ตัวเลขที่ไม่ซ้ำกัน เชื่อมโยงอยู่ เพื่อให้แอปพลิเคชันอื่นที่อาจต้องการประมวลผลรายงาน XML สามารถระบุรายการนั้นได้อย่างเฉพาะเจาะจง