With less than a year until the CISA deadline for publishing memory safety roadmaps, here’s a practical framework for creating one.
What CISA Expects
The roadmap should detail:
- How you’ll modify your SDLC to reduce memory-unsafe code
- Prioritized approach to eliminating memory safety vulnerabilities
- Focus on priority components (network-facing, cryptographic operations)
- Timeline and milestones
Let’s break this down into actionable steps.
Phase 1: Inventory (Weeks 1-4)
Catalog Your Codebase
- List all repositories and their primary languages
- Identify C/C++ components and their line counts
- Map native dependencies in higher-level languages
- Document third-party libraries with C/C++ cores
Tool Recommendations:
- GitHub’s dependency graph
- SCA tools (Snyk, Dependabot) for dependency mapping
clocfor line count by language
Phase 2: Risk Assessment (Weeks 5-8)
Classify Components by Risk
High Risk (Priority 1):
- Network-facing code that parses untrusted input
- Cryptographic implementations
- Authentication and authorization boundaries
- Code running with elevated privileges
Medium Risk (Priority 2):
- Internal services handling sensitive data
- File parsing and processing
- IPC mechanisms
Lower Risk (Priority 3):
- Internal tools with limited exposure
- Code running in sandboxed environments
- Non-sensitive data processing
Phase 3: Strategy Selection (Weeks 9-12)
For each high-risk component, choose an approach:
Option A: Rewrite
Full rewrite in a memory-safe language. Highest security benefit, highest cost.
Option B: Wrapper/Isolation
Keep C/C++ code but isolate it (sandboxing, process separation, capability restrictions).
Option C: Hardening
Apply memory safety mitigations (ASLR, stack canaries, sanitizers) without rewrite.
Option D: Replace with Library
Switch to a maintained, memory-safe library that provides equivalent functionality.
Phase 4: Timeline Development (Weeks 13-16)
Realistic Milestones:
- Q1 2026: Roadmap published, inventory complete
- Q2-Q4 2026: Priority 1 components addressed
- 2027: Priority 2 components addressed
- 2028+: Priority 3 and ongoing maintenance
Be Honest About Timelines
A 5-year roadmap is credible if it’s realistic. An 18-month roadmap that you’ll miss is worse than a longer one you’ll achieve.
Phase 5: Documentation
The Roadmap Document Should Include:
- Executive summary for non-technical stakeholders
- Methodology for inventory and risk assessment
- Component-by-component analysis and strategy
- Timeline with milestones and success criteria
- Resource requirements (budget, headcount, training)
- Governance and progress tracking approach
What “Good” Looks Like
A credible roadmap shows:
- You understand your memory safety exposure
- You’ve prioritized based on actual risk
- Your timeline is realistic given resources
- You have executive commitment to the plan
- You’re tracking progress with metrics
The goal isn’t perfection by January 2026. It’s a credible plan that shows security maturity.