Documenting Without Creating a Security Liability

Documentation & Runbooks

Chapter 6 · Documenting Without Creating a Security Liability

Chapters 2 through 5 pushed toward documentation that's more complete, more detailed, and captures more of what an experienced person actually knows. That same completeness has a real cost: the more thoroughly useful a document is to a legitimate technician resolving an incident quickly, the more useful it can potentially be to someone who shouldn't have it at all. This chapter is about writing genuinely useful documentation without it becoming an attack tool sitting in plain sight.

The Core Rule: Never Embed Real Sensitive Values

Never write an actual password, a real API key, or a genuine sensitive configuration value directly into a runbook or KB article — even an internal one, even one you trust everyone currently reading it. Use a clear placeholder instead (<YOUR_API_KEY>), and reference a proper secrets vault or access-management process rather than the literal value.

Why "It's Internal Only" Isn't a Sufficient Excuse

This is `secsupport1`'s own least-exposure principle, applied specifically to documentation content itself, not just live data handling during a ticket. Internal documentation systems get compromised too — an insider misusing legitimate access (`secsupport1`'s own curiosity-access material), or a single compromised account with ordinary read access to the internal wiki. Documentation systems are frequently subject to less scrutiny than production systems themselves — the same reasoning `backup1` applied to backup infrastructure being an attractive, under-monitored target applies directly here.

Beyond Credentials: Attack-Blueprint-Level Detail

Some non-credential detail is still risky to document in full — exact firewall rule logic, or specific detection thresholds precise enough to let someone deliberately stay just under an alert threshold. A runbook can be specific enough to be genuinely useful to a legitimate reader without functioning as a literal blueprint for anyone else who happens to get hold of it.

Access Control on the Documentation Itself

Not every runbook needs to be visible to the entire organization. Documentation covering security-incident handling or disaster-recovery procedures deserves the same least-exposure access thinking `secsupport1` and `backup1` already applied to systems and backups — restrict access to whoever genuinely needs it, rather than defaulting to "everyone can see everything" purely because that's the more convenient default.

Reference, Don't Reveal

StepReveals the sensitive valueReferences it instead
Authenticating to an API"Use API key sk_live_9f2...""Retrieve the production API key from the secrets vault, field prod-api-key"
Accessing an elevated accountDocumenting a shared admin password inline"Confirm you have escalated access via the access-request process before continuing"

Both right-hand versions give a legitimate reader exactly what they need to proceed, without the document itself ever holding the actual sensitive value.

This tension has no universal answer
Writing a genuinely detailed, useful runbook while avoiding a security liability requires real judgment — what's genuinely needed for a legitimate reader to succeed, and what would also help an illegitimate reader succeed, aren't always the same list. There's no formula that resolves this automatically; it has to be weighed deliberately, document by document.

Hands-On Exercises

Exercise 1

Explain why this chapter draws a direct parallel between documentation systems and `backup1`'s own reasoning about backup infrastructure being under-scrutinized, rather than treating this as an unrelated new concern.

📄 View solution
Exercise 2

Using the reference-don't-reveal table, explain why the "good" versions still give a legitimate reader everything they need, despite never containing the actual sensitive value.

📄 View solution
Exercise 3

Explain why this chapter says there's no universal formula for balancing usefulness against security liability, using the specific example of detection-threshold detail.

📄 View solution

Chapter 6 Quick Reference

  • Never embed real credentials or sensitive values — use placeholders and reference a secrets vault instead
  • "Internal only" isn't a sufficient excuse — insider misuse and documentation-system compromise are both real risks
  • Some non-credential detail (exact firewall logic, detection thresholds) can still function as an attack blueprint if too precise
  • Apply least-exposure access control to sensitive documentation itself, not just to systems and data
  • Reference, don't reveal — point to where a value lives rather than writing it inline
  • Balancing usefulness against liability requires judgment, not a fixed formula
  • Next: Chapter 7, keeping documentation current — the silent decay problem