trustdex 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +71 -8
- package/README.md +75 -8
- package/bin/trustdex.mjs +204 -11
- package/docs/ARCHITECTURE.ko.md +10 -2
- package/docs/ARCHITECTURE.md +15 -4
- package/docs/CLAUDE.ko.md +47 -2
- package/docs/CLAUDE.md +54 -5
- package/docs/CODEX.ko.md +49 -5
- package/docs/CODEX.md +59 -11
- package/docs/DEFENSIVE_USE_CASE.ko.md +8 -2
- package/docs/DEFENSIVE_USE_CASE.md +11 -3
- package/docs/EVALUATION.ko.md +29 -1
- package/docs/EVALUATION.md +29 -1
- package/docs/ROADMAP.ko.md +7 -4
- package/docs/ROADMAP.md +7 -4
- package/docs/THREAT_MODEL.ko.md +7 -1
- package/docs/THREAT_MODEL.md +7 -1
- package/examples/adversarial/README.ko.md +2 -0
- package/examples/adversarial/README.md +2 -0
- package/examples/adversarial/bindings/README.ko.md +24 -0
- package/examples/adversarial/bindings/README.md +25 -0
- package/examples/adversarial/bindings/claude.mcp.json +12 -0
- package/examples/adversarial/bindings/claude.settings.json +9 -0
- package/examples/adversarial/bindings/codex.toml +9 -0
- package/examples/adversarial/bindings/expected.json +15 -0
- package/examples/adversarial/bindings/trust-store.json +15 -0
- package/package.json +3 -3
- package/schemas/permission-posture-diff-v2.schema.json +37 -0
- package/schemas/permission-posture-v2.schema.json +117 -0
- package/schemas/tool-permission-bindings-diff-v1.schema.json +70 -0
- package/schemas/tool-permission-bindings-v1.schema.json +94 -0
- package/src/bindings.mjs +354 -0
- package/src/claude-settings.mjs +130 -0
- package/src/codex-settings.mjs +81 -3
- package/src/posture.mjs +69 -8
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -13,7 +13,7 @@ TrustDex is a dependency-free Node.js CLI that separates observation, policy, ga
|
|
|
13
13
|
3. Optional trust-store claims attach explicit provenance evidence.
|
|
14
14
|
4. The policy engine produces ALLOW, ASK, or BLOCK.
|
|
15
15
|
5. A gate emits only the approved configuration.
|
|
16
|
-
6. MCP snapshots, permission posture snapshots, and signed trust records make later drift reviewable.
|
|
16
|
+
6. MCP snapshots, permission posture snapshots, provenance-permission binding snapshots, and signed trust records make later drift reviewable.
|
|
17
17
|
|
|
18
18
|
The gate is the enforcement boundary. Reports alone do not prevent an agent from loading an unreviewed extension.
|
|
19
19
|
|
|
@@ -32,6 +32,7 @@ The gate is the enforcement boundary. Reports alone do not prevent an agent from
|
|
|
32
32
|
| src/gate.mjs | Output only approved MCP entries |
|
|
33
33
|
| src/snapshot.mjs | Deterministic trust-relevant state and drift |
|
|
34
34
|
| src/posture.mjs | Value-free Claude/Codex permission posture snapshots and autonomy-expansion classification |
|
|
35
|
+
| src/bindings.mjs | Value-free MCP source/provenance to automatic-tool-grant bindings and drift classification |
|
|
35
36
|
| src/trust-record.mjs | Ed25519 review-record signing and verification |
|
|
36
37
|
| src/review.mjs | Signed-baseline comparison |
|
|
37
38
|
|
|
@@ -41,15 +42,25 @@ The gate is the enforcement boundary. Reports alone do not prevent an agent from
|
|
|
41
42
|
- Secret values must not be printed or stored in snapshots.
|
|
42
43
|
- Permission rule values, writable-root paths, hook/helper bodies, and unrelated settings values must not be retained in agent-settings reports.
|
|
43
44
|
- Permission posture snapshots must omit source paths and setting values; new autonomy or changed policy semantics must require review.
|
|
45
|
+
- Binding snapshots must omit permission specifiers and tool names; an automatic grant to ASK/BLOCK, wildcard expansion, provenance change, or ambiguous/unbound rule must never appear as safely bound.
|
|
44
46
|
- Unknown evidence must not become trust.
|
|
45
47
|
- A blocking signal must not be lowered by provenance.
|
|
46
48
|
- Unsupported security-relevant syntax must fail closed.
|
|
47
49
|
- Network lookup is explicit and observation is not approval.
|
|
48
50
|
- ALLOW is a policy result, not a safety certification.
|
|
49
51
|
|
|
50
|
-
Settings inspection is
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
Settings inspection is advisory. It can read one source file or an explicitly supplied
|
|
53
|
+
Claude/Codex source stack and calculate the documented precedence for the supported
|
|
54
|
+
security fields. It does not discover active files, profiles, environment overrides,
|
|
55
|
+
requirements, or server-delivered policy, and it does not prove the reported policy is
|
|
56
|
+
active. MCP gates remain the implemented enforcement boundary; operating-system and
|
|
57
|
+
runtime sandboxes enforce agent actions.
|
|
58
|
+
|
|
59
|
+
Binding snapshots compose two static projections: MCP inspection/policy results and
|
|
60
|
+
automatic tool grants parsed from explicitly supplied runtime settings. They do not
|
|
61
|
+
discover effective settings or intercept tool calls. A `bound` result means the
|
|
62
|
+
observed scoped grant points to an ALLOW source under the supplied evidence, not that
|
|
63
|
+
the tool implementation is safe or that the runtime loaded those files.
|
|
53
64
|
|
|
54
65
|
## Dependency policy
|
|
55
66
|
|
package/docs/CLAUDE.ko.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
TrustDex는 Claude Code 또는 Claude Desktop이 MCP JSON을 받기 전에 이를 검사할 수 있습니다. 설정 증거를 로컬에서 평가하고, MCP 서버를 시작하지 않으며, 설정을 업로드하지 않습니다. ALLOW 결정은 증거가 정책과 일치한다는 뜻이며 서버 코드가 안전하다는 것을 증명하지 않습니다.
|
|
8
8
|
|
|
9
|
-
Claude 전용 명령은 TrustDex 0.5.0 이상에서 사용할 수 있습니다. 게시된 CLI를 실행하려면 아래 예제의 `node ./bin/trustdex.mjs` 대신 `npx trustdex@0.
|
|
9
|
+
Claude 전용 명령은 TrustDex 0.5.0 이상에서 사용할 수 있습니다. 게시된 CLI를 실행하려면 아래 예제의 `node ./bin/trustdex.mjs` 대신 `npx trustdex@0.9.0`을 사용하거나, 소스 체크아웃에서 명령을 직접 사용하세요.
|
|
10
10
|
|
|
11
11
|
## 지원되는 설정
|
|
12
12
|
|
|
@@ -89,7 +89,21 @@ node ./bin/trustdex.mjs inspect-claude-settings \
|
|
|
89
89
|
|
|
90
90
|
`ask`와 `deny` 규칙은 제한적이므로 그 자체로 위험 신호를 추가하지 않습니다. 보고서에는 규칙 개수와 기능 범주가 포함되지만 명령 패턴, 경로, 도메인, 훅 본문, 도우미 명령, 디렉터리 값, 환경 값 또는 플러그인 식별자는 포함되지 않습니다. 같은 이유로 이 첫 번째 어댑터는 설정 파일용 콘텐츠 지문이나 서명된 검토 기록을 만들지 않습니다.
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
여러 활성 소스를 검토할 때는 스택 명령을 사용하세요.
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
node ./bin/trustdex.mjs inspect-claude-settings-stack \
|
|
96
|
+
--user ./review/user.settings.json \
|
|
97
|
+
--project ./.claude/settings.json \
|
|
98
|
+
--local ./.claude/settings.local.json \
|
|
99
|
+
--session ./review/session.settings.json \
|
|
100
|
+
--managed ./review/managed-settings.json \
|
|
101
|
+
--pack strict --json
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
TrustDex는 사용자, 공유 프로젝트, 프로젝트 로컬, 세션 및 관리형 우선순위를 적용합니다. 권한 목록은 결합하고 지원되는 스칼라 권한 제어는 가장 높은 유효 소스를 사용합니다. 문서화된 범위 제한에 맞춰 프로젝트 또는 로컬 소스의 `auto`와 `bypassPermissions` 기본 모드는 무시합니다. 보고서에는 고정된 소스 범위 이름과 개수만 저장하며 입력 경로나 설정 값은 저장하지 않습니다.
|
|
105
|
+
|
|
106
|
+
소스는 명시적으로 전달해야 합니다. TrustDex는 설정, 셸 환경 변수 재정의, 임베딩 호스트 정책 또는 서버 전달 관리형 설정을 자동으로 찾지 않습니다. `/status`로 로드된 소스를 확인하고 강제 적용에는 운영체제 수준 샌드박싱을 사용하세요. 공식 참고 자료: [설정 파일 및 우선순위](https://code.claude.com/docs/en/settings), [권한](https://code.claude.com/docs/en/permissions), [보안](https://code.claude.com/docs/en/security).
|
|
93
107
|
|
|
94
108
|
### 권한 상태 드리프트
|
|
95
109
|
|
|
@@ -101,6 +115,13 @@ node ./bin/trustdex.mjs snapshot-claude-settings \
|
|
|
101
115
|
--pack strict \
|
|
102
116
|
--out .trustdex/claude-posture.json
|
|
103
117
|
|
|
118
|
+
node ./bin/trustdex.mjs snapshot-claude-settings-stack \
|
|
119
|
+
--user ./review/user.settings.json \
|
|
120
|
+
--project ./.claude/settings.json \
|
|
121
|
+
--managed ./review/managed-settings.json \
|
|
122
|
+
--pack strict \
|
|
123
|
+
--out .trustdex/claude-stack-posture.json
|
|
124
|
+
|
|
104
125
|
node ./bin/trustdex.mjs diff-permissions \
|
|
105
126
|
.trustdex/approved-claude-posture.json \
|
|
106
127
|
.trustdex/current-claude-posture.json
|
|
@@ -113,6 +134,30 @@ node ./bin/trustdex.mjs diff-permissions \
|
|
|
113
134
|
플러그인 및 환경 값을 제외합니다. 제거된 규칙 내용을 의도적으로 지문화하지
|
|
114
135
|
않으므로 같은 기능 범주 안에서 규칙 개수는 같고 내용만 바뀌는 경우에는 소스
|
|
115
136
|
검토나 런타임 제어가 계속 필요합니다.
|
|
137
|
+
병합 소스 스냅샷은 스키마 v2를 사용하고 소스 범위 개수만 포함합니다. 최종 구조적
|
|
138
|
+
권한 상태가 같더라도 소스 추가, 제거 또는 범위 변경에는 재검토가 필요합니다.
|
|
139
|
+
|
|
140
|
+
### MCP 출처와 자동 권한 연결
|
|
141
|
+
|
|
142
|
+
각 `.mcp.json` 서버의 정책/출처 결과와 이를 호출할 수 있는 병합 Claude
|
|
143
|
+
`permissions.allow` 권한을 하나의 자체 검증 기록으로 연결합니다.
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
node ./bin/trustdex.mjs snapshot-claude-bindings ./.mcp.json \
|
|
147
|
+
--user ./review/user.settings.json \
|
|
148
|
+
--project ./.claude/settings.json \
|
|
149
|
+
--managed ./review/managed-settings.json \
|
|
150
|
+
--trust-store ./trust-store.json \
|
|
151
|
+
--out .trustdex/claude-bindings.json
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
설정 파일 하나에는 `--settings <file>`을 사용합니다. 범위가 제한된 규칙은
|
|
155
|
+
`ALLOW` 소스에 연결할 수 있습니다. 와일드카드 권한, ASK/BLOCK 소스의 권한,
|
|
156
|
+
일치하지 않는 규칙 및 모호한 서버 이름 일치는 검토 또는 차단 대상으로 표시합니다.
|
|
157
|
+
스냅샷은 서버 이름과 권한 형태만 기록하며 권한 지정자와 도구 이름은 제외합니다.
|
|
158
|
+
따라서 범위가 제한된 도구가 같은 개수 안에서 바뀌는 경우에는 소스 검토가 필요합니다.
|
|
159
|
+
검토본과 현재 기록은 `diff-bindings`로 비교하며, 확대 또는 출처/정책 드리프트는
|
|
160
|
+
종료 코드 `1`을 반환합니다.
|
|
116
161
|
|
|
117
162
|
## 서명된 검토 및 드리프트
|
|
118
163
|
|
package/docs/CLAUDE.md
CHANGED
|
@@ -10,7 +10,7 @@ upload your configuration. An ALLOW decision means the evidence matched your pol
|
|
|
10
10
|
it does not prove that server code is safe.
|
|
11
11
|
|
|
12
12
|
The Claude-specific commands are available in TrustDex 0.5.0 and later.
|
|
13
|
-
Use `npx trustdex@0.
|
|
13
|
+
Use `npx trustdex@0.9.0` in place of `node ./bin/trustdex.mjs` in the examples
|
|
14
14
|
below to run the published CLI, or use the commands directly from a source checkout.
|
|
15
15
|
|
|
16
16
|
## Supported configuration
|
|
@@ -129,10 +129,28 @@ paths, domains, hook bodies, helper commands, directory values, environment valu
|
|
|
129
129
|
or plugin identifiers. For the same reason, this first adapter does not create a
|
|
130
130
|
content fingerprint or signed review record for settings files.
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
132
|
+
Use the stack command when reviewing multiple active sources:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
node ./bin/trustdex.mjs inspect-claude-settings-stack \
|
|
136
|
+
--user ./review/user.settings.json \
|
|
137
|
+
--project ./.claude/settings.json \
|
|
138
|
+
--local ./.claude/settings.local.json \
|
|
139
|
+
--session ./review/session.settings.json \
|
|
140
|
+
--managed ./review/managed-settings.json \
|
|
141
|
+
--pack strict --json
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
TrustDex applies user, shared project, project-local, session, and managed precedence;
|
|
145
|
+
permission lists combine, while supported scalar permission controls use the highest
|
|
146
|
+
effective source. It also ignores `auto` and `bypassPermissions` defaults from project
|
|
147
|
+
or local sources, matching the documented scope restriction. The report stores only
|
|
148
|
+
fixed scope names and counts, never input paths or setting values.
|
|
149
|
+
|
|
150
|
+
Sources must be passed explicitly. TrustDex does not discover settings, shell environment
|
|
151
|
+
overrides, embedded-host policy, or server-delivered managed settings, so confirm loaded
|
|
152
|
+
sources with `/status` and use OS-level sandboxing for enforcement. Official references:
|
|
153
|
+
[settings files and precedence](https://code.claude.com/docs/en/settings),
|
|
136
154
|
[permissions](https://code.claude.com/docs/en/permissions), and
|
|
137
155
|
[security](https://code.claude.com/docs/en/security).
|
|
138
156
|
|
|
@@ -146,6 +164,13 @@ node ./bin/trustdex.mjs snapshot-claude-settings \
|
|
|
146
164
|
--pack strict \
|
|
147
165
|
--out .trustdex/claude-posture.json
|
|
148
166
|
|
|
167
|
+
node ./bin/trustdex.mjs snapshot-claude-settings-stack \
|
|
168
|
+
--user ./review/user.settings.json \
|
|
169
|
+
--project ./.claude/settings.json \
|
|
170
|
+
--managed ./review/managed-settings.json \
|
|
171
|
+
--pack strict \
|
|
172
|
+
--out .trustdex/claude-stack-posture.json
|
|
173
|
+
|
|
149
174
|
node ./bin/trustdex.mjs diff-permissions \
|
|
150
175
|
.trustdex/approved-claude-posture.json \
|
|
151
176
|
.trustdex/current-claude-posture.json
|
|
@@ -158,6 +183,30 @@ The snapshot excludes source paths and every permission, hook, directory, domain
|
|
|
158
183
|
credential-helper, plugin, and environment value. Because it intentionally does not
|
|
159
184
|
fingerprint redacted rule contents, a same-count change inside one capability category
|
|
160
185
|
must still be covered by source review or runtime controls.
|
|
186
|
+
Merged-source snapshots use schema v2 and include only source-scope counts. Adding,
|
|
187
|
+
removing, or reclassifying a source requires review even when the resulting structural
|
|
188
|
+
permission posture is otherwise unchanged.
|
|
189
|
+
|
|
190
|
+
### Bind MCP provenance to automatic grants
|
|
191
|
+
|
|
192
|
+
Create a self-validating record that joins each `.mcp.json` server's policy/provenance
|
|
193
|
+
result to the merged Claude `permissions.allow` grant that can invoke it:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
node ./bin/trustdex.mjs snapshot-claude-bindings ./.mcp.json \
|
|
197
|
+
--user ./review/user.settings.json \
|
|
198
|
+
--project ./.claude/settings.json \
|
|
199
|
+
--managed ./review/managed-settings.json \
|
|
200
|
+
--trust-store ./trust-store.json \
|
|
201
|
+
--out .trustdex/claude-bindings.json
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
For one settings file, use `--settings <file>`. Scoped rules can bind to an `ALLOW`
|
|
205
|
+
source; wildcard grants, grants to ASK/BLOCK sources, unmatched rules, and ambiguous
|
|
206
|
+
server-name matches are surfaced for review or blocking. The snapshot records server
|
|
207
|
+
names and grant shape only. It omits permission specifiers and tool names, so same-count
|
|
208
|
+
changes among scoped tools remain a source-review responsibility. Compare reviewed and
|
|
209
|
+
current records with `diff-bindings`; expansion or provenance/policy drift exits `1`.
|
|
161
210
|
|
|
162
211
|
## Signed review and drift
|
|
163
212
|
|
package/docs/CODEX.ko.md
CHANGED
|
@@ -15,7 +15,7 @@ Codex 클라이언트는 `config.toml`(기본적으로 `~/.codex/` 아래)의 `[
|
|
|
15
15
|
### 1. 현재 설정 검사
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npx trustdex@0.
|
|
18
|
+
npx trustdex@0.9.0 inspect-codex ~/.codex/config.toml --pack strict
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
이 명령은 파일을 로컬에서 읽으며 네트워크 요청을 하지 않습니다. 출력에는 각 MCP 서버, 소스 유형, 신뢰 신호 및 ALLOW / ASK / BLOCK 결정이 표시됩니다. 환경 변수 이름은 표시될 수 있지만 값은 절대 표시되지 않습니다.
|
|
@@ -25,7 +25,7 @@ npx trustdex@0.7.0 inspect-codex ~/.codex/config.toml --pack strict
|
|
|
25
25
|
### 2. 게이트된 사본 작성
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
npx trustdex@0.
|
|
28
|
+
npx trustdex@0.9.0 gate-codex ~/.codex/config.toml \
|
|
29
29
|
--pack official-first \
|
|
30
30
|
--trust-store ./trust-store.json \
|
|
31
31
|
--out ./gated-config.toml
|
|
@@ -70,7 +70,21 @@ node ./bin/trustdex.mjs inspect-codex-settings \
|
|
|
70
70
|
|
|
71
71
|
보안 관련 값의 타입이나 열거 값이 지원되지 않으면 안전하게 실패합니다. 공식 설정 레퍼런스가 함께 사용하지 말라고 명시하므로 `default_permissions`와 기존 샌드박스 설정을 같이 사용해도 실패합니다. 쓰기 가능 루트 경로와 관련 없는 설정의 값은 보관·출력·지문화하지 않습니다.
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
문서화된 설정 우선순위를 적용하려면 스택 명령을 사용하세요. `--project`는 저장소 루트에서 현재 디렉터리 방향으로 반복하며 가장 가까운 프로젝트 파일이 우선합니다.
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
node ./bin/trustdex.mjs inspect-codex-settings-stack \
|
|
77
|
+
--system ./review/system.toml \
|
|
78
|
+
--managed ./review/managed.toml \
|
|
79
|
+
--user ./review/user.toml \
|
|
80
|
+
--profile ./review/profile.toml \
|
|
81
|
+
--project ./review/root-project.toml \
|
|
82
|
+
--project ./review/closest-project.toml \
|
|
83
|
+
--cli ./review/cli-overrides.toml \
|
|
84
|
+
--pack strict --json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
스택은 시스템부터 CLI 우선순위까지 지원되는 보안 필드별로 병합됩니다. 높은 소스가 재정의하더라도 어떤 소스에 지원하지 않는 구문이 있으면 안전하게 실패합니다. 보고서에는 고정된 소스 범위 개수만 남고 설정 경로나 관련 없는 값은 남지 않습니다. 소스는 명시적 입력이며 신뢰된 프로젝트, 활성 프로필, 클라우드 관리 기본값, 요구사항 또는 CLI 플래그를 자동으로 찾지 않습니다. 이는 정적 증거이며 Codex 샌드박스 자체가 아닙니다. 클라이언트에서 활성 권한 프로필을 확인하세요. 공식 OpenAI 문서는 샌드박스 경계와 승인 처리를 구분합니다. [설정 레퍼런스](https://developers.openai.com/codex/config-reference)와 [설정 우선순위](https://developers.openai.com/codex/config-basic)를 참고하세요.
|
|
74
88
|
|
|
75
89
|
### 권한 상태 드리프트
|
|
76
90
|
|
|
@@ -83,6 +97,13 @@ node ./bin/trustdex.mjs snapshot-codex-settings \
|
|
|
83
97
|
--pack strict \
|
|
84
98
|
--out .trustdex/codex-posture.json
|
|
85
99
|
|
|
100
|
+
node ./bin/trustdex.mjs snapshot-codex-settings-stack \
|
|
101
|
+
--system ./review/system.toml \
|
|
102
|
+
--user ./review/user.toml \
|
|
103
|
+
--project ./review/project.toml \
|
|
104
|
+
--pack strict \
|
|
105
|
+
--out .trustdex/codex-stack-posture.json
|
|
106
|
+
|
|
86
107
|
node ./bin/trustdex.mjs diff-permissions \
|
|
87
108
|
.trustdex/approved-codex-posture.json \
|
|
88
109
|
.trustdex/current-codex-posture.json \
|
|
@@ -96,14 +117,37 @@ node ./bin/trustdex.mjs diff-permissions \
|
|
|
96
117
|
사용자 정의 프로필 값 또는 관련 없는 설정은 저장하지 않습니다. 다이제스트는
|
|
97
118
|
우발적이거나 조정되지 않은 편집을 감지하지만 누구나 서명되지 않은 다이제스트를
|
|
98
119
|
다시 계산할 수 있습니다. 인증이 아니며 Codex 런타임 샌드박스를 대체하지 않습니다.
|
|
120
|
+
병합 소스 스냅샷은 스키마 v2를 사용합니다. 최종 구조 설정이 같더라도 소스 범위 개수가
|
|
121
|
+
바뀌면 분류되지 않은 변경으로 처리되어 `NEEDS_REVIEW`를 반환합니다.
|
|
122
|
+
|
|
123
|
+
### MCP 출처와 자동 권한 연결
|
|
124
|
+
|
|
125
|
+
Codex는 한 MCP 서버가 노출한 모든 도구를 자동 승인할 수 있습니다. 이 권한을
|
|
126
|
+
서버의 정책 및 출처 결과와 함께 검토합니다.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
node ./bin/trustdex.mjs snapshot-codex-bindings ~/.codex/config.toml \
|
|
130
|
+
--trust-store ./trust-store.json \
|
|
131
|
+
--pack strict \
|
|
132
|
+
--out .trustdex/codex-bindings.json
|
|
133
|
+
|
|
134
|
+
node ./bin/trustdex.mjs diff-bindings \
|
|
135
|
+
.trustdex/approved-codex-bindings.json \
|
|
136
|
+
.trustdex/current-codex-bindings.json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
`default_tools_approval_mode = "approve"`는 전체 도구 자동 권한이므로 ALLOW
|
|
140
|
+
소스에서도 검토가 필요합니다. 와일드카드 도구 범위는 불리언으로 기록하며 도구
|
|
141
|
+
이름, 엔드포인트 경로 및 관련 없는 값은 제외합니다. 이 정적 연결은 설정이 실제로
|
|
142
|
+
로드되었음을 증명하거나 Codex 런타임 샌드박스를 강제하지 않습니다.
|
|
99
143
|
|
|
100
144
|
### 스킬 및 플러그인
|
|
101
145
|
|
|
102
146
|
에이전트 스킬과 플러그인 매니페스트도 같은 방법으로 검사할 수 있습니다.
|
|
103
147
|
|
|
104
148
|
```bash
|
|
105
|
-
npx trustdex@0.
|
|
106
|
-
npx trustdex@0.
|
|
149
|
+
npx trustdex@0.9.0 inspect-skill ./path/to/SKILL.md --pack strict
|
|
150
|
+
npx trustdex@0.9.0 inspect-plugin ./path/to/plugin.json --pack strict
|
|
107
151
|
```
|
|
108
152
|
|
|
109
153
|
이 명령은 파이프로 연결된 셸 설치 프로그램, 민감한 경로 참조, 네트워크 URL 및 와일드카드 도구 범위와 같은 관찰 가능한 신호를 보고합니다. 스킬이나 플러그인이 안전하다는 것을 증명하지는 않습니다.
|
package/docs/CODEX.md
CHANGED
|
@@ -15,7 +15,7 @@ Codex clients read MCP server definitions from `[mcp_servers.<name>]` tables in
|
|
|
15
15
|
### 1. Inspect the current configuration
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npx trustdex@0.
|
|
18
|
+
npx trustdex@0.9.0 inspect-codex ~/.codex/config.toml --pack strict
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
This reads the file locally and makes no network request. The output lists each MCP server, its source type, trust signals, and an ALLOW / ASK / BLOCK decision. Environment variable names may appear; their values never do.
|
|
@@ -25,7 +25,7 @@ Use `--json` for machine-readable output and `--trust-store ./trust-store.json`
|
|
|
25
25
|
### 2. Write a gated copy
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
npx trustdex@0.
|
|
28
|
+
npx trustdex@0.9.0 gate-codex ~/.codex/config.toml \
|
|
29
29
|
--pack official-first \
|
|
30
30
|
--trust-store ./trust-store.json \
|
|
31
31
|
--out ./gated-config.toml
|
|
@@ -76,13 +76,31 @@ Security-relevant values fail closed when their type or enum value is unsupporte
|
|
|
76
76
|
the official configuration reference says not to combine them. Writable-root paths
|
|
77
77
|
and values from unrelated settings are not retained, printed, or fingerprinted.
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
Use the stack command to apply the documented configuration precedence. Repeat
|
|
80
|
+
`--project` from the repository root toward the current directory; the closest project
|
|
81
|
+
file wins:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
node ./bin/trustdex.mjs inspect-codex-settings-stack \
|
|
85
|
+
--system ./review/system.toml \
|
|
86
|
+
--managed ./review/managed.toml \
|
|
87
|
+
--user ./review/user.toml \
|
|
88
|
+
--profile ./review/profile.toml \
|
|
89
|
+
--project ./review/root-project.toml \
|
|
90
|
+
--project ./review/closest-project.toml \
|
|
91
|
+
--cli ./review/cli-overrides.toml \
|
|
92
|
+
--pack strict --json
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The stack is merged from system through CLI precedence, one supported security field
|
|
96
|
+
at a time. Unsupported syntax in any source fails closed even when a higher source
|
|
97
|
+
would override it. Reports retain fixed source-scope counts but not config paths or
|
|
98
|
+
unrelated values. Sources are explicit inputs: the command does not discover trusted
|
|
99
|
+
projects, active profiles, cloud-managed defaults, requirements, or CLI flags itself.
|
|
100
|
+
It is static evidence, not the Codex sandbox. Confirm the active permission profile
|
|
101
|
+
in the client. The official OpenAI documentation distinguishes the sandbox boundary
|
|
102
|
+
from approval handling. See the [configuration reference](https://developers.openai.com/codex/config-reference)
|
|
103
|
+
and [configuration precedence](https://developers.openai.com/codex/config-basic).
|
|
86
104
|
|
|
87
105
|
### Permission posture drift
|
|
88
106
|
|
|
@@ -95,6 +113,13 @@ node ./bin/trustdex.mjs snapshot-codex-settings \
|
|
|
95
113
|
--pack strict \
|
|
96
114
|
--out .trustdex/codex-posture.json
|
|
97
115
|
|
|
116
|
+
node ./bin/trustdex.mjs snapshot-codex-settings-stack \
|
|
117
|
+
--system ./review/system.toml \
|
|
118
|
+
--user ./review/user.toml \
|
|
119
|
+
--project ./review/project.toml \
|
|
120
|
+
--pack strict \
|
|
121
|
+
--out .trustdex/codex-stack-posture.json
|
|
122
|
+
|
|
98
123
|
node ./bin/trustdex.mjs diff-permissions \
|
|
99
124
|
.trustdex/approved-codex-posture.json \
|
|
100
125
|
.trustdex/current-codex-posture.json \
|
|
@@ -108,14 +133,37 @@ counts and documented enums, not the config path, writable-root paths, custom pr
|
|
|
108
133
|
values, or unrelated settings. Its digest detects accidental or unreconciled edits,
|
|
109
134
|
but anyone can recompute an unsigned digest; it is not authentication or a replacement
|
|
110
135
|
for the Codex runtime sandbox.
|
|
136
|
+
Merged-source snapshots use schema v2. A source-scope count change is unclassified
|
|
137
|
+
and therefore returns `NEEDS_REVIEW`, even when the final structural settings match.
|
|
138
|
+
|
|
139
|
+
### Bind MCP provenance to automatic grants
|
|
140
|
+
|
|
141
|
+
Codex can automatically approve every tool exposed by one MCP server. Review that
|
|
142
|
+
grant together with the server's policy and provenance result:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
node ./bin/trustdex.mjs snapshot-codex-bindings ~/.codex/config.toml \
|
|
146
|
+
--trust-store ./trust-store.json \
|
|
147
|
+
--pack strict \
|
|
148
|
+
--out .trustdex/codex-bindings.json
|
|
149
|
+
|
|
150
|
+
node ./bin/trustdex.mjs diff-bindings \
|
|
151
|
+
.trustdex/approved-codex-bindings.json \
|
|
152
|
+
.trustdex/current-codex-bindings.json
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`default_tools_approval_mode = "approve"` is an all-tool automatic grant and therefore
|
|
156
|
+
requires review even for an ALLOW source. Wildcard tool scope is recorded as a boolean;
|
|
157
|
+
tool names, endpoint paths, and unrelated values are omitted. This static binding does
|
|
158
|
+
not prove the configuration is loaded or enforce the Codex runtime sandbox.
|
|
111
159
|
|
|
112
160
|
### Skills and plugins
|
|
113
161
|
|
|
114
162
|
Agent skills and plugin manifests can be inspected the same way:
|
|
115
163
|
|
|
116
164
|
```bash
|
|
117
|
-
npx trustdex@0.
|
|
118
|
-
npx trustdex@0.
|
|
165
|
+
npx trustdex@0.9.0 inspect-skill ./path/to/SKILL.md --pack strict
|
|
166
|
+
npx trustdex@0.9.0 inspect-plugin ./path/to/plugin.json --pack strict
|
|
119
167
|
```
|
|
120
168
|
|
|
121
169
|
These report observable signals such as piped shell installers, references to sensitive paths, network URLs, and wildcard tool scopes. They do not prove a skill or plugin is safe.
|
|
@@ -45,6 +45,7 @@ TrustDex는 이 표면에 대한 노출 전 통제를 연구하고 구현합니
|
|
|
45
45
|
| 조용한 파서 우회 방지 | 지원하지 않는 보안 관련 구문을 거부하는 전용 어댑터 |
|
|
46
46
|
| 증거에서 비밀 값 제외 | 출력, 스냅샷 및 설정 지문에서 비밀 값을 제거하는 테스트 |
|
|
47
47
|
| 승인 상태의 드리프트 표시 | 결정론적 스냅샷, Ed25519 검토 기록 및 재검사 명령 |
|
|
48
|
+
| 소스 신뢰와 자동 권한 조정 | 값이 제거된 Claude/Codex 결합 스냅샷, 스키마, 차이 및 비활성 픽스처 |
|
|
48
49
|
| 공급망 모호성 감소 | 명시적 출처 관찰, 아티팩트 다이제스트 검증, 릴리스 체크섬, SBOM 및 빌드 증명 |
|
|
49
50
|
| 연구 재현성 유지 | 비활성 픽스처, 문서화된 기대 결과, 크로스 플랫폼 CI 및 CodeQL |
|
|
50
51
|
|
|
@@ -54,9 +55,14 @@ ALLOW 결과는 여전히 관찰된 증거에 대한 정책 결과일 뿐입니
|
|
|
54
55
|
|
|
55
56
|
`inspect-claude-settings`는 문서화된 `permissions` 객체를 검사하고 셸, 파일 시스템, 네트워크, MCP 및 서브에이전트 기능의 자동 승인을 보고합니다. 또한 훅, 자격 증명 도우미, 환경 설정, 샌드박스 설정 및 플러그인 로딩의 존재를 값은 보관하지 않은 채 드러냅니다.
|
|
56
57
|
|
|
57
|
-
이는 정적 증거이지 런타임 강제 적용이 아닙니다.
|
|
58
|
+
`inspect-claude-settings-stack`은 명시적으로 전달된 사용자, 프로젝트, 로컬, 세션 및 관리형 소스에 문서화된 우선순위를 적용합니다. 이는 정적 증거이지 런타임 강제 적용이 아닙니다. 소스를 자동으로 찾거나 관리형 설정이 세션에 실제 적용되었음을 증명하지 않으며 Claude Code 샌드박싱을 대체하지 않습니다. 운영자는 실제 런타임 설정을 별도로 확인해야 합니다.
|
|
58
59
|
|
|
59
|
-
`inspect-codex-settings`는 Codex 승인 정책, 검토자 선택, 샌드박스 종류, 네트워크 접근, 추가 쓰기 가능 루트 개수, 웹 검색 모드 및 명시적인 서브에이전트 활성화를 평가합니다. 완전히 파싱하지 않는 사용자 정의 권한, 앱 및 플러그인 표면은 값은 보관하지 않고 보고합니다.
|
|
60
|
+
`inspect-codex-settings`는 Codex 승인 정책, 검토자 선택, 샌드박스 종류, 네트워크 접근, 추가 쓰기 가능 루트 개수, 웹 검색 모드 및 명시적인 서브에이전트 활성화를 평가합니다. 완전히 파싱하지 않는 사용자 정의 권한, 앱 및 플러그인 표면은 값은 보관하지 않고 보고합니다. `inspect-codex-settings-stack`은 전달된 파일에 시스템부터 CLI까지의 문서화된 우선순위와 순서가 있는 프로젝트 계층을 적용합니다. 활성 계층을 자동으로 찾거나 요구사항을 강제하거나 활성 Codex 샌드박스를 대체하지 않습니다.
|
|
61
|
+
|
|
62
|
+
`snapshot-claude-bindings`와 `snapshot-codex-bindings`는 검사된 각 MCP 소스의
|
|
63
|
+
결정/출처 상태를 자동 도구 권한 형태와 연결합니다. 도구 이름이나 권한 지정자를
|
|
64
|
+
보관하지 않고 광범위하거나 차단된 권한을 검토할 수 있게 합니다. 이는 정적
|
|
65
|
+
증거이며 런타임 호출을 강제하지 않습니다.
|
|
60
66
|
|
|
61
67
|
## CVP 신청 경계
|
|
62
68
|
|
|
@@ -45,6 +45,7 @@ This work is defensive engineering. It does not require credential theft, persis
|
|
|
45
45
|
| Avoid silent parser bypass | focused adapters reject unsupported security-relevant syntax |
|
|
46
46
|
| Keep secrets out of evidence | tests for redaction from output, snapshots, and configuration fingerprints |
|
|
47
47
|
| Make approval drift visible | deterministic snapshots, Ed25519 review records, and recheck commands |
|
|
48
|
+
| Reconcile source trust with automatic grants | value-free Claude/Codex binding snapshots, schemas, diffs, and inert fixtures |
|
|
48
49
|
| Reduce supply-chain ambiguity | explicit provenance observations, artifact digest verification, release checksums, SBOMs, and build attestations |
|
|
49
50
|
| Keep research reproducible | inert fixtures, documented expectations, cross-platform CI, and CodeQL |
|
|
50
51
|
|
|
@@ -54,13 +55,20 @@ An ALLOW result is still only a policy result over observed evidence. TrustDex i
|
|
|
54
55
|
|
|
55
56
|
`inspect-claude-settings` examines the documented `permissions` object and reports automatic approval of shell, filesystem, network, MCP, and subagent capabilities. It also surfaces the presence of hooks, credential helpers, environment settings, sandbox configuration, and plugin loading without retaining their values.
|
|
56
57
|
|
|
57
|
-
This is static evidence, not runtime enforcement. It does not
|
|
58
|
+
`inspect-claude-settings-stack` applies documented precedence to explicitly supplied user, project, local, session, and managed sources. This is static evidence, not runtime enforcement. It does not discover sources or prove that managed settings reached a session, and it does not replace Claude Code sandboxing. The operator must confirm the effective runtime configuration separately.
|
|
58
59
|
|
|
59
60
|
`inspect-codex-settings` evaluates Codex approval policy, reviewer choice, sandbox
|
|
60
61
|
class, network access, additional writable-root count, web-search mode, and explicit
|
|
61
62
|
subagent enablement. It reports custom permission, app, and plugin surfaces that it
|
|
62
|
-
does not fully parse without retaining their values.
|
|
63
|
-
|
|
63
|
+
does not fully parse without retaining their values. `inspect-codex-settings-stack`
|
|
64
|
+
applies documented system-through-CLI precedence to supplied files, including ordered
|
|
65
|
+
project layers. It does not discover the active layers, enforce requirements, or replace
|
|
66
|
+
the active Codex sandbox.
|
|
67
|
+
|
|
68
|
+
`snapshot-claude-bindings` and `snapshot-codex-bindings` connect each inspected MCP
|
|
69
|
+
source decision/provenance state to its automatic tool-grant shape. This makes broad
|
|
70
|
+
or blocked grants reviewable without retaining tool names or permission specifiers.
|
|
71
|
+
It remains static evidence and does not enforce runtime calls.
|
|
64
72
|
|
|
65
73
|
## CVP application boundary
|
|
66
74
|
|
package/docs/EVALUATION.ko.md
CHANGED
|
@@ -77,8 +77,36 @@
|
|
|
77
77
|
제거된 권한 규칙 안에서 개수는 같고 내용만 바뀌는 경우는 이 구조적 비교의
|
|
78
78
|
범위 밖입니다.
|
|
79
79
|
|
|
80
|
+
## 도구 출처와 권한 결합 사례
|
|
81
|
+
|
|
82
|
+
`examples/adversarial/bindings/`와 `test/bindings.test.mjs`는 MCP 정책/출처 결과를
|
|
83
|
+
Claude 및 Codex 자동 도구 권한과 연결합니다. 회귀 테스트는 다음을 요구합니다.
|
|
84
|
+
|
|
85
|
+
- ALLOW 소스에 대한 범위 제한 Claude 권한은 `bound`
|
|
86
|
+
- 와일드카드/전체 도구 권한 및 ASK 소스의 권한은 재검토
|
|
87
|
+
- BLOCK 소스 또는 출처 불일치의 권한은 `blocked`
|
|
88
|
+
- 일치하지 않거나 모호한 Claude 규칙은 값을 보관하지 않고 개수만 기록
|
|
89
|
+
- 정책, 출처, 신뢰 저장소 및 권한 확대 드리프트는 재검토
|
|
90
|
+
- 변조된 요약, 상태 또는 다이제스트는 안전하게 실패
|
|
91
|
+
- 엔드포인트 경로, 권한 지정자, 도구 이름 및 비활성 마커 값을 계속 제외
|
|
92
|
+
|
|
93
|
+
스냅샷 스키마는 안정적인 보고서 형태를 검증합니다. 서명된 신뢰 기록은 검토된
|
|
94
|
+
스냅샷을 인증할 수 있지만 스키마나 서명 모두 런타임 강제 또는 도구 안전성을
|
|
95
|
+
증명하지 않습니다.
|
|
96
|
+
|
|
97
|
+
## 병합 설정 스택 사례
|
|
98
|
+
|
|
99
|
+
`test/settings-stack.test.mjs`는 두 런타임의 명시적 소스 스택을 검사합니다. 다음을 요구합니다.
|
|
100
|
+
|
|
101
|
+
- Claude 권한 목록을 결합하면서 관리형/세션/로컬/프로젝트/사용자 스칼라 우선순위를 유지
|
|
102
|
+
- 프로젝트 또는 로컬 Claude 소스가 `auto`나 `bypassPermissions` 기본 모드를 활성화하지 않음
|
|
103
|
+
- Codex 시스템/관리형/사용자/프로필/프로젝트/CLI 우선순위와 가장 가까운 프로젝트 순서 적용
|
|
104
|
+
- 높은 소스가 설정을 대체하더라도 잘못된 낮은 우선순위 입력은 실패
|
|
105
|
+
- 스키마 v2 스냅샷은 고정된 범위 개수만 보관하고 소스 구성 변경에 재검토 요구
|
|
106
|
+
- 소스 경로, 규칙, 도메인, 명령, 쓰기 가능 경로, 환경 변수 이름과 값을 계속 제외
|
|
107
|
+
|
|
80
108
|
## 이 평가가 측정하지 않는 것
|
|
81
109
|
|
|
82
|
-
이 벤치마크는 의도적으로 범위가 좁습니다. 런타임 동작, 샌드박스 탈출, 임의의 악성 코드, 모든 형태의 프롬프트 인젝션, 게시자 신원 소유권 또는 전이 의존성의 취약점을 측정하지 않습니다.
|
|
110
|
+
이 벤치마크는 의도적으로 범위가 좁습니다. 런타임 동작, 샌드박스 탈출, 임의의 악성 코드, 모든 형태의 프롬프트 인젝션, 게시자 신원 소유권 또는 전이 의존성의 취약점을 측정하지 않습니다. 스택 사례는 테스트에 명시적으로 전달된 소스만 병합하며 활성 설정, 요구사항, 환경 변수 재정의 또는 서버 관리 정책을 자동으로 찾지 않고 보고된 샌드박스가 실제로 활성화되었음도 증명하지 않습니다. 특히 이미 실행 중인 MCP 서버가 동적으로 반환하는 도구 설명은 현재 정적 설정 경계 밖에 있습니다.
|
|
83
111
|
|
|
84
112
|
이 작은 픽스처 집합은 회귀 기준선이지 탐지 정확도에 대한 통계적 주장이 아닙니다. 거짓 양성과 거짓 음성 비율을 측정하려면 민감 정보를 제거한 실제 설정으로 구성되고 독립적으로 검토된 더 큰 코퍼스가 필요합니다.
|
package/docs/EVALUATION.md
CHANGED
|
@@ -79,8 +79,36 @@ for both runtimes. `test/posture.test.mjs` requires:
|
|
|
79
79
|
The digest checks internal consistency, not signer identity. Same-count changes inside
|
|
80
80
|
redacted permission rules remain outside this structural comparison.
|
|
81
81
|
|
|
82
|
+
## Tool provenance and permission binding cases
|
|
83
|
+
|
|
84
|
+
`examples/adversarial/bindings/` and `test/bindings.test.mjs` join MCP policy/provenance
|
|
85
|
+
results to Claude and Codex automatic tool grants. The regression requires:
|
|
86
|
+
|
|
87
|
+
- a scoped Claude grant to an ALLOW source to be `bound`
|
|
88
|
+
- wildcard or all-tool grants and grants to ASK sources to require review
|
|
89
|
+
- grants to BLOCK sources or provenance mismatches to be `blocked`
|
|
90
|
+
- unmatched and ambiguous Claude rules to be counted without retaining their values
|
|
91
|
+
- policy, provenance, trust-store, and grant expansion drift to require review
|
|
92
|
+
- tampered summaries, statuses, or digests to fail closed
|
|
93
|
+
- endpoint paths, permission specifiers, tool names, and inert marker values to remain absent
|
|
94
|
+
|
|
95
|
+
The snapshot schemas validate the stable report shape. A signed trust record can
|
|
96
|
+
authenticate a reviewed snapshot, but neither the schema nor signature proves runtime
|
|
97
|
+
enforcement or tool safety.
|
|
98
|
+
|
|
99
|
+
## Merged settings stack cases
|
|
100
|
+
|
|
101
|
+
`test/settings-stack.test.mjs` exercises explicit source stacks for both runtimes. It requires:
|
|
102
|
+
|
|
103
|
+
- Claude permission lists to combine while managed/session/local/project/user scalar precedence is preserved
|
|
104
|
+
- project or local Claude sources not to activate `auto` or `bypassPermissions` default modes
|
|
105
|
+
- Codex system/managed/user/profile/project/CLI precedence and closest-project ordering
|
|
106
|
+
- invalid lower-precedence input to fail even when a higher source would replace the setting
|
|
107
|
+
- schema-v2 snapshots to retain only fixed scope counts and to require review when source topology changes
|
|
108
|
+
- source paths, rules, domains, commands, writable paths, environment names, and values to remain absent
|
|
109
|
+
|
|
82
110
|
## What this does not measure
|
|
83
111
|
|
|
84
|
-
This benchmark is intentionally narrow. It does not measure runtime behavior, sandbox escape, arbitrary malware, every form of prompt injection, publisher identity ownership, or vulnerabilities in transitive dependencies.
|
|
112
|
+
This benchmark is intentionally narrow. It does not measure runtime behavior, sandbox escape, arbitrary malware, every form of prompt injection, publisher identity ownership, or vulnerabilities in transitive dependencies. The stack cases merge only sources explicitly supplied to the test; they do not discover active settings, requirements, environment overrides, or server-managed policy, and they do not prove that the reported sandbox is active. In particular, tool descriptions returned dynamically by an already-running MCP server are outside the current static configuration boundary.
|
|
85
113
|
|
|
86
114
|
The small fixture set is a regression baseline, not a statistical claim about detection accuracy. False-positive and false-negative rates require a larger, independently reviewed corpus of redacted real-world configurations.
|
package/docs/ROADMAP.ko.md
CHANGED
|
@@ -12,6 +12,10 @@ TrustDex는 초기 단계입니다. 이 로드맵은 방향을 공유하며 릴
|
|
|
12
12
|
- TrustDex 0.7.0은 값이 제거되고 자체 일관성을 검증하는 권한 상태 스냅샷,
|
|
13
13
|
자율성 확대 검토 게이트, 버전 지정 JSON 스키마 및 공개 적대적 권한 픽스처를
|
|
14
14
|
추가합니다.
|
|
15
|
+
- TrustDex 0.8.0은 문서화된 Claude Code 및 Codex 우선순위를 위한 명시적 병합 소스
|
|
16
|
+
검사, 스키마 v2 소스 구성 증거 및 안전하게 실패하는 스택 테스트를 추가합니다.
|
|
17
|
+
- TrustDex 0.9.0은 MCP 정책/출처 결과와 자동 도구 권한 사이의 값 없는 Claude/Codex
|
|
18
|
+
연결, 버전 지정 스키마, 드리프트 검토 및 비활성 픽스처를 추가합니다.
|
|
15
19
|
|
|
16
20
|
## 현재: 경계 강화
|
|
17
21
|
|
|
@@ -22,13 +26,12 @@ TrustDex는 초기 단계입니다. 이 로드맵은 방향을 공유하며 릴
|
|
|
22
26
|
- 안정적인 정책 및 스냅샷 스키마 규칙 문서화
|
|
23
27
|
- CI, CodeQL 및 릴리스 자동화를 재현 가능하고 검토 가능한 상태로 유지
|
|
24
28
|
|
|
25
|
-
## 다음:
|
|
29
|
+
## 다음: 실제 런타임 증거 강화
|
|
26
30
|
|
|
27
|
-
- 명령, 경로, 도메인 또는 자격 증명 값을 보관하지 않고 병합된 설정 소스 검사
|
|
28
|
-
- 초기 단일 파일 권한 상태 비교를 병합 설정 소스로 확장
|
|
29
|
-
- 승인된 도구 출처와 해당 도구에 부여된 행동 권한 연결
|
|
30
31
|
- 버전이 지정된 권한 상태 JSON 스키마를 추가 결정 및 런타임으로 확장
|
|
31
32
|
- 권고형 설정 검사가 런타임 및 운영체제 샌드박스와 결합되는 방식 문서화
|
|
33
|
+
- 비공개 파일을 조용히 찾지 않으면서 런타임이 생성한 실제 설정 증거 추가
|
|
34
|
+
- 호출을 가로채지 않고 런타임이 생성한 MCP/도구 목록을 받는 옵트인 어댑터 추가
|
|
32
35
|
|
|
33
36
|
## 그다음: 무결성 증명
|
|
34
37
|
|
package/docs/ROADMAP.md
CHANGED
|
@@ -12,6 +12,10 @@ TrustDex is early-stage. This roadmap communicates direction and is not a releas
|
|
|
12
12
|
- TrustDex 0.7.0 adds value-free, self-validating permission posture snapshots,
|
|
13
13
|
autonomy-expansion review gates, versioned JSON schemas, and public adversarial
|
|
14
14
|
permission fixtures.
|
|
15
|
+
- TrustDex 0.8.0 adds explicit merged-source inspection for documented Claude Code
|
|
16
|
+
and Codex precedence, schema-v2 source topology evidence, and fail-closed stack tests.
|
|
17
|
+
- TrustDex 0.9.0 adds value-free Claude/Codex bindings between MCP policy/provenance
|
|
18
|
+
results and automatic tool grants, versioned schemas, drift review, and inert fixtures.
|
|
15
19
|
|
|
16
20
|
## Now: harden the boundary
|
|
17
21
|
|
|
@@ -22,13 +26,12 @@ TrustDex is early-stage. This roadmap communicates direction and is not a releas
|
|
|
22
26
|
- document stable policy and snapshot schema rules
|
|
23
27
|
- keep CI, CodeQL, and release automation reproducible and reviewable
|
|
24
28
|
|
|
25
|
-
## Next:
|
|
29
|
+
## Next: strengthen effective-runtime evidence
|
|
26
30
|
|
|
27
|
-
- inspect merged settings sources without retaining commands, paths, domains, or credential values
|
|
28
|
-
- extend the initial single-file posture comparison to merged settings sources
|
|
29
|
-
- connect approved tool provenance to the action permissions granted to that tool
|
|
30
31
|
- extend the versioned permission-posture JSON schemas to additional decisions and runtimes
|
|
31
32
|
- document how advisory settings checks compose with runtime and operating-system sandboxes
|
|
33
|
+
- add runtime-produced effective-setting evidence without silently discovering private files
|
|
34
|
+
- add opt-in adapters for runtime-produced MCP/tool inventories without intercepting calls
|
|
32
35
|
|
|
33
36
|
## Then: prove integrity
|
|
34
37
|
|