かつてアメリカのCIA職員で、機密情報を持ち出して全世界に公開したエドワード・スノーデンさんが推していたセキュアOS、QubesOSの導入方法を説明してみたいと思います。
まず動かすのに必要なハードウェアを用意する
こちらに、有志の方々がQubesOSとハードウェアの適合試験をした際のリストが載っています。できたら全てグリーンのハードウェアを用意するのが望ましいのですが、私はAsrockのB450 Pro4と、AMD Ryzen 3700X、メモリも128GB用意して臨みました。小型PCのHP 8200 Elite SFF i5を中古で購入して導入してもいたのですが、スペックが低いことと、ファン音が非常に大きすぎたために使うのはやめてしまいました。
マザーボードやCPU、メモリはよほどのことがない限り壊れることはないので、メルカリの中古品を購入しても大丈夫だと思います。CPUのRyzen3700Xは、メルカリで中古品を購入して取り付けました。
インストールメディアをダウンロード
こちらの、Qubes release 4.2.1をのisoファイルを、Qubes-R4.2.1-x86_64.isoをダウンロードしましょう。RC版というテストリリース版をインストールすることもできますが、安定版の方が良いと思います。
全て英語のページですので、できたらDeepLやChatGPTを使用して英文をコピペして日本語に訳してもらいましょう。DeepLは課金すればChromeの拡張機能でブラウザを移動しなくても翻訳できますが、無料のChatGPTでも十分翻訳してくれます。個人的には、GoogleのBardの次のGeminiに翻訳してもらうのが良いと思います。
USBメディアに書き込みする
こちらにインストールガイドが載っています。
Windows ISOからUSBへ
Windows上では、Rufusツールを使用してISOをUSBキーに書き込むことができます。QubesのISOを選択し、Rufusのメインウィンドウで “START “を押した後、必ず “DDイメージモードで書き込む “を選択してください。
注意:Rufus を使用してインストールメディアを作成する場合、以下の例にある “Test this media and install Qubes OS” オプションを選択することはできません。代わりに “Install Qubes OS “オプションを選択してください。
画像つきの説明が下のあたりにありますので、画像の通りに、「必ずDDイメージモード」でUSBインストールディスクを作成してください。私はここを適当にやって、3時間ぐらい時間を無駄にしてしまいました。。
QubesOSをインストールする
BIOS画面(Delキーでだいたい入れます)で起動するメディアの優先順位をUSBメモリに指定して、再起動するとUSBから読み込みがされ、QubesOSのインストール画面に移行します。
インストールガイドの通りに進めていきます。基本的にはWindowsの設定と同じで、住んでいる国の選択、Diskそのもののパスワードの設定(これは紛失してはいけないです)と、QubesOSを使用する人のユーザーID/Passの設定をします。その後にDebianやFedoraのテンプレートVM(OSの雛形)を最初に導入するかどうかの画面がありますが、Templates Configurationのところ、DefaultではFedoraが選択されていますが、私はDebianの方が使いやすかったこともあり、Debianに変更しています。
Automatically Accept USB mice、とKeyboardのところはチェックボックスを入れて、自動で認識がされるようにしました。おそらく、起動している状態で他のキーボードを接続されるのを防ぐためにチェックボックスを外した状態でいるのだと思います。ここは、多少のリスクがあっても利便性を取りました。
DisposableVMを作成する
画面左上の”Q”マーク→歯車アイコン→Qubes Tools→QubeManagerへいき、
Create a new qubeをクリック、
Name and labelは好きな名前を、
TypeはDisposableVM(fully volatile)に、
Templateはdefault-dvmに、
Networkingはdefault(sys-firewall)
にしてok、これで使い捨てのOSが作られ、再起動するたびにクリーンインストールされるように完全に初期化させることができます。
音を出すQubeを限定する
普段の調べものをしているuntrustedなどのQubeでは音を出すことはさせず、音を出してもいい、例えばYoutubeで音楽を聴きたい、ライブ配信の音を出したい使い捨てのDisposableVMでだけ音を出すようにします。
右上の音量マークを右クリック、プロパティを開いてオーディオミキサーを出します。するとこのような画面がでてきますが、例えばYoutubeONLYというDisposableVMを作ったとすると、その名前の音量だけつまみでONにして、他の全てのVMの音量をOFFにして、ミュート設定にします。
これで、普段の調べもののUntrustedのQubeがクラックされて可聴域外の音を出そうとされても音量が0なので攻撃経路を塞げますし、DisposableVMがクラックされてしまったとしても一時的に被害はでると思いますが、DisposableVMを再起動すれば全てまっさらな状態になり攻撃側はもう一度クラックをするという手間がかかることになります。こちらは1分で完全初期化ができる一方、攻撃側はその都度面倒な作業が必要になります。
攻撃側は、攻めても何も得られなかったり手間がかかる割に得られるものが少ないとなれば諦めて、他のところに目を向けますので、音声などの被害があった際に都度初期化することは相手への嫌がらせにもなります。また、DisposableVMのOSは、私の場合はDebian12を使用していますが、これは都度セキュリティの脆弱性へのパッチがあればアップデートできますので、
雛形のテンプレートVM(Debian12)でアップデートをかけて、
DisposableVMを再起動、
これでパッチの当たった新しいOSをすぐに用意できることになります。これがWindowsだと、クラックされている状態でいくらパッチを当てても無意味ですし、そもそもインターネットにつながってWIndowsUpdateを掛けている最中に攻撃が通ってしまうこともあるので、セキュリティ的には安心できないと私は思います。
あとは、テンプレートVMに初期設定を施して、DisposableVMを使いやすくします
DisposableVMには、雛形のテンプレートVMの状態をそのまま引き継いでOSを作り出します。テンプレートVMはネットに接続させずにアプリのインストールを
sudo apt install xxx
といった具合にできますので、Windowsのようにネットに接続している間にクラックされる心配がない…というわけです。ここのあたり、厳密にはapt installをしている時点でネットには接続されていると思うのですが、QubesOSのプロキシがこのあたり厳重に管理しているらしく、セキュリティは十分確保されていると言われています。
アプリは、テンプレートVMにapt install xxxでインストールをすると、DisposableVMでも使えるようになります。設定画面を開いてアプリを有効化すると、メニュー画面に出てきます。
YoutubeやTwitchのライブ配信ではCookieを用いた自動ログイン機能があり、これもDisposableVMに反映させることもできるのですが、こちらは端折っておこうと思います。私はCookieと拡張機能、ChromeやBraveのパスワードマネージャの内容だけ引き継ぎできるようにしています。
ALL DONE !
これで対応策は取れたと思います。もしわからないことや不明点があればコメント欄に書いていただけると都度調べて返信させていただきます。
コメント