インターネット
 Computer >> コンピューター >  >> ネットワーキング >> インターネット

AppArmorで制限したFirefox tarball版の自動更新を有効にする方法

数週間前、AppArmorによるハードニングツールの基本概要と仕組みを解説し、Firefoxブラウザを制限・強化する実践的な例をご紹介しました。ただし、対象はどのFirefoxでもなく、Mozilla公式サイトからダウンロードできるtarball版(tarアーカイブ)に限定されます。「ダウンロードして、展開して、実行する」というスタイルのものです。

ここまでは順調でした。Kubuntu環境に用意されていたAppArmorプロファイル(テンプレート)をもとに、わずかな修正を加えるだけで、ホームディレクトリから実行するFirefox tar版向けのカスタムルールセットを作成できました。ところが、ここで一つ問題が発生します。デフォルトの状態では自動更新ができないのです。今回はこの問題を解決します。

AppArmorで制限したFirefox tarball版の自動更新を有効にする方法

問題の詳細

具体的に何が起こるのか説明します。Firefox tar版には、Windows版と同様にブラウザ自身が自動更新を行う機能が備わっています。通常であれば、アップデートを取得してブラウザを再起動すれば完了です。何かを手動で再インストールする必要はなく、最初に展開した場所(たとえば~/firefox/など)から引き続きブラウザを実行するだけです。

しかし、AppArmorプロファイルを適用していると、ブラウザは自己更新できなくなります(上のスクリーンショット参照)。アップデートが利用可能である旨は表示され、手動でのダウンロードも可能ですが、これは不便です。

暫定的な回避策

  • AppArmorルールを一時的に解除する: 次回のブラウザ再起動時にFirefoxは自己更新できるようになります。ただし、この方法は手間がかかり、後で再度ルールを適用し直す必要があります。

sudo apparmor_parser -R "Firefox tar版のプロファイル名"

  • 新しいtarballを手動で展開する: 公式サイトから最新のアーカイブをダウンロードし、古いフォルダに上書き展開するか、新フォルダの中身をFirefoxのインストール先へコピーします。なお、この操作でFirefoxのユーザープロファイル(設定データ)が影響を受けることはありません。

tar -xvf "tarball"
cp -ar "展開したフォルダ"/* "Firefoxのインストール先"/

しかしこれらはあくまで簡単な半分だけの対処法にすぎません。もっと確実な解決策が必要です。

解決策

本当の解決策は、AppArmorプロファイルを見直し、どのルールが競合を引き起こしているのかを理解することです。一般に、プロファイル内の各行は「あるディレクトリへの読み取りは許可するが書き込みは許可しない」のような選択的な許可、あるいは特定リソースへの完全なアクセス拒否を表すルールになっています。明示的に記述されていない操作は、プロファイルによってカバーされません。

デフォルトのプロファイルには、Firefoxのインストールディレクトリ内のファイルやフォルダへの書き込みアクセスを拒否するルールが含まれています。Firefoxがシステムディレクトリにインストールされる標準的なケースでは理にかなった設定ですが、独立した専用の場所にFirefoxを配置している場合には必ずしも適切ではありません。

deny @{MOZ_LIBDIR}/** w,

この行をコメントアウトし、Firefoxのプロファイルを再読み込みすれば作業は完了です。

sudo apparmor_parser -r "プロファイル名"

AppArmorで制限したFirefox tarball版の自動更新を有効にする方法

AppArmorで制限したFirefox tarball版の自動更新を有効にする方法

まとめ

以上で完了です。この小さくシンプルな変更だけで、Firefox tar版に自動更新機能を取り戻すことができます。もちろん、セキュリティを最優先する方であれば、「書き込み許可は好ましくない」「必要になったら手動更新で十分だ」と考えるかもしれません。実際、いつでも手動更新に戻すことは可能です。しかし、利便性を保ちながらAppArmorプロファイルによる強化の恩恵を大部分受け続けたいのであれば、ブラウザにインストールフォルダへの書き込みを許可するのも一つの選択肢です。その際は潜在的なリスクについても十分に認識しておきましょう。

このガイドが、このトピックに関する疑問の解消に役立てば幸いです。なお、話はまだ終わりません。次回はD-Busについて、特にFirefoxがKDE/Plasmaの統合機能を利用できるようにするために必要なルールを取り上げます。KDE固有の話に聞こえるかもしれませんが、チュートリアルはあらゆるブラウザ統合機能に応用できる汎用的な内容にする予定です。それではまた次回、仲間の技術者諸君。

それでは。

  1. Firefox 3.1 Beta 3のメモリ使用量を徹底検証 ― LinuxとWindowsでの実測レポート

    先日、Firefox 3.1 Beta 3をレビューしました。JavaScriptパフォーマンスの大幅な向上、使い勝手とプライバシーに関する新機能、将来のHTMLマルチメディア要素への対応など、非常に魅力的なリリースです。ところが、あの記事ではメモリ使用量については一切触れていませんでした。 それには、ちゃんとした理由があります。 アプリケーションのメモリ使用量を正確に測定するのは、実は非常に難しい作業です。せいぜい得られるのは「推測」や「目安」程度で、しかも主観的かつ限られた要因に基づくもので、ほとんど役に立たないことも珍しくありません。多くの人は、タスクマネージャー、Process Exp

  2. Firefoxのアドオンをブラウザ内で一元管理する方法 – 初心者向けチュートリアル

    Firefox 3の登場からしばらく経ちましたが、その新機能をじっくり紹介する機会がありませんでした。そこで今回は、Firefoxのアドオン(Add-on)について取り上げます。長年Firefoxを使い込んできたベテランユーザーには説明不要かもしれませんが、ちょっと待ってください。Firefox 3では、テーマや拡張機能を手動で各サイトを回ってダウンロードする必要のない、新しい一元管理方式が導入されました。バージョン3以前の使い方に慣れきっていた方には、見落としていたかもしれない便利な機能です。Firefoxはおそらく最も柔軟性の高いブラウザの一つです。高い堅牢性、シンプルかつ実用的なデザイン