ปัญหา
คุณมีไฟล์ PDF ที่ไม่น่าเชื่อถือ อาจมีมัลแวร์และมัลแวร์อาจติดคอมพิวเตอร์ของคุณและทำสิ่งที่เลวร้ายกับมัน
คุณต้องการแปลง PDF นี้เป็น PDF ที่ "เชื่อถือได้" ซึ่งไม่มีมัลแวร์ใดๆ โดยไม่เป็นอันตรายต่อคอมพิวเตอร์ Ubuntu ของคุณ
วิธีการ
มีแนวคิดที่จะติดตั้ง มัลติพาส ในคอมพิวเตอร์ Ubuntu ของคุณ และใช้ Virtual Machine (VM) หลักที่เป็นค่าเริ่มต้นเพื่อ "แบน" ไฟล์ PDF ที่ไม่น่าเชื่อถือ ขั้นตอนการทำให้ PDF แบนราบนั้นเกี่ยวข้องกับการแปลงไฟล์ PDF เป็นไฟล์ postscript (PS) จากนั้นจึงแปลงไฟล์ PS กลับเป็น PDF PDF ที่ได้นั้น "เชื่อถือได้" เนื่องจากมัลแวร์ใดๆ ใน PDF ต้นฉบับไม่คาดว่าจะรอดจากกระบวนการแปลงสองครั้ง
สุดท้าย เมื่อการแปลงเสร็จสิ้น VM จะถูกทำลาย ดังนั้นการเปลี่ยนแปลงใดๆ ที่มัลแวร์อาจทำกับ VM ใน PDF ต้นฉบับจะถูกทำลายไปด้วย
บทพิสูจน์แนวคิด
โซลูชันนี้ใช้บรรทัดคำสั่ง ซึ่งเราจะพิมพ์ (หรือวาง) คำสั่งในเทอร์มินัล
ก่อนอื่นให้เราติดตั้ง Multipass ในคอมพิวเตอร์ของคุณด้วยคำสั่งต่อไปนี้:
sudo snap ติดตั้งมัลติพาส
คุณต้องทำเพียงครั้งเดียว
งานที่เหลือทำโดยสคริปต์ทุบตี ฉันเรียกมันว่า flatten.sh บันทึกสคริปต์ด้านล่างในโฟลเดอร์เริ่มต้นของคุณเป็น แบน.sh
และทำให้ปฏิบัติการได้
#!/bin/bash
ถ้า [ -z $1 ]; แล้ว
echo "ไม่ได้ตั้งค่าอาร์กิวเมนต์ อาร์กิวเมนต์ที่ถูกต้องคือชื่อไฟล์ PDF.pdf ในโฟลเดอร์ $HOME"
อ่าน -ep "ป้อนชื่อไฟล์: " FULLNAME
อื่น
ชื่อเต็ม=$1
ไฟ
ถ้า [ ! -f $FULLNAME ]; แล้ว
echo "ไม่พบไฟล์ $FULLNAME"
echo "อาร์กิวเมนต์ที่ถูกต้องคือชื่อไฟล์ PDF.pdf ในโฟลเดอร์ $HOME"
เสียงสะท้อน "ออก..."
ทางออก 1
ไฟ
INPNAME=$(ชื่อฐาน $FULLNAME)
DIR=$(นามสกุล $FULLNAME)
OUTNAME="เชื่อถือได้-$INPNAME"
มัลติพาสเริ่มต้น
multipass exec หลัก -- sudo apt update
มัลติพาส exec หลัก -- sudo apt install ghostscript -y
มัลติพาส exec หลัก -- cp "Home/$INPNAME"
multipass exec หลัก -- pdf2ps "$INPNAME" ชั่วคราว
มัลติพาส exec หลัก -- ps2pdf ชั่วคราว "$OUTNAME"
มัลติพาส exec หลัก -- mv "$OUTNAME" หน้าแรก/
มัลติพาสหยุดหลัก
มัลติพาสลบหลัก
การล้างข้อมูลแบบหลายขั้นตอน
สมมติว่าคุณมีไฟล์ที่เรียกว่า แบบทดสอบ.pdf
ที่คุณไม่ไว้วางใจ ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้สคริปต์:
./flatten.sh test.pdf
เดอะ แบบทดสอบ.pdf
ควรอยู่ในโฟลเดอร์ $HOME ของคุณ หากคุณมีไฟล์ PDF อยู่ในโฟลเดอร์อื่น สคริปต์ (ตามที่เขียนไว้) จะไม่พบ
นี่คือรายการของสิ่งที่จะเกิดขึ้นเมื่อคุณเริ่มสคริปต์นี้:
- VM จะถูกสร้างขึ้น
- Ubuntu เวอร์ชันขั้นต่ำจะถูกติดตั้งใน VM
- สคริปต์จะติดตั้ง
ผี
จำเป็นสำหรับการแปลง
- ไฟล์ PDF ที่ไม่น่าเชื่อถือจะถูกคัดลอกไปยังที่เก็บข้อมูลเสมือนของ VM
- PDF ที่ไม่น่าเชื่อถือจะถูกแปลงเป็นไฟล์ temp PS และ
- ไฟล์ temp PS จะถูกแปลงเป็น PDF ที่ "เชื่อถือได้" โดยมี "Truted-" นำหน้า
- PDF ที่เชื่อถือได้จะถูกย้ายกลับไปที่โฟลเดอร์เริ่มต้นของคุณ
- VM จะถูกหยุด ลบ และล้างข้อมูล
กระบวนการทั้งหมดนี้จะใช้เวลาพอสมควร โดยเฉพาะการเริ่มต้น VM และการติดตั้ง ผี
.
หมายเหตุ: หากไฟล์ PDF ที่ไม่น่าเชื่อถือมีขนาดใหญ่มาก Multipass VM อาจใช้หน่วยความจำเสมือนที่จัดสรรโดยค่าเริ่มต้นไม่เพียงพอ ดูเอกสาร Multipass เกี่ยวกับวิธีจัดสรรหน่วยความจำเพิ่มเติมให้กับ VM
ข้อเสีย
เท่าที่ฉันสามารถบอกได้ว่าไม่มีทางที่จะถ่ายภาพสแน็ปช็อตของ VM หลักใน Multipass หลังจากติดตั้ง Ghostscript แล้วหมุน VM ที่จัดเก็บไว้สำหรับครั้งต่อไปที่คุณต้องการฆ่าเชื้อ PDF หากเป็นไปได้ กระบวนการนี้จะใช้เวลาน้อยลง
อีกทางหนึ่ง
อีกวิธีหนึ่งเพื่อให้ได้ผลลัพธ์ที่คล้ายกันคือการใช้ ตู้คอนเทนเนอร์ LDX/LXC. LXD รองรับสแน็ปช็อตและคอนเทนเนอร์แบบกำหนดเองที่มีเพียง Ghostscript อาจเบากว่า VM แบบเต็มเล็กน้อย อย่างไรก็ตาม ฉันไม่มีประสบการณ์ใดๆ กับ LXD/LXC
หวังว่านี่จะช่วยได้