From d2578078baed7cba561d9d31dc21d556d1402d2f Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 13 Apr 2025 14:22:29 +0000 Subject: [PATCH] Translated ['src/macos-hardening/macos-security-and-privilege-escalation --- .../macos-tcc/README.md | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md index 8c67058d0..5fed9eb82 100644 --- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md +++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md @@ -12,7 +12,7 @@ **TCC**は、`/System/Library/PrivateFrameworks/TCC.framework/Support/tccd`にある**デーモン**によって処理され、`/System/Library/LaunchDaemons/com.apple.tccd.system.plist`で構成されています(machサービス`com.apple.tccd.system`を登録)。 -ログインしている各ユーザーごとに実行される**ユーザーモードのtccd**があり、`/System/Library/LaunchAgents/com.apple.tccd.plist`で定義され、machサービス`com.apple.tccd`と`com.apple.usernotifications.delegate.com.apple.tccd`を登録しています。 +ログインしている各ユーザーごとに実行される**ユーザーモードのtccd**があり、`/System/Library/LaunchAgents/com.apple.tccd.plist`で定義され、machサービス`com.apple.tccd`および`com.apple.usernotifications.delegate.com.apple.tccd`を登録しています。 ここでは、tccdがシステムとしておよびユーザーとして実行されている様子を確認できます: ```bash @@ -20,7 +20,7 @@ ps -ef | grep tcc 0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system 501 63079 1 0 6:59PM ?? 0:01.95 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd ``` -権限は**親**アプリケーションから**継承**され、**権限**は**バンドルID**と**開発者ID**に基づいて**追跡**されます。 +Permissions are **親**アプリケーションから**継承**され、**権限**は**バンドルID**と**開発者ID**に基づいて**追跡**されます。 ### TCCデータベース @@ -32,7 +32,7 @@ ps -ef | grep tcc - このデータベースは保護されているため、フルディスクアクセスのような高いTCC権限を持つプロセスのみが書き込むことができます(ただし、SIPによって保護されていません)。 > [!WARNING] -> 前述のデータベースは、**読み取りアクセスのためにTCC保護**されています。したがって、TCC特権プロセスからでない限り、通常のユーザーTCCデータベースを**読み取ることはできません**。 +> 前述のデータベースは、**読み取りアクセスのためにTCC保護**されています。したがって、**TCC特権プロセス**からでない限り、通常のユーザーTCCデータベースを**読み取ることはできません**。 > > ただし、これらの高い権限を持つプロセス(**FDA**や**`kTCCServiceEndpointSecurityClient`**など)は、ユーザーのTCCデータベースに書き込むことができます。 @@ -104,9 +104,9 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0; > [!TIP] > 両方のデータベースを確認することで、アプリが許可した、禁止した、または持っていない権限を確認できます(要求されます)。 -- **`service`** は TCC **権限** の文字列表現です -- **`client`** は **バンドル ID** または権限を持つ **バイナリへのパス** です -- **`client_type`** は、バンドル識別子(0)か絶対パス(1)かを示します +- **`service`** は TCC **permission** の文字列表現です +- **`client`** は **bundle ID** または権限を持つ **バイナリへのパス** です +- **`client_type`** は、それがバンドル識別子(0)か絶対パス(1)かを示します
@@ -153,7 +153,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0; - **`auth_value`** は異なる値を持つことができます: denied(0), unknown(1), allowed(2), または limited(3)。 - **`auth_reason`** は次の値を取ることができます: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12) -- **csreq** フィールドは、実行するバイナリを検証し、TCC 権限を付与する方法を示すためにあります: +- **csreq** フィールドは、実行するバイナリを検証し、TCC権限を付与する方法を示すためにあります: ```bash # Query to get cserq in printable hex select service, client, hex(csreq) from access where auth_value=2; @@ -169,7 +169,7 @@ echo "$REQ_STR" | csreq -r- -b /tmp/csreq.bin REQ_HEX=$(xxd -p /tmp/csreq.bin | tr -d '\n') echo "X'$REQ_HEX'" ``` -- **他のフィールド**に関する詳細は、[**このブログ記事**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive)を確認してください。 +- その他のフィールドに関する詳細は、[**このブログ記事**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive)を確認してください。 `システム環境設定 --> セキュリティとプライバシー --> プライバシー --> ファイルとフォルダ`で、アプリに**すでに与えられた権限**を確認することもできます。 @@ -184,9 +184,9 @@ tccutil reset All app.some.id # Reset the permissions granted to all apps tccutil reset All ``` -### TCC シグネチャチェック +### TCC シグネチャーチェック -TCC **データベース**はアプリケーションの**バンドルID**を保存しますが、**シグネチャ**に関する**情報**も**保存**しており、権限を使用するように要求しているアプリが正しいものであることを**確認**します。 +TCC **データベース**はアプリケーションの**バンドルID**を保存しますが、**シグネチャー**に関する**情報**も**保存**しており、権限を使用するように要求しているアプリが正しいものであることを**確認**します。 ```bash # From sqlite sqlite> select service, client, hex(csreq) from access where auth_value=2; @@ -228,8 +228,8 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app ### 敏感な保護されていない場所 -- $HOME(自体) -- $HOME/.ssh、$HOME/.awsなど +- $HOME (自体) +- $HOME/.ssh, $HOME/.aws, など - /tmp ### ユーザーの意図 / com.apple.macl @@ -254,7 +254,7 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3 > > また、コンピュータ内のアプリの UUID を許可するファイルを別のコンピュータに移動すると、同じアプリが異なる UID を持つため、そのアプリへのアクセスは許可されません。 -拡張属性 `com.apple.macl` は **SIP によって保護されているため**、他の拡張属性のように **クリアすることはできません**。しかし、[**この投稿で説明されているように**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/)、ファイルを **圧縮** し、**削除** し、**解凍** することで無効にすることが可能です。 +拡張属性 `com.apple.macl` は **SIP によって保護されているため**、他の拡張属性のように **クリアすることはできません**。ただし、[**この投稿で説明されているように**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/)、ファイルを **圧縮** し、**削除** し、**解凍** することで無効にすることが可能です。 ## TCC Privesc & Bypasses @@ -358,10 +358,10 @@ EOD {{#endtab}} {{#endtabs}} -これを悪用して**独自のユーザーTCCデータベースを作成**することができます。 +これを悪用して**独自のユーザーTCCデータベースを作成する**ことができます。 > [!WARNING] -> この権限を持つことで、**FinderにTCC制限フォルダーへのアクセスを要求**し、ファイルを取得することができますが、私の知る限り、**Finderに任意のコードを実行させることはできません**。そのため、完全にFDAアクセスを悪用することはできません。 +> この権限を持つことで、**FinderにTCC制限フォルダーへのアクセスを要求し**、ファイルを取得することができますが、私の知る限り、**Finderに任意のコードを実行させることはできません**。そのため、FDAアクセスを完全に悪用することはできません。 > > したがって、完全なFDA機能を悪用することはできません。 @@ -370,11 +370,11 @@ EOD
> [!CAUTION] -> **Automator**アプリがTCC権限**`kTCCServiceAppleEvents`**を持っているため、**任意のアプリを制御**することができます。したがって、Automatorを制御する権限を持っていれば、以下のようなコードで**Finder**も制御できます: +> **Automator**アプリがTCC権限**`kTCCServiceAppleEvents`**を持っているため、**任意のアプリを制御する**ことができます。したがって、Automatorを制御する権限を持っていれば、以下のようなコードで**Finder**も制御できます:
-Automator内でシェルを取得 +Automator内でシェルを取得する ```applescript osascript<