Add Attack Surface Overview page#435
Add Attack Surface Overview page#435ElliotFriedman wants to merge 10 commits intosecurity-alliance:developfrom
Conversation
Visual security posture dashboard showing 12 attack vectors as a radial diagram. Nodes are color-coded (red/amber/green) by posture state with click-to-toggle and localStorage persistence. Clicking a node opens a detail card with description, attack tags, and framework guide links. Designed for CSOs to quickly assess and communicate security gaps. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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. |
Adds dev: true flag to sidebar entry per contributing guidelines. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Selected nodes now scale up 10% and show a soft color-matched glow instead of a detached ring outline. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Posts an automated PR comment when threatData.ts is modified, reminding contributors to include all required fields and verify framework links. Follows the same pattern as the existing vocs-config-reminder workflow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
built with Refined Cloudflare Pages Action⚡ Cloudflare Pages Deployment
|
|
Hey @ElliotFriedman, thanks for the contribution! I think this is really cool! I have a few suggestions on how we could frame it a bit better:
wdyt? Thanks again for putting this together! |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Clicking a node on the radial map showed the detail card below the map, but on typical viewports the card landed below the fold, so it wasn't obvious anything had happened. Use scrollIntoView with block: "nearest" on the card when it mounts or the selected vector changes, respecting prefers-reduced-motion. Third PR feedback item addressed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
054e487 to
2a1bb2f
Compare
|
@scode2277 fixes for all three items are in: |
There was a problem hiding this comment.
Thanks for the fast modifications. I've just noted a couple more things:
- The
attack-surface.mdxpage should be in the intro folder, so it stays with the other intro pages - i've noted that when the button to open the framework is clicked, it triggers a full page reload instead of just changing page like other relative links. Easy fix: we need the
<Link>React tag instead of the<a>one at line 333-338
Also, please reference the how-to-navigate-the-website page (or any other intro one) to add the other missing components to the page
Moved the page to sit alongside the other Introduction pages. Updated sidebar link, internal cross-link in how-to-navigate, and component import path to match the new location. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The detail card's framework link used a plain <a> tag which caused a full page reload. Switched to react-router-dom's <Link> for client-side navigation, consistent with the rest of the site. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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. |
Adds TagProvider, TagFilter, TagList, and ContributeFooter to match the pattern used by all other Introduction pages. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@scode2277 should be good now |
scode2277
left a comment
There was a problem hiding this comment.
All looks good now! Thanks for this contribution and for all the updates!
gtg for me @mattaereal!
Summary
Attack vectors covered
Smart Contract Exploits, Multisig Operational Failures, DPRK/Threat Actor Hiring, Leadership Phishing, Infrastructure Compromise, Frontend/DNS Hijacking, Operational Security Failures, Supply Chain Attacks, Monitoring & Alerting Gaps, Social Engineering, Duress Situations, Governance Attacks

Functionality
Clicking a node also opens a detail card below the map showing a description, severity level, example attack types as tags, a three-way GAP / IN PROGRESS / SECURED toggle, and a direct link to the relevant SEAL framework guide. All posture state is persisted in localStorage so users can return and pick up where they left off. The page is designed to give security leaders an at-a-glance view of their exposure without needing to read through documentation, and to serve as a jumping-off point into the existing framework content for remediation.

New files
components/attack-surface/—threatData.ts,AttackSurfaceDashboard.tsx,AttackSurface.cssdocs/pages/attack-surface.mdxModified files
components/index.ts— added exportvocs.config.tsx— added sidebar entry under IntroductionTest plan
pnpm docs:dev→ page renders at/attack-surface🤖 Generated with Claude Code