皆さんは普段どのような環境でブラウジングされてるのでしょうか。私の場合は基本的に、普段のブラウジングはVMwareに隔離したDebian上から行っています。別に何か国家機密を扱っているとか情報セキュリティにうるさい環境にいるわけでもありません。ただ、少しウェブを「汚染された環境」として見てみると、また新たな世界が見えてくるかもしれません。
◇ 安全な広告サーバーやウェブサイトにマルウェアの影?
実はこれ、誇大広告ではありません。誇張でもありません。少しウェブを汚染されたものとして見ると、全然変わった見方ができます。例えば「インターネット検索が汚染されていたら」というものです。普段ブラウザでインターネットに接続し、BingやYahoo、Googleで検索するだけで、様々な広告の配信サーバーに接続します。殆どは善良なものですが、もし例外が含まれていたらどうでしょう。2024年4月、Bingで実際に発生しました。「Bing検索から偽広告、NordVPNを装ったマルウェアに注意」。この事例はサイバー攻撃の一種で、VPNサービス「NordVPN」の公式配信を装って表示されました。調査によると、NordVPNがインストールされると同時に、バッググラウンドでコードインジェクションされ、システムが乗っ取られるというものでした。検索結果がそもそもウソというのもあながちウソではないことがわかります。
◇ VMwareで隔離して安全なブラウジングに
私が用いたのはVMwareでした。元々、ホスト側のWindowsもAppLockerを使ってPowerShell.exeやcscriptなどのコマンドをほぼ網羅するくらいに制限しています。また、一般ユーザーと管理者ユーザーは明示的に分離し、普段の操作は一般ユーザー、必要なときだけスーパーユーザー(管理者)にUACで権限上昇するという最小限の権限構成をしています。また、Exploit ProtectionでCFG,DEP,ASLRイメージランダム化,ボトムアップASLR,高エントロピASLR,SEHOP,ヒープ整合性検証,メモリ整合性,カーネルモード強制スタック,ローカルセキュリティ保護有効化のすべてをオンにした上で、UACは管理者ユーザーであってもパスワード入力が必須という構成です。
デバイスとセキュリティーコア分離のうち
├メモリ整合性オン
├カーネルモードハードウェ強制スタックオン
├メモリアクセス保護オン
├ローカルセキュリティ機関の保護オン
ウイルスと脅威の防止の設定
├リアルタイム保護オン
├開発者ドライブの保護オン
├クラウド提供の保護オン
├サンプルの自動送信オン
├改ざん防止オン
ランサムウェアの防止
├コントロールされたフォルダーアクセスオン
アプリとブラウザーコントロール
├スマートアプリコントロールオン
Exploit protection
├CFGオン
├DEPオン
├必須ASLRオン
├ボトムアップASLRオン
├高エンドロピASLRオン
├例外チェーンを検証するオン
└ヒープの整合性を検証するオン
これだけでもセキュリティ的には強固ですが、さらに環境を固めるべく検討に入ったのが、「ウェブを汚染されたものとみなす」、つまり「ホスト側にウイルスが到達しても霧散するが、ウイルスそのものを仮想環境で窒息させるべきである」という考えです。そこで検討に入ったのはHyper-VまたはVMwareの二択でした。
◇ 管理者権限必須のHyper-v、管理者権限不要のVMwareに軍配
当然ですが、Hyper-VはありとあらゆるOS層の仮想化支援機能を使います。そのため管理者権限が必須になる=管理者権限でソフトウェアが動くというリスクが伴います。「そこまで言ったら何もできない」というのは事実ですが、権限最小化の原則を破りたくなかったため、VMware(一般ユーザーでも動作可能)をインストールしました。肝心のOS選びは、debian、ubuntuと悩んだ果にdebianにしました(かなり軽い。ノートパソコンの8GBメモリでも十分動作する)。インストール方法は割愛します(VMwareのインストールは簡単です。公式サイトにサインアップしたら、フリーバージョンのWorkstationエディションをダウンロード、実行するのみの手軽さです)。

