Jamfを導入してから少し経っての感想

この記事は<a herf="https://qiita.com/advent-calendar/2024/timetree">株式会社TimeTree Advent Calendar 2024の17日目</a>の記事です。

https://qiita.com/advent-calendar/2024/timetree

おはこぽー。コーポレートエンジニア（こぽエン）のKoalaです🐨
昨年はGASネタを書きました↓↓

https://qiita.com/koala_time/items/8c88c229654e4723d310

引き続きガスガスもしているのですが、ここ１年はMDMの刷新も行ったのでそちらに触れようと思います！（何番煎じでもいいよねっ）

# MDM刷新の背景

以前は国産の安価なMDMサービスを利用させていただいていました。主な目的はリモートワイプ（遠隔初期化）が行えること。ただ、リモートを中心とした働き方、プロジェクトや人員の増加、PCとスマホで異なるOS、世間のランサムウェア被害の増加など、セキュリティ課題は本当に尽きません。

ただ、被害の形は様々でも攻撃の糸口が似通っていることはIPAも表明されています。
```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
footer {
  FontColor black
  FontSize 17
}
</style>
footer https://www.ipa.go.jp/security/10threats/m42obm00000044ba-att/setsumei_2024_soshiki.pdf
title <img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/387104cf-8156-0ef5-8e99-efb39cbf92af.png>
@enduml
```

そこで私たちは、OSが異なっていても下記を実現できる環境を目指し、MDMを選定しました。

①OSやアプリのバージョンを見える化する(脆弱性対策)

②社内ポリシーと実態を合わせる

③ゼロタッチキッティングで従業員と情シス双方の効率化を実現する

# Jamfの導入

へーしゃはMacとWindowsが混合しています。情シスを悩ませるあるあるの環境ですね(笑)

比率はMacの方が多いためまずはJamfの導入から始めました。

### ①OSやアプリのバージョンを見える化する(脆弱性対策)

標準機能であるパッチ管理にて主要なサービスのバージョンを確認することができます。
[パッチレポート - Jamf Pro ドキュメント 11.12.0 | Jamf](https://learn.jamf.com/ja-JP/bundle/jamf-pro-documentation-current/page/Patch_Reporting.html)

↓こんな感じ最新かどうかがわかりやすい
![image (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/04d43d34-4dfb-5dd4-acce-447f6263faf5.png)
  

**★脆弱性対応で真価を発揮した瞬間★**
今年の4月、ファイル可逆圧縮ツールであるXZ Utilsに悪意のあるコードが挿入された問題がありました。なんとCVSSの緊急度は10.0です！🙀
[https://www.jpcert.or.jp/newsflash/2024040101.html](https://jvndb.jvn.jp/ja/contents/2024/JVNDB-2024-003054.html)

 　
**そこでJamfの出番！！**

ターミナル上で実行できるコマンドをJamf上で作成し、その結果をインベントリ情報として返すことができます。つまり、Finderのアプリケーションに表示されないような実行ファイルについても情報を取得できることになります。

↓拡張属性に入力したコード
```bash
#!/bin/bash -eu

PATH=$PATH:/usr/local/bin/:/opt/homebrew/bin

user=$(stat -f%Su /dev/console)

xz=$(sudo -u $user brew info xz | grep "stable")

echo "<result>$xz</result>"
```

↓ある端末の結果の表示（一覧表示できます）
![image (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/f689ce32-3571-db6c-7ea2-e991d17a7b99.png)



これによって該当するバージョンの方にすぐさまアナウンスをすることができ、業務委託の方を含めて2日程度で対応を完了できました。

![image (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/c5fbf5e8-4495-6ff9-ce2a-2dbeb7a3187b.png)


## ②社内ポリシーと実態を合わせる

上記と同じ要領で、例えばスクリーンロックの設定時間を取得することもできます。

```bash
#!/bin/bash -eu

user=$(stat -f%Su /dev/console)
idleTime=$(sudo -u $user defaults -currentHost read com.apple.screensaver idleTime)

if [ -z "$idleTime" ]; then
  minTime=-1
else
  minTime=$(expr $idleTime / 60)
fi

echo "<result>$minTime</result>"
```

社内ポリシーに沿っていない端末をスマートグループに設定し、ダッシュボードに表示させれば一目瞭然です！

### ③ゼロタッチキッティングで従業員と情シス双方の効率化を実現する

↓自動設定している主なもの

- Chrome、Slack、Jamf、CrowdStrikeなどの主要アプリケーション
- オフィスWi-Fiやプリンタ
- SSD暗号化と暗号化キーの取得

PCを立ち上げてWi-Fiに接続したら、社用のGoogleアカウントでログインするだけでJamf自身をインストールすることができます。さらにCrowdStrikeも自動インストールされます。オンボーディングの際はいつもこの２つをマニュアルに沿ってインストールしてもらう必要がありましたが、入社直後の混乱期に手作業を増やしたくないという気持ちもあり本当に助かっています！もちろん対応漏れも防ぎやすいので効率とセキュリティのいいとこ取りですね😊

:::note info
#### 導入してみて

Jamfは標準機能によって主要なアプリのパッチ管理や配布が簡単にできるようになっています。まずは可視化したいという段階の情シスさんにもおすすめですし、強制アップデートや特定アプリの使用禁止といった制御も簡単に行えます。Installomatorを使えばもっと柔軟な設定もできそうですね！ただ、最新のSequoiaでCrowdStrikeの自動インストールが失敗する？など細かい例外対応はやっぱり発生しそうです。
:::

# さいごに

本当はIntuneやスマホ管理などにも触れたかったのですが、またの機会にしようと思います！それと、最近はKandjiの知名度も上がってきていそうなのが気になりますね！
 
https://www.kandji.io/
 
記事作成時点では、**今回のMDM管理を含めたコーポレートITも募集しています**ので、気になる方は是非下記をご覧ください！！私も世の情シスさんと一緒に頑張っている気持ちです。

それでは、おつこぽー。

## **TimeTreeの採用情報**

TimeTreeでは共にミッションに挑戦する仲間を募集しています。

ご興味のある方はぜひ下記に目を通していただけるとうれしいです。

お会いできることを楽しみにしています！

- 募集職種は[こちら](https://timetreeapp.com/intl/ja/corporate/careers)
- 会社の紹介資料は[こちら](https://bit.ly/3IyEEWt)
- TimeTreeで働くメンバーは[こちら](https://note.com/timetree_inc/m/m4735531db852)

ここまでご覧いただきありがとうございました。