見出し画像

脆弱性対策のためアプリ更新メッセージを通知させてみた。

業務用PCにおいて、ソフトウェアに高い脆弱性情報が出た場合、すみやか更新してもらうため周知を行っているシステム管理者は多いと思います。

ただメールやコミュニケーションツールではなかなか気づいてもらえないケースが多いため、今回は業務委託でご支援させて頂いているAnyTech株式会社にてこれを改善するため実装した事例を記載したいと思います。

実現方法

AnyTechではmacOSをメインで使用しており、先日JamfProを導入を行ったため、今回はJamfHelperを使って対象端末に対して指定したアプリの更新を促すメッセージを表示されるようにしました。

JamfHelperの詳細は以下サイトを参照下さい。

手順

今回はGoogleChromeの通知設定手順を記載しています。

1.スクリプト作成

  • Jamf Proにログインして以下スクリプトを登録して下さい(コピペでOK)

  • なお本スクリプトは汎用性を持たせるために「タイトル」「メッセージ」「アイコン」は変数で設定出来るようにしています。

#!/bin/bash

JAMFHELPER="/Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper"

#Variable Specification
#Change the following variables as needed
#If a variable is specified in JamfPro, that will take precedence.

Title="Title"
Description="Message"
Icon='/System/Applications/Utilities/Terminal.app/Contents/Resources/Terminal.icns'

#Tittle
if [ -n "$4" ]; then
	Title="$4"
fi

#message
if [ -n "$5" ]; then
	Description="$5"
fi

#icon
if [ -n "$6" ]; then
	Icon="$6"
fi

# Get the user's selection
RESULT=`"$JAMFHELPER" -windowType utility -title "$Title" \
					 	-description "$Description" \
                        -button1 "OK" \
                        -button2 "Cancel" \
                        -icon "$Icon"`

#ボタンに応じた処理をさせたい場合はこちらにコマンドを追加
if [ $RESULT == 0 ]; then
    # do button1 stuff
    echo "OK was pressed!"
elif [ $RESULT == 2 ]; then
    # do button2 stuff
    echo "Cancel was pressed!"
fi

2.パッチ管理追加

更新判定したいアプリを以下手順で登録します。

1 Jamf Proにログイン
2 左メニューから[ コンピュータ ] >[パッチ管理] クリック
3 ウィンドウ右上[ +新規 ]クリック

4 タイトル一覧から[ Google Chrome ]を選んで [ + ]クリック

3.Smart Computer Groups①作成

アプリが未更新の端末を抽出するグループを作成します。

1 Jamf Proにログイン
2 左メニューから[ コンピュータ ] > [ Smart Computer Groups ]クリック
3 ウィンドウ右上 [ +新規 ] クリック

4 [ 表示名 ]にわかりやすい名前を入力

5 ”クライテリア” タブ に移動して[ +追加 ]クリック

6 ウィンドウ右上[ アドバンスクライテリアを表示 ]クリック
7 一覧から[ Patch Reporting Software Title] を探して[ 選択 ]クリック

8 先ほどパッチ管理で作成したアプリ(今回はPatch Reporting: GoogleChrome)が表示されているので[ 選択 ]クリック
9 ”クライテリア” タブにて以下の通り設定して[ 保存 ]クリック

[1つ目]
AND/OR:設定なし
オペレータ : is not (プルダウンから選択)
数値欄 : Latest Version ( … をクリックして選択)

[2つ目]
AND/OR:AND
オペレータ : is not (プルダウンから選択)
数値欄 : Unknown Version ( … をクリックして選択)

4.Smart Computer Groups②作成

2つ目のグループを作成します(なぜ2つ必要なのかは別途説明)

1 前項の1~6まで同様の手順を実施 (表示名はお好みで)
2 一覧から[ Computer Group] を探して[ 選択 ]クリック
3 ”クライテリア” タブにて以下の通り設定して[ 保存 ]クリック

オペレータ : member of (プルダウンから選択)
数値欄 : Smart Computer Groups① ( … をクリックして選択)


5.ポリシー登録 

1 Jamf Proにログイン
2 左メニューから[ コンピュータ ] > [ ポリシー ]クリック
3 ウィンドウ右上 [ +新規 ] クリック

4 [ General ]タブにて以下の通り設定

表示名:わかりやすい名前
有効:チェックON
トリガー:Recurring Check-in
実行頻度:Once every day (※今回は1日1回通知する)

4 [ Scope ]タブにて選択された展開ターゲットの[ +追加 ]クリック

5 ["Computer Groups"タブ]>SmartComputer Group②で作成したグループを[Add]クリック


6 "オプション"タブに戻り左メニューより[スクリプト]>[ Configure ]クリック


7 最初に作成したシェルスクリプトを選択して[ Add ]クリック
8 パラメーター4~6にそれぞれ以下を入力して[ 保存 ]クリック

・パラメータ4  (ウィンドウのタイトル)
Chrome更新のお願い

・パラメータ5  (表示したいメッセージ)
Chromeが更新されていません。また右上に更新アイコンが表示されている方は必ずクリックお願いします!

・パラメータ6  (アイコンファイルの場所)
/Applications/Google Chrome.app/Contents/Resources/app.icns

以上で設定完了です。正しく設定されていれば対象端末で1日1回以下のようなメッセージが表示されます。


補足

1.Smart Computer Groupを2つ作る理由

手順で2つのグループを作成していますが対象コンピュータは全く同じものが選択されます。なぜ2つを選択するかというと①のグループをポリシーに設定しようとすると以下のエラーが出て設定出来ないことが理由です。

2.ボタンのクリック処理を追加可能です

今回のスクリプトは OK / Cancelをクリックしても何も起きませんがぞれぞれのボタンをクリックした際の処理を追加することも可能です。

例えばOKを押した場合は以前記事に書いた以下スクリプトを使って強制更新させたりすることも出来ます。

3.他の事例

今回はソフトウェア更新メッセージを表示させましたがJamfHelperを使えば色んな使い方ができると思います。他には以下のような活用方法もあるようなので合わせて参照下さい。


最後に

AnyTechでは公式Noteを開設しています。
こちらに開発メンバーの記事をまとめてあるので
よろしければご参照下さい。


この記事が気に入ったらサポートをしてみませんか?