An Avoidable Breach That Could Happen to Any Organization
14 months after the Equifax hack, there is still a lot to learn about software security.
Join the DZone community and get the full member experience.Join For Free
Following a 14-month investigation into the Equifax breach that affected 148 million consumers around the world, a new report from a House Oversight and Government Reform Committee has concluded that the breach was entirely preventable. According to the report, Equifax “failed to fully appreciate and mitigate its cybersecurity risks” and if it had taken action, “the data breach could have been prevented.”
Hackers exploited a known web vulnerability in the Equifax website built on a Java framework called Apache Struts. It has been reported that attackers were focused on the application that allowed consumers to check their credit rating from the company website, which was a custom-built system created in the 1970s. Struts is commonly used in enterprise applications and a favorite of banks, airlines, and Fortune 1000 companies.
Although a security update to fix the vulnerability was available weeks before the attack, these are complicated to track and update without the appropriate application security testing solutions. What’s more, digital transformation within large, well-established institutions is not a simple process. Modernizing legacy systems takes considerable time, capital, and expertise.
Strengthening Security Practices Is the Best Prevention
The Committee’s investigation found several factors led to the hack, including poor security practices and policies, complex and outdated IT systems, and a lack of accountability and management structure. The report notes that Equifax allowed more than 300 security certificates to expire, including 79 certificates for monitoring business critical domains. Further, its failure to renew an expired digital certificate for 19 months left the company without visibility into the theft of the data during the time of the attack.
According to TechCrunch’s Zack Whittaker, the attackers were able to maintain access to the site for more than two months. They were able to move through a number of systems to obtain an unencrypted file of passwords on one server, which gave them access to more than 48 databases that contained unencrypted consumer credit data. Hackers sent more than 9,000 queries on the database and downloaded data on 265 different occasions.
Open-Source Risk Is Not a Problem Without a Solution – But You Need the Right Solution
When the Equifax hack was originally announced, Veracode’s Mark Curphey conducted an analysis on the existing code for Apache Struts, uncovering the fact that it was using 11 vulnerable libraries, which had 43 security advisories reported against them. One of the libraries contained a high-risk remote execution vulnerability where the vulnerable part was being called. At the time, however, information about this issue (CVE-2017-7525) was marked as Reserved in the National Vulnerability Database — meaning it was not publicly or widely available. Yet SourceClear, acquired by Veracode, had a complete technical write-up available to its users.
This is a perfect example of why simple tools that only look at the source code are not sufficient for open source security testing. The library that was in question was only added to Struts at build-time, and therefore never would have been seen by tools monitoring code repositories like GitHub.
Breaches resulting from hackers having their way with vulnerable open source code is the new normal. Despite this trend, the data in Veracode’s State of Software Security Volume 9 released in October does not suggest that open source libraries and components — or the way that they are used — are becoming any more secure. Last year, our scan data showed that roughly 88 percent of Java applications contained a component with at least one vulnerability, and this year, that figure dipped down only marginally to 87.5 percent.
The truth is that vulnerabilities in open-source components are highly likely to be exploited, and issues arise because attackers know that a single vulnerability can be found in a wide range of applications. No one is responsible for ensuring security fixes get disclosed — and disclosed directly to organizations using them —leaving it up to each security and development team to stay up-to-date on what needs patching, and making sure that the work is completed. Without implementing a modern Software Composition Analysis solution, maintaining an inventory of what components are in use, where they’re in use, and if they’re configured in such a way that’s easily exploitable is a major challenge.
Published at DZone with permission of Laura Paine, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.