リストされたファイルの種類と提示された目標は、巨大な攻撃面をもたらします。洗練された敵を想定すると、これにより、悪用される可能性が大幅に高まります。 PDF と PPT/PPTX は特に問題があります。ファイルの種類を大幅に減らすことができない場合は、権限の分離またはリモート仮想化を使用して、アクティビティを分離する必要があります。
特権の分離
これは、ローカル コンピューターでこのアクティビティを実行する必要がある場合のソリューションです。使用するすべてのアプリケーションを個別にサンドボックス化することは困難ですが、コンピューター上にいくつかの権限を持つ新しいユーザーを作成できます:
su
へのアクセスを無効にする そしてsudo
そのユーザーとして使用しないでください。- しない
su
TTY プッシュバック攻撃を避けるために、root から下位ユーザーに送信します。 iptables
を使用 そのユーザーのネットワーク アクセスを無効にします。- リソース制限を設定して、悪用されたアプリケーションによる被害を軽減する
- 可能であれば Xorg の代わりに Wayland を使用するか、Xorg と
systemd-logind
を使用します。 非ルートとして実行します。 - セッションが終了して新しいセッションに切り替わったら、セキュア アテンション キーを有効にして使用します。
- 不要な setuid または setgid ファイル、および setcap ファイルをすべてスキャンして削除します。
- auditd などの監査フレームワークを使用して、潜在的に悪意のあるアクティビティを監視する
- sysctl の調整や強化パッチなど、一般的なシステム強化を適用します。
攻撃者の巧妙さのレベルによっては、これで十分ではない可能性があり、中程度の能力の敵対者であっても、これはかなり不完全ですが、出発点です。これらのファイルにアクセスするために使用しているアプリケーションは、任意のコードの実行に対して脆弱であると (おそらく正しく) 想定する必要があるため、質問は信頼されていないコードを安全に実行するにはどうすればよいですか? になります。 、もちろん非常に広い範囲です。
バーチャル プライベート サーバー
より簡単な解決策は、VPS を使用することです。自分のコンピューターではなく VPS でアプリケーションをリモートで実行し、そのように操作できます。 VPS が完全に侵害されたとしても、攻撃対象領域は SSH クライアントと端末の領域に縮小されます。これはかなり小さいです。 SSH 経由で画像を直接表示することはできません (少なくとも安全ではありません) ので、ローカル コンピューターに転送して表示する前に、非常に単純な (そして悪用するのが難しい) 画像形式に変換することをお勧めします。このような形式の例として、PPM ピクセル マップ形式があります。これは、さまざまなユーティリティを使用して簡単に画像ファイルに変換できるため、PDF ファイルを表示する場合にも機能します。
VPS のホストは、VPS 上のあらゆるものにアクセスして変更できます。これが問題になる場合 (たとえば、ファイルが非常に機密である場合、または完全性が最も重要である場合)、VPS を使用したくない場合があります。これが問題になる可能性は低く、ダウンロードした Web サイトは既に (おそらく) 公開されているため、機密性の問題はないはずです。専用サーバーを代わりに使用することで、データの機密性と完全性を高めることができますが、費用は高くなります。
VPS がシャットダウンされた場合に備えて、後で別の VPS に復元できるように、これらのファイルのローカル バックアップを保持する必要があります。ローカル ファイルは、システムにあるインデクサーやサムネイル ジェネレーターの悪用を受けない「不活性」形式で保存する必要があります。これは、たとえば tar
などのアーカイブにファイルを配置することで実行できます .
グラフィカル ユーティリティではなくコマンド ライン ユーティリティを使用する必要があるため、SSH 経由でこれらのファイルにアクセスする方法を見つける必要があります。 VPS でリモートで実行できる例:
- PNG、TIFF、JPEG、および (アニメーションではない) GIF を PPM に変換して、ローカルで安全に表示できます。
- XLS/XLSX は CSV に変換できます。これはコマンド ラインで問題ありません。優れた vim プラグインがあります。
- RTF、DOC、DOCX、および ODF を画像に変換して、ローカルで安全に表示できます。
- 表示する方法を知りません コマンド ラインでの PPT/PPTX。ただし、それらを分析することはできます。
- HTML、CSS、JS をテキスト エディタで表示したり、リモートのテキストベースのブラウザで実行したりできます
- PHP は、テキスト エディターで表示するか、コマンドライン PHP インタープリターを使用して実行できます。