Skip to content

Secrets Management - Falling into the Pit of Success

Secrets Management

CommunityRSAC Cybersecurity38 minIntermediateOpen on YouTube ↗

Presenters detail vulnerability discovery and exploitation in Secrets Management - Falling into the Pit of Success.

Summary

### Overview In this presentation, speaker Mr. Littlefield discusses the systemic challenges of secrets management across modern software organizations, emphasizing that security breakdowns are driven primarily by human nature, developer workflows, and organizational culture rather than mere developer negligence. Drawing from nearly 30 years in the industry—including tenures at Microsoft, Tableau, Salesforce, various startups, and currently Pulumi—he argues that developers circumvent security controls when systems make it too difficult to get work done. To prevent credential leaks and ease operational burdens, organizations must guide teams into a "pit of success" by unifying configuration and secrets, automating short-lived dynamic credentials, eliminating Secret Zero via OIDC, and maintaining comprehensive secret inventories.

### Key Topics - **The Human Element & Developer Experience**: Around half of breaches involve credentials, driven often by modern architecture complexity, sleep-deprived troubleshooting, and delivery pressures rather than developer laziness. Corporate security training often fails; solutions must integrate seamlessly into day-to-day developer workflows. - **The Reality of Secrets Sprawl and Rotation**: Littlefield details an acquisition scenario where an acquired SaaS organization had over 1,200 lines of config and secrets per environment across 16 global production environments, 10 staging, and 20+ dev environments owned by over 40 teams. Inventorying these secrets took 4 months using Excel, preparing for the first rotation took 5 weeks, and executing the production rotation required 640 developer hours across multiple environments. Fully migrating to a central secret management platform required 20 months. - **Static vs. Dynamic Secrets**: Reliance on static, long-lived credentials causes high operational overhead during rotation and large blast radiuses when leaked. Transitioning to short-lived dynamic secrets and cloud IAM mitigates these risks. - **Unifying Secrets and Configuration**: A common friction point is separating configuration from secrets. Littlefield argues that configuration and secrets belong together because configs often reference secrets, and requiring distinct tools forces developers out of their flow. - **Eliminating Secret Zero**: By leveraging OpenID Connect (OIDC) trust relationships with systems like GitHub Actions or cloud providers, platforms can dispense dynamic credentials without storing a master static secret ("Secret Zero").

### Technical Details - **Secret Brokering and Facades**: During a live demonstration using Pulumi ESC (Environments, Secrets, and Config), the speaker illustrates how environment definitions can store encrypted key-values per environment, project secrets as environment variables (`esc run`), and act as a broker/facade to fetch secrets directly from underlying providers such as AWS Secrets Manager or Google Cloud Secret Manager. - **OIDC Integration**: Demonstrating an integration between GitHub Actions and Pulumi, short-lived tokens are exchanged via an OIDC trust relationship configured to scoped policies (organization, repository, and team constraints), eliminating long-lived CI/CD access tokens. - **Dynamic AWS Roles**: Demonstrating dynamic credentials, a provider assumes an AWS role tied to an OIDC relationship, projecting temporary session credentials with customized durations and audit session names directly to the local CLI (`esc run ... aws s3 ls`).

### Takeaways - **Begin Inventory Immediately**: Most organizations lack an accurate inventory; establishing one is critical despite the difficulty of discovering secrets scattered across custom configurations and strings. - **Prioritize Developer Ergonomics**: Secret management tools must be incorporated into regular dev and staging environments, not just production, avoiding unfamiliarity during outages. - **Adopt Dynamic Provisioning and OIDC**: Phase out static tokens and solve the Secret Zero problem by leveraging dynamic provisioning systems, role assumption, and federated identity. - **Rehearse Secret Rotations**: Treat secret rotations like gamedays to identify dependency order, reduce dev hours, and minimize systemic fragility.

Related talks