If you’re shipping a mobile app to market, there’s a good chance you’ll get an external pen test report before you’re ready to release.
There are plenty of good reasons to do so. After all, pen testers are trained to target your app in much the same way a hacker would, making this a hugely valuable way to understand its overall security posture.
When the report comes back, you’ll generally have a long list of vulnerabilities, issues, and bugs. This is completely normal. But before you can go to market, you’ll have to resolve the most critical issues and ensure the app is safe, secure, and compliant.
Doing that is easier said than done. To do so, you’ll have to make a number of strategic decisions that no pen test report can make for you. So where do you start?
Before we can consider how to prioritize vulnerabilities, it’s first helpful to understand them. After all, there are a whole range of different types of issues that a mobile app penetration test report might identify—and not all of them are equally dangerous.
It’s therefore important to understand what these vulnerabilities involve and how a malicious actor would exploit them. We can split these up into issues affecting the client and server side of the app:
This includes any issues affecting the user-facing app, including:
As the name would suggest, these relate to any issues on any servers your company manages., including on-premises and cloud-based infrastructure. These include:
When you receive your pen test report, you’ll probably find a long list of vulnerabilities, ranked from critical to low.
Your first instinct will likely be to resolve the most critical issues first and work your way down the list. This is usually the right policy. But there are several other factors you’ll also need to take into account:
Some vulnerabilities will take longer to remediate than others. Therefore, an issue with lower criticality might be very quick to resolve, making it easier to prioritize it outright.
Pen testing companies have a whole range of metrics they use to decide how risky a particular vulnerability is. But generally, they aren’t experts on your infrastructure and might not know the impact of a specific vulnerability on your app, server, or architecture.
For example, a vulnerability might be labeled high-risk by the vulnerability report. But if the exploit would target a non-critical asset, it could be less dangerous than the pen test suggests.
Pen testers will generally carry out their analyses on test rather than production builds. This generally involves disabling many of the security protections that would be present when the final app is released. This could include code obfuscation, firewalls, and SSL-pinning features.
None of these features are designed to remediate specific vulnerabilities. But they do make it much more difficult for hackers to understand and successfully exploit them. If so, this would make the danger lower than it might initially appear. Pen testers generally take this into account, but not always.
Generally, it’s helpful to provide the pen testing company with a test environment that’s as close as possible to the production environment. This will reduce the impact of these issues—though, of course, it’s not always possible.
Pen testing companies use different metrics and standards to identify vulnerabilities and assign risk. While there are industry standards (like the common vulnerability scoring system), these aren’t used by everyone.
At the same time, companies won’t even necessarily use the same terms to label criticality. Some will rank four levels (critical, high, medium, and low), others only three (critical, medium, and low). Here, the relative risk of medium is going to differ, depending on which version is being used.
There’s no objective standard here and the results will generally differ from company to company. Therefore, it’s important to take this into account when deciding on your strategy.
So you’ve received your pen test report. At this point, your priority is to get your app ready to ship to market as quickly as you can, without sacrificing safety or compliance.
So how do you get from here to there?
Obviously, you’ll need to remediate a whole range of vulnerabilities before the app is ready. But it’s not quite as simple as starting at the top of the list and working your way down.
To work out your game plan, you’ll need to work with an in-house technical specialist who can interpret the pen test report and collaborate closely with the company that produced it. During the discussion, there are several key decisions you’ll need to make to determine what needs remediating and when:
The results of your pen test might seem daunting at first, but it’s nothing out of the ordinary. Very few apps will make it to this stage without a whole swathe of issues to resolve.
But while remediating vulnerabilities is important, it’s not the only tool in your arsenal to keep your app safe. In fact, products like application shielding aim to make it as difficult as possible for hackers to understand and exploit any vulnerabilities in your app.
Application shielding uses a range of techniques that make your apps resistant to a whole range of attacks. This includes: