Add Physical Security framework#501
Conversation
Updated checklist items to use markdown checkboxes for better readability and organization.
Sidebar Configuration ReminderThis PR includes added, renamed, or removed documentation files:
Please ensure that:
See Contributing Guide – Sidebar & Navigation for more details. This is an automated reminder. If this PR doesn't need sidebar changes, you can ignore this message. |
frameworks-volunteer
left a comment
There was a problem hiding this comment.
Model: z-ai/glm-5.1 Reasoning: medium Provider: openrouter
Security Review
No issues found. Content is static MDX with standard components. No secrets, injection vectors, or sensitive data exposure.
QA Review
Found 2 issues that should be fixed before merge, plus 2 minor suggestions.
Issues (should fix)
-
threat-model.mdx -- contributor typo:
users: [Allypry](lowercase 'p') while all other pages useusers: [AllyPry](uppercase 'P'). GitHub usernames are case-sensitive and the contributor lookup in contributors.json usesAllyPryas the key, so this will break attribution rendering on the threat model page. -
Missing trailing newlines: 8 of 10 new MDX files lack a trailing newline (
\ No newline at end of filein the diff). This can cause markdownlint failures or noisy diffs on future edits. Affected files: defensive-design-principles.mdx, incident-response.mdx, overview.mdx, recovery-and-resilience.mdx, risk-factors-and-early-signals.mdx, threat-model.mdx, transaction-flows-under-duress.mdx, wallet-and-key-architecture.mdx.
Suggestions (non-blocking)
-
vocs.config.tsx -- inconsistent link prefix: Overview entry uses
'physical-security/overview'(no leading slash) while all other Physical Security entries use'/physical-security/...'(with leading slash). Consider making this consistent to avoid potential navigation issues. -
Missing
dev: true: New sidebar items lackdev: true. If this content is considered WIP, adddev: trueper AGENTS.md convention. If production-ready, this is fine as-is.
Looks Good
- Well-structured content following playbook template (Key Takeaway, practical guidance sections)
- Comprehensive coverage of the wrench attack threat landscape
- Internal links in overview match actual page paths
- contributors.json entry format is correct
- No hardcoded secrets or placeholder content
- Component imports and TagProvider usage consistent with existing pages
built with Refined Cloudflare Pages Action⚡ Cloudflare Pages Deployment
|
|
@shallem do you think we could include this somehow inside OpSec, or keep it as a separate framework? I think this is big enough to have it's own category and be cross-referenced, even add more stuff not directly related to wallets, like networking, and such, which was mentioned in the opsec while traveling, where there is a lot of overlap with this. |
|
@AllyPry Thanks again for the contribution. It will probably take me a while to reply accordingly because of several reasons:
You're more than welcome to give an opinion and suggest a path forward |
|
Maybe "Physical Security" can have its own category and the wrench attacks framework could be a subcategory? |
|
@frameworks-volunteer, with all the context you have from frameworks, agent.md, skill.md, from the latest development, where would you place Physical security? As a sub-section in opsec, or in a separate framework? In any case you'd suggest, or even both, how would you restructure the contents to be a fit? Because right now it appears to be only a 'wrench attack framework' rather than an actual domain. |
|
Model: After reviewing the current frameworks structure and the PR content, here is my assessment. Physical Security deserves its own top-level framework, but the current content is too narrowThe PR adds 10 pages all scoped to wrench attacks against crypto key-holders. Physical security is a legitimate domain with breadth beyond coercion -- perimeter security, access control, surveillance countermeasures, secure facility design, environmental hazards, supply-chain physical tampering, and more. As written, this is a "Wrench Attack Defense" framework, not a "Physical Security" framework. That is the core structural problem. Recommended placement: separate top-level framework (not under OpSec)Reasons:
Proposed restructure of the PR contentRename the framework scope from "Physical Security" to its actual domain, then expand: Option A: Keep "Physical Security" as the top-level name, restructure internally
Cross-references:
Option B: Rename to "Coercion & Duress Defense" as its own framework If the contributor and maintainers prefer to keep the current scope tight rather than expand into a broader physical security domain, rename it to match what it actually covers. This avoids the "wrench attack framework masquerading as a domain" problem and leaves room for a future Physical Security framework with broader scope. What to de-overlap from OpSecThe OpSec/Travel guide mentions: physical theft, coercion, duress codes, decoy wallets, border inspections. These are coercion/duress topics. If Option A is chosen, those references should be trimmed from the Travel guide and point to the Physical Security framework instead. The Travel guide should focus on: device hardening, network safety, border digital-inspection protocols, and post-trip audit -- not coercion defense. Summary
|
|
@frameworks-volunteer, generate a detailed action plan for option A of the plans you suggested above, in which we decouple the Opsec domain from Physical Security and transform it into a proper top-level domain. |
|
Model: Detailed Action Plan: Decouple OpSec from Physical Security (Option A)This plan transforms Physical Security into a proper top-level domain and restructures the current PR #501 content from a narrow "wrench-attack framework" into a broader Physical Security domain with the coercion content as one sub-category. Phase 1: Restructure the Physical Security Directory LayoutCurrent PR #501 layout (all flat, all coercion-focused): Target layout (sub-categorized, coercion as one section, stubs for other sub-domains): Steps:
Phase 2: Rewrite the Top-Level OverviewThe current
Target: a proper domain-level overview covering:
Phase 3: Extract Physical Content from OpSecContent in OpSec that belongs in Physical Security (to be de-overlapped): 3a. OpSec > Control Domains > Physical & Environmental Controls
3b. OpSec > Travel Guide
3c. OpSec Overview
Phase 4: Update vocs.config.tsx SidebarCurrent PR sidebar (flat list under "Physical Security"): Target sidebar (nested sub-categories): Also update the OpSec sidebar section:
Phase 5: Update Frontmatter on Moved FilesEvery moved MDX file needs:
Phase 6: Fix the Overview Link Bug in Current PRThe current PR has a sidebar bug: All other entries have Phase 7: Add Cross-ReferencesAfter restructuring, add cross-reference links: From OpSec to Physical Security:
From Physical Security to OpSec:
From Wallet Security to Physical Security:
Phase 8: Rename "Personal and Family OpSec" PageThe page Options:
Phase 9: Update the PR DescriptionThe PR description currently says:
Update to reflect the new structure:
Implementation Order
Phases 1-5 should be done in this PR. Phases 3, 7, 8 can be follow-up PRs to avoid scope creep and allow maintainer review of the OpSec changes separately. |
|
@AllyPry are you still willing to take on this? I don't see conversation resolution nor the re-structuring we should do to be able to integrate it properly. Let me know if you need help |
|
Sorry I was on other tasks and totally forgot about it. I'll get back to it this week. |
Reframe the framework so Physical Security is a proper domain rather than a wrench-attack-only framework, per maintainer feedback on PR security-alliance#501. - Move the 10 coercion-focused pages into physical-security/coercion-and-duress/ - Rewrite the top-level overview as a domain overview (people, assets, counter-surveillance, supply-chain integrity) with an OpSec cross-reference - Add stub sub-sections (dev:true): Facility & Perimeter Security, Physical Counter-Surveillance, Supply Chain Physical Integrity - Rename personal-and-family-opsec to personal-and-family-safety - Update vocs.config.tsx sidebar to the nested structure; fix the Overview link missing its leading slash - Fix review issues: contributor typo (Allypry -> AllyPry), trailing newlines - Harmonize framework wording to section in moved pages
Per review feedback on PR security-alliance#501 (decoys are unreliable under duress): reframe decoy/plausibility guidance toward controlled surrender of a small, truthful payout plus visible friction (time-locks, multi-party approval) and duress tripwires. - wallet-and-key-architecture: rename section to Controlled-surrender wallets and duress tripwires; update key takeaway and description - defensive-design-principles: rename the Plausibility principle to Controlled surrender; split into two points - checklist: replace decoy protocols with time-locked reserves; reframe the give-up wallet with a duress alert - overview: update sidebar table-of-contents anchors
Sidebar Configuration ReminderDocumentation files update: New in this push:
Previously seen:
Please ensure that:
See Contributing Guide – Sidebar & Navigation for more details. This is an automated reminder. If this PR doesn't need sidebar changes, you can ignore this message. |
Reframe the framework so Physical Security is a proper domain rather than a wrench-attack-only framework, per maintainer feedback on PR security-alliance#501. - Move the 10 coercion-focused pages into physical-security/coercion-and-duress/ - Rewrite the top-level overview as a domain overview (people, assets, counter-surveillance, supply-chain integrity) with an OpSec cross-reference - Add stub sub-sections (dev:true): Facility & Perimeter Security, Physical Counter-Surveillance, Supply Chain Physical Integrity - Rename personal-and-family-opsec to personal-and-family-safety - Update vocs.config.tsx sidebar to the nested structure; fix the Overview link missing its leading slash - Fix review issues: contributor typo (Allypry -> AllyPry), trailing newlines - Harmonize framework wording to section in moved pages
Per review feedback on PR security-alliance#501 (decoys are unreliable under duress): reframe decoy/plausibility guidance toward controlled surrender of a small, truthful payout plus visible friction (time-locks, multi-party approval) and duress tripwires. - wallet-and-key-architecture: rename section to Controlled-surrender wallets and duress tripwires; update key takeaway and description - defensive-design-principles: rename the Plausibility principle to Controlled surrender; split into two points - checklist: replace decoy protocols with time-locked reserves; reframe the give-up wallet with a duress alert - overview: update sidebar table-of-contents anchors
Sidebar Configuration ReminderDocumentation files update: New in this push:
Please ensure that:
See Contributing Guide – Sidebar & Navigation for more details. This is an automated reminder. If this PR doesn't need sidebar changes, you can ignore this message. |
Reframe the framework so Physical Security is a proper domain rather than a wrench-attack-only framework, per maintainer feedback on PR security-alliance#501. - Move the 10 coercion-focused pages into physical-security/coercion-and-duress/ - Rewrite the top-level overview as a domain overview (people, assets, counter-surveillance, supply-chain integrity) with an OpSec cross-reference - Add stub sub-sections (dev:true): Facility & Perimeter Security, Physical Counter-Surveillance, Supply Chain Physical Integrity - Rename personal-and-family-opsec to personal-and-family-safety - Update vocs.config.tsx sidebar to the nested structure; fix the Overview link missing its leading slash - Fix review issues: contributor typo (Allypry -> AllyPry), trailing newlines - Harmonize framework wording to section in moved pages
# Conflicts: # docs/pages/config/contributors.json
Per review feedback on PR security-alliance#501 (decoys are unreliable under duress): reframe decoy/plausibility guidance toward controlled surrender of a small, truthful payout plus visible friction (time-locks, multi-party approval) and duress tripwires. - wallet-and-key-architecture: rename section to Controlled-surrender wallets and duress tripwires; update key takeaway and description - defensive-design-principles: rename the Plausibility principle to Controlled surrender; split into two points - checklist: replace decoy protocols with time-locked reserves; reframe the give-up wallet with a duress alert - overview: update sidebar table-of-contents anchors
|
Thanks for the feedback guys, I've pushed an update:
Ready for another look |
|
I'm taking a good look at this. So far so good! Please reply me in discord ^^ |
Summary
This PR establishes Physical Security as a top-level framework and restructures it
from a wrench-attack-only framework into a proper domain, following @mattaereal's feedback
and the action plan discussed on this PR. (Top-level placement agreed with @scode2277 and
@mattaereal on Discord.)
What changed
Restructure into a domain
physical-security/overview.mdxis now a domain-level overview (people, physical assets,counter-surveillance, supply-chain integrity) with a cross-reference to Operational Security.
(
physical-security/coercion-and-duress/).dev: true) for the rest of the domain: Facility & PerimeterSecurity, Physical Counter-Surveillance, Supply Chain Physical Integrity.
personal-and-family-opsec→personal-and-family-safety.vocs.config.tsxsidebar to the nested structure.Review feedback addressed
truthful payout + visible friction via time-locks and multi-party approval + duress
tripwires), per @ElliotFriedman and @mattaereal.
Allypry→AllyPry), missing trailing newlines,and the Overview sidebar link missing its leading slash.
Branch
develop— no longer conflicting.Deferred to a follow-up PR
plus cross-references in both directions.
Structure
overview.mdx domain overview
coercion-and-duress/ the original 10 pages
facility-and-perimeter/ stub (dev)
physical-counter-surveillance/ stub (dev)
supply-chain-physical-integrity/ stub (dev)