DEV Community

Cover image for Password Audit Checklist: How Developers Should Review Security
VaultKeepR
VaultKeepR

Posted on Originally published at vaultkeepr.xyz

Password Audit Checklist: How Developers Should Review Security

The Password Reality Check Every Developer Needs

78% of developers reuse passwords across multiple accounts. You probably know this is bad practice, but when did you last actually audit your own credentials?

Password auditing isn't just corporate security theater. It's systematic credential hygiene that catches real problems before they become breaches. The average developer has 87 accounts across work and personal contexts. Manual review takes hours. Automated tools miss context.

This password audit checklist gives you a structured approach to review your credentials without the usual security consultant fluff.

Why Password Audits Matter in 2026

Breach databases now contain over 15 billion credential pairs. The "I'll deal with it later" approach fails when attackers automated credential stuffing at scale.

Recent supply chain attacks targeted developer accounts specifically. Your GitHub, npm, or AWS credentials aren't just personal risk anymore. They're attack vectors into production systems.

Modern threat models assume some passwords are already compromised. The question is: which ones, and how quickly can you detect and rotate them?

Complete Password Audit Checklist

Phase 1: Inventory and Classification

High-Priority Accounts (Audit First)

  • [ ] Source control (GitHub, GitLab, Bitbucket)
  • [ ] Cloud providers (AWS, GCP, Azure)
  • [ ] Package registries (npm, PyPI, Docker Hub)
  • [ ] CI/CD platforms (Jenkins, CircleCI, GitHub Actions)
  • [ ] Production databases and admin panels
  • [ ] Primary email accounts
  • [ ] Password manager master password

Medium-Priority Accounts

  • [ ] Development tools (Figma, Notion, Slack)
  • [ ] Secondary email accounts
  • [ ] Domain registrars
  • [ ] Monitoring and logging services

Low-Priority Accounts

  • [ ] Social media
  • [ ] Shopping and subscription services
  • [ ] Gaming platforms

Phase 2: Technical Assessment

Password Strength Analysis

Password Entropy Check:
┌─────────────────────────────────────┐
│ Length | Charset | Min Entropy     │
├─────────────────────────────────────┤
│ 12+    | Mixed   | 78+ bits        │
│ 16+    | Alpha   | 75+ bits        │
│ 20+    | Words   | 51+ bits        │
└─────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode
  • [ ] No passwords under 12 characters
  • [ ] No dictionary words or common substitutions
  • [ ] No personal information (names, dates, addresses)
  • [ ] No keyboard patterns (qwerty123, 1qaz2wsx)

Breach Database Verification

  • [ ] Check all emails against haveibeenpwned.com
  • [ ] Review breach dates and affected services
  • [ ] Cross-reference with your account creation dates
  • [ ] Flag any passwords created before known breaches

Reuse Detection

  • [ ] Export password list (hashed or encrypted)
  • [ ] Run duplicate detection script
  • [ ] Check for minor variations (password1, password2)
  • [ ] Identify shared base patterns

Phase 3: Access Pattern Review

Multi-Factor Authentication Status

  • [ ] Enable 2FA on all high-priority accounts
  • [ ] Prefer TOTP over SMS where possible
  • [ ] Use hardware keys for source control and cloud
  • [ ] Document backup codes securely

Session and Recovery Audit

  • [ ] Review active sessions across all accounts
  • [ ] Update recovery email addresses
  • [ ] Verify backup phone numbers
  • [ ] Test account recovery processes

Automated Tools for Developer Workflows

Manual audits catch obvious problems but miss subtle patterns. Here's a practical toolchain:

Breach Monitoring

# Check multiple emails against breach databases
curl -H "hibp-api-key: YOUR_KEY" \
  "https://haveibeenpwned.com/api/v3/breachedaccount/email@domain.com"
Enter fullscreen mode Exit fullscreen mode

Password Entropy Calculation

import math

def calculate_entropy(password):
    charset_size = 0
    if any(c.islower() for c in password):
        charset_size += 26
    if any(c.isupper() for c in password):
        charset_size += 26
    if any(c.isdigit() for c in password):
        charset_size += 10
    if any(not c.isalnum() for c in password):
        charset_size += 32

    return len(password) * math.log2(charset_size)
Enter fullscreen mode Exit fullscreen mode

GitHub Token Audit

# List all personal access tokens
gh auth status
gh api user/tokens --jq '.[] | {name: .note, scopes: .scopes, created: .created_at}'
Enter fullscreen mode Exit fullscreen mode

Implementation Strategy

Week 1: High-Priority Audit

  • Inventory critical developer accounts
  • Run breach checks on primary emails
  • Enable 2FA where missing
  • Generate new passwords for any compromised credentials

Week 2: Systematic Review

  • Audit remaining accounts by priority
  • Set up automated breach monitoring
  • Document recovery procedures
  • Test backup authentication methods

Ongoing: Maintenance Schedule

  • Monthly breach database checks
  • Quarterly password rotation for high-risk accounts
  • Annual full audit with updated threat model
  • Immediate action on security notifications

Common Audit Findings

Most developer password audits reveal similar patterns:

Password Age Issues: 43% of developers use passwords over two years old. Older credentials have higher breach probability and lower entropy by current standards.

Development vs Production Gaps: Secure production passwords but weak development environment credentials. Attackers target dev systems as stepping stones.

Recovery Mechanism Neglect: Forgot to update recovery emails after job changes. Old company emails become attack vectors.

Token Proliferation: GitHub shows an average of 12 personal access tokens per developer account. Most never expire or get rotated.

Beyond Individual Audits

Personal password auditing is baseline security. Consider these advanced practices:

Team Credential Sharing: Use proper secret management instead of shared spreadsheets. Professional password managers provide encrypted sharing without password visibility.

API Key Rotation: Automate rotation for cloud provider keys and service tokens. Manual rotation fails at scale.

Breach Response Planning: Document steps for credential compromise scenarios. Speed matters when breaches happen.

Password auditing isn't glamorous work, but it's foundational security practice. The 30 minutes spent on this checklist could prevent months of incident response.

Top comments (0)