2021-01-29

Linuxのsudoの脆弱性CVE-2021-3156への対応方法 - Windows 10 WSLの場合

Linuxコマンドで特権操作を行う場合によく使うsudoコマンドに脆弱性CVE-2021-3156が発見されました。
ITmediaの記事(sudoにパスワード不要で特権昇格が可能な脆弱性が見つかる 2021-01-28)と、JPCERTの記事(sudoの脆弱性(CVE-2021-3156)に関する注意喚起)に、情報が公開されています。

ほぼすべてのLinux系/UNIX系OSに影響があると思います。
macOSに関してはまだ情報が出ていないですが注意が必要と思います(macOSにはsudoeditコマンドがないので直接の影響が少ない可能性があります)。

JPCERTによると

% sudoedit -s /

のコマンドで簡易的に影響を調べることができるようです。
sudoedit: から始まるメッセージが表示されると問題があり、
usage: のメッセージが表示されると問題は対策済みです。

わたしも早速、自分のPCに対策をインストールしました。
Windows 10のWSL1 Ubuntuの場合の手順です(おそらくWSL2でも同じ)。

WSLを起動して
$ sudoedit -s /                    ##状態の確認
[sudo] password for xxxx:
sudoedit: /: not a regular file    ##問題があることが分かります
$
$ sudo apt-get install sudo        ##インストール済みのsudoのバージョンを確認
Reading package lists... Done
Building dependency tree
Reading state information... Done
sudo is already the newest version (1.8.21p2-3ubuntu1.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$    ##WSL Ubuntu 18.04での対策済バージョンは1.8.21p2-3ubuntu1.4なので古いことが分かります
$    ##以下、対策のインストール方法
$
$ sudo apt-get update              ##レポジトリ情報の最新化
$ sudo apt-get upgrade sudo        ##sudoのバージョンアップ
$
$ sudoedit -s /                    ##対策結果の確認        
usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...
$                                  ##OK
$

まだ実際の攻撃は検知されていないようですが、早めの対策が必須です。

[2021-02-02] 問題はsudoeditに限定されるようです(参考記事:GIGAZINE - 「sudo」コマンドに特権昇格の脆弱性、各ディストリビューションの対応一覧)。

2021-01-27

macOSの写真アプリ(Photos.app)の非互換性にうんざりする

macOS 10.0 が誕生した時からずっと気に入って 写真アプリ (Photos.app、以前はiPhoto) を使っています。
Appleらしい使いやすさは昔から変わりません。

しかしながら、このApple Siliconの世代になって、どうしても受け入れ難い問題にぶつかってしまいました。
macOSのバージョンが違うと、写真アプリが全く互換性がないのです。
私はMac mini 2012とApple Silicon MacBook Airを主に使っているのですが、古い方のMacはBig Surに対応しません。
写真は、Mac mini 2012でずっと管理してきて写真ライブラリは150GB以上になっています。
この機会にNASに移動して、2台のMacのどちらからでも使えるようにしようと考えていました。
さすがにネットワーク経由だとコピーに24時間以上かかるので、exFATにフォーマットしたUSB HDDに一旦コピーし、NASに移しました。
Big SurのMacの写真アプリでこの写真ライブラリを開くと、ライブラリの変換・修復が行われ、一呼吸の遅れはあるものの、NASに置いた写真ライブラリがきちんと使えるようになりました。
次に、CatalinaのMacの写真アプリで開こうとするとエラーになってしまい、脆くも私の計画は崩れ去ってしまいました。
写真ライブラリは同じバージョンのmacOSの間でしか共有できないのです。

次善策をいろいろ考えましたが、どれもしっくりとこず、釈然としません。

  • 古いMac miniは捨てて、新しいMacだけの運用にする。
    私のApple Silicon MacBook Airの内蔵SSDは500GBです。150GBの写真ライブラリは置けないことはないですが、途端に窮屈になってしまいます。もっと大容量にしておけばよかったのかもしれませんが、写真ライブラリは長期保存が重要なので内蔵SSDに置くのはちょっと違う気がします。もしかしてMacは1台運用が良いのでしょうか。
  • iCloudを経由すればバージョン違いのmacOSの間でも写真ライブラリが共有できる。
    iCloudは無料枠で使っているのでこの案はダメです。
  • Mac miniを新しくしてしまう。
    最新OSが動かなくなったマシンはどんどん新陳代謝のように入れ替えていく方針にすれば、実は一番悩みが少なくて済むのかもしれません。Apple SiliconのMac miniはIntel Mac miniに比べて発熱が圧倒的に少ないので、連続運転させておくのにも適していると言えます。しかしながら今の時点ではあまりにももったいない使い方という感覚が強くて踏み切れません。
  • 写真の管理をNASのアプリに移してしまう。
    これをやってしまうと、macOSの使いやすい写真アプリを捨てることになります。
  • 古いMac miniはそのままで、そこでは写真アプリだけは使わないことにする。
    共有したかったので、元も子もないですが、致し方ないのかもしれません。

そういえばiPhoneとiPadの写真もなんとかしないといけないです(今まではもっぱらMac miniに吸い上げて蓄積してきました。NASのアプリ管理にすれば親和性が良さそうですが、上に書いたようにmacOS側の写真アプリが使えなくなります)。
なかなか悩みが尽きません。

2021-01-16

Intel/Arm64 WindowsやLinuxをApple Silicon Macで簡単に実行出来るUTM appの一般公開が始まりました

先日ご紹介した、UTM appのwebサイトが https://mac.getutm.app/ に公開されました。
UTM appを使えば、簡単にIntel WindowsやArm64 WindowsやLinuxをApple Silicon Macで実行することができます。

私も書きましたが、Intel x86のOSの実行はArm64のOSを実行するのに比べてパフォーマンス的に不利と明記されています。

webサイトではUTM appのダウンロードリンクに加えて、設定済のゲストイメージや、OSの設定方法がGalleryページに公開されています。
Intel x86のUbuntuWindows XPWindows 7などをダウンロードしてすぐに試せるようになっています。
Arm64のUbuntuWindows 10 に関しては設定方法が記載されています。
他のArm64 Linuxは設定済のものも提供されているものもあります。

一点だけ注意点があって、現在バージョン(v2.0.17)では、ダウンロードしたイメージやISOファイルは ~/Library/Containers/com.utmapp.UTM/Data/Documents というフォルダに置く必要があります

[English version of this post]

2021-01-07

Apple Silicon MacのUTM appを使えばWindows for Intelが簡単に動く、そして熱い

macOS Big Sur 11ではRosetta 2によって、Intelコードで書かれた従来のMacアプリを、Apple Silicon上でスムーズに実行することができますが、あくまでMac用に書かれたアプリ限定です。
仮想化のためには、Hypervisor Frameworkと、Linux向けに簡易化したVirtualization Frameworkが提供されていますが、これらではIntel向けのOSを実行することはできません。
Arm用のWindowsはMicrosoft Surface Pro X向け限定でリリースされていますが、それ以外の環境での利用は現時点では(評価版以外は)許されていませんし、それ以前にArm向けのアプリはとても少ないです。

Windowsの主流はやはりIntel版(Wintelという言葉があるくらい)。
これをそのままApple Silicon Macで実行できないことには、ユーザにとってのメリットが少ないと思えます。

なぜか他ではまだなかなか紹介されていないのですが、iOS上でWindows XPを実行するという離れ技をやってのけたUTM appというアプリがあります。
このUTM appがApple Silicon Macにも対応(dmgがまさにmacOS用のインストーラ)しました。

右のスクリーンショットは、UTMを使って、Intel Windows とArm Windowsの両方を、Apple Silicon MacBook Airで実行したところです。
Intel WindowsもArm Windowsも評価版をダウンロードして、UTMで仮想ゲストを作成し、Cドライブとして設定して実行しました。

Arm Windowsはフルスピードで実行されます。
これはUTMが、内部的にHypervisor Frameworkを使って(実際にはQEMUがhvfに対応)ハードウェア仮想化技術を利用できているためです。
Arm Windowsの注意点は、起動ディスクのvhdはNVMeとして(おまじないとして)設定しないと起動しないこと、ネットワークはvirtio用ドライバを追加でインストールしないと通信できないこと、それ以外のデバイスもDevice ManagerでUnknownが多数残ってしまうことです。
画面サイズの変更もできません。
まだまだドライバ周りなどで未対応のものが残っているようです。

Intel Windowsを動かすと、UTMが内部のQEMU(Linux上で有名なCPUエミュレータ)を使って、Apple Silicon上でIntelコードをエミュレーションします。
そのため、パフォーマンスは1/4〜1/8程度、大昔のSoftPCやVirtual PCを見ている感じです。
ですが確かにIntel WindowsがApple Silicon Macで動きます。
vagrant用に設定済みのWindows 10イメージで試したこともあって(別記事に設定手順)、デバイスの認識は問題ありません。

ここで面白いのが、Intel Windows上で何かを動かしている最中は、Apple Siliconの8個のCPUコアがフル回転になって、なんとMacBook AirのF6キー辺りとその裏側が徐々に熱くなることです。
他のアプリで負荷をかけても、なかなかこういう状況を作り出すのは難しいのですが、WindowsのようなOSを丸ごとエミュレーションさせると、いくらApple Siliconといえどもフルパワーを発揮せざるるを得ない状況になるようです。
まさに『アツいぜ!Apple Silicon』です。

[English version of this post

[2021-01-08] タイトルを
「UTM appを使えば容易にIntel x86_64 WindowsやArm WindowsをApple Silicon M1 Macで実行でき、Apple Siliconがもっと熱くなる」
から
「Apple Silicon MacのUTM appを使えばWindows for Intelが簡単に動く、そして熱い」
に変えました。
[2021-01-10] Arm Windowsの動作上の制約について追記しました。
[2021-01-17] UTM appが専用webページで一般公開されて、すぐ使えるゲストイメージも公開されたので記事を書きました
[2021-03-04] UTM appが使用しているQEMUのIntelエミュレーションが、たとえ現在はM1 Macで実用的な速度を出せない状況だとしても、M1XまたはM2のApple Siliconなら馬力で解決できるはず、という記事を書きました
[2021-04-19] 有名なポッドキャスト「Appleるんるん」でこの記事が紹介されました、ありがとうございます。
お試しでIntel x86 Windows10をApple Silicon Macで実行する最短の手順を書きました
[2021-05-05] Intel x86 Windows 10をApple Silicon Macにインストールする手順を書きました
クリーンインストールすることでWindowsが以前よりも高速に動作しています。
[2022-01-08] UTM appでmacOSの仮想化ゲストも実行できるようになりました。