Die von Ihnen aufgelisteten Dateitypen und die von Ihnen präsentierten Ziele ergeben eine riesige Angriffsfläche. Geht man von einem ausgeklügelten Gegner aus, bietet dies eine enorm erhöhte Möglichkeit zur Ausbeutung. Besonders problematisch sind PDFs und PPT/PPTX. Wenn Sie sich nicht auf weitaus weniger Dateitypen beschränken können, müssen Sie Ihre Aktivitäten isolieren, entweder durch Berechtigungstrennung oder Remote-Virtualisierung.
Privilegientrennung
Dies ist eine Lösung für den Fall, dass Sie diese Aktivität auf Ihrem lokalen Computer ausführen müssen. Während es schwierig wäre, jede einzelne Anwendung, die Sie verwenden werden, einzeln in eine Sandbox zu bringen, können Sie mit wenigen Rechten einen neuen Benutzer auf Ihrem Computer erstellen:
- Zugriff auf
su
deaktivieren undsudo
vom neuen Benutzer und verwenden Sie sie nicht als diesen Benutzer. - Nicht
su
an Ihren untergeordneten Benutzer von root, um TTY-Pushback-Angriffe zu vermeiden. - Verwenden Sie
iptables
um den Netzwerkzugriff für diesen Benutzer zu deaktivieren. - Legen Sie Ressourcenlimits fest, um den Schaden zu verringern, den eine ausgenutzte Anwendung anrichten kann.
- Verwenden Sie nach Möglichkeit Wayland anstelle von Xorg oder Xorg mit
systemd-logind
um es als Nicht-Root auszuführen. - Aktivieren und verwenden Sie den Sicherheitsschlüssel, wenn Sie fertig sind und zu einer neuen Sitzung wechseln.
- Nach allen unnötigen setuid- oder setgid-Dateien sowie setcap-Dateien suchen und diese entfernen.
- Verwenden Sie ein Auditing-Framework wie auditd, um potenziell schädliche Aktivitäten zu überwachen.
- Wenden Sie allgemeine Systemhärtung wie sysctl-Optimierungen oder Härtungs-Patches an.
Je nach Entwicklungsstufe des Gegners reicht dies möglicherweise nicht aus, und selbst für einen Gegner mit mäßigen Fähigkeiten ist dies eher unvollständig, aber es ist ein Ausgangspunkt. Da Sie davon ausgehen müssen (höchstwahrscheinlich zu Recht), dass die Anwendungen, mit denen Sie auf diese Dateien zugreifen, anfällig für die Ausführung willkürlichen Codes sind, lautet die Frage:Wie kann ich nicht vertrauenswürdigen Code sicher ausführen? , die natürlich sehr umfangreich ist.
Virtuelle private Server
Eine einfachere Lösung wäre die Verwendung eines VPS. Sie können Anwendungen aus der Ferne auf dem VPS statt auf Ihrem eigenen Computer ausführen und auf diese Weise mit ihm interagieren. Selbst wenn der VPS vollständig kompromittiert ist, wird die Angriffsfläche auf die Ihres SSH-Clients und Ihres Terminals reduziert, was ziemlich klein ist. Da Sie Bilder über SSH nicht direkt anzeigen können (zumindest nicht sicher), möchten Sie sie möglicherweise in ein sehr einfaches (und schwer auszunutzendes) Bildformat konvertieren, bevor Sie sie auf Ihren lokalen Computer übertragen und anzeigen. Ein Beispiel für ein solches Format wäre das PPM-Pixelkartenformat. Dies funktioniert auch zum Anzeigen von PDF-Dateien, da sie mit verschiedenen Dienstprogrammen problemlos in Bilddateien konvertiert werden können.
Der Host eines VPS kann auf alles auf dem VPS zugreifen und es ändern. Wenn dies für Sie ein Problem darstellt (z. B. wenn die Dateien äußerst vertraulich sind oder die Integrität von größter Bedeutung ist), möchten Sie möglicherweise keinen VPS verwenden. Dies ist wahrscheinlich kein Problem, und da die Website, von der Sie heruntergeladen haben, bereits (vermutlich) öffentlich ist, sollte es kein Vertraulichkeitsproblem geben. Sie können die Vertraulichkeit und Integrität der Daten erhöhen, indem Sie stattdessen einen dedizierten Server verwenden, obwohl dies teurer wäre.
Für den Fall, dass der VPS heruntergefahren wird, sollten Sie eine lokale Sicherung dieser Dateien aufbewahren, damit Sie sie später auf einem anderen VPS wiederherstellen können. Die lokalen Dateien sollten in einer "inerten" Form gespeichert werden, die nicht anfällig für die Ausnutzung von Indexern oder Thumbnail-Generatoren ist, die Sie möglicherweise auf Ihrem System haben. Dies kann beispielsweise dadurch erfolgen, dass die Dateien in einem Archiv wie tar
abgelegt werden .
Da Sie Befehlszeilenprogramme anstelle von grafischen verwenden müssen, müssen Sie Wege finden, um über SSH auf diese Dateien zuzugreifen. Einige Beispiele, die Sie aus der Ferne auf einem VPS ausführen können:
- Sie können PNG, TIFF, JPEG und (nicht animiertes) GIF in PPM konvertieren, um es sicher lokal anzuzeigen.
- XLS/XLSX kann in CSV konvertiert werden, was auf der Befehlszeile in Ordnung ist. Es gibt ein gutes Vim-Plugin.
- RTF, DOC, DOCX und ODF können in Bilder konvertiert werden, die sicher lokal angezeigt werden können.
- Mir ist keine Möglichkeit zum Anzeigen bekannt PPT/PPTX in der Befehlszeile, obwohl Sie sie analysieren können.
- HTML, CSS und JS können in einem Texteditor angezeigt oder auf einem textbasierten Remote-Browser ausgeführt werden.
- PHP kann in einem Texteditor angezeigt oder mit einem PHP-Befehlszeileninterpreter ausgeführt werden.