hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections
2024-01-05 12:04:17 +00:00
..
macos-fs-tricks Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-01-05 12:04:17 +00:00
macos-sandbox Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-01-05 12:04:17 +00:00
macos-tcc Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-01-05 12:04:17 +00:00
macos-dangerous-entitlements.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-01-04 12:04:20 +00:00
macos-fs-tricks.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2023-10-17 17:43:04 +00:00
macos-gatekeeper.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-01-04 12:04:20 +00:00
macos-launch-environment-constraints.md Translated ['forensics/basic-forensic-methodology/specific-software-file 2023-11-02 17:52:32 +00:00
macos-sip.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-01-04 12:04:20 +00:00
README.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-01-04 12:04:20 +00:00

macOS セキュリティ保護

AWS ハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)

HackTricks をサポートする他の方法:

Gatekeeper

Gatekeeper は通常、Quarantine + Gatekeeper + XProtect の組み合わせを指し、これら 3 つの macOS セキュリティモジュールがダウンロードされた潜在的に悪意のあるソフトウェアの実行を防ぐことを試みます。

詳細情報:

{% content-ref url="macos-gatekeeper.md" %} macos-gatekeeper.md {% endcontent-ref %}

プロセス制限

SIP - システム整合性保護

{% content-ref url="macos-sip.md" %} macos-sip.md {% endcontent-ref %}

サンドボックス

macOS サンドボックスは、アプリケーションが使用するサンドボックスプロファイルで指定された許可されたアクションに制限することで、アプリケーションが予想されるリソースのみにアクセスすることを保証するのに役立ちます。

{% content-ref url="macos-sandbox/" %} macos-sandbox {% endcontent-ref %}

TCC - 透明性、同意、および制御

TCC (透明性、同意、および制御) は macOS のメカニズムで、通常はプライバシーの観点から、特定の機能へのアプリケーションアクセスを制限および制御するものです。これには、位置情報サービス、連絡先、写真、マイク、カメラ、アクセシビリティ、フルディスクアクセスなどが含まれます。

{% content-ref url="macos-tcc/" %} macos-tcc {% endcontent-ref %}

起動/環境制約 & 信頼キャッシュ

macOS の起動制約は、誰がプロセスを起動できるか、どのようにどこから起動できるかを定義することで、プロセスの開始を規制するセキュリティ機能です。macOS Ventura で導入され、システムバイナリを信頼キャッシュ内の制約カテゴリに分類します。すべての実行可能バイナリには、自身、および責任者の制約を含む起動ルールが設定されています。macOS Sonoma でサードパーティアプリにも環境制約として拡張され、プロセスの起動条件を管理することで、潜在的なシステムの悪用を軽減するのに役立ちます。

{% content-ref url="macos-launch-environment-constraints.md" %} macos-launch-environment-constraints.md {% endcontent-ref %}

MRT - マルウェア削除ツール

マルウェア削除ツール (MRT) も macOS のセキュリティインフラの一部です。名前が示すように、MRT の主な機能は、感染したシステムから既知のマルウェアを削除することです。

Mac でマルウェアが検出されるとXProtect または他の手段によって、MRT は自動的にマルウェアを削除するために使用できます。MRT はバックグラウンドで静かに動作し、通常はシステムが更新されるたび、または新しいマルウェア定義がダウンロードされるたびに実行されます(マルウェアを検出するための MRT のルールはバイナリ内にあるようです)。

XProtect と MRT はどちらも macOS のセキュリティ対策の一部ですが、異なる機能を果たします:

  • XProtect は予防ツールです。特定のアプリケーションを介してダウンロードされるファイルをチェックし、既知のマルウェアタイプを検出すると、ファイルが開かれるのを防ぎ、そもそもシステムが感染するのを防ぎます。
  • MRT は、反応的なツールです。システムでマルウェアが検出された後に動作し、不正なソフトウェアを削除してシステムをクリーンアップすることが目的です。

MRT アプリケーションは /Library/Apple/System/Library/CoreServices/MRT.app にあります。

バックグラウンドタスク管理

macOS は、ツールがよく知られたコード実行の永続化技術(ログインアイテム、デーモンなど)を使用するたびに警告を発し、ユーザーがどのソフトウェアが永続化しているかをよりよく理解できるようにします。

これは、/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd にあるデーモンと、/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app にあるエージェントで動作します。

backgroundtaskmanagementd が永続的なフォルダに何かがインストールされていることを知る方法は、FSEvents を取得し、それらのためのハンドラーを作成することです。

さらに、Apple が維持している頻繁に永続化するよく知られたアプリケーションを含む plist ファイルがあり、その場所は次のとおりです:/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist

[...]
"us.zoom.ZoomDaemon" => {
"AssociatedBundleIdentifiers" => [
0 => "us.zoom.xos"
]
"Attribution" => "Zoom"
"Program" => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
"ProgramArguments" => [
0 => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
]
"TeamIdentifier" => "BJ4HAAB9B3"
}
[...]

列挙

AppleのCLIツールを実行して、設定されているすべてのバックグラウンド項目を列挙することが可能です:

# The tool will always ask for the users password
sfltool dumpbtm

さらに、この情報はDumpBTMを使用してリストすることも可能です。

# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM

この情報は /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm に保存されており、ターミナルはFDAが必要です。

BTMをいじる

新しい永続性が見つかると、ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD のタイプのイベントが発生します。したがって、このイベントの送信を防ぐ方法や、エージェントがユーザーに警告するのを阻止する方法は、攻撃者がBTMを_バイパス_するのに役立ちます。

  • データベースのリセット: 以下のコマンドを実行するとデータベースがリセットされます(基本から再構築されるはずですが)、何らかの理由で、これを実行した後は、システムが再起動されるまで新しい永続性に対する警告は出ません
  • root 権限が必要です。
# Reset the database
sfltool resettbtm
  • エージェントを停止する: エージェントに停止信号を送ることで、新しい検出が見つかったときにユーザーに警告しないようにすることが可能です。
# Get PID
pgrep BackgroundTaskManagementAgent
1011

# Stop it
kill -SIGSTOP 1011

# Check it's stopped (a T means it's stopped)
ps -o state 1011
T
  • バグ: 永続性を作成したプロセスが直後にすぐに終了した場合、デーモンはそのプロセスについての情報を取得しようとしますが、失敗し、新しいものが永続していることを示すイベントを送信できなくなります

BTMについての詳細情報:

htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法: