Webinar: Building Burp Extensions with Kotlin.
Building Burp extensions quickly is vital to deliver comprehensive pentests without limitations by tools.
Learn MoreJUMP TO
An application penetration test, or “pentest”, is a security assessment to determine if an application can be compromised, subverted, or poses risk to the business. It is both a highly technical and creative exercise to identify vulnerabilities in business logic and functionality.
A pentest is designed to assess application security from a number of lenses. Some are passive, where the assessor simply looks at application responses for sensitive data. Others
While some of the tasks performed during a pentest are universal checks, the most important test cases are often unique and subjective to both the business and application.
01
Scope
02
Assess
03
Report
04
Retest
When engaging a pentest company, application pentests are a relatively hands-off process. Meaning that once a tester has access to the application, they can perform all work necessary to complete the assessment on their own.
There are cases, however, where some explanations and demonstrations are needed to make meaningful use of the application. After all, to truly attack an application, someone must understand how it’s used first.
Once the assessment is completed, a report is delivered containing the vulnerabilities identified along with best practices for remediation.
Webinar: Building Burp Extensions with Kotlin.
Building Burp extensions quickly is vital to deliver comprehensive pentests without limitations by tools.
Learn MoreScoping an application pentest is vital to the success of the assessment. This process used to understand the following key items:
These factors are used by the testing team to determine how much time is needed for a pentest. But more importantly, it also allows us to make special considerations for how we perform the pentest.
Application Pentest engagements can typically be categorized by one of three types of scope.
Although the vast majority of engagements fall into the gray box category, there are always circumstances where more or less depth is appropriate.
Pentesting always requires tools, but there is a very important relationship between automation and manual efforts.
Automation can be incredibly valuable for identifying “low hanging fruit” across a large application. For example, a fully automated scan is likely the best way to identify many tricial instances of XSS in a large application.
On the other hand, a scan is likely to miss nearly all business logic vulnerabilities, including those that allow privilege escalation.
All pentesters require tools of some kind, in fact, tools are a vital part of pentesting. But the relationship is very similar to that of a surgeon and a scalpel.
While effective tools are a great aide, they are never a replacement for the skills needed to execute a successful test.
A pentest is typically guided by a methodology, which outlines the types of vulnerabilities tested for as well as an approach for common application features.
A pentest methodology is like a checklist for an airline pilot. They are useful for conducting a successful test, but still no replacement for years of skill and experience.
Often referred to as “the front door”, authentication systems determine who can access an application. Testing this functionality attempts to find weaknesses such as the following:
Most modern applications use sessions to track authenticated users. These may use a variety of designs, including cookies, tokens, or parameters, which each have a variety of testing methods.
Applications often disclose unnecessary and sensitive information. Forgotten backup files, code comments, and improperly designed API responses are just a few of the many ways applications unintentionally expose sensitive data.
Knowing where to look is just as important as knowing how to extract such information. While application errors are frequent culprits of information disclosure, application pentests use many methods to reveal sensitive information.
It’s not uncommon for an application to have hundreds of thousands of both inputs and outputs. Parameters are the toggles that steer the application into its expected states, but they can also be easily misused.
Since nearly all applications interact with a database, an improperly formatted parameter can have severe consequences. Failing to sanitize even a single user-controlled parameter can allow database queries to be altered maliciously.
Attempting to bypass access controls is one of the main overarching goals for any application pentest. This phase overlaps many others, as a pentester can gain unauthorized access in many ways.
The final product of an application pentest is also one of the most overlooked. Pentest reports should clearly show the vulnerabilities identified along with steps to reproduce and remediate the issue.
Pentest risk ratings are a hot topic among enterprise security teams. They can easily become the focal point of tension between teams who must decide what vulnerabilities are remediated and when.
How much does a pentest cost?
Pricing for an application pentest is highly dependent on size and scope. Key factors such as the number of workflows, number of user roles, and technologies in use can affect pentest pricing.
How long does a pentest take?
Pentest duration depends on size and complexity; however, most pentests are time-boxed engagements that last between one and three weeks.