Penetration testing is the process of creating simulated attacks on a program or computer system to identify the vulnerabilities that can be exploited in the system. Penetration testing, commonly referred to as Pen testing, uncovers the vulnerable parts of a system such as unsanitized inputs, that can be used to inject attacks into the system.
The data collected from the penetration testing is used to fix the vulnerabilities identified, thus making sure that the system as a whole is as secure as can be. Penetration testing can be broken down into five stages;
Here, the scope and goals of the penetration testing are identified. This includes identifying the specific system on which the testing will take place, as well as the methods that are going to be used. Additionally, information is gathered on how the targeted system works, and any vulnerabilities that can be exploited.
Here, a deep analysis is carried out to identify the way the system will, or is supposed to, respond to a certain condition. This analysis is often two-fold.
Static analysis is inspecting the code of an application or program to estimate how it behaves. Dynamic analysis, on the other hand, inspects the code of the program while the program is running, and thus it is able to provide real-time information on the program's performance.
This is the meat of the penetration process. At this stage, attacks, such as backdoors and cross-site scripting, are used to uncover the vulnerabilities of the system, program, or application. Additionally, the testers use the vulnerabilities they have identified to exploit and compromise the system by means such as stealing data and escalating privileges.
At this stage, tests are carried out to try and see if the vulnerability identified can create a means to achieve a persistent presence in the compromised system. The idea is to try and simulate the more advanced persistent threat; ones that stay in the system for months, even years, as a means to get the system's more sensitive information.
Here, the result of the tests are compiled, and a report that showcases the vulnerabilities of the system, the sensitive information accessed, and the amount of time the penetration test remained in the program is compiled.
There are five main methods of penetration testing external testing; here, the test targets the assets of the organization of application that are visible on the internet. These assets include the email of the organization, the company website, and even the web application itself.
Internal testing; is where the tester has access to the application or program behind the firewall. This type of testing simulated an attack by a malicious insider.
Blind testing is when the tester is only given the name of the organization, application, or program that is being tested. This type of testing gives the security personnel a real-time example of how the test will take place.
Double-blind testing is where the security personnel does not know that there is an attack taking place. Thus, they do not have the time or tools to prepare and defend this breach.
Targeted resting is when both the tester and the security personnel are aware of each other's movements. This gives the security team a chance to gain valuable exercise.
Vulnerability scanning is identifying and creating an inventory of a system in its entirety. For a computer system, for example, this may include desktops, laptops, switches, printers servers, switches, and any other entity that is part of the system.
After the said inventory has been done, the vulnerability scanner checks all the items in the inventory and tries to match the items with those of a system or database which has known vulnerabilities. This way, the vulnerabilities are identified, and thus can be removed or remedied.
Vulnerability scanning is part of a larger, more complex process, the vulnerability management system. Vulnerability scanning finds the systems and applications, or parts of the system or application, that have been known to have security vulnerabilities in other systems and applications. The information is used by the IT security teams as the first part of the vulnerability management system.
The next process is to make sure that the vulnerabilities identified are evaluated and the risks they pose to the security of the system or organization are identified. Additionally, the security team also identifies whether the security system in place can fight back, or help to mitigate the damage that would likely be caused in case of an attack.
The next stage of the vulnerability management process is to treat or remove, any and all the vulnerabilities that have been identified. Alternatively, the security team can simply look for ways to ensure that any damage caused by an attack through the vulnerabilities is palliated.
The last stage is to create a report showcasing all the vulnerabilities that have been identified, and how they were handled. This information will potentially be very useful in the future, in case of any maintenance processes taking place in the system, or when an attack on the system happens.
Vulnerability assessments and scans search systems for known vulnerabilities. Penetration tests on the other hand attempt to exploit a weakness in an environment actively. Vulnerability scans can be automated but penetration tests require different levels of expertise. Here is a great analogy. Vulnerability scanning is similar to walking up to a door, checking to determine if it is unlocked, and stopping there. Penetration testing goes further. It checks if the door is unlocked, opens it, and walks into the room. Performing vulnerability scanning regularly is essential for maintaining information security. The table below highlights the differences between pen tests and vulnerability scans.
|
Penetration test
|
Vulnerability scan
|
Frequency
|
Once or twice per annum, and anytime that internet-facing equipment goes through major changes.
|
Usually performed quarterly, particularly after new equipment is loaded or when the network undergoes major changes.
|
Reports
|
Identifies that data that was compromised concisely.
|
Offers a comprehensive baseline of the vulnerabilities that exist and the changes that have taken place since the last report.
|
Focus
|
Discovers exploitable and unknown weaknesses in usual business processes.
|
Lists the software vulnerabilities that are known and might be exploited.
|
Who performs it
|
It is better to use an independent outside service and substitute between 2 and 3.
|
In-house staff usually conducts the scans using authenticated credentials. It does not require persons with a high skill level.
|
Value
|
Identifies and minimizes weaknesses
|
Detects when equipment may be compromised.
|
The most basic of differences between vulnerability scanning and penetration testing is that vulnerability scanning tries to identify the parts of the system that are known to be vulnerabilities. Penetration testing, on the other hand, identifies the weaknesses of a system, either in the system configuration or the organizational process, and practices that can be used to exploit and compromise the said system.
Penetration testing and vulnerability scanning are both vital to a complete security strategy. They are powerful tools that organizations use to improve and monitor their network environment.