Vulnerability Assessment

What is a security vulnerability assessment?

A vulnerability assessment is the testing process used to identify and assign severity levels to as many security defects as possible in a given timeframe. This process may involve automated and manual techniques with varying degrees of rigor and an emphasis on comprehensive coverage. Using a risk-based approach, vulnerability assessments may target different layers of technology, the most common being host-, network-, and application-layer assessments.

Conducting vulnerability assessments help organizations identify vulnerabilities in their software and supporting infrastructure before a compromise can take place. But, what exactly is a software vulnerability?

A vulnerability can be defined in two ways:

  1. A bug in code or a flaw in software design that can be exploited to cause harm. Exploitation may occur via an authenticated or unauthenticated attacker.
  2. A gap in security procedures or a weakness in internal controls that when exploited results in a security breach.

How does a vulnerability assessment work?

There are three primary objectives of a vulnerability assessment.

  1. Identify vulnerabilities ranging from critical design flaws to simple misconfigurations.
  2. Document the vulnerabilities so that developers can easily identify and reproduce the findings.
  3. Create guidance to assist developers with remediating the identified vulnerabilities.

Vulnerability assessments can take various forms. One assessment method is Dynamic Application Security Testing (DAST). A dynamic analysis testing technique that involves executing an application (most commonly a Web application), DAST is performed specifically to identify security defects by providing inputs or other failure conditions to find defects in real time. Conversely, Static Application Security Testing (SAST) is the analysis of an application’s source code or object code in order to identify vulnerabilities without running the program.

The two methodologies approach applications very differently. They are most effective at different phases of the software development life cycle (SDLC) and find different types of vulnerabilities. For example, SAST detects critical vulnerabilities such as cross-site scripting (XSS) and SQL injection earlier in the SDLC. DAST, on the other hand, uses an outside-in penetration testing approach to identify security vulnerabilities while Web applications are running.

Another method of vulnerability assessment in and of itself, penetration testing entails goal-oriented security testing. Emphasizing an adversarial approach (simulating an attacker’s methods), penetration testing pursues one or more specific objectives (e.g., capture the flag).

How can I tell if my organization requires a vulnerability assessment?

Conduct a vulnerability assessment to verify that security initiatives performed earlier in the SDLC are effective. For example, an organization that properly trains developers in secure coding and performs reviews of security architecture and source code will most likely have fewer vulnerabilities than an organization that does not conduct those activities.

Whether your organization develops applications or uses third-party applications, conducting a vulnerability assessment at least annually, or after significant changes to the applications or application environments are implemented, is critical to ensure a rock-solid security initiative.