72
超安全なウェブブラウジング

セキュリティアナリスト兼研究者として、私はインターネットの闇の奥深くを探ることがよくあります。セキュリティ問題の最新情報を把握するために、一般の人が近寄るべきではないようなウェブサイトを頻繁に閲覧せざるを得なくなり、攻撃の標的になる可能性も非常に高くなります。そのため、より安全なネットサーフィンのために、やや極端なアプローチをとらざるを得なくなりました。

リスクを理解する

ウェブブラウザ攻撃は大きく分けて2つのカテゴリーに分けられます。1つ目はブラウザを標的とする攻撃です。具体的には以下のものがあります。

  • クロスサイト スクリプティング (XSS) では、攻撃者が悪意のあるコードを不正に挿入し、ブラウザが自動的にそれを実行します。これは、信頼している Web ページに悪意のあるコードを挿入するものです。
  • クロスサイト リクエスト フォージェリ (CSRF) では、攻撃者が 1 つの Web ページにコードを挿入し、ユーザーのブラウザーを使用してユーザーの名前で別のページ (銀行など) にコマンドを送信します。
  • クリックジャッキングは、悪意のあるプログラマが Web サイトに隠しボタンを重ねて表示し、ユーザーが誤ってクリックしてしまう攻撃です。

ブラウザ攻撃では、偽の Web ページまたはリンクを使用して、ユーザーを望ましくない場所にリダイレクトしたり、ブラウジング セッションを乗っ取ったり、コンピューターにソフトウェアをダウンロードしたり、トランザクションを実行したりします (Web メールを攻撃者に転送するなど)。

2つ目のタイプのWeb攻撃は、システム全体を標的とします。このようなシステム攻撃は、ブラウザやプラグイン(QuickTimeやFlashなど)のセキュリティ上の欠陥を悪用してコンピュータを侵害します。これらの攻撃は、長年にわたりウイルス、ワーム、リモート攻撃を可能にしてきたバッファオーバーフローや脆弱性を悪用します。

両方の種類の攻撃から身を守り、万が一ハッキングされた場合でも被害を最小限に抑えるために、私は多層的な戦略を採用しています。まず、1Password (  ) を使ってパスワードを生成・保存します。(パスワードに関するその他のヒントについては、「パスワードに関するヒント」をご覧ください。)さらに、複数のブラウザやオペレーティングシステムを組み合わせた階層型システムも活用し、可能な限り安全を確保しています。私と同じようなサイトにアクセスしない方でも、これらの予防策のいくつかは役立つかもしれません。

複数のブラウザ

私の第一の防御策は、アクティビティごとに異なるウェブブラウザを使うことです。そうすれば、たとえ攻撃者が私がログインしているウェブフォーラムに侵入したとしても、オンラインバンキングには別のブラウザを使用しているため、そこからアクセスして攻撃することはできません。また、Facebookには専用のブラウザを使用しているため、最新のXSS Facebookワームがそこから抜け出してAmazonやウェブメールのアカウントにアクセスすることもできません。

 私の主なブラウザは、NoScript および Adblock Plus プラグインが設定されたFirefox 3.5 ( ) です。

ノースクリプト
NoScript Firefox プラグインを使用すると、Web ベースのスクリプトを細かく制御できます。

NoScriptはデフォルトで、Java、JavaScript、Flash、その他攻撃によく使われる動的コンテンツを無効化します。きめ細かな制御が可能なので、特定のサイトやページでスクリプトを恒久的または一時的に有効化できます。スクリプトやプラグインを実行しないブラウザを攻撃することはほぼ不可能なので、誤って悪意のあるコンテンツを許可しない限り、NoScriptは非常に効果的です。

Adblock Plusは、既知の広告サイトやスパイウェアサイトのブラックリストを使用して、それらのサイトからのコンテンツを自動的にブロックします。私は、うっかりして許可すべきでないスクリプトを許可してしまった場合に備えて、NoScriptのバックアップとしてAdblock Plusを使用しています。悪意のある人物は、悪意のある行為を拡散するために広告バナーやトラッカーを利用するケースが増えています。Adblock Plusは、私にとってちょっとした安心感を与えてくれます。

これら 2 つのプラグインに加えて、Firefox にパスワードを保存しないように指示します (設定 -> セキュリティ)。そのためには 1Password を使用します。

Firefoxは一般的なブラウジングやAmazonなどのコマースサイトでは使用していますが、非常に機密性の高い個人情報(銀行など)を入力する必要があるサイトや、非常に危険だと分かっているサイトでは使用していません。そのようなサイトでは、以下に概説するより厳格な対策を講じています。

SafariはFirefoxよりもロックダウンしにくいので、Wikipedia、Pandora、Appleなど、機密性もリスクもないサイトに使用しています。これらのサイトは頻繁にアクセスするサイトで、NoScriptの例外設定を管理する手間がかからないか、FirefoxよりもSafariの方が快適に動作する傾向があります。「環境設定」→「一般」で「ダウンロード後に安全なファイルを開く」を無効にしています。「環境設定」→「自動入力」で「ユーザー名とパスワード」を無効にしています。

デフォルトでは、Firefox と Safari はどちらも公開ブラックリストを使用して既知の詐欺サイトを識別しようとします。(Firefox の場合は「環境設定」→「セキュリティ」→「報告された攻撃サイトをブロック」、Safari の場合は「環境設定」→「セキュリティ」→「詐欺サイトへのアクセス時に警告」) 私はこれらの設定を有効のままにしています。

私はRSSフィードリーダーとしてNetNewsWireを使っています。「環境設定」→「ブラウズ」→「Webページ」パネルで、すべてのプラグインを無効にしています。これは、RSSフィード経由で悪意のあるコード(バッファオーバーフローを含むビデオファイルなど)が送信されるのを防ぐためです。

専用ブラウザ

Firefox と Safari は一般的なブラウジングには適していますが、より強力な保護が必要な場合は、専用のブラウザまたはサイト固有のブラウザ (SSB) を使用します。

「専用ブラウザ」とは、特定のサイトのみに使う通常のウェブブラウザのことです。私の場合は、 会社のウェブサイトとブログの管理にOmniWeb( )を使用しています。

オムニウェブのルール
OmniWeb を使用すると、ブラウザがアクセスできるサイトとアクセスできないサイトに関する高度なルールを作成できます。

OmniWeb でルールを設定して、企業ドメイン外のサイトにアクセスできないようにしました。「環境設定」→「広告ブロック」で「ブロックするURLリストを編集」をクリックしました。上部のブロックサイト一覧ウィンドウに、/*すべてのウェブサイトをブロックするルールを追加しました。下部の信頼済みサイトウィンドウ(ブロックサイトリストを上書きする)には、securosis.com自分のサイトからのアクセスをすべて許可するルールを追加しました。これらのウィンドウは複雑な正規表現をサポートしているので、かなり高度なルールを作成できます。

全く信頼できないサイトには、SSB(セキュリティコード)を使います。例えば、先ほども述べたように、Facebookには警戒しているので、SSBを使ってアクセスしています。

SSBとは、基本的に数クリックで自分で作成できる、簡素化されたWebブラウザです。私はFirefox用のPrismアドオンを使ってSSBを作成しました。(「ツール」→「アドオン」→「アドオンを入手」で「」を検索してPrismインストールしてください。)Prismをインストールしたら、そのサイトにアクセスし、「ツール」→「Webサイトをアプリケーションに変換」を選択します。

専用ブラウザとは異なり、SSB では他のウェブサイトを閲覧できます。しかし、SSB は完全に独立したプロセスであるため、Little Snitch (  ) アウトバウンドファイアウォールを使用して Web アクセスを制限できます。SSB が攻撃されても、SSB 以外のブラウザにアクセスしたり、閲覧履歴を盗んだりすることはできません。

複数のオペレーティング システム

極めてリスクの高いサイトや機密性の高いサイトでは、VMware Fusion (  ) または Parallels (  ) を使用して仮想マシン (VM) を使用し、Web アクティビティをさらに分離します。

例えば、私は銀行取引はすべて専用の仮想マシンで行っており、Windows 7の最新リリース候補版でMicrosoft Internet Explorer 8を使用しています。Windows 7上のIE8は非常に安全です。特に、銀行以外のウェブサイトを閲覧するためにIE8を使用することはなく、また、メールやその他のインターネットアクティビティにも仮想マシンを使用していないからです。これにより、あらゆるブラウザ攻撃の可能性を排除できます(銀行自体が侵害されない限り)。攻撃者が私の銀行情報を入手するには、Macを完全に乗っ取る必要があります。

インコグニート Linux ライブ CD
安全なブラウジングを実現するために、ライブ CD とは異なるオペレーティング システム (シークレット モードなど) でブラウザを実行します。

ブラウジングのセキュリティを最大限に高めるため、VMでIncognito LinuxライブCDを使用しています。ライブCDには起動可能なオペレーティングシステムが含まれており、ハードディスクに何もインストールすることなく、光学ドライブからOSを実行できます。Incognitoは他のプライバシー強化機能も備えているため気に入っていますが、Webブラウザが動作するライブCDであればどれでも使えます。

CDは読み取り専用なので、VMはすべてメモリ内で実行され、ローカルファイルシステム(仮想メモリを除く)にはアクセスしません。攻撃者はVMを完全に侵害して制御できますが、システム上の他の部分にはアクセスできません。VMの状態はディスクに保存されないため、VMをシャットダウンして再起動するだけで、元のクリーンなイメージに戻ります。

確かに、私が選んだ職業は、平均的なユーザーにとって精神的に健全な範囲を超え、少々偏執的なところがあります。それでも、これらのテクニックはセキュリティを気にする人にとっては重要です。少なくとも、専用のパスワード管理、銀行取引用のWebブラウザまたはSSB、そしてインターネットのダークゾーンに時折アクセスするためのVMの使用をお勧めします。

リッチ・モーグルは17年間セキュリティ業界で働いています。TidBitsに記事を執筆し、 Securosis.comでセキュリティアナリストとして活動しています