ウェルスナビ開発者ブログ

WealthNaviの開発に関する記事を書いてます。

Nudge を用いた macOS のアップデート管理迅速化

 

はじめに

はじめまして。

普段は、社内IT・社内セキュリティ(いわゆる情シスやコーポレートIT)を担当している深田です。

2018年11月にウェルスナビに入社し、オフィス移転、上場対応、ゼロトラストセキュリティプロジェクト等を対応し現在に至ります。

本記事では、Nudge という Mac の画面上に「適用するべき macOS の新規バージョンが存在する」旨の通知を出してくれるアプリケーションを検証・実装した結果を記載します。

同じ課題を持たれる方の参考になれば幸いです。

実施の効果を知りたい方もいらっしゃると思うので結論から記載すると

 

弊社では劇的な効果がありました

 

末尾に詳細を記載しますが、バージョンアップの周知後一ヶ月以内に、Mac 貸与者のうちほとんどのユーザーが自主的にバージョンアップを実施してくれました。

 

ディスクレーマー(免責事項)

  • 記載された動作や機能、検証結果は当時のものとなりますのでご注意ください
  • 記事内に「動作しなかった・断念した」という表現がある場合がありますが、現在は解消していたり、いわゆる「おま環」(お前の環境(でだけ起きてる問題)というネットスラング)の可能性もありますのでご注意ください

 

対象読者

以下のような方を対象読者と想定して記載しています。

  • 組織で Mac を管理しており、macOS のマイナーバージョンアップの進捗管理に課題(社内展開に時間を要する、管理工数が肥大、等)を感じている
  • または、これから上記の課題が発生する可能性がある方

 

経緯

まずは、Nudge を実装するに至った経緯から。

弊社ではユーザーが自身で使う端末を Windows / Mac から選択できます。

その結果、弊社では執筆時点で Mac が約 120 台存在します。

macOS は月に一度程度のぺースで新規マイナーバージョンがリリースされ、弊社ではセキュリティ強化のため都度以下のような手順で社内に展開し、バージョンアップ状況を管理していました。

  1. 新規 macOS のマイナーバージョンがリリースされる
  2. 社内 Slack に新規 macOS バージョンの適用依頼を周知
  3. バージョンアップ状況を定期的にモニタリング
  4. 適用していないユーザーに都度連絡

周知後に即実施していただけるユーザーもいますが、業務上の理由や周知を見逃していた、後でやろうと思って忘れていたという理由から時間がかかる状況でした。

弊社ではオフィス環境/リモート環境のいずれにも不正アクセスに対する多層防御を実装していますが、新規 macOS には既存 macOS に存在する脆弱性の改善やバグ Fix などの改善が含まれており脆弱性の観点から考えるとなるべく早く適用したいものでした。

また、バージョンアップが完了されたかの確認や完了されていない場合の再周知の手間もかかっていました。

そのため、上記2点の改善を目標に「macOS バージョンアップ迅速化」というプロジェクトをスタートさせました。

またプロジェクトの方向性としては「Mac の画面上に何か通知を表示することでユーザーが気づいて対応してくれること」がより目的を達成できると想定し調査を開始しました。

 

前提・要件

macOS バージョンアップ迅速化」というプロジェクトがスタートした際の弊社環境の前提やどう実装したいかの要件を以下にまとめます。

  • 対象端末
  • 対象OS
  • 対象端末の管理環境
    • Jamf Pro
  • 理想とする迅速化の実装箇所
    • Mac を Jamf Pro で管理しているためなるべく Jamf Pro 上での実装とする
  • 理想とする迅速化の実装方法
    • MUST
      •  バージョンアップが必要な Mac 上にバージョンアップが必要な旨を通知できること
      • バージョンアップをユーザーが任意のタイミングで実施できること(もしくはバージョンアップの通知を延期・再通知可能なこと
    • WANT
      •  バージョンアップを延期した場合、延期が規定の回数に達した後に、ユーザーが利用していない夜間や休日等に自動的にバージョンアップされること

上記の通り、弊社では既に Jamf Pro を導入済みでした。(端末管理や設定配布、ゼロタッチデプロイで利用)

Jamf Pro に macOS に対するバージョンアップの仕組みが存在することは以前から知っており、既に導入済みの Jamf Pro で実装できれば管理面で有用と判断し、調査を開始しました。

 

Jamf Pro では期待する挙動をしなかった

結論から記載すると、Jamf Pro では期待する挙動をしなかったため Jamf Pro での実装を断念しました。

※2023年6月頃の検証結果となります。

前述の通り、弊社では Jamf Pro を導入済みのため、macOS のバージョンアップの迅速化の実装を Jamf Pro で実施するべく調査を開始しました。

結果、前述した「理想とする迅速化の実装方法」が実装可能であることが判明しました。

詳細は Jamf Pro の公式ドキュメントを閲覧いただければと思いますが、Mac に対し以下3種類の指示が可能でした。

  1. ダウンロード・インストールをユーザーに許可する
  2. ダウンロードを強制し、インストールはユーザーに許可する
  3. ダウンロード・インストールをユーザーに強制するが、インストールは延期が可能(延期回数を指定可能)
    • 延期回数に達すると夜間に強制アップデートが走る

上記の3が弊社の要望にかなり近く、3について検証を進めました。

3を指示した場合、以下のような画面が Mac の画面右上に表示されます。

各項目の挙動と検証結果は以下の通りです。

  • インストール
    • 挙動:即時インストールが走る
    • 検証結果:正しく動作
  • 夜間に行う
    • 挙動:夜間に自動でインストールが走る
    • 検証結果:夜間に自動でインストールが走らない
  • 明日再通知
    • 挙動:翌日、同様のメッセージが再通知される。
      • ただし、延期回数に達した場合は別メッセージが表示され、その後、夜間に自動でインストールが走る。
    • 検証結果:翌日再通知される。
      • ただし、延期回数に達しても夜間に自動でインストールが走らない。

上記の通り一部機能が正しく動作せず、Jamf Pro のサポートにも調査依頼しましたが解決しませんでした。

結果として Jamf Pro では期待する挙動をしなかったため、別方法を探ることになりました。

 

Nudge で実装

Jamf Pro が期待する挙動をしなかったため別方法を探っていたところ、Nudge というアプリケーションに出会いました。

Nudge は、設定した macOS バージョンに達していない場合に Mac 上に通知を出し、ユーザーによる延期(再通知)が可能で、かつ通知の文言等をカスタマイズすることが可能です。

https://github.com/macadmins/nudge

ただし、(弊社環境では動作しませんでしたが)Jamf Pro のように夜間に自動でインストールする機能はありません。(過去には当該機能があったようなのですが、現在は実装されていないようです)

比較的弊社が求めていた機能に近かったため、Nudge の検証を進めることにしました。

Jmaf Pro による Nudge の実装方法はこちらの記事を参考に対応しました。

詳細に記載されており大変参考になりました。この場を借りて感謝申し上げます。

Nudge を Jamf Pro で実装する場合、ポリシーで Nudge の pkg を配布し、構成プロファイルでカスタマイズ設定を配布することになります。

導入方法の詳細は上記記事を拝見いただき、今回は、弊社でカスタマイズした構成プロファイルを紹介します。

 

Nudge 用の構成プロファイルの弊社カスタマイズ

前述の通り Nudge を実装するにあたり Jamf Pro の構成プロファイルを使うことで設定のカスタマイズが可能です。

本項目では弊社でカスタマイズしている内容について紹介します。

構成プロファイルの設定自体は前述でも紹介したこちらの記事を参考にしてください。

またどのような内容が設定できるかについては Nudge の公式サイトを参考にしてください。

 

それでは、実際に設定されている構成プロファイルの内容を紹介します。

カスタマイズは、構成プロファイルの「アプリケーションとカスタム設定」→「外部アプリケーション」で設定します。

  • 構成プロファイル名:Nudge Profile
  • アプリケーションとカスタム設定
    • 外部アプリケーション
      • アプリケーションドメイン:com.github.macadmins.Nudge
        • optionalFeatures

          • acceptableApplicationBundleIDs:zoomなど(us.zoom.xos)を指定

            • 指定されたアプリの bundleID が起動している場合は、Nudge による通知をアクティブ(前面)にしないオプション
          • acceptableCameraUsage:true(ON)

            • カメラ ON 時に Nudge による通知をアクティブ(前面)にしないオプション
          • acceptableScreenSharingUsage:true(ON)

            • 画面共有時に Nudge による通知をアクティブ(前面)にしないオプション
          • aggressiveUserFullScreenExperience:false(OFF)

            • 通知画面時に背景を透過するかどうかのオプション。透過しない設定としている
        • osVersionRequirements

          • requiredInstallationDate:例 2025-12-31T00:00:00Z
            • 通知を消せない期日を指定する箇所
            • Zoom などで画面共有していた場合、期日が来た際の通知が表示されると同時に画面共有が停止する。弊社では許容できない動作だったため、対策として期日を数年先等にすることで期日を迎えないようにしている。
          • requiredMinimumOSVersion:例 13.5
            • バージョンアップ先のバージョンを指定。Mac 上の macOS が指定したバージョン未満の際に通知が起動する
          • targetedOSVersionsRule:例 13
            • requiredInstallationDate と requiredMinimumOSVersion が動作する macOS のメジャーバージョン(Venturaの場合は13)を指定
        • updateElement

          • 通知の言語や文言を変える箇所。詳細は Nudge の公式サイトに詳しく記載
          • 現在の通知設定は下記画像の通り

 

Nudge 検証にあたり苦労・考慮した点

本項目では Nudge を検証するにあたり想定と違う動作をしたり、弊社に実装する場合に考慮した点などについて記載します。

 

画面共有時に、期日以降の Nudge 通知が表示されると画面共有が強制停止する問題

リモートワーク時の社内ミーティングや取引先とのミーティングを実施する際に、Zoomなどで画面共有する場合があると思います。

前述の通り、Nudge では Zoom 起動時やカメラ起動時、画面共有時には Nudge の通知をアクティブ(前面)に表示させないカスタマイズが可能です。

ただし、期日が来た場合の通知が表示された場合はアクティブに表示され、その際に画面共有が強制的に停止されます。

もしかしたらカスタマイズで回避可能かもしれないのですが弊社ではその方法がわからず、結果として、期日を数年後等に設定することで回避しています。

 

再通知時のカスタム設定が正しく動作しない問題

Nudge には通知を再通知する機能が備わっています。

その際、30分後、1時間後、翌日、といった選択が可能なのですが、日時を自由に設定可能な「カスタム」という項目もあります。

ただし、弊社ではカスタムが正しく動作せず、いつを選択しても30分後に再通知となりました。

 

Nudge は緊急セキュリティ対応に未対応

macOS には、通常のバージョンとは異なるRapid Security ResponsesRSR)というバージョンの後ろに (a) や (c) が付くバージョンが存在します。

RSR は現在のところ Nudge では未対応であり、Nudge のコミュニティで議論されています。

 

Nudge の実装効果

Nudge を社内展開後にタイミング良く macOS の新規バージョンがリリースされました。

その際に効果測定をしたので結果をご報告します。

結論から記載すると、弊社では劇的な効果がありました。

Nudge 実装後は、バージョンアップの再周知や未対応ユーザーへの DM を一切せずとも 、一ヶ月後までにほとんどのユーザーが自主的にバージョンアップを実施してくれました。

通常、弊社では macOS の新規バージョンがリリースした旨を周知した場合、一週間以内に約30%のユーザーがバージョンアップをしてくれます。

その後、ゆるやかにバージョンアップ完了台数は増えますが頭打ちするため、再周知を実施したり、何度周知しても未対応のユーザーには個別で DM することで対応を促していました。

 

最後に

以上が弊社における Nudge の実装のご紹介でした。

この記事が皆様のお役に立てれば幸いです。

また、本プロジェクトに関わっていただいた社員の皆様、インターネット上にある Nudge の記事を書いていただいた方々、なにより Nudge を世に出してくれた方々に、この場を借りて感謝申し上げます。

ウェルスナビでは、一緒に働く仲間を募集しています。働く世代に豊かさを、というミッションを私たちと一緒に目指していきませんか? 興味のある方は、こちらからご応募お待ちしております。

https://hrmos.co/pages/wealthnavi/jobs?category=1243739934161813504

著者プロフィール

深田 航(ふかだ わたる)

2018年11月に入社

社内IT・社内セキュリティ(いわゆる情シスやコーポレートIT)担当