
The previous article made the case that credentials are your biggest vulnerability. If you accept that premise, the question becomes practical: what do you actually do about it?
This is the implementation roadmap. It’s organized into phases because you can’t fix credential security overnight, and trying to do everything simultaneously creates chaos. The sequence matters—each phase builds on the previous one.
You can’t secure what you don’t know exists. Before implementing any controls, you need visibility into the actual state of credentials across your environment.
Start with a complete list of where credentials live:
Document each store: what type of credentials, how many accounts, what manages them, what password policies apply.
Not all credentials are equal. A compromised domain admin account is catastrophic; a compromised read-only user is manageable.
Categorize accounts by privilege level:
For each tier, document: how many accounts exist, who uses them, how credentials are stored, when they were last rotated.
Before implementing new controls, understand your current exposure:
External breach databases: Services like Have I Been Pwned (for individual checks) or commercial threat intelligence platforms can tell you which of your users’ credentials appear in known breaches. This is your immediate risk—these credentials should be forced to rotate now.
Code repositories: Scan your Git repositories (GitHub, GitLab, Bitbucket) for hardcoded credentials using tools like truffleHog, GitLeaks, or GitHub’s built-in secret scanning. Check commit history—a secret removed from current code but present in history is still exposed.
Internal documentation: Search Confluence, SharePoint, shared drives, and wikis for patterns like “password,” “credential,” “API key,” or actual credential formats. You’ll find things.
Configuration files: Audit config files, environment variables, and deployment scripts for hardcoded secrets.
This discovery phase is uncomfortable because it reveals problems. That’s the point. Document everything found—you’ll address it in later phases.
Some discoveries require immediate action. Don’t wait until inventory is complete to address critical findings.
Any credential appearing in a known breach database should be reset immediately. This isn’t optional or “when convenient”—these credentials are actively being tested by attackers.
If you can’t identify which specific accounts are compromised, consider a broader forced reset for high-risk populations. Yes, this creates user friction. A breach creates more friction.
Credentials found in code repositories, documentation, or config files should be rotated immediately. Don’t just delete the exposure—the credential may already be compromised. Rotation is required.
For each exposed secret:
During inventory, you’ll find accounts that shouldn’t exist: former employees, test accounts from three years ago, service accounts for decommissioned systems. Disable them immediately.
If you’re unsure whether an account is still needed, disable rather than delete. If someone complains, you can re-enable. If nobody notices, it was orphaned.
With visibility and emergency remediation complete, implement the baseline controls that every organization needs.
If you don’t have an enterprise password manager (not just personal managers like 1Password or Bitwarden used individually), deploy one. Options include:
The choice depends on scale and maturity. Smaller organizations can start with a general-purpose manager and migrate to PAM later. Larger organizations or those with significant regulatory requirements may need PAM from the start.
Key implementation steps:
Don’t assume deployment equals adoption. Monitor usage and follow up with teams that aren’t using it.
Every application that supports SAML, OIDC, or similar SSO integration should use it. This reduces password sprawl—one identity provider credential instead of dozens of application credentials.
Audit your application inventory:
SSO integration takes effort per application, so prioritize by risk: applications with sensitive data or privileged access first, then work down the list.
Modern password guidance (NIST 800-63B) has evolved:
For privileged accounts, policies should be stricter: longer minimums, regular rotation, additional authentication factors.
Implement these policies in your identity providers and enforce them consistently. Legacy systems that can’t enforce modern policies should be flagged for replacement.
MFA isn’t optional anymore. At minimum, require it for:
Phishing-resistant MFA (hardware keys, passkeys) is preferred over SMS or TOTP, but any MFA is better than password-only.
Implementation typically requires:
See the companion article on MFA and Passkeys for detailed implementation guidance.
With baseline controls in place, focus on the highest-risk credentials: privileged accounts.
Privileged access should be temporary, not permanent. Users request elevated access for a specific task, receive it for a defined period, and lose it automatically.
This reduces standing privileges—attackers who compromise a user account don’t automatically get the privileged access that account had permanently.
Implementation options:
The key metric: how many accounts have permanent admin access vs. temporary? The goal is moving toward zero permanent privileges for human users.
Privileged accounts should be separate from daily-use accounts. A user’s regular account (for email, browsing, daily work) should not also be a domain admin.
This separation limits damage from phishing and workstation compromise. An attacker who captures daily-use credentials doesn’t automatically get privileged access.
Implementation:
Service accounts are often the worst offenders: created years ago, known by multiple people, never rotated, with more permissions than needed.
Move service credentials into a PAM vault that:
Rotation frequency depends on risk, but quarterly is a common starting point. For highly privileged service accounts, monthly or even more frequent rotation is appropriate.
Controls fail. Detection catches what prevention misses.
Configure alerting for:
These aren’t always attacks, but they warrant investigation. Tune thresholds to balance alert fatigue against coverage.
Phase 1 discovery should become a continuous process:
Schedule periodic reviews:
For organizations starting from scratch, here’s a practical tool stack by organization size:
Small (< 100 users):
Mid-size (100-1000 users):
Enterprise (1000+ users):
Track these metrics to measure improvement:
Report these monthly. Improvement should be visible. If metrics aren’t moving, something’s wrong with implementation.
No amount of tooling eliminates credential risk. Humans reuse passwords. Phishing works. Infostealers steal.
The goal isn’t perfection—it’s making credential compromise harder to achieve and less damaging when it happens. Each phase of this roadmap adds friction for attackers and limits blast radius when controls fail.
Start where you are. Do Phase 1 even if you can’t immediately do Phases 4 and 5. Partial implementation of this roadmap is dramatically better than doing nothing while you wait for the perfect solution.