アンチウイルスが機能するWSLとKali Linux
WindowsでLinuxを実行する機能であるWSL (Windows Subsystem for Linux)を巡る活発な取り組みが続いている。直近の話題として挙げられるのは、「WSL-DistroLauncher」だろう。
先日、MicrosoftはLinuxディストリビューションをMicrosoft Storeに登録できるようにするためのパッケージサンプルであるWSL-DistroLauncherをオープンソースソフトウェアとして公開した。これを使うことでLinuxディストリビューションをWindowsへ導入しやすくなる。Microsoft StoreからインストールできるLinuxディストリビューションの数は今後さらに増えることになりそうだ。
現段階ではMicrosoft Storeに「Ubuntu」「openSUSE Leap」「SUSE Linux Enterprise Server」「Kali Linux」「Debian GNU/Linux」という5つのLinuxディストリビューションが登録されている。シェアを考えると、日本では特にUbuntuが存在している点が大きい。そしてもう1つ、あまり知られていないディストリビューションかと思うが、「Kali Linux」が登録されている点に注目しておきたい。
Kali Linuxはソフトウェアセキュリティに特化したディストリビューションで、サイバー攻撃の分析や研究、または模擬的な攻撃の実施や、セキュリティに関する分析・研究などを行いたい場合に有用だ。このディストリビューションがWindowsで利用できるようになったことには、大きな意味がある。ソケットの機能が一部利用できないなど不満な点も残るが、現状導入するには十分な状態だ。
とは言え、ここで1つ問題がある。Kali Linuxでは、セキュリティソフトウェアによってマルウェアに分類されることのあるファイルもインストールできる。これはほかのLinuxディストリビューションでも同様なのだが、Kali Linuxは目的がセキュリティにあるだけにほかのディストリビューションよりも状況は深刻だ。WSLはファイルシステムがWindowsと透過な関係にあるため、Kali Linuxでそうしたパッケージをインストールすると、Windowsのセキュリティソフトウェアがそのファイルをマルウェアとして認識し、駆除してしまうのである。これではKali Linuxの特徴となるツールを満足にインストールすることもできない。
Kali Linuxのフォルダをスキャンの除外対象とする
実際に作業をしてみるとわかりやすい。例えば、次のようにKali Linuxから「webshells」のインストールを実施する。「sudo apt install webshells」でいけるだろう。
そうすると、WSLではなくWindows 10で動作しているWindows Defenderが展開されたファイルをマルウェアとして認識し、駆除作業を開始してしまう。
結果として、Kali Linuxにおけるwebshellsのインストールは次のように失敗してしまう。
こうなってしまうと、Kali Linuxはあまり使い物にならない。WSLでKali Linuxを使うのであれば、セキュリティソフトウェアに対してKali Linuxのインストールフォルダをスキャンの対象から除外するように設定する必要がある。
例えば、Windows Defenderでは先ほど検出したファイルが次のように認識されている。
このファイルの詳細を表示させてみると、Windows側からどのパスで認識されているかを確認できる。
マルウェアとして認識されないようにするには、Kali Linuxがインストールされているフォルダのトップフォルダ以下をすべてスキャンの対象から外すのが最も簡単だ。それにはまず、次のように表示したパスの「LocalState」より上のフォルダパスを選択してコピーする。
なお、こうした作業の合間には、次のように警告ダイアログが表示される。特定のフォルダ以下をスキャンの対象から外すということは、それだけチェックの目が粗くなることを意味する。もしその警告の意味がわからないのであれば、この設定はしないでほうがよいだろう。Kali Linuxでいろいろ作業するのは、ある程度のLinuxスキルを持ったユーザー向けだ。
Windows Defenderのスキャン除外は「設定」から「ウイルスと脅威の防止」→「除外」→「除外の追加または削除」から行う。ここで先ほどコピーしたパスを入力して設定を行う。
設定が完了したら一旦webshellsをアンインストールして、環境をクリーンナップする。
場合によっては削除できないファイルなどができてしまうことがあるので、ここで一旦Kali Linuxを終了する。Windows側から削除できなくなっていたファイルを特定して削除するといった処理を行う。
この状態でKali Linuxを起動してwebshellsをインストールしてみよう。今度は問題が発生することなくインストールできるはずだ。
WSLの提供している機能は完璧ではない。先述のように、ソケット関係の機能はまだ足りないものがあるし、LinuxとWindowsとのファイルシステムのやり取りにはまだ改善の余地が多いようにも思う。しかし、現状でここまでできていることは素晴らしいと言える。
Kali Linuxはセキュリティ目的のディストリビューションであるため特殊なケースだが、逆に言えば「WSLで使うLinuxにはWindows Defenderのアンチウイルス機能を適用することができる」とも考えられる。そうした意味でセキュリティ的には好ましいと言えるだろう。
WSLを巡る最近の動きはますます面白くなってきている。「Linuxを使うならWindows 10」という、これまでの状況で考えれば不思議な言葉が、今後のスタンダードになっていく可能性がある。WSLからは当面、目が離せない。