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

フォントの脆弱性対策にNoscriptを活用する方法

過去1か月ほどの間に、デスクトップからモバイルまで幅広いOSにおけるフォント解析の脆弱性を悪用したリモートコード実行の脆弱性情報を、十数本ほど目にしました。いずれの記事でも問題点は詳細に語られているものの、ベンダーのアップデート以外の具体的な対策については、ほとんど触れられていません。

これは興味深い点です。実は、フォント問題に対処できるツールが存在するからです。その名はNoscript。Firefoxで長年提供され、最近ではChromeにも対応した優れたブラウザ拡張機能で、Webページにおけるフォントの読み込みを制御できます。シンプルかつエレガントなツールで、フォントにまつわる頭痛を解消——少なくとも大幅に軽減——してくれます。しかし、このツールは本来の注目を集めているでしょうか?もちろん否。ドラマや恐怖の方がよほど話題になるのです。詳しく見ていきましょう。

フォントの脆弱性対策にNoscriptを活用する方法

60秒でわかるNoscript

当ブログを読んだことがあれば、私がNoscriptを愛用していることはご存じでしょう。私にとって必須のブラウザ拡張機能です。スクリプトを(ほぼ)無効にすると、ブラウジングがはるかに快適になります。より速く、よりクリーンに。セキュリティ面の効果は副次的なものですが、確かに存在します。Noscriptを使って閲覧すると、純粋な情報——テキストと画像——だけが読み込まれます。スクリプトを必要とするものはすべてブロック。素晴らしいことです。

これにより、現代のインターネット体験(ちなみに最悪です)が、健全で静かなものへと変換されます。JavaScriptが必要な作業を行う際は、特定のドメインの権限を一時的に許可し、必要な作業を終えたら、再び静かで健全なブラウジングに戻ればよいのです。

TRUSTED(信頼)リストとUNTRUSTED(非信頼)リストを永続的に設定することもできます。デフォルトでスクリプトやその他のオブジェクトが有効になるサイトと、一時的に「すべて許可」してもブロックされ続けるサイトを分けて管理できるのです。シンプルで実用的。確かに手間はかかりますし、きちんと使いこなせるのはマニアだけかもしれませんが、そもそもセキュリティの話自体がマニアックなものです。

さて、スクリプト制御はNoscriptの機能のほんの一面にすぎません。このアドオンは、オブジェクト、メディアファイル、フレーム、WebGL、そしてフォントといった他のWebページ要素もブロック/許可できます。フォントを忘れてはいけません。リモートフォントはブロックできるのです。デフォルトでは、Noscriptはページ上のスクリプト、フォント、WebGL、Web ping要素をブロックします。信頼済みサイトではすべて許可され、非信頼サイトではすべてブロックされます。

フォントの脆弱性対策にNoscriptを活用する方法

フォントの脆弱性対策にNoscriptを活用する方法

Noscriptとフォントの設定

フォントをブロックしてWeb体験を損ないたくない、かといってサイトごとにスクリプトの権限をいじりたくない、という場合は、次のように設定します。

  • DEFAULTゾーンでスクリプトを有効にする
  • DEFAULTゾーンとTRUSTEDゾーンでフォントをブロックする

これだけです。日常のインターネット利用は従来どおり——サイトは(ほぼ完全に)読み込まれ、スクリプトもコメントもその他もすべて使えます。処理されないのはリモートフォントだけです。つまり、フォントまわりの問題は最初から存在しなかったことになります。実際、スクリプト管理の手間をかけたくない人にとって、これをデフォルト設定にしない理由はほとんどありません。

フォントの脆弱性対策にNoscriptを活用する方法

もちろん、これによってフォント表示は崩れます。凝ったリモートフォントを使うサイトは正しく描画されず、代替フォント(ローカルで利用可能なもの)が表示されるか、CSSにフォールバックフォントの指定すらないひどいサイトでは、空の丑い四角(いわゆる「豆腐」)が並ぶことになるでしょう。素晴らしい!

もちろん、多くの人はこの現象を自動的に「悪い、悪い、行儀の悪いフォント」のせいにするでしょう。しかし私に言わせれば、すべてのリモートフォントは悪——つまり「不必要」なのです。馬鹿げた流行以外に、ページでリモートフォントを使う理由はありません。ダークテーマのように、単にファッションだから?凝ったフォントが欲しければ、ライセンスを購入して自分のサーバーに置き、読者に提供すればよいのです。ああ、そうか、それにはお金がかかるんですね!でもArialやsans-serifは古臭すぎて、クールじゃないと?

ちなみに、Webフォントのブロックは新しい概念ではありません。Noscriptは少なくとも2010年からこの機能を備えており、当時からリモートフォントの問題やFreeTypeの脆弱性は散発的に発生していました。本当に変わったことは何もなく、焦点が少しずれただけです。

おまけとして、危険または安全でないと判断したサイトを永続的にブロックすることもできます。こうすれば、何かのドメインで「すべて許可」しても、非信頼サイトはブロックされたままなので、うっかりミスや怠惰なクリックで設定に穴を開ける心配はありません。

関連おまけ:Windows 10とExploit Protection

ここからはWindowsユーザー向けの話で、Noscriptとはまったく関係ありませんが、この点の価値を強調するのに良いタイミングだと思うので紹介します。Windowsについて悲観論を振り撒く人々が、Windows OSに備わる最高のセキュリティ機構——伝説的なEMETツールボックスを基盤とする、エレガントでかなり透過的な「Exploit Protection」フレームワーク——に言及しないことには、いつも苛立ちを覚えます。無駄にセキュリティを追いかけるのではなく、問題を芽のうちに摘み取れるのです。

第一に、OSレベルで信頼できないフォントをグローバルに無効化できます。それでも徹底しすぎだと感じるなら、Exploit Protection機能を使ってアプリケーションごとにポリシーを調整できます。これも非常に簡単です。しかし、これが十分に注目されないのは、ハリウッド映画並みのサスペンスがないからでしょう。

フォントの脆弱性対策にNoscriptを活用する方法

フォントの脆弱性対策にNoscriptを活用する方法

詩的正義:Firefox

最近目立つのは、Chromeのゼロデイ脆弱性です。それ自体は特別なことも新しいこともありません。長年、多くのプログラムにこうした脆弱性があり、これからもあります。脆弱性が現れては、ベンダーがパッチを当てる、それだけです。ネットに接続している以上、何かが起こりうる。それだけの単純な事実です。

興味深いのは、Chrome/Chromiumの遍在性です。特にモバイルにおいて支配的なブラウザとなったからです。今の若い世代はこれを新しくユニークな現象と感じるかもしれませんが、2005年〜2010年頃のInternet Explorerが最も人気があり、最も標的とされた時代の喜びとドラマの繰り返しにすぎません。

さらに、隠れた龍、潜むElectronの存在もあります。今日の多くのアプリケーションは実質、Chromiumエンジンを内部に抱え、カスタムUIをまとったカプセル化されたブラウザです。シンプルでエレガントな設計にはなりますが、Chromiumに脆弱性があれば、純粋なブラウジングとは無関係に思える幅広いアプリにも同じ脆弱性が存在する可能性が高いということです。そのようなバグが顕在化したとき、あなたに影響するのか?どのように?いつ?ブラウザらしくないインターフェースでブラウザのようなエクスプロイトを引き起こすトリガーを特定できるでしょうか?ヒント:以前にも起きています。たとえばCVE-2018-1000136脆弱性などです。

そしてFirefoxがあります。かつてほど華やかでも人気もありませんが、独自のレンダリングエンジンを使用し、市場シェアが小さいため、攻撃者の最初の標的になる可能性は低くなります。私たちはある意味、15年前にタイムスリップしたようなものです。

まとめ

最近の脆弱性情報の多くは、非Windows OS、特にモバイルに関するものでした。これはExploit Protectionの出番を消しますが、FirefoxとChromeはほとんどのOSで利用可能なので、Noscript拡張機能を使ってセキュリティと使いやすさを強化できます。スマートフォンの広告ブロッカーが99%のストレスを減らしバッテリー寿命を改善するように、Noscriptはノイズをさらに減らし、セキュリティを向上させてくれます。

ここでの焦点はフォントのセキュリティ面ですが、それだけが問題ではありません。いいえ。これらのフォント脆弱性は、悪い使用モデルの自然な帰結なのです。何にでもバグや問題はありえます。フォントが特別なわけではありません。本当の問題は、人々がフォントを誤った方法で使っていることです。子どもにクレイモア地雷を渡すようなもので、相手は粗悪なCSSと怠惰なWebデザインです。リモートフォントは、錆びた古い車に付けたキラキラのホイールなのです。

リモートのサードパーティコンテンツの読み込みは、深刻化する問題です。ますます多くのサイトがコードスニペットを盲目的に再利用し、すべてが「クラウド化」しています。ローカルとリモートのアセットの境界は曖昧になり、クラウドストレージやネットワークの使用など、インターネット体験を複雑にする要素が積み重なっています。本質的には、確かに少しの速度と洗練さが得られますが、最終的には、健全なコーディング慣行やセキュリティを含む他のすべてを失っています。そもそもWebは2014年頃に死に、この最新の姿はただの「バカの壁」2.0なのです。

さて、今日の愚痴はこのくらいにしましょう。Noscriptを使って、インターネットをより賢明な場所にしましょう。セキュリティのためではありません。それはあくまでおまけです。重要なのはゴミをブロックすることであり、ブロックするゴミが増えるほど、Webデザイナーが慣行を見直す可能性が高まります。リモートフォントは現代のインターネットの多くの問題の一つにすぎず、それに協力する理由はありません。その過程で、デバイスがハッキングされるリスクも減らせるかもしれません。以上です。

ではまた。


  1. 一般ユーザー向けのNoScript設定ガイド――快適さとセキュリティを両立する方法

    NoScriptセキュリティスイート(NSS)は、実に素晴らしいツールです。Firefoxや各種Chromiumベースのブラウザ向け拡張機能として提供されており、Webページ上のスクリプトやその他の要素をブロックすることで、騒がしく使いにくい「モダン」なインターネットを、静寂に満ちた空間へと変えてくれます。美しく、エレガント。結果として、高速で静かなブラウジング体験が得られ、うるさいポップアップも余計な負荷もありません。スクリプトが必要なときは、選択的に有効化すればよいのです。ただし、これはテック好きな人にとってこそ有効な話です。 残念ながら、いわゆる「普通の人々」、つまりオタクではない人たち

  2. Chrome版NoScript登場 - Firefoxの独占がついに終わる

    長年にわたり、Firefoxには他のブラウザに対する明確な優位性がありました。それは、ほぼ何でもできてしまうほど充実したアドオンのラインナップです。しかしWebExtensionsの時代が到来すると、この優位性はほぼ失われてしまいました。それでもFirefoxだけの領域として残っていた重要なツール(拡張機能)がありました。それが、賢くて素晴らしいセキュリティスイートとして名高いNoScriptです。すべてのサイトでJavaScriptを細かく制御できる機能を持っています。そして今回、このアドオンの新バージョンがChromeユーザー向けにも提供されることになりました。開発者のGiorgio Ma