Windowsのセキュリティとプライバシーを強化する

前回(8ヶ月前・・・・もっとちゃんと書かないとな。)、Windows OEMの初期化について書きました。

今回、初期化したWindowsのセキュリティとプライバシーをできるだけ強化します。これでAPT攻撃から身を守れると全く思いませんが、一般的な攻撃とプライバシー侵害を和らげるでしょう。‌‌うちに試せる環境は Windows 8 しかありませんが、他のバージョンで大きく変わらないと思います。

前回も書きましたが、下記の手順を行う前に必ずバックアップを取得してそのバックアップを確認しましょう。手順はそこまで難しくありませんが、間違うとちゃんと動作しなくなる可能性があります。自分のパソコンの動作がおかしくなったら僕は責任を一切負いませんよ。

BIOS(UEFI)の更新と設定

まず、BIOS(実はUEFI)を更新しましょう。当Lenovoはもう最新版でしたので飛ばしました。

BIOS/UEFIの更新は割と簡単です。パソコンのメーカーのサイトよりダウンロードして説明書に従ってインストールします。

設定に関して、下記をおすすめします(パソコンによって全てあると限らない)。

  • BIOS/UEFIのパスワード(最低限な設定)
  • 起動の順番はUEFIを優先する。UEFI HDDの他に全部無効化してもよい(使う予定なければ)
  • もしその設定がある場合、TPMとSecure Bootを必ず有効化する
  • DMA攻撃を防ぐため、FireWireとExpressCard/PCMCIAを使わなければ、無効化しよう(基本、使わないものは全部無効化する)
  • システムとHDDにパスワードをつけることもできる。起動時に毎回聞かれるので多少面倒だが、(後ほど説明する)Windows BitLocker ドライブ暗号化を使えない人ならつけた方が良い。BitLockerが使える人なら必要不可欠ではない。
  • マイクとウェブカメラを使わない場合、無効化しても良い(最低限カメラにシールを貼った方が良い)

OSの設定

さて、Windows OSの設定について入りましょう。

まず、日常使っているアカウントが管理者アカウントであれば、ぜひ管理者ではないユーザーを作成して、そのアカウントを日常に使うようにしてください。何かのアクションを起こす際、管理者アカウントの名前とパスワードを求められてうざいと思うかもしれませんが、万が一マルウェアに感染されたら、そのマルウェアに管理権限が付与されません(もちろん、マルウェアに騙されて権限を自ら付与しない限りという前提でね)。

ユーザーアカウント制御(UAC)について

インターネットでユーザーアカウント制御(UAC)を検索すれば、ほとんどのリンクは無効化する方法を教えてくれます。それは軽率で無責任です。UACはWindowsにおいてクリティカルなセキュリティ機能である。絶対に無効化しないでください。

逆に、UACは「常に通知する」設定にしてください。

Raymond Chen氏、Microsoftのセニアプログラマーを引用します

UACには頻度を指定できる管理画面があります。 4つのレベルのいずれかを設定できます。

  • 常に通知する‌‌
  • アプリが設定を変更しようとしたときにのみ通知し、セキュアデスクトップを使用する‌‌
  • アプリが設定を変更しようとしたときにのみ通知し、セキュアデスクトップを使用しない‌‌
  • 通知しない

4つの設定があるように見えますが、理論的には2つの設定しかありません。

  • 常に通知する
  • ふーん

Microsoftのサポートセンターに従ってUACを「常に通知する」に変更してください。

Windows UAC

Microsoftサポートと違って、我々は一番上の「常に通知する」に設定したい。(ソース

ドライブ暗号化について

Windows 7か8以降から、BitLockerドライブ暗号化という機能があります。第三者暗号化ソフト(VeraCryptとか)と違って、UEFI > Windows Bootloader > BitLockerという「信頼の連鎖」を破れません。この信頼の連鎖はbootkitといったルートキットの種類を防ぐことができます。

TPMセキュリティチップが搭載されていないパソコンはこちらの手順を確認してください。パスワードでドライブを解除するか、セキュリティキー(USB)で解除するか、両方かは自分で決めてください。

ファイアウォール

標準で、Windows Firewall(Windows 10以降はWindows Defender Firewallという)が搭載されています。十分機能しているため、ほとんどの人は変える必要がありませんが、より細かく設定したければ、下記の中から一つインストールしても良いです(同時にインストールしないでください)。

GlassWireはより細かく設定できるし、UIがとても綺麗です。初心者におすすめです。有料版は悪魔の双子攻撃(イビルツイン)を検出してくれる機能があって、よくカフェで仕事したり、無料WiFiに接続したりする人は検討した方が良いです。

Glasswire

綺麗でしょ?(ソース

Chocolateyを使う人は下記のコマンドでどちらかをインストールできます。

choco install glasswire
choco install simplewall

Hosts

Hostsファイルを編集して、既知の悪いドメインや接続解除したいドメインをブロックします。

Hostsファイルを提供するサイトは様々です。詐欺もありますのでご注意ください。僕はSteven BlackさんのHostsを使います。他のリストに比べて誤判定が少ないと感じました。ただ、日本語のサイトが少ないので、必要に応じて別のリストを追加するとよいでしょう。LinuxとmacOSの場合、Pythonスクリプトを実行して終わりですが、Windowsの場合は用意してあるバッチファイルを実行する必要があります(どっちみち、Pythonのインストールが必要です)。

上記URLのリポジトリをダウンロードの上、メモ帳などで .bat ファイルを開きます。24行目にオプションを指定します。例えば僕は次の拡張機能を使います。

:: Update hosts file
python updateHostsFile.py -a -e fakenews gambling porn
macOSで問題なく実行できましたが、Windowsの場合、僕はこのスクリプトを実行したら、DNS cacheサービスが事故ってインターネットに接続 できなくなりました。スクリプトを実行する前にDNS cacheを無効化しても事故りました。最終的にhostsのバックアップを戻して違うやり方でドメインをブロックしました(後ほど説明します)。その場合、バッチファイルの27行目をコメントアウト(::を行の始まりに追加)してとりあえずディレクトリ内のhostsのみ更新します。

DNSCryptで発信DNS通信を暗号化・認証する

私はFrank DenisさんのDNSCrypt-Proxyを使用しています。コマンドラインのツールでありながらとても使いやすいです。説明書を見ながらインストールしてください(英語しかありませんが、そんなに難しくありません)。

GUI(グラフィカルユーザインターフェース)の方が操作しやすいと思う人はSimple DNSCryptをインストールしてください。

鋭敏な読者はDNSCrypt-Proxyのブラックリストについて気づいたでしょう。先ほど作ったHostsリストをそこにコピペしましょう(頭にある 127.0.0.1 などはもちろんブラックリストに入れません)。

Acrylic DNS Proxy

必須ではありませんが、ブラウジングを高速するため、Acrylic DNS Proxyの導入もご検討ください。

AcrylicはDNSレスポンスをキャッシュしたり、不要なドメインへの接続を解除します。DNSをキャッシュすることで、アップストリームのDNSサーバが落ちたり、改ざんされたりしても改ざんされたレスポンスを受け取らないため、セキュリティのためでもあります。また、DNSCryptと組み合わせて使えます。

Acrylicもドメインブロック機能があります。

ブロックしたいドメインはHostsでブロックするか、DNSCrypt-Proxyでブロックするか、Acrylicでブロックするかという(贅沢な)悩みがあります。実際にベンチマークしたことがないため、なんとも言えませんが、一番上(アップストリーム)であればあるほど速いかと直感的に思います。わからない場合は全てのブロックリストを活用して間違いないと思います。なお、AcrylicとDNSCrypt-ProxyはHostsと違って、ドメインごとではなく、ワイルドカードや正規表現でブロックすることも可能ですのでより柔軟に使えるかと思います。

Privoxy

ウェブブラウジングの通信をフィルタリングするため、Privoxyの導入を検討ください。

choco install privoxy

Privoxyの既存設定は、localhost:8118 です。

Startメニューを開いてプロキシを検索してEnterを押します。 プロキシのアドレスに127.0.0.1、ポートに8118と入力して保存。

下記のアドレスをアクセスして、問題がないか確認してください。

http://p.p/

Privoxyの既存ルールは悪くありませんが、configuser.actionファイルを使ってより詳細に設定することができます。

リクエスト切断の転送機能で、広告画像を子猫の画像に置き換えることができます。

WindowsストアとWindowsアップデートはプロキシー設定を適用できません。プロキシーを設定すると、Windowsストアのアップとアップデートがで使えなくなる可能性があります。後者は特に問題ですので、プロキシー設定の詳細画面にて、下記のサイトを例外に追記してください。 login.live.com, account.live.com, clientconfig.passport.net, wustat.windows.com, *.windowsupdate.com, *.wns.windows.com, *.hotmail.com, *.outlook.com, *.microsoft.com, *.msftncsi.com/ncsi.txt

ブラウザー

ウェブブラウザーはパソコンにおいて一番大きなプライバシーとセキュリティのリスクです。ブラウザーの根本的な仕事はインターネットから信頼できないコードをダウンロードして、パソコンに実行することです。これは重要なステートメントです。

幸いなことに、代表的なブラウザーはお見事のセキュリティ機能を標準搭載。特に、ブラウザーのセキュリティの礎は同一生成元ポリシー(SOP)です。SOPが妥協されたら、ブラウザ事態のセキュリティを信頼できなくなります。

なお、ブラウザの選択にも関わらず、なによりユーザーのセキュリティハイジーン(衛生)が最重要です。ほとんどの攻撃はソフトウェアではなく、ソーシャルエンジニアリングを標的にしています。

一番良いアドバイスは、クリックするリンクを常に疑って、訪れるサイトに何かのソフトウェアをダウンロードしてインストールするといわれたら、ほぼ100%の確立でこのソフトウェアは怪しい(つまり、マルウェア)です。

他に注目しなければならないのはウェブブラザの拡張機能です。一方、名前通りにブラウザの機能を拡張できますが、片方ブラウザの攻撃対象領域を広げてしまいます。拡張機能をインストールする前に十分に検討してください。また、インターネットで検索して、よく信頼されていそうな拡張機能のみをインストールして、拡張機能の数を最大限に抑えましょう。

また、リスク軽減のため、ブラウザを複数ダウンロードして使い分けることをお勧めします。

使い分けは自分の脅威モデルに左右されるので、そのままコピペせず、自分に合った区分を考えてください。

一般的な使い分け方を次の項目で指定できます。

  • プライバシー重視
  • セキュリティ重視
  • 匿名性重視

Firefox

Firefox ホームページ

Mozilla Firefox のダウンロードページ

Mozilla Firefox はオープンソースでプライバシーを最重視するブラウザです。2017年末、Mozilla は Quantum アップデートという大幅な更新を行い、部分的に旧 Firefox のコード(C++)を Rust で書き換えました。 既存設定でセキュリティとプライバシー保護が十分ですが、一層細かく設定したい人は設定ファイル(user.js)を実装することができます。 Firefox は同期アカウントがあり、パソコンとスマホの設定や閲覧履歴をシェアすることができる。

Firefoxの拡張機能

プライバシーとセキュリティを一層強化するため、下記の拡張機能をご検討ください。

  • uBlock Origin 負荷の少ない「広域スペクトルブロッカー」。広告だけではなく、不要なリソース(Webフォント、サードパーティーリソース等)をブロックすることができる。
    uBlock Origin を名乗った偽物の拡張機能がいっぱいあります。gorhill さんのものであることを確認してください。
  • Cookie AutoDelete タブを閉じたら、そのタブのクッキーを自動的に削除してくれる拡張機能。ホワイトリストに基づいてよく使うサイトのクッキーを削除しないように設定できる。
  • HTTPS Everywhere 代表的なサイトをHTTPS(暗号化)URLに自動転送。自分のルールを作成することも可能。
  • Decentraleyes CDNからダウンロードするリソースを遮断し、ローカルから同じリソースを配信する。

Firefoxの拡張機能(専門家向け)

多くのサイトは既存設定で動かないため、ある程度知識がある人向けの拡張機能です。

  • NoScript JavaScriptを無効化する拡張機能。ホワイトリストに基づいて特定のサイトのみ有効化できる。
  • uMatrix 「ブラウザのファイヤーウォール」と言えます。既存でサードパーティーリソース(スクリプト、画像、クッキーを含め)をブロックして、ファーストパーティーリソースのみを許可する。

その他の拡張機能

先ほども書きましたが、拡張機能は慎重に検討すべきです。 また、Adobe Flash、Oracle Java、Adobe Reader、Microsoft Silverlightはセキュリティのリスクで、インストールしてはいけません。ほとんどのサイトはHTML5で動くため、以上の拡張機能は不要なはず。

どうしても必要な場合は使い捨てのバーチャルマシン(仮想環境)でインストールして起動しましょう。

Firefoxのフォークについて

ここで Firefox のフォークと指すのは主にWaterfox、Pale MoonとBasiliskを指します。

好みによって Firefox よりフォークを選人がいます。誠心誠意で開発されていますが、人材リソースによって、Firefoxがセキュリティアップデートを公開してから数週間フォークに適用されない場合があります。フォークを使いたい場合はその点をご留意ください。

約2週間前、Pale Moon のアーカイブサーバが18ヶ月前から感染され、実行ファイルにトロイの木馬・ウィルスドロッパーが含まれていたことが分かりました。

Brave

Brave は Chromium ベースのプライバシー重視ブラウザーです。Firefox ほど細かく設定はできませんが、プラグアンドプレイ(インストールして設定せずすぐに使える状態)のため、設定に時間を割けたくない人におすすめできます。

既存で uBlock Origin と HTTPS Everywhere 拡張機能が実装されています。

Tor Browser

TorはTCP/IPにおける接続経路の匿名化を実現するための規格です。Tor BrowserはTorのパワーを実現するブラウザである。Tor BrowserはFirefox ESRベースで開発されています。 匿名化が必要なタスク(弁護士や医師が患者について調べたり、記者が取材を行ったりする、等)のために使えます。但し、Tor Browserを使うだけで自分の匿名性が守られていると限りません。Tor Browserは専門家向け。

なお、Firefox ESRをベースにするため、FirefoxフォークのようにセキュリティアップデートがTor Browserまで流れるまで多少時間がかかる場合があります。その点をご留意ください。

上記のブラウザは全部 Chocolatey でインストールできます。

ウィルスとマルウェア

Windows オペラティングシステムのシェアが一番高いため、マルウェアの数がとても多いです。

Windows 7まで、アンチウィルスをインストールして実行することが一般的でしたが、近年(Windows 10)の標準搭載のWindows Defenderはとても良いツールになり、もっとも良いアンチウィラスと言っても過言ではありません。ほとんどの人にこれで十分です。最新版でないアンチウィラスは無能のため、素早く更新することをご確認ください。

感染していると思う場合、もう遅いのでパソコンを初期化した方が良いですが、念のため AdwCleaner を実行してみても良いです。

また、 Malwarebytes Anti-Malware は Windows Defender と相互性がよくて様々なジャンクウェアを見つけてくれます。油断して間違ったところから怪しいソフトをインストールしてしまうことがある人は有料版を検討しても良いと思います。

終わりに

今回はソフトウェアとパソコンの設定を中心にセキュリティとプライバシー保護を強化する方法を紹介しました。

しかし、セキュリティとプライバシーをを守るため、ソフトウェアというより、ユーザの注意と知識がなによる重要です。メールの添付ファイル、メール内や掲示板などのフィッシングリンクとダウンロード・実行するソフトウェアのことを意識すれば、大多数の攻撃と感染を防げます。

プライバシーはもっとトリッキーです。Windows 10 はよく phoning home (メーカーのサーバを通信する行為)をするし、そもそもプライバシー重視に向いていません。ただ、使わなければならない時にある程度保護ができるのは何もないより良いです。

また、現代の最大のプライバシー侵害はモダーンなウェブサイトです。それらのトラッキング(追跡)機能と邪魔なインターネット広告をブロックすることで、自分の身を守る上で、社会的行為と言っても過言ではありません。最低限に上記を実施すれば、9割の脅威を防ぐことができます。