Literature Study of Penetration Testing
Literature Study of Penetration Testing
Michele Fiocca
Email: micfi931@student.liu.se
Supervisor: Anna Vapen, {annva@ida.liu.se}
Project Report for Information Security Course
Linkpings universitet, Sweden
Abstract
The Literature Study of Penetration Testing project will
address aspects regarding how much vulnerable computer
systems are and what effort that is needed to break into a
system where the access is restricted or the target is
remotely located. Penetration testing is the art of using
different tools to get unauthorized access to a victims
computer. Thus, the main task of a penetration tester is to
find vulnerabilities or security flaws of new programs and
systems to make the development team aware of required
modifications in order to increase the security. This report
also contains a review of the tools used in the different
phases of penetration testing.
1.
Introduction
Questions to be addressed in this paper include:
2.
Background
from a joy rider who wants to try your new car, but does
not know how to steal it, to a professional thief who will
have easy access to it, through a mechanic from the store
that sold you the car and could easily find a key.
The last part of the article is dedicated to consider
what resources attackers have, giving the tester time and
resources necessary to the task [6]. The example of the
car can be brought to the world of computer science by
imagining that you are the chief developer of a new
software product and want to test its security and
resistance to attacks. So you ask a penetration tester to do
it for you.
In todays world, communication requirements are
becoming more and more a living manner, so we are
seeing a steady rise towards technologies that could
ensure the three most important requirements, which are
confidentiality, integrity and availability, according to the
C.I.A. model. In a nutshell, the Confidentiality explains
that messages sent from a source to a destination must be
immune to eavesdropping attacks, that is nobody should
sniff and record any data sent over the channel between
the two party. Then Integrity explains that nobody should
alter the content of the messages, trying to modify, insert
or delete non authorized content. The Availability of a
system should not be compromised by any malicious
attack (Denial of Service attacks are the most common),
whose purpose is to prevent the system to operate in the
correct manner, often causing interruption of service [9].
Many steps forward have been made in the field of
security since Internet has become widespread and has
begun to manage peoples lives. Hence, commercial
companies increasingly need new technologies to protect
their internal networks preventing unauthorized access
aimed to sniff sensitive data, like social security number,
password, credit card number and so on. Security
mechanisms mostly used today are firewall filtering, clear
separation in sub domains, VPN (Virtual Private
Network that provides tunneling and cryptography),
DMZ (Demilitarized Zone, a portion of a network that
separates a purely internal network from an external
network as is defined in [5]), end-point authentication
that ensures confidentiality, and Intrusion Detection
Systems (IDS). IDSs are systems able to prevent and
detect any unwanted intrusion through a deep packet
inspection aimed to find any matching with a signature
database (each signature is a set of rules pertaining to an
intrusion activity) previously wrote by skilled network
security engineers. If a packet matches a signature in the
database, a threat is found and an alert is generated. All
these measures seem to be quite sufficient to assure a
good data protection, but every day new vulnerabilities
are discovered. In this context, system administrators
need mechanisms for testing these technologies [9].
2.1
2.2
2.3
3.
Penetration testing
3.1
Understand results
4.
Evaluation
4.1
4.2
Popular tools
exposed to the tester tool and the tester could rapidly and
exhaustively look for them. This type of scanner is
generally able to scan any TCP/IP device present on a
network researching any operating system level
weakness. On the contrary it could not compromise the
security of general purpose applications, because it does
not have any knowledge base of how an unknown
application works [4].
Nessus is a popular free (but not open source
anymore) constantly updated tool that allow a tester to
first retrieve version and type of the target host operating
system, and then scanning for known weaknesses and
trying to exploit them. Nessus doesn't require deployment
of agents on the target systems to perform vulnerability
scans and find all the main information allowing a birdseye view of the whole reality of interest. Nessus runs on
Windows-based machines and is considered one of the
best available vulnerability scanners with its large
number of plugins. It boasts of including a client/server
architecture with a graphical interface, a remote and local
(authenticated) security checks and an embedded
scripting language for writing your own plugins or
understanding the existing ones. On Nessuss website
[14], there is a demo of how the tool works through a
thorough analysis of its features. Its key principle is the
idea of having a scan policy, which permits the user to set
parameters and variables for a more successfully
scanning, such as scan options, credentials, plugins and
advanced settings.
CoreImpact is an automated, comprehensive
penetration testing commercial software produced by
CoreSecurity. It has a regularly updated large online
database of professional exploits, and is considered to be
one of the most powerful tools for exploitation currently
available, having the ability to force access to the system
under test. It also has extra features such as establishing
an encrypted tunnel through an exploited machine to
reach and exploit other machines [11].
QualysGuard is a commercial web-based vulnerability
scanner with reduced cost. These are some of the features
of the product: completed and daily updated to monitor
thousands of vulnerabilities, automatically providing
direct links to controlled remedies, easy to install without
additional software/hardware to maintain and update,
provided with an inference-based scanning engine, easy
to use Web interface, large vulnerability checks database
and fast reports with ranking of the vulnerabilities.
ISSs InternetScanner is an application-level
vulnerability assessment that started off in '92 as an open
source scanner by Christopher Klaus and later developed
by IBM. It has many of the previous scanners features
plus a dynamic assignment of performances by
automatically increasing scanning speed and accuracy
according to the OS of the target hosts [12].
4.2.3
Application scanners
5.
Conclusions
References
[1] J.Long, Google Hacking for Penetration Testers,
e-book.
[2] Six hours to hack the FBI (and other pen-testing
adventures)http://www.computerworld.com/action/
article.do?command=viewArticleBasic&articleId=9
087441, 2009-04-25.
[3] Kenneth R. van Wyk, Adapting Penetration
Testing for Software Development Purposes, 2007,
Carnegie Mellon University.
[4] Kenneth R. van Wyk, Software Engineering
Institute, Penetration Testing Tools, 2007,
Carnegie Mellon University.
[5] Matt Bishop, "Introduction to Computer Security",
Addison-Wesley.
[6] Matt Bishop, About Penetration Testing, Security
& Privacy, IEEE.
[7] B. Duan, Y. Zhang, D. Gu, An Easy-to-deploy
Penetration Testing Platform, The 9th International
Features
http://www935.ibm.com/services/us/index.wss/detail/iss/a1027
213?cntxt=a1027208, 2009-05-08.
[13] The
Metasploit
Project
http://www.metasploit.com/, 2009-05-08.
[14] Tenable
Network
Security
http://www.nessus.org/nessus/, 2009-05-08.