見出し画像

Jamf ProtectでmacOSのAirDropファイル送信を検知する方法

情報漏洩の防止のため、AirDropでのファイル送受信を禁止されている会社も多くありますが、利便性を考慮すると禁止することができないケースもあると思います。
今回は、Jamf Protectを使用してAirDropのファイル送信を検知する方法をご紹介します!

ファイル送信を検知した後、Jamf Proと連携すれば、アラートを表示させるようなセキュリティレスポンス対応も可能です。

Jamf Protectについて

Jamf Protect は、Mac向けのエンドポイントセキュリティソリューションです。
macOS を標的としたマルウェアの検知や 不審な振る舞いや望ましくない振る舞いをリアルタイムで監視します。また、Center for Internet Security (CIS) のベンチマークに基づいて、エンドポイントのコンプライアンス状況を可視化します。

利用機能について

AirDropのファイル送信を検知するには、Jamf Protectで AirDrop Outboundイベントを検知する必要があります。
検知にはAnalytics と Unified Loggingという機能を使用します。

  • Analytics:macOS コンピュータでの不審なユーザの動作と悪意のあるシステムアクティビティを検出するルールです。セキュリティニーズに固有のアクティビティを監視するために、カスタム Analytic を作成ができます。Analyticsでイベントを検知するだけではなく、Jamf Proと連携し、不審な動作に対処するため自動アクション(自動化ワークフロー)を設定ができます。

  • Unified Logging:Consoleアプリにあるシステムログをフィルターし、SIEM製品(Splunk 等)に送信する機能です。

1. AirDrop Outbound用カスタムAnalyticを作成

カスタムAnalyticの作成の流れは以下のとおりです。
1. Sensor Type(センサータイプ)の確認
2. 発生イベントの確認
3. カスタムAnalyticの作成

作成には、Sensor Type(センサータイプ)とFilter’s Predicate(フィルターの述語)の設定が必要です。

1.1 Sensor Type (センサータイプ)の確認

AnalyticのSensor Type(センサータイプ)は、Mac コンピュータで Analytic の監視対象となっているイベントのタイプです。監視対象となっているイベントのタイプは以下になります。
File System Event(ファイルイベント):コンピュータで書き込まれ、編集され、削除されているファイルを監視します。
② Process Event(プロセスイベント):起動されるか終了されるプロセスを監視します。
Synthetic Click Event(擬似的なクリックイベント):通知の却下、アクションの承認、ユーザプロンプトとのインタラクションを行うために使用される擬似的なマウスのクリックを監視します。
Screenshot Event(スクリーンショットイベント):スクリーンショットアクティビティを監視します。
USB Event(USB イベント):コンピュータに挿入される USB デバイスを監視します。
Download Event(ダウンロードイベント):インターネットからダウンロードされるファイルを監視します。
Malware Removal Tool Event(マルウェア削除ツール):MRT (Malware Removal Tool:macOSにあらかじめ組み込まれたマルウェア対策ソフト)によるアクションとログを監視します。
Gatekeeper Event(Gatekeeper イベント):Gatekeeper(信頼されたソフトウェアのみがユーザのMac上で動作することを保証する機能) からのアクションとログを監視します。
⑨ Keylog Register Event(キーログ登録イベント):macOS の Core Graphics フレームワークを介した新しい「イベントタップ」登録を監視します。
参考https://learn.jamf.com/ja-JP/bundle/jamf-protect-documentation/page/Analytic_Descriptions.html

1.2. 発生イベントの確認

Filter’s Predicate(フィルターの述語)を記述するためにはイベントタイプの指定が必要です。
各センサータイプのイベントタイプを確認すると、Analytics機能でどんなイベントを検知ができるかを指定できます。例えば、ファイルイベントというセンサータイプを使うと、ファイルの新規作成・削除・編集などのイベントを検知ができます。

File System Eventのイベントタイプ
Process Eventのイベントタイプ

<参考:FileMonitor・ProcessMonitor>
ファイルイベント・プロセスイベントを収集するために、リンク先にあるオープンソースのサードパーティツールを使います。
・FileMonitor:発生したファイルイベントを収集
・ProcessMonitor:発生したプロセスイベントを収集

全ファイル・プロセスを監視ができるように、ツールのFull Disk Access (FDA)の許可を事前に設定が必要です。
どちらのツールもCLIツール(Command-line interface / コマンドラインインターフェース)なので、Terminalアプリで実行が行われます。

<参考:プロセス監視のガイダンス・テンプレート>
https://github.com/jamf/jamfprotect/blob/main/custom_analytic_detections/templates/process_activity_monitoring

収集の実施方法
以下の手順で操作をすると、AirDropでファイルを送信する間のファイル・プロセスの情報がファイルに出力できます。
また、全体的にどんなイベントが発生しているかを把握するために、AirDropでファイルを送信する時はConsoleアプリを開いて実行してください。

① AirDropでファイルを送信する前に、ターミナルを開いてFileMonitor・ProcessMonitorを実行する。
・ FileMonitor 出力ファイル名は任意の名前でOK

sudo /Applications/FileMonitor.app/Contents/MacOS/FileMonitor -pretty > /Users/<各自のホームフォルダ>/Downloads/filemonitor_airdropoutbound.txt

・ ProcessMonitor 出力ファイル名は任意の名前でOK

sudo /Applications/ProcessMonitor.app/Contents/MacOS/ProcessMonitor -pretty > /Users/<各自のホームフォルダ>/Downloads/processmonitor_airdropoutbound.txt

 -prettyオプション:結果を整理して読みやすくするためのオプション

② AirDropでファイルを送信する

③ AirDropでファイルを送信した後、FileMonitor・ProcessMonitorの実行を終了する

sudo killAll <プロセス名・アプリ名>

ファイル・プロセスイベントを収集した後、イベントタイプ・イベント情報を確認します。

確認方法
FileMonitor・ProcessMonitorの出力ファイルに以下を行います。
⓪ 検索キーワードとして、収集したい情報を指定
(例えば、AirDrop outboundの場合、どんなファイルが送信されたのを知りたいために、ファイル名を検索キーワードとして使用 等)
① Analyticsで検出可能なイベントタイプのイベントを検索
② 特異なイベントを検出(異なるアクションを行った場合に発生しないイベント)
③ 繰り返しパターンをチェック(同じアクションを行った場合に毎回発生するイベント)

確認結果
Consoleアプリ:AirDropでファイルを送信する際、送信するファイルのためSandbox Extensionを発行します。

Consoleアプリの結果

FileMonitor の出力ファイル:sharingdプロセスで.bomファイルを作成するイベントを検知しました。
確認ポイント
① ファイルの作成はAnalyticsで検知できます。
② AirDrop Inboundイベント(AirDropでファイルを受信するイベント)等で同じようなイベントが発生されない
③ 毎回AirDrop Outboundイベントを検知すると、.bomファイルを作成します。

.bomファイル(Bill of Materials)は、Appleが主要なファイル交換が発生した際に、ファイルパスの一覧を記録するためにさまざまな場所で使用されます。例えば、個人がAirDrop経由でディレクトリを他のユーザーに送信する場合、送信者のシステム上に一時的なBOMファイルが作成され、そのトランザクションで送信されたすべてのファイルの記録が保持されます。

技術文書: Jamf Threat Labs identifies Safari vulnerability allowing for Gatekeeper bypass 
FileMonitoringツールの結果

ProcessMonitor の出力ファイル:Exitイベントを検知できましたが、一般的なイベントでした。

1.3 カスタムAnalyticの作成

確認したイベント情報を基にカスタムAnalyticを作成します。
Jamf Protect管理画面のAnalyticsでAll Analyticsタブに「Create custom analytic」をクリックすると、カスタムAnalyticの作成ページが表示されます。

必須設定項目
Sensor Type(センサータイプ):File System Event
Filter’s Predicate (フィルターの述語):
※書き方は、右側のAnalytic Documentationをご確認にしてください。
→ $event.type == 0 :イベントのタイプはファイルの作成イベント
→ $event.process.path CONTAINS[cd] "/usr/libexec/sharingd" :
プロセスのパスは「/usr/libexec/sharingd」です。[cd] は、大文字や小文字とダイアクリティカルマークを区別しない設定です。
→ $event.path ENDSWITH[cd] ".bom" :ファイルパスの最後は.bomになります。
三つの条件を合わせて、/usr/libexec/sharingdというプロセスで作成された.bomファイルを検知するAnalyticになります。

Jamf ProtectでAirDrop OutboundのAnalyticルールを設定

2. 検知結果確認

Analyticのでの検知結果は、左メニューのAlertsで確認ができます。結果として、AirDropでのファイルを送信は検知ができましたが、結果の中でイベントの詳細情報(ファイル名 等)は残念ながら出力できませんでした。
ファイル名等 イベントの詳細情報を収集するには、Unified Logging機能を使用します。

AirDrop Outbound Analyticsの結果

※ AlertsにAirDrop Outboundのアラートが出てこない場合、以下2点ご確認ください。
・Plansで適用されているプランにException Sets(除外セット)が設定されているか
・Exception Sets(除外セット)の設定で検知したいパスが含められているか

AirDrop Outboundのアラートが出てこない場合、プランの設定を確認

3.(おまけ)Unified Loggingを作成

Jamf Protect GithubのUnified LoggingでAirDrop Outbound用フィルターの述語が公開されているので、Jamf ProtectのUnified Loggingメニューでぜひ試してみてください。

※ Unified Logging のデータは、Jamf Protect管理画面には表示されないため、SIEM製品(Security Information and Event Management)やサードパーティのストレージ(AWS S3 等)への連携が必要です。

 フィルタ作成のポイント
・検知したい操作を実行しながらConsoleアプリに出力されるイベント・挙動を確認します。
・よく使う述語はメッセージ、プロセス、サブシステムなどです。

Unified Loggingの活用例(弊社のSplunk Dashboard)

Unified Loggingを使ってSplunkと連携したAirDropイベントの情報

4.まとめ

Jamf Protect で振る舞いの監視をする際、Analytics と Unified Logging が使用できます。AnalyticsとUnified Loggingの違いは以下のとおりです。
監視の対象にあわせて機能を使い分けたり、両方の機能で監視することも可能です。

AnalyticsとUnified Loggingの違い

今回は触れませんでしたが、Jamf ProtectにはAnalyticsとUnified Logging以外に昨年 TelemetryというmacOS セキュリティー監査ログを収集する機能も追加されました。
この機能により各端末からサードパーティのストレージ(AWS S3 等)へデバイスのアクティビティ情報を収集し、環境内のMacの脅威を積極的に監視、検出することもできるようになりました。

Telemetryの活用例(弊社のSplunk Dashboard)

Telemetryを使ってSplunkと連携した認証情報

以上、 今回はエンジニアのナトニチャが担当いたしました。
最後まで読んでいただき、ありがとうございました。


新しい記事の情報をツイッターで報告しておりますので是非@magichat2011もフォローして下さい!