Skip to content

Define multi-identity workload security contract - #63

Open
omry wants to merge 1 commit into
pr62from
pr63
Open

Define multi-identity workload security contract#63
omry wants to merge 1 commit into
pr62from
pr63

Conversation

@omry

@omry omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Select Podman for exact and bounded-range mapping profiles, define exclusive per-installation private mappings and the trusted supervisor capability boundary, and record identity-policy, sandbox, isolation, capability, and lifecycle conformance requirements before product integration.

Require Docker Engine rejection, reject external bind mounts until safe input and ownership contracts exist, and require identifiable seccomp-policy evidence while deferring public schema and production runtime behavior to later reviewed slices.

@omry
omry changed the base branch from main to pr62 August 14, 2026 03:53
@omry
omry marked this pull request as ready for review August 14, 2026 03:59
Copilot AI lite review requested due to automatic review settings August 14, 2026 03:59

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review 64a1263

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: 64a12632ce

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@omry omry added the approved PR reviewed and approved label Aug 14, 2026
@omry
omry force-pushed the pr63 branch 2 times, most recently from 2222795 to fb4dac1 Compare August 14, 2026 10:24
@omry omry removed the approved PR reviewed and approved label Aug 14, 2026
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review fb4dac1

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fb4dac1e2d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review 5c01ea7

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5c01ea7ef8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review eb6cb2e

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eb6cb2e209

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review c7faf41

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c7faf4182e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review 10c05fb

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 10c05fb703

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review f4e7ca9

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f4e7ca98ce

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review b709b28

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b709b28c6e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
Select Podman for exact and bounded-range mapping profiles, define exclusive per-installation private mappings and the trusted supervisor capability boundary, and record identity-policy, sandbox, isolation, capability, and lifecycle conformance requirements before product integration.

Require Docker Engine rejection, reject external bind mounts until safe input and ownership contracts exist, and require identifiable seccomp-policy evidence while deferring public schema and production runtime behavior to later reviewed slices.
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review d8f2ef9

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d8f2ef9816

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

| --- | --- | --- | --- | --- |
| ID-01 | Every mapped identity has exclusively delegated subordinate host authority only; it does not alias host root, a local or NSS-provided host principal, or a subordinate range delegated to another host principal. | 1 | Host-side mapping inspection and authoritative collision checks against the host identity inventory and every other subordinate UID/GID delegation, plus explicit collision-failure cases and an in-container identity probe for each profile. | Unproven; repeated conformance probe pending |
| ID-02 | The trusted supervisor can perform every required declared transition and rejects mapped-but-undeclared UIDs, GIDs, and supplementary groups; a separate raw bounded-range mechanism probe permits representative other in-range transitions. | 1 | Positive declared-identity and negative mapped-but-undeclared tests through the production supervisor policy, plus an independently identified raw range-mechanism probe. | Unproven; repeated conformance probe pending |
| ID-03 | Exact mappings reject every unmapped transition; bounded ranges reject every out-of-range transition; capability-dropped children cannot change identity or regain authority through set-ID or file-capability execution. | 1 | Profile-specific boundary and post-drop tests for `setuid`, `setreuid`, `setresuid`, `setfsuid`, `setgid`, `setregid`, `setresgid`, `setfsgid`, `setgroups`, set-user/group-ID execution, and file-capability execution. | Unproven; repeated conformance probe pending |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Verify the child's final supplementary-group vector

When the supervisor starts with privileged or runtime-required supplementary GIDs and changes only the child's UID/primary GID before dropping capabilities, all listed transition and post-drop setgroups checks can pass while the child retains undeclared group access. The fresh evidence is that the amended rows reject requested mapped-but-undeclared groups but never inspect inherited membership; require each child's final Groups: vector to contain exactly its declared supplementary groups before untrusted execution.

Useful? React with 👍 / 👎.

| ID-01 | Every mapped identity has exclusively delegated subordinate host authority only; it does not alias host root, a local or NSS-provided host principal, or a subordinate range delegated to another host principal. | 1 | Host-side mapping inspection and authoritative collision checks against the host identity inventory and every other subordinate UID/GID delegation, plus explicit collision-failure cases and an in-container identity probe for each profile. | Unproven; repeated conformance probe pending |
| ID-02 | The trusted supervisor can perform every required declared transition and rejects mapped-but-undeclared UIDs, GIDs, and supplementary groups; a separate raw bounded-range mechanism probe permits representative other in-range transitions. | 1 | Positive declared-identity and negative mapped-but-undeclared tests through the production supervisor policy, plus an independently identified raw range-mechanism probe. | Unproven; repeated conformance probe pending |
| ID-03 | Exact mappings reject every unmapped transition; bounded ranges reject every out-of-range transition; capability-dropped children cannot change identity or regain authority through set-ID or file-capability execution. | 1 | Profile-specific boundary and post-drop tests for `setuid`, `setreuid`, `setresuid`, `setfsuid`, `setgid`, `setregid`, `setresgid`, `setfsgid`, `setgroups`, set-user/group-ID execution, and file-capability execution. | Unproven; repeated conformance probe pending |
| ID-04 | Two installations using the same container IDs have distinct host mappings plus distinct PID and IPC namespaces; they cannot observe, signal, or ptrace each other's processes, use each other's System V shared-memory, semaphore, or message-queue objects, or read each other's private state. | 1 | Concurrent two-workload probe with host mapping, PID-namespace, and IPC-namespace inspection plus negative process visibility, signaling, ptrace, System V IPC, and private-state access tests. | Unproven; repeated conformance probe pending |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Exercise POSIX IPC isolation between workloads

When workloads have distinct IPC namespaces but accidentally share a /dev/shm mount, every newly added System V probe can pass while named POSIX shared-memory and semaphore objects remain mutually accessible. The fresh evidence is that amended ID-04 now enumerates only System V IPC despite promising isolation from all IPC objects; also require private /dev/shm inspection and negative shm_open/sem_open probes.

Useful? React with 👍 / 👎.

| RV-01 | Revocation makes ordinary operations fail closed without mutating retained storage or releasing its mapping. | 1 | Revocation and recovery tests with retained owned data. | Unproven; revocation not designed |
| HB-01 | Host bootstrap is explicit, auditable, idempotent, validates that its delegated IDs are exclusive and non-overlapping, and enables later user-level operation without host root. | 1 | Repeated bootstrap, successful user operation, and failures for absent or inconsistent preparation, collisions with local or NSS-provided host principals, overlap with another principal's subordinate delegation, and an identity inventory whose completeness cannot be established. | Unproven; bootstrap not designed |
| SB-01 | No workload uses privileged mode or gains host-root authority. | 1 | Runtime inspection plus negative host-authority tests. | Unproven; repeated conformance probe pending |
| SB-02 | The approved seccomp profile is explicitly selected and identifiable in the resolved and effective runtime policy; application processes have `NoNewPrivs: 1` and seccomp filter mode (`Seccomp: 2`); syscalls the approved profile must block fail; the container root filesystem is read-only except for declared writable storage; and namespaces, devices, mounts, and network attachment match declared policy, with no host control socket, undeclared path, or peer-reachable network. | 1 and 2 | Resolved-policy and host/runtime inspection through the supported Podman path plus negative approved-policy syscall, path, cross-workload TCP, and cross-workload UDP tests through supported Reploy interfaces. | Unproven; baseline checked by one-off probe; repeated conformance pending |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve resource bounds in the support gate

For a production Podman workload on a host that supports limits, this row can pass without any process, memory, CPU, temporary-storage, or output bound, allowing an untrusted workload to exhaust host resources. The fresh evidence is that amended SB-02 adds seccomp, NoNewPrivs, and read-only-root checks but still omits the application-runtime resource policy required by docs/CONTROLLED_SESSION_DESIGN.md:480-481; add resolved-policy inspection and exhaustion tests for those bounds.

Useful? React with 👍 / 👎.

Comment thread docs/FUTURE_DIRECTIONS.md
- Can the generated app control script stay identical across Docker Engine,
Docker Desktop, Colima/Lima, and VM-backed runtimes?

### Isolated Multi-Identity Workloads

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add a Changie fragment for the new public contract

This adds a user-visible security contract and advertises the planned Podman-only capability in the active future-directions documentation, but the commit contains no release-note fragment under .changes/unreleased/. Add a Docs, Security, or other configured Changie fragment so the documentation change appears in the generated changelog.

AGENTS.md reference: AGENTS.md:L7-L13

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants