Check out our latest blog: Dell Data Breach – When API Security Goes Wrong
Blog

Dell Data Breach – When API Security Goes Wrong

Published: September 12, 2024

dell data breach

In the tech world, API security isn’t just an option—it’s a necessity. Even the most seasoned players can stumble, as Dell discovered in May of 2024. Their breach, which exposed the personal details of around 49 million customers, wasn’t just a bump in the road; it was a loud wake-up call. If you’re wondering how something like this could happen to a giant like Dell, you’re not alone. Let’s break down what went wrong and, more importantly, how to prevent it from happening to your APIs.

The Anatomy of the Dell Data Breach

So, what exactly happened? The breach occurred in Dell’s Partner Portal API—a gateway designed for partners to access various services, including customer information. The hacker didn’t need to break down the door—they walked right in through the front. By registering fake companies, they gained legitimate access to the portal. From there, they wrote a script that generated random 7-digit service tags, which they used to make API calls and scrape customer data.

Over the course of several weeks, the hacker managed to make 5,000 requests per minute, gathering names, addresses, order details, and product information. Although no financial data was exposed, this breach revealed just how vulnerable even well-established systems can be.

What Went Wrong: Lessons from Dell’s Mistakes

1. Monitoring Your APIs (OWASP API4:2023, NIST DE.DP)

Dell could have addressed this breach earlier with more thorough monitoring of their APIs. With the right dashboard in place, unusual behaviour such as thousands of API requests coming from a single user—would have raised red flags. This ties directly into OWASP API4:2023, which emphasizes the importance of monitoring to detect issues like Unrestricted Resource Consumption. NIST’s Detect (DE) function also highlights the importance of implementing continuous monitoring processes to quickly identify suspicious activity. 

It’s essential to watch not only for unauthorized users but also for unusual activity from authenticated users. This can be achieved through robust monitoring tools like Splunk, ELK, or DataDog, which provide deep visibility into API traffic and user behaviour. These tools allow you to set up custom alerts and dashboards that flag anomalous patterns, such as an authenticated user making an unusually high number of requests in a short period, accessing unexpected resources, or triggering excessive errors. This assumes, of course, that you are capturing the API requests and identities involved in the transaction at your API entry points or in your APIs.  Just because someone is allowed in doesn’t mean they can be trusted to use the API as intended. Attackers often exploit legitimate credentials to fly under the radar, blending in with normal traffic to avoid detection. By actively monitoring for behavioural anomalies, you can catch potential threats even when they’re coming from seemingly trusted sources and shut down attacks before they escalate.

Lesson learned: Don’t assume authenticated users are behaving as they should. Implement monitoring to flag any abnormal activity that could indicate an attack or abuse.

2. Unrestricted Resource Consumption (OWASP API4:2023, NIST PR.AC)

Dell also could have implemented rate limiting.  This allowed the hacker to make 5,000 API requests per minute. The attacker used this vulnerability to harvest large amounts of sensitive information over the course of several weeks. This is an example of unrestricted resource consumption, as highlighted in OWASP API4:2023, where an API is left open to abuse by not placing adequate limits on the volume of requests.

From a security best practices standpoint, this issue also ties into the NIST Cybersecurity Framework’s Protect (PR) function, which emphasizes the need for access control and protective mechanisms to secure systems and data. Implementing rate limiting could have slowed the attacker’s ability to scrape data, forcing them to stretch the attack out over a much longer period. This not only would have reduced the amount of data they could obtain in a given time frame but also increased the likelihood of detecting and mitigating the breach sooner, thereby limiting the damage.

Lesson learned: Rate limiting isn’t a luxury—it’s a necessity. By throttling API requests, you make it harder for attackers to scrape data quickly and efficiently.

3. Avoid Incremental Identifiers (OWASP API3:2023, NIST PR.AC)

Using sequential numbers like the 7-digit service tags in Dell’s API allowed attackers to more easily predict and exploit the system. OWASP API3:2023—Excessive Data Exposure cautions against using predictable identifiers as they minimize the effort to allow unauthorized access to data.  The hacker simply generated a range of service tags and began pulling data by making targeted API calls. By relying on predictable patterns, Dell made it easier for the attacker to scrape information.

Had Dell implemented more complex identifiers, such as GUIDs (Globally Unique Identifiers), the attack would have been more difficult to execute. A GUID, with its high level of randomness, would have rendered the hacker’s guessing strategy nearly ineffective. NIST’s Protect (PR) function reinforces this by emphasizing the importance of managing access controls effectively, which includes not only securing data but also avoiding predictable patterns that can be exploited by attackers. A more sophisticated approach to identifiers could have added a critical layer of defense, preventing this breach from occurring in the first place.

Lesson learned: Avoid using incremental numbers for sensitive items like customer records. Instead, opt for GUIDs or another unpredictable identifier.

4. Add Extra Layers of Validation (OWASP API1:2023, NIST PR.AC)

Even with solid authentication mechanisms, adding another layer of validation can be crucial in preventing unauthorized access to sensitive records. In Dell’s case, the hacker only needed a valid service tag to retrieve order information, which highlights the risk of relying solely on a single method of authorization. This vulnerability ties directly into OWASP API1:2023—Broken Object Level Authorization, which stresses the importance of ensuring that each request for data is appropriately authorized.

By requiring additional information such as a postal code, last name, or company name associated with the order, Dell could have significantly increased the complexity of the attack. This extra validation step would have made it much harder for the hacker to pull random records, adding another barrier to unauthorized access.

NIST’s Protect (PR) function further supports this approach by advocating for the implementation of layered security measures. Proper authorization shouldn’t stop at basic authentication; it should involve additional checks to confirm that the user accessing the data truly has the right to do so. Incorporating these layers of validation not only strengthens API security but also helps mitigate the risks of data exposure through compromised access.

Lesson learned: Implement extra checks to ensure that the person requesting a record is the rightful owner. This could be as simple as validating the some additional details provided by the user.

5. Integrate Identity Checks at the API Level (OWASP API5:2023, NIST PR.AC)

Another layer of security Dell could have implemented is verifying whether the API consumer actually owns the record they’re requesting, reasonably assuming not all consumers should be able to see any order. Simply authenticating a user isn’t enough; proper authorization should also ensure that the requester has legitimate access to the specific data. This falls under OWASP API5:2023—Broken Function Level Authorization, which highlights the need for access control to prevent unauthorized users from accessing sensitive information.

These ownership checks can be integrated at the API or gateway level, creating an additional barrier that only authorized users can pass. By incorporating identity verification mechanisms, organizations can ensure that requests for data are tied to the proper user accounts, preventing unauthorized access even when valid credentials are used.

NIST’s Protect (PR) function reinforces this approach by emphasizing the importance of robust access controls and identity verification within security measures. It’s not just about allowing access but ensuring that the access is appropriate for the data being requested. In the case of Dell’s API, this was a B2B API with no authorization checks, which is critical in certain contexts where access to all records is necessary, such as between business partners. In such cases, the API could be exposed with two distinct policies at the gateway level. This approach allows onboarding to clearly define and grant the appropriate level of access based on identity, ensuring two different levels of authorization are in play. 

Furthermore, the more sensitive B2B API can be monitored closely, ensuring only expected consumers are utilizing it. Alternatively, special identities could be validated to retrieve all records, though this would need to be encoded as a business rule within the policies or API, which is less visible. For example, in a warehouse B2B context, authorization per record may not be required, but proper API policies still need to be in place to ensure security.

Lesson learned: Verify that the current API user has permission to access the specific data they’re requesting whenever possible. Integrate these checks directly into your API or at the gateway level as a service to protected APIs.

Moving Forward: Securing Your APIs

Dell’s breach was a harsh lesson, but it’s one we can all learn from. Whether you’re managing APIs for a global enterprise or a small business, these principles apply. Monitoring your APIs, controlling resource consumption, avoiding sequential identifiers, adding extra validation checks, integrating identity verification, and throttling API access are all possible and critical steps to securing your systems. 

Additionally, Dell’s incident highlights another crucial oversight—onboarding API consumers without sufficient vetting. Ensuring that the authorization process for API consumers is contextual and handled by individuals who understand the business is key. Delegated administration rights could help ensure API consumers are properly authorized before gaining significant access. For example, would a new partner be onboarded with limited permissions until they complete a legitimate business task, like a purchase or shipment? Implementing a thorough validation process before granting full access can make it harder for attackers to exploit open registration systems, preventing unauthorized entities from entering through the ‘front door’ of your business

APIs are the backbone of many modern applications, but they also represent a significant attack surface. By applying these and other precautions, you can protect your organization from becoming the next security headline.  

At Solsys, we specialize in detecting and addressing these types of vulnerabilities. Our team has extensive experience in securing APIs, designing effective authorization controls, and implementing safeguards to detect and prevent similar breaches. Whether it’s fine-tuning your access controls or creating a robust onboarding framework, we can help ensure your systems remain secure. Connect with Solsys.

Marek Suchomski is a Technical Account Manager at Solsys, where he has been dedicated to helping clients leverage Splunk deployments for over three years. With a strong development background, Marek brings a deep understanding of both the technical and business aspects of the industry. As both a manager and a Splunk-certified Admin, Marek is committed to assisting his colleagues in navigating the evolving landscape of cybersecurity.

Previous/Next Article

Related Resources

What’s your business waiting for?

GET IN TOUCH
SOLSYS INC. © 2024 ALL RIGHTS RESERVED