Background
Equifax Inc. is one of three major consumer credit reporting agencies in the United States, collecting and storing credit and financial data on hundreds of millions of consumers. As a credit bureau, it was subject to FCRA, the GLBA Safeguards Rule, PCI DSS, and applicable state breach notification laws.
In 2017, Equifax suffered a data breach exposing the personal records of 147 million individuals. Total financial impact exceeded $1.38 billion.
The Technical Environment
Equifax operated consumer-facing web applications built on the Apache Struts framework. One was ACIS — the Automated Consumer Interview System — a portal for consumers to dispute credit report errors.
Key technical conditions at the time of the breach:
- Apache Struts running an unpatched version with a publicly known critical vulnerability.
- Sensitive data including Social Security Numbers stored without encryption at rest.
- The ACIS portal had unrestricted network-level access to 51 internal databases beyond its functional scope.
- A vulnerability scanning tool had an expired SSL certificate, making it blind to HTTPS traffic for 19 months.
- No network segmentation between the internet-facing portal and internal data infrastructure.
- No DLP or behavioral alerting configured to detect anomalous data exfiltration.
The Incident Timeline
- Why was a CVSS 10.0 vulnerability with a publicly available patch left unaddressed for 78 days on an internet-facing system?
- Why was patch compliance tracked via email with no automated verification or escalation mechanism?
- Why was the vulnerability scanning tool not periodically validated — and how did an expired SSL certificate go undetected for 19 months?
- Why did the ACIS portal have unrestricted network access to 51 internal databases beyond its functional requirement?
- Why was sensitive data including Social Security Numbers stored without encryption at rest?
- Why were no DLP or behavioural detection controls configured to identify 78 days of bulk data exfiltration?
- Why did 40 days elapse between internal discovery and public disclosure?
- Why was no trading blackout policy triggered when a material cybersecurity incident was declared internally?