Puncte:0

Există o implementare publicată a QubesOS „Convertire în PDF de încredere” pe Ubuntu?

drapel tn

Titlul o spune destul de mult. Convertiți în PDF de încredere este un instrument valoros și ar fi grozav să îl implementați în ecosistemul Ubuntu.

waltinator avatar
drapel it
Ce vrei să spui prin „PDF de încredere” și care este intrarea?
Lexible avatar
drapel tn
@waltinator Vă rugăm să vedeți linkul din editarea mea.
drapel ar
M-am uitat pe link. Este posibil să doriți să trimiteți o solicitare de funcții către Canonical, folosind site-ul de lansare. Alternativ, puteți încerca să configurați o VM numai pentru citire care face ceea ce doriți.
Lexible avatar
drapel tn
@user68186 Poți să spui un pic mai mult?
drapel ar
Ți-am răspuns la întrebare? Dacă da, vă rugăm să acceptați răspunsul. Mulțumiri!
Puncte:2
drapel ar

Problema

Aveți un fișier PDF care nu este de încredere. Poate conține un malware, iar acesta poate infecta computerul și poate face lucruri groaznice.

Doriți să convertiți acest PDF într-un PDF „de încredere” care nu are niciun program malware, fără a pune în pericol computerul Ubuntu.

Metoda

Ideea este instalarea Multipass în computerul Ubuntu și utilizați mașina virtuală (VM) primară implicită pentru a „aplatiza” fișierul PDF care nu este de încredere. Procesul de aplatizare a PDF-ului implică conversia fișierului PDF într-un fișier postscript (PS) și apoi convertirea fișierului PS înapoi în PDF. PDF-ul rezultat este „de încredere”, deoarece orice malware din PDF-ul original nu este de așteptat să supraviețuiască procesului dublu de conversie.

În cele din urmă, odată ce conversia este completă, VM-ul este distrus. Astfel încât orice modificări care pot fi aduse VM-ului de către malware din PDF-ul original să fie distruse odată cu acesta.

O dovadă a conceptului

Această soluție se bazează pe linia de comandă, unde vom introduce (sau lipi) comenzi în terminal.

Mai întâi, permiteți-ne să instalăm Multipass pe computer cu următoarea comandă:

sudo snap install multipass

Trebuie să o faci o singură dată.

Restul lucrării este realizat de un script bash. Eu o numesc aplatizare.sh. Salvați scriptul de mai jos în folderul dvs. principal ca aplatiza.sh și faceți-l executabil.

#!/bin/bash

dacă [ -z $1 ]; atunci
    echo „Niciun argument setat. Argumentul valid este un fișier PDF nume.pdf în folderul $HOME”
    read -ep "Introduceți numele fișierului: " FULLNAME
altfel
    FULLNAME=$1
fi
dacă [ ! -f $NUME COMPLET ]; atunci
    echo "Fișierul $FULLNAME nu a fost găsit." 
    echo „Argumentul valid este un PDF filename.pdf în folderul $HOME”
    ecou "iese..."
    iesirea 1
fi

INPNAME=$(nume de bază $FULLNAME)
DIR=$(dirname $FULLNAME)
OUTNAME="De încredere-$INPNAME"
pornire multipass
multipass exec primar -- actualizare sudo apt
multipass exec primar -- sudo apt install ghostscript -y
multipass exec primar -- cp "Acasă/$INPNAME" .
multipass exec primar -- pdf2ps „$INPNAME” temp  
multipass exec primar -- ps2pdf temp „$OUTNAME”
Multipass exec primar -- mv "$OUTNAME" Acasă/
oprire multipass primar  
ștergere multipass principal
purjare multipass

Să spunem că aveți un fișier numit test.pdf că nu ai încredere. Utilizați următoarea comandă pentru a rula scriptul:

./flatten.sh test.pdf

The test.pdf ar trebui să fie în folderul dvs. $HOME. Dacă aveți fișierul PDF într-un folder diferit, scriptul (așa cum este scris) nu îl va găsi.

Iată lista lucrurilor care se vor întâmpla odată ce porniți acest script:

  1. Va fi creat un VM
  2. O versiune minimă de Ubuntu va fi instalată în VM
  3. Scriptul se va instala ghostscript, necesar pentru conversie
  4. Fișierul PDF care nu este de încredere va fi copiat în stocarea virtuală a VM.
  5. PDF-ul neîncrezat va fi convertit într-un fișier PS temporar și
  6. Fișierul PS temporar va fi convertit în PDF „de încredere” cu prefixul „Truted-”.
  7. PDF-ul de încredere va fi mutat înapoi în dosarul dvs. de acasă.
  8. VM-ul va fi oprit, șters și curățat.

Întregul proces va dura ceva timp, în special inițierea VM-ului și instalarea ghostscript.

Notă: dacă fișierul PDF care nu este de încredere este foarte mare, VM Multipass poate rămâne fără memoria virtuală alocată implicit. Consultați documentația Multipass despre cum să alocați mai multă memorie VM.

Dezavantajul

Din câte îmi dau seama, nu există nicio modalitate de a face un instantaneu al VM-ului principal în Multipass după instalarea Ghostscript și de a roti acea VM stocată pentru data viitoare când trebuie să igienizați un PDF. Dacă acest lucru ar fi posibil, procesul ar dura puțin mai puțin.

Altă cale

O altă modalitate de a obține rezultate similare poate fi utilizarea Containere LDX/LXC. LXD acceptă instantanee și un container personalizat cu doar Ghostscript poate fi puțin mai ușor decât un VM complet. Cu toate acestea, nu am nicio experiență cu LXD/LXC.

Sper că acest lucru vă ajută

Lexible avatar
drapel tn
+1 Acesta este un răspuns fabulos! Cred că am o ușoară preferință pentru modelul Convert to Trusted PDF (PDF redat de un motor în VM care ignoră scripturile, preia URL-uri etc. creează imagini raster, compilez noi pdf de imagini raster, OCR care, apoi returnează PDF-ul „de încredere” la utilizator, dar diferența de vulnerabilități pare apropiată în ambele cazuri. Mulțumesc pentru asta!
drapel ar
@Lexible Mulțumesc! Blogul pe care l-ați conectat, spune în mod specific **Acoperit în PDF de încredere** nu OCR textul. Consultați „Există două dezavantaje enervante pe care le au PDF-urile de încredere:” în blog.În orice caz, trecerea PDF-ului aplatizat prin OCR poate duce la pierderi de imagini, figuri, diagrame, precum și formatare, fonturi etc. Dezavantajul abordării mele este că nu există nicio modalitate de a salva un instantaneu al VM după instalarea ghostscript în Multipass. . LXD/LXC poate rezolva asta, dar configurarea inițială a LXD/LXC este mai greoaie. În orice caz, este linie de comandă, fără margini colorate fanteziste în GUI.
raj avatar
drapel cn
raj
„Procesul de aplatizare a PDF-ului implică conversia fișierului PDF într-un fișier postscript (PS) și apoi convertirea fișierului PS înapoi în PDF.” Nu este acest lucru practic echivalent cu imprimarea fișierului PDF într-un alt fișier PDF folosind opțiunea „print to file”? Desigur, trebuie să faceți imprimarea într-un VM separat...
drapel ar
@raj Face același lucru într-un mod puțin mai sigur. Configurarea unui VM cu GUI pentru a rula Evince sau Ocular ar necesita mai multe resurse (și timp dacă doriți să ștergeți VM-ul după terminarea lucrării și să o recreați data viitoare). Simțiți-vă liber să scrieți un răspuns bazat pe GUI.
Lexible avatar
drapel tn
@user68186 Hopa! Da: ai dreptate în privința OCR... Ar trebui să adaug asta dacă aș vrea.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.