Pen Testing

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

Red Queen Pen Test Reporting A View from the

Classroom
When Alice meets the Red Queen in Lewis Carrolls Through the Looking-
Glass, she runs as fast as she can, but then realizes they remain under the
same tree as they started. The Red Queen explains: Here, you see, it
takes all the running you can do, to keep in the same place

http://www.brandchannel.com/2015/05/01/logistics-050115/
Executive summary
Writing a great pen testing report requires both an understanding of the range
pen testing tools and client expectations. The agreement between the client
business and the pen tester deals with expectations of both parties. This article
covers the flow of this process. I train students to write pen test reports. I use the
saying a man with two watches will never know the right time. With so many pen
test tools you are like that man with two watches, never too sure of the right
number of vulnerabilities present in your website. This article is designed to
know which will reveal the correct answer. The correct answer is a happy client.
Introduction
Pen testers do a great job of seeing risks in websites, servers. How do train a
good pen tester? Can you train someone or is it something that already exists
within your nature. Well, I have to train students not only in the art of pen testing
but also in dealing with client expectations and more importantly writing an
informed pen test report. The balance of finding exploitable holes in a companys
defence versus the cost to perform these tests is a balance well known to pen
testers. The client would say I want 100% bulletproof web server but then say
I do not want to pay a lot. The pen tester would reply If your business is only
online I would expect you to spend a reasonable level to protect your main
business asset. Pen test is a delicate art form of explaining technical risk
identification and keeping your client happy. A Pen Test Report is the
embodiment of this explanation. It is part of a risk assessment process.
The above graphic showing the Red Queen shows how pen testers need to run at
least twice as fast to avoid the hackers. The Red Queen is the pen tester while
Alice is the business client who is going along in this strange new world. I call the
Pen Test Report the Red Queen Pen Test Report. My alternative was Deathworld
Pen Test based on Harry Harrisons SF novels. The link is the co-evolution of
predator and prey (his world develops attackers at the same rate as defenders)
but it is not a great marketing name.
I teach IT networking students about pen testing and report writing for a
business audience. This fits into a Diploma with units that cover risks to the
continuity of any business. Disaster recovery, client understanding are all parts
of this course. Pen testing has an important place in this training as it allows an
organisation to reduce risks on its servers and protect their business. The
students need to write a good penetration report. I expect great to happen every
so often but I am happy with good.
So what makes a good penetration report?
I look at the pen testing from a systems viewpoint (a viewpoint which is common
in other units).
Pen testing was defined to be A test methodology in which assessors, typically
working under specific constraints, attempt to circumvent or defeat the security
features of an information system 1
The system for a web server consists of three layers. This is a technology stack
approach. The top layer is the web pages/CMS sitting in the middle layer
(mysql/php) which then sits on Apache or similar HTTP server platform. The tools
which are directed against this system include Kali and Samurai which are Web
Test Frameworks (WTF) show weaknesses and therefore represent risks to
business continuity. Each layer has its own weaknesses and joins between these
layers are a separate problem. A pen test is a snapshot of these layers at a
certain point in time. Each layer will change.
I use this three layer model to explain web servers but the 3 tier architecture 2
shown below is the best one to explain injection with the most common a SQL
injection. In a simple case the Presentation layer bypasses the Logic layer to
manipulate data in the Data tier. Replace data with credit card details and
businesses respond with Protect me!

1 http://www.ncsc.gov/nittf/docs/CNSSI-4009_National_Information_Assurance.pdf

2 https://en.wikipedia.org/wiki/Multitier_architecture
The training in this pen testing process has a certain flow. It follows a simple
project structure of initiation, planning, execution and closure.
Initiation The Contract between Business owner and Pen Tester.
The first is the business legal side of authorising access. Unauthorised access is
illegal. A contract proves that access has been authorised. The next step is
expectations of the test. These are found in the deliverables at the end of the
contract along with a payment schedule. I use the OWASP framework to cover
this part3. This contract is for software development and needs modifications for
a Pen Test. A contract is needed (unless it is an internal test group) which
specifies the obligations of each party. The website and range of IP addresses
with a check on ownership is the first part of the contract. The section which is of
interest is the use of standards or methodology:

(e) Security Analysis and Testing


Developer will perform application security analysis and testing (also called "verification")
according to the verification requirements of an agreed-upon standard (such as OWASP

3 https://www.owasp.org/index.php/OWASP_Secure_Software_Contract_Annex
Testing Guide). The Developer shall document verification findings according to the
reporting requirements of the standard. The Developer shall provide the verification
findings to Client.
The standard is the main problem. I will discuss Standards a little later. If you
follow standards it gives both sides protection.

The other part of the contract that I ask about is the section on Acceptance.
11. SECURITY ACCEPTANCE AND MAINTENANCE
(a) Acceptance
The software shall not be considered accepted until the certification package is complete
and all security issues have been resolved.

I ask the students will they give me 100% guarantee that the risks are identified.
So what am I testing and what report is needed for the client in order that they
be paid?
The contract is then debated and expectations are better understood. I use the
OWASP Top Ten. This is a dynamic list of the top ten risks to business. The usual
suspects of cross site scripting floats XSS from number 3 to number 2 depending
on the attacks that year It is an industry driven list which means it is not
academic. So this OWASP Top Ten is the basis of contract for the pen test.
The client wants to reduce risk. Are they prepared to pay for an extensive test or
is it a quick health check? The OWASP Top Ten represents an easy benchmark.
Scan for the top ten and report. My students then ask what happens if the
website is attacked the next day with an attack not on the top ten. Risks are
risks. The OWASP Top Ten represents the likelihood of the risks. It does not cover
all the risks.
At this point I show my students the list of bugs detected by platform. This is
available at the National Vulnerability Database.4There might be 600
vulnerabilities for a Wordpress website and 5 for Magento. If it is Magento then
check these separately but if it is a Wordpress check only the more recent.
A comparison of CMS security rankings is shown below:

4 https://nvd.nist.gov/full_listing.cfm
Drupal: Vulnerability Statistics
5

Note the charts do not match up (I would trust the National Vulnerability
Database but clearly from the last figure Drupal has had a major XSS problem. I
did a search on the National Vulnerability Database 13 March 2016 for the past 3
months for Drupal as XSS seems to be still a problem. A good pen test tool would
look for these first. Qualysguard representatives would not say if this was one of
their vulnerability databases. There is a 3-6 months lag in such publication to
allow patches to be applied to US servers.

5 http://malwarelist.net/2014/10/16/the-critical-vulnerability-in-the-web-content-
management-system-drupal/
So the contract sets out expectations, this is where pen testing gets a poor
name. I asked for a pen test and my website crashed the next week. Did they
break my website with their tests?
The following process of pen test reporting should reduce this problem.
Planning Automated versus manual testing.
I then show them the article written by Semi Yulianto Writing an Effective
Penetration Testing Report which appeared in PenTest Magazine 04/2015. This is
both an excellent and comprehensive article written from a project managers
viewpoint. As I am a project manager this report appealed to my sense of order. I
show it to explain that there are many choices and the training flows past many
other good choices.
The section Tools of the Trade has a section Vulnerability identification &
investigation
Nmap with NSE (open source)
Nessus (commercial)
eEye Retina (commercial)
6
Qualysguard (commercial)
OpenVAS (open source)
Semi also has a good section on the Business Case for pen testing. My objective
with this training is to take you through the training process by using the best
guides possible. The report by Semi is a good introduction.
Standards
As a pen tester you might want to follow a standard. This allows less problems in
the contract. The list provided by Semi are listed below:

NIST SP 800-115, Technical Guide to Information Security Testing and


Assessment
OISSG ISSAF, Information Systems Security Assessment Framework
ISECOM OSSTMM, Open Source Security Testing Methodology Manual
OWASP Testing Guide, Open Web Application Security Project
SANS Institute, Conducting a Penetration Test on an Organization
PTES, Penetration Testing Execution Standard
I provide the students with NIST 7 Guidelines on Securing Public Web Servers and
turn to Section 6 and 7. It now is a good time to look at running tests on the
backup copy of the website. Section 6 and 7 explain that active content can be a
problem so that the actual testing may cause additional problems.

6 https://www.qualys.com/enterprises/qualysguard/vulnerability-management/

7 http://csrc.nist.gov/publications/nistpubs/800-44-ver2/SP800-44v2.pdf
Here is where we can discuss Automated vulnerability scanning versus Manual
Pen Testing. Again the NIST document is a good place to start the discussion:
9.4.1 (Automated) Vulnerability Scanning
However, vulnerability scanners have some significant weaknesses.
Generally, they identify only surface vulnerabilities and are unable to
address the overall risk level of a scanned Web server. Although the scan
process itself is highly automated, vulnerability scanners can have a high false
positive error rate (reporting vulnerabilities when none exist). This means an
individual with expertise in Web server security and administration must
interpret the results. Furthermore, vulnerability scanners cannot generally
identify vulnerabilities in custom code or applications. Vulnerability scanners rely
on periodic updating of the vulnerability database to recognize the latest
vulnerabilities. Before running any scanner, Web server administrators should
install the latest updates to its vulnerability database. Some databases are
updated more regularly than others (the frequency of updates should be a major
consideration when choosing a vulnerability scanner). Vulnerability scanners are
often better at detecting well-known vulnerabilities than more esoteric ones
because it is impossible for any one scanning product to incorporate all known
vulnerabilities in a timely manner. In addition, manufacturers want to keep the
speed of their scanners high (the more vulnerabilities detected, the more tests
required, which slows the overall scanning process).
Therefore, vulnerability scanners may be less useful to Web server
administrators operating less popular Web servers, OSs, or custom-coded
applications.
A list of vulnerability scanners are available at
https://www.owasp.org/index.php/Category:Vulnerability_Scanning_Tools
9.4.2 (Manual) Penetration testing
Penetration testing is security testing in which evaluators attempt to circumvent
the security features of a system based on their understanding of the system
design and implementation [NISS99]. The purpose of penetration testing is to
exercise system protections (particularly human response to attack indications)
by using common tools and techniques developed by attackers. This testing is
highly recommended for complex or critical systems.
Penetration testing does offer the following benefits [NIST02b]:
Tests the network using the same methodologies and tools employed by
attackers
Verifies whether vulnerabilities exist
Goes beyond surface vulnerabilities and demonstrates how these vulnerabilities
can be exploited iteratively to gain greater access
Demonstrates that vulnerabilities are not purely theoretical
Provides the realism necessary to address security issues
Allows for testing of procedures and susceptibility of the human element to social
engineering.
So is Vulnerability scanning really Pen Testing?
NIST sees a distinction. Does it matter to the client? NIST say risk is the net
negative impact of the exercise of a vulnerability, considering both the
probability and the impact of occurrence. So in our contract should we explain
which procedure we will use?
The figure8 below may assist

So what is Pen Testing? If we use an ISO27001 9 viewpoint which looks at risk the
same as NIST (Impact, Likelihood and Threat) the pen test is a snapshot of the
businesss security at a specific point in time and pen testers use their expertise
to identify the Threat source and Threat Event. An automated vulnerability scan
misses this expertise in the input section. So you get two snapshots (or watches)
and to tell what is correct you must understand what does the snapshot mean?
Remember the list of CMS vulnerabilities? You already know which vulnerabilities
are a problem for Drupal. Should we select a test tool for better checking XSS?
This is a question to be answered in another article.

Planned tests
Qualysguard (automated) and Openvas (manual - in the Kali Linux distribution)
8 http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-30r1.pdf

9 http://www.iso.org/iso/catalogue_detail?csnumber=54534
Client would like The OWASP Top Ten (client receives a quote).

I would then use the OWASP Top Ten as my basis of the report. So OWASP Testing
Guide is my choice.

Execution Pen testing


Qualysguard this is available from
https://www.qualys.com/smb/qualysguard/express-lite
The Freescan https://www.qualys.com/forms/freescan/ (Screenshot of
Qualys)
Perimeter scanning detects security vulnerabilities across the entire network. Web
application scanning detects vulnerabilities in web applications of all sizes. Malware
detection scans websites for malware infections and threats. FreeScan is a free
vulnerability scanner and network security tool for business networks. FreeScan is limited
to ten (10) unique security scans of Internet accessible assets. FreeScan provides a
detailed report that can be used to correct and fix security threats proactively.

Typical results

The format is Threat Impact Solution which follows NIST layout. There is also the option
for a vulnerability scan or an OWASP Top 10 scan.

There were 43 vulnerabilities found in the scan. (Refer screenshot of Qualys Freescan
2015).

I did not fix any vulnerabilities and in the OWASP there are 6 vulnerabilities. (Refer
screenshot of QualysFreescan Oct 2015) WTF! Web Test Frameworks generate different
reports.

What would you do? The contract asked for an OWASP Top 10 (is it the latest version of
the Top 10?) but there are other vulnerabilities. Should a pen tester fix all of these
vulnerabilities? Only the high or critical ones?

A good contract will state fix critical and high vulnerabilities.

Openvas (Screenshot of Openvas in Kali Linux)

The difference is the ease of generating reports with threat levels clearly shown.
OpenVas has a High Medium Low approach. Openvas spotted 51 vulnerabilities in the
same scan.

A typical OpenVas report is attached of a previous scan (Openvas Forest4trees)

Closure The Pen Test Report (Red Queen)


My point from the execution phase is that different pen tools with different
setting (OWASP Top Ten) give different number of vulnerabilities. It is all about
risk level. How do you show that your action reduces this level of risk?

You can produce the test reports from Qualysguard with your company name. There
would be an executive summary saying that the following tests were carried out on a
certain day with the attached results. It is a snapshot of the system.

A before and after pen test will show improvements and reduced risk. The
quality of automatic test reports from Qualys and IBM have been improving over the
years.

Or it could just be a series of emails:

Hi Bruce,
I have attached the results for Joomscan and Openvas for www.forest4trees.biz
but we are still working on www.meadowbank.biz The link below has some
security modules for Joomla to be installed
http://extensions.joomla.org/extensions/access-a-security/site-security/site-
protection
I would suggest to install Macro's SQL InJection
http://extensions.joomla.org/extensions/access-a-security/site-security/site-
protection/12731 and install any other firewall from the first link

Lessons learned
I ask what makes a good pen testing report. Correct pen testing tool to
spot the more critical or meeting client expectations? Is it a just a risk
report which should be part of a system?
Which tool gives you the best results? Some of my students had answers such as this
comment below:

Nearly all VA solutions depend upon version checking as their primary method of
assessing the relative vulnerability of network hardware or software. VA solutions
typically look at the response header and from the version data there they
deduce whether the hardware or software is vulnerable. If an old version is
known to have 5 vulnerabilities and the header says that the old version is in
use, then it is assumed that all 5 of those vulnerabilities exist.
Version checking has many advantages for the vendor and one key disadvantage
for the customer. It is easy to program and claim '45,000 tests'. Also, a version
analysis scan that finds an old version can produce a long and impressive list of
vulnerabilities. This makes the solution look good.
The disadvantage: Poor accuracy misses real problems and list dozens if not
hundreds of vulnerabilities that don't actually exist. Version information
contained in a header doesn't reflect the presence or absence of a security issue
with high accuracy.

Client - Concern from client: Is Pen Testing with good tools enough?
We are inclined to think that testing the security of web applications with these
tools is not enough. The tools are not capable of copying the versatility and
intelligent decisions of a human auditor. The more fundamental problem is that
the tools always lag behind. New attacks will surface all the time and some
attacks are specific only to the application being tested.
Also, all of the tools assessed take a black-box approach to testing. They do not
know the inside mechanisms employed by the application. A security expert
doing a traditional audit can have inside information of the application and an
attacker can have it as well.
The current offering of tools clearly lacks a white-box web application security
testing tool that would make use of inside knowledge of the application. Attacks
can come from within the organization.
New types of security tests should be available to test tools as early as possible.
Having a separate vulnerability and attack database for every scanning tool is a
major source of problems. None of these databases can ever contain all
vulnerabilities. It adds to the problem if the databases are closed and it is
impossible to be sure which vulnerabilities are included.
The students most probably downloaded this off the internet. The end point is
that they saw that the pen test tool limitations must be understood for a risk
report.
Their verbal answers were:
Automated testing is only a good starting point.
Manual frameworks are needed to cover vulnerabilities the automated testing
systems do not detect. The risk level changes over time as shown below.
I had a situation with a clients website. The website was under heavy attack.
The business website had been blocked by Google for containing malware. I
spotted that the plugins supplied to the CMS were the main cause of the
problem. This is on the left of the figure below. I contacted the plugin supplier (I
later found that they supplied the slideshow plugin under different names to
different theme suppliers). Their programmers said that the critical issues were
not a concern, false positives. I disagreed. The sequel to this was that others
found that there were major problems, the plugin supplier lost all their credibility
and themes suppliers for CMS were in big trouble. The time from when the
vulnerability is detected (that is you are under heavy attack) to when a patch is
supplied was months. The solution was a new static website (no plugins).
Customer was happy but said why should I have to pay for their faults?

Gary McGraw11 summed up penetration testing well when he said, If you fail a
penetration test you know you have a very bad problem indeed. If you pass a
penetration test you do not know that you dont have a very bad problem. However,
focused penetration testing (i.e., testing that attempts to exploit known
vulnerabilities detected in previous reviews) can be useful in detecting if some
specific vulnerabilities are actually fixed in the source code deployed on the web
site.

A Note about Web Application Scanners


Many organizations have started to use automated web application scanners. While
they undoubtedly have a place in a testing program, some fundamental issues need
to be highlighted about why it is believed that automating black box testing is not (or
will ever be) effective. However, highlighting these issues should not discourage the
use of web application scanners. Rather, the aim is to ensure the limitations
are understood and testing frameworks are planned appropriately.12

10 https://www.owasp.org/index.php/Testing_Guide_Introduction

11 http://www.drdobbs.com/security/beyond-the-badness-ometer/189500001

12 https://www.owasp.org/index.php/Testing_Guide_Introduction
In parting I believe that a great pen tester knows trends. One such trend is found at
NVD13. A human can remember such a graph and act accordingly.

The next article will deal with a comparison of pen testing software. It is the old
shootout between product vendors with winners. Some pen testing are better at
spotting certain vulnerabilities. Which pen test tools are best for checking for
XSS?

13 https://nvd.nist.gov/visualizations/cwe-over-time

You might also like