Cauldron U G: The Center For Secure Information Systems
Cauldron U G: The Center For Secure Information Systems
BY
GMU Proprietary
TABLE OF CONTENTS
1.
INTRODUCTION
2.
2.1
2.2
3.
CAULDRON GUI
4.
5.
9
10
CAULDRON ANALYSIS
5.1
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
5.1.6
5.2
5.2.1
5.2.2
5.2.3
5.2.4
5.3
20
Running CAULDRON.....................................................................................20
Input and Output Files .......................................................................................22
Start and Goal Machines ....................................................................................22
Direct Attack Paths ............................................................................................25
Cycles through Start and Goal ...........................................................................27
Applying Mitigation Solutions ..........................................................................31
Finalizing CAULDRON Scenario .....................................................................34
Visualizing CAULDRON Results ...................................................................35
Visualization Overview .....................................................................................35
Viewing the Attack Graph .................................................................................36
The Exploit Table ..............................................................................................43
Toolbar Functions ..............................................................................................45
Network Hardening Recommendations .........................................................50
GMU Proprietary
TABLE OF FIGURES
Figure 1. Nessus Connectivity ............................................................................. 6
Figure 2. Connectivity Graph from Nessus Scan Data......................................... 6
Figure 3. Nessus Scans for Two Subnets ............................................................ 7
Figure 4. Nessus Scans for Three Subnets ......................................................... 8
Figure 5. Initial view of CAULDRON GUI ............................................................. 9
Figure 6. Vulnerability Scan Sample Network .................................................... 11
Figure 7. Vulnerability Scanner Import Tool using Nessus ................................ 12
Figure 8. Select ScanResults Directory Dialog for Nessus ................................ 13
Figure 9. After Selecting a ScanResults Directory for Nessus ........................... 14
Figure 10. Vulnerability Scanner Import Tool for FoundScan ............................ 15
Figure 11. Select ScanResults Directory Dialog for FoundScan ........................ 16
Figure 12. After Selecting a ScanResults Directory for FoundScan ................... 17
Figure 13. Enabling Import of Firewall Rule Data............................................... 19
Figure 14. Creating CAULDRON scenario......................................................... 20
Figure 15. Property Dialog ................................................................................. 21
Figure 16. CAULDRON Scenario Panel ............................................................ 22
Figure 17. Unconstrained (Any) Start and Goal Machine................................... 24
Figure 18. Selecting a Start Machine ................................................................. 24
Figure 19. Selecting a Goal Machine ................................................................. 25
Figure 20. Direct Attack Paths Checkbox .......................................................... 25
Figure 21. Attack Graph with Indirect Attacks .................................................... 26
Figure 22. Attack Graph with Direct Attacks Only .............................................. 27
Figure 23. Attack Graph with No Cycles Containing Start or Goal ..................... 28
Figure 24. Allowing Cycles Back into Start Machine .......................................... 28
Figure 25. Attack Graph Allowing Cycles through Start ..................................... 29
Figure 26. Allowing Cycles Away from Goal Machine ........................................ 29
Figure 27. Attack Graph Allowing Cycles through Goal ..................................... 30
Figure 28. Allowing Cycles through Start and Goal............................................ 30
Figure 29. Attack Graph Allowing Cycles through Start and Goal ...................... 31
Figure 30. No Mitigation Solutions Applied ........................................................ 32
Figure 31. Applying Known Vulnerability Mitigation Solutions............................ 32
Figure 32. List of Vulnerability Mitigation Solutions ............................................ 32
Figure 33. Details for Vulnerability Mitigation ..................................................... 33
Figure 34. Applying Unknown Vulnerability Mitigation Solutions ........................ 33
Figure 35. Before Starting CAULDRON Scenario .............................................. 34
Figure 36. Major Components of Attack Graph Visualization............................. 35
Figure 37. A Sample Attack Graph View............................................................ 38
Figure 38. Exploits in the Graph View ................................................................ 39
Figure 39. Exploit Table ..................................................................................... 45
Figure 40. Toolbar Functions ............................................................................. 46
Figure 41. Print Options ..................................................................................... 47
GMU Proprietary
Figure 42.
Figure 43.
Figure 44.
Figure 45.
Figure 46.
Figure 47.
Figure 48.
GMU Proprietary
1.
INTRODUCTION
2.
GMU Proprietary
Vulnerability 11003:
DDI_IIS_Compromised
Server 1
Vulnerability 11092:
apache_win32_dir_trav
Scan Machine
Server 2
Vulnerability 10951
cachefsd_overflow
Server 3
Vulnerability 11003:
DDI_IIS_Compromised
Server 1
Vulnerability 11092:
apache_win32_dir_trav
Server 2
Vulnerability 10951:
cachefsd_overflow
Vulnerability 11092:
apache_win32_dir_trav
Server 3:
GMU Proprietary
Common practice is to scan a target once, from a scanner that has unrestricted access
(e.g., not blocked by firewalls) to the targets. But that does not capture the network as
seen by a potential attacker.
2.1
Vulnerability Scans
To capture the network model for CAULDRON scans should be done from each subnet,
and configured to scan all machines within the subnet and all machines in neighboring
subnets. The idea is to capture the visibility of all machines to all other machines across
all subnets. One scan per subnet, correctly configured, provides adequate detail for
CAULDRON. In other words, if multiple subnets will be included in the analysis, the
scans need to include not only intra-subnet, but also inter-subnet.
As an example, Figure 3 shows two subnets connected by a firewall. For this network,
perform these Nessus scans:
1. Scan 10.10.1.1-254 and 10.10.2.1-254 from machine 10.10.1.1
2. Scan 10.10.1.1-254 and 10.10.2.1-254 from machine 10.10.2.1
CAULDRON can then merge the resulting Nessus XML files, and build a network model
that includes connectivity (to vulnerable services) among all machines. Each of the items
(1) and (2) above represent a single Nessus scan (with multiple targets), resulting in a
single Nessus XML file per scan. We recommend naming the resulting XML files
according to subnet, e.g., subnet_10_10_1.xml for scan item (1) and subnet_10_10_2.xml
for scan item (2) above.
GMU Proprietary
Figure 4 shows a similar example, this time with three subnets connected by firewalls.
For this network, one would perform these Nessus scans:
1. Scan 10.10.1.1-254, 10.10.2.1-254, and 10.10.3.1-254 from machine 10.10.1.1
2. Scan 10.10.1.1-254, 10.10.2.1-254, and 10.10.3.1-254 from machine 10.10.2.1
3. Scan 10.10.1.1-254, 10.10.2.1-254, and 10.10.3.1-254 from machine 10.10.3.1
2.2
Firewall Data
CAULDRON also has the capability for importing firewall data directly. In this case, any
connections to vulnerable services in the firewall data will be added to any vulnerable
connections created from vulnerability scans to remote subnets (as described in
Section 2.1). CAULDRON currently supports the Sidewinder firewall.
You could rely entirely on firewall data for capturing vulnerable connectivity across
subnets. In this case, you would scan locally in individual subnets, and use the scan
results for detecting vulnerable services on hosts in each local subnet. The firewall data
GMU Proprietary
would then determine connections to vulnerable services across subnets. Or, you could
scan locally and remotely, as described in Section 2.1, and use firewall data to discover
any additional vulnerable connectivity, e.g., for modeling host-specific firewall rules.
3.
CAULDRON GUI
The Graphical User Interface (GUI) provides the ability to define and run CAULDRON
scenarios. Figure 5 shows the initial view of the CAULDRON GUI.
GMU Proprietary
4.
Vulnerability scanners are the most efficient way to capture vulnerabilities in an existing
network. This section describes the CAULDRON capability for importing scanner
results for building input network models.
CAULDRON uses the output of scans through firewalls from/to various subnets to model
the effects of firewall filtering. It merges the information in the scan files, and creates a
file of network connectivity to vulnerable services. The resulting file serves as an input
model of initial network conditions for CAULDRON attack graph analysis. Section 4.1
describes this in more detail.
CAULDRON can import scans from these tools:
4.1
When you run a vulnerability scanner, you specify what machines and subnets to scan.
To build a comprehensive view of the entire network, configure the scanners to scan all
machines within a subnet and all machines in neighboring subnets. The idea is to capture
the visibility of all machines within subnets and across subnets. One scan from each
subnet, correctly configured, provides sufficient information for CAULDRON.
For example, Figure 6 shows two subnets connected by a firewall. For this network, you
would perform these scans:
The IP addresses must be unique, e.g., 10.10.1.1 must not appear in two different subnets
as different machines.
GMU Proprietary
10.10.1.2
10.10.1.1
10.10.2.2
Firewall
10.10.2.1
10.10.1.3
10.10.2.3
4.2
To load Nessus output files into CAULDRON, begin by placing all the Nessus output
XML files in a single directory, isolated from all other files. CAULDRON supports
XML only as the Nessus format for import. Other formats generated by the Nessus
client (e.g., HTML) are not supported.
To use the scanner import tool to import the output of the Nessus vulnerability scanner,
begin by creating a new CAULDRON scenario, i.e., File>New>Scenario. Launch
the scanner import tool via Tools>Import Nessus Scans from the menu bar. A
new dialog box appears (Figure 7).
GMU Proprietary
GMU Proprietary
GMU Proprietary
GMU Proprietary
4.3
To load FoundScan output files into CAULDRON, begin by placing all the FoundScan
output XML files in a single directory, isolated from all other files. CAULDRON
supports XML only as the FoundScan format for import. Other formats generated by
FoundScan are not supported.
To use the scanner import tool to import the output of the FoundScan vulnerability
scanner, begin by creating a new CAULDRON scenario, i.e., File>New>Scenario.
Launch the scanner import tool via Tools>Import FoundScan Scans from the
menu bar. A new dialog box appears (Figure 10).
GMU Proprietary
GMU Proprietary
GMU Proprietary
4.4
CAULDRON has the capability for importing scan data from Symantec Discovery. This
involves a custom export tool developed by Symantec, not a regular part of the Discovery
product. Once you have this Symantec Discovery add-on, you can use it to create scan
output for CAULDRON import. Contact CSIS for details.
4.5
CAULDRON has the capability for importing data from the Sidewinder firewall. To
enable this data import, check the Apply Firewall Rules checkbox during the
Nessus import, as shown in Figure 13. When CAULDRON processes firewall rules, and
connections to vulnerable services will be added to any such connections created from
vulnerability scans to remote subnets.
For example, you could run your Nessus scans against host in local subnets only, and rely
on firewall rule data for defining vulnerable connections across subnets. Or, you could
target local as well as remote hosts in your scans, and augment those scan results with
any additional vulnerable connections contained in the firewall data.
The firewall rule file is defined in the file lib/tva.properties. In this file, the
property SIDEWINDER_RULESET_FILE defines the particular filename containing
Sidewinder firewall export data. All firewall export data must be included in this file,
i.e., this is the only source of Sidewinder firewall data used by CAULDRON.
GMU Proprietary
GMU Proprietary
5.
CAULDRON ANALYSIS
This section describes the various attack graph analysis capabilities available in
CAULDRON.
5.1
Running CAULDRON
A CAULDRON scenario is configured via a file that maintains the input network
connectivity files, the analysis output file, the attacker machine, and the attack goal
machine. If desired, CAULDRON will constrain the attack graph according to the given
start and goal.
To create a new CAULDRON scenario, select File>New>CAULDRON Scenario
from the menu bar, as shown in Figure 14.
GMU Proprietary
GMU Proprietary
GMU Proprietary
starting point in the network for a simulated attacker. A goal machine represents the end
state of the attack, in which that machine is compromised.
All 4 possible combinations of constrained/unconstrained start/goal are possible:
Start and goal unconstrained (any): All possible paths are computed,
independent of any particular start and goal. This might be a good option
to start with, to see the full scope of attacks. Unconstrained graphs show
all possible attacks, from all possible starting and ending machines. This
may include cycles that are possible for the attacker. It is important to
include all paths (even cycles) when considering network defense. For
example, an exploit that is part of a cycle may also be part of a separate
path of attack, and removing it would give a false sense of security, i.e.,
that there is no need to protect against it.
Start and goal constrained: Find all possible paths that start from a
particular machine and end at (another) particular machine. This shows
the total extent of network compromise from a particular threat source,
which leads to compromise of a particular host (e.g., critical server). As
for unconstrained graphs, this may include cycles (even cycles involving
the start and/or goal), which are important when considering network
defense.
GMU Proprietary
5.1.2.1
Attack Start
In CAULDRON, an attack machine represents the initial starting point in the network for
a simulated attacker. The attack graph is then generated with this as a starting point,
showing all possible paths leading from this point.
To define a starting machine, select a machine user interface dropdown box as shown in
Figure 18. This dropdown box lists all machines in the CAULDRON network model.
Once a start machine is selected, CAULDRON will use it as the starting point of the
attack.
Attack Goal
A CAULDRON attack goal represents then end state of the attack. The resulting attack
graph will contain all possible paths to the goal (independent of the starting point).
To define a goal machine, select a machine user interface dropdown box as shown in
Figure 19. This dropdown box lists all machines in the CAULDRON network model.
Once a goal machine is selected, CAULDRON will use it as end point of the attack.
GMU Proprietary
GMU Proprietary
GMU Proprietary
GMU Proprietary
GMU Proprietary
GMU Proprietary
GMU Proprietary
Figure 29. Attack Graph Allowing Cycles through Start and Goal
GMU Proprietary
For example, in an extreme case where there are known mitigation solutions for every
vulnerability in the network, the resulting attack graph would be empty (no attack paths).
Or in the other extreme, where no vulnerability in the network has a known mitigation
solution, the resulting attack graph would be unchanged.
By default, CAULDRON will apply no mitigation solutions. This is shown in Figure 30,
in which the effects of both known (Mitigated) solutions and unknown
(Non Mitigated) solutions are ignored, i.e., both categories are unchecked.
To review vulnerabilities with known mitigation solutions, and apply them to the
CAULDRON model, check the Mitigated checkbox, as shown in Figure 31.
GMU Proprietary
For a selected vulnerability, CAULDRON then gives the detailed information about it, as
shown in Figure 33. This includes the numMachines field, which is the total number
of machines in the network that have the vulnerability.
To review vulnerabilities that have no known mitigation solutions, and apply them to the
CAULDRON model, check the check the Non Mitigated checkbox, as shown in
Figure 34.
GMU Proprietary
difference is that the list will be for vulnerabilities with no known mitigation solutions,
versus vulnerabilities with known mitigated solutions.
Once you have finished reviewing the vulnerabilities with no known mitigation solutions,
click the save file button (diskette icon). This will commit the selected vulnerabilities to
the CAULDRON input model and close the vulnerability list. For each accepted
(unaltered) unknown solution, the vulnerability will be included in the model, i.e.,
assumed that there is no mitigation for it. For each rejected (removed) solution, the
vulnerability will be excluded from the model, i.e., assumed that a mitigation has in fact
been applied.
5.1.6 Finalizing CAULDRON Scenario
Before executing the CAULDRON scenario, make sure that the input file(s), output file,
attacker, and goal configurations are completed in the configuration viewer, and that the
configuration file is saved. Also, if desired, make sure that the boxes for vulnerability
mitigation, direct attack paths, and cycles containing start or goal are checked. The
screen should look something like Figure 35.
GMU Proprietary
When CAULDRON completes, the Status box gives the total analysis run time, then
displays CAULDRON Run Finished. It then opens a visualization of the resulting
attack graph. Section 5.2 describes the attack graph visualization capabilities.
If either the start machine, goal machine, or both are selected, then CAULDRON can
provide network hardening recommendations. This is described in Section 5.3.
5.2
The CAULDRON tool generates all attack paths, i.e., it generates all possible executable
exploits that lead to the specified attack goal, along with the precondition/postcondition
dependencies among the exploits. The output of CAULDRON analysis is a set of attack
paths organized as an attack graph. An attack graphs is made up of exploits and
conditions, and represents all the possible ways an attacker could reach a given network
goal.
CAULDRON visualization creates a user-friendly display of an attack graph, and allows
it to be manipulated in ways that support visual analysis.
5.2.1 Visualization Overview
Figure 36 shows the main components of CAULDRON attack graph visualization.
Toolbar
Overview
Pane
Tree View
Pane
Exploit Table
Pane
Harden List
Pane
In Figure 36, an attack graph is visible in the Graph View pane. The Overview pane
shows a reduced size image of the main view. The Exploit table lists Exploits associated
with a machine (in this case, machine v1.8) that has been selected in the Graph View.
Major components of attack graph visualization are as follows:
Toolbar Contains a suite of tools for manipulating the display and performing
image I/O. Resting the cursor on any one of these tools shows a brief tooltip
describing its function. Toolbar tools are listed and described in greater detail
below.
Overview pane shows a reduced size image of the Attack Graph, with the
section displayed by the Graph View highlighted as a grey rectangle. Clicking at
any point in the overview pane will center the larger Graph View in current scale
at the corresponding point. Nodes and edges selected in the Graph view will be
shown as selected in the Overview.
Tree View pane Displays the folder hierarchy (Protection Domains and
Machines) in Tree format corresponding to the current Graph view. Folders that
are open in the Graph view are open in the Tree view. Machines that are visible
in the Graph view are also visible in the Tree view. Nodes and edges selected in
the Graph view will be shown as selected in the Tree view; they can also be
selected from the tree view.
Harden List Pane This is a special pane for listing Machines and Exploits that
have been designated as hardened by the user. Hardening is discussed in
Section 5.2.2.4.2.
Graph View pane this is the primary viewing and functional area for Attack
Graph Visualization. It supports opening and closing of Protection Domains,
viewing and traversal of exploits, hardening and deletion of machines and
exploits, plus many other functions that are described in greater detail in
Section 5.2.2. It also allows manual movement and adjustment of graph objects
by the user to support visualization.
Exploit Table pane This pane contains a spreadsheet-style table for displaying
groups of exploits associated with a given Machine, Protection Domain, or
specific source/destination pair. For example, selecting a machine lists all
exploits either originating or terminating at that machine. For each exploit, a
number of fields of data are shown. For fields containing large amounts of text,
you can mouse-over the field to see the entire text content.
Here are the capabilities for viewing machines and protection domains in CAULDRON:
Individual machines are represented as machine icons and labeled with the
machine name. Machines are visible only if the Protection Domain node
GMU Proprietary
containing them has been expanded. This is generally done by clicking the small
+/- icon in the upper left corner. There are two particular Machines that are
specially designated as the Initial and Goal machines. Machine icons look like
small computer terminals, and the screens of these icons are colored according to
the following convention: Blue default, Green Initial Machine, Red Goal
Machine, Purple Hardened Machine (see Section 5.2.2.4.2).
Protection domains are represented as either Folder or Group nodes, which are
rectangular nodes that can contain machines or other folders. These nodes are
labeled with the name of the Protection Domain they represent. A Folder node is
closed it displays none of the machines it contains, but has a + button on the
upper left corner by means of which it can be expanded. Once it is expanded, it is
called a Group node and the underlying machines it contains are visible. A Group
node has a - sign in the upper left hand corner by which it may be closed,
usually to simplify the view and conserve space. NOTE: When an Attack Graph
is initially displayed, all its Protection Domains are displayed in closed form.
This allows for an initial display that is easy to understand, and which can be
expanded incrementally as desired. It also allows for near-realtime loading of
extremely large Attack Graphs.
The tiny machine-like icons shown inside a closed protection domain are for
labeling purposes only, and do not necessarily correspond to the contents or
members of the protection domain, except for the purpose of identifying initial
(green) and goal (red) machines. That is, if the Initial node lies within a closed
Protection domain, one of the tiny machines in the label will display a green
screen; the others will be blue. Similarly, if the Initial node lies within a closed
Protection domain, one of the tiny machines in the label will display a red screen.
The attack graph in Figure 37 illustrates some of these capabilities. There are two
expanded protection domains (Groups) with names aSubDom and vSubDom1, and a
third closed protection domain (Folder) named vSubDom2.
GMU Proprietary
Exploits
The display of exploits within the Graph View is governed by the following rules:
Intra-domain exploits, that is, exploits originating and terminating within the same
protection domain, are not represented as arrows in the graph view. Intra-domain
exploits can be viewed by utilizing the Exploit Table display (see below). All
machine nodes within a protection domain that are involved only with intradomain exploits are aggregated into a single subfolder of the protection domain,
labeled Unconnected. The Unconnected folder label also indicates the number of
nodes it contains for example, the Unconnected folder of protection domain
GMU Proprietary
An exploit arrow will originate and terminate on machine nodes if and only if the
protection nodes containing the source and destination machines are both
expanded. Otherwise, the arrow will be shown connecting the protection domains
themselves. This helps to simplify the display. An Exploit arrow connecting two
protection domains in a single direction represents all exploits originating from
machines in the source domain that terminate at machines in the destination
protection domain, and is numbered accordingly.
The following example illustrates this behavior: In Figure 38(a), we see two closed
protection domains, and an exploit arrow representing three individual exploits
originating in the Internet domain and targeting the DMZ. In Figure 38(b), the DMZ
domain has been expanded, but the exploit arrow remains aggregated, and points to the
DMZ node rather than to its individual machines. It is only when both protection domains
are expanded, in Figure 38(c), that the exploits are shown connecting the actual source
and target machines. Note that the exploits targeting machine dmz_mail remain
aggregated, even at this level. To view these exploits individually it is necessary to use
the Exploit Table.
(a)
(b)
(c)
GMU Proprietary
5.2.2.3
Edit Mode is the default operating mode inside the Graph View. It is denoted by the
cursor. Functions available within Edit Mode include the following:
Selection In Edit Mode, the cursor may be used to select (L-click) individual
machines, protection domains, and exploit arrows. When these items are selected,
exploits associated with them are listed in the Exploit Table (see below). Multiple
machines and Protection Domains can also be selected by clicking and dragging a
selection rectangle over them (multiple Exploit arrows cannot be selected in this
way or any other).
Deletion Items selected in Edit Mode may be deleted by means of the delete
key. The same function is also available by R-clicking the selected items and
selecting Remove (Delete) from the Context menu (see below). Note that,
when machines and protection domains are deleted, the Exploits associated with
them are deleted also. If these Exploits are included in an aggregated Exploit (see
above), the count label for the aggregated Exploit arrow is reduced accordingly.
Relocation Machines, Protection Domains, and Exploits can all be relocated in
the Graph View using the Edit Mode cursor. For machines and PDs, this is
generally just a matter of clicking and dragging a object to a desired location. But
the exact result varies somewhat depending upon the object(s) selected.
o Protection Domains: A protection domain can be dragged in the view asis, whether open or closed. It will retain its shape and interior layout.
Exploit arrows originating or terminating within the Protection Domain
will automatically track its movement and do not need to be redrawn.
o Machines: A machine can be relocated (dragged around) within its
Protection Domain if it is visible that is, if the PD is open (a Group
node). The enclosing PD node will automatically resize to accommodate
the relocated machine. Additionally, any exploit arrows attached to the
machine will automatically track its movement and will not need to be
redrawn. A similar situation holds for Unconnected machines (see above):
the Unconnected group node will automatically resize to enclose the
moved machines new location. Machines cannot be dragged outside their
enclosing nodes.
o Exploits: To relocate an exploit arrow, first select it. Then its endpoints
become highlighted and can be moved around using the cursor. These
endpoints must remain attached to their original nodes, but there are
usually numerous locations on the border of the node to which an arrows
endpoint can be relocated. In many cases this can improve readability of
the display.
o Multiple Selections: Multiple machines and protection domains can be
selected at one time, by clicking and dragging a rectangle over them.
GMU Proprietary
Once this is done, the selection can be left-clicked and dragged within the
Graph View. Protection domains will relocate as-is, while isolated
selected machines will be relocated within their (unselected) protection
domains as described above. As before, exploit arrows will track relocated
objects wherever necessary.
Resizing Selected Protection Domains (and Unconnected nodes) can be resized
by clicking the small black square object handles that define the objects
enclosing rectangle and dragging them in the usual manner. This applies to nodes
that are either open or closed. When open, the interior layout of machines will be
preserved: In particular, a parent node (PD or Unconnected group node) cannot
be reduced to a size smaller the interior layout of its machines.
5.2.2.4
5.2.2.4.1
Context Menu
A Context Menu displays whenever the right mouse button is clicked in the Graph View
pane. As suggested by the name, contents of the Context menu vary depending on where
the right-click occurs:
When a white area of the display is right-clicked, the context menu displays four
items: Zoom, Close All Folders, View Parent, and Copy to Clipboard:
o Zoom: Selecting this displays a submenu containing the Zoom In, Zoom
Out, and Fit Content functions, one of which can then be selected. These
functions resize the display and are also available on the Toolbar; they are
described in Section 5.2.3.
o Close All Folders: Clicking this will cause all Protection Domains to be
closed, so that the machines they contain will be hidden. This is a handy
way to simplify the display. Note: if all protection domains are already
closed, this function is greyed-out in the Context menu (unavailable).
o View Parent: This menu item is always greyed out (unavailable), as is the
corresponding Toolbar icon (Section 5.2.3).
o Copy to Clipboard: This function also exists on the toolbar; it causes the
entire Attack Graph to become visible in the Graph View.
When an Exploit arrow is right-clicked, its Context menu displays two functions:
Harden and Remove (Delete). The Harden function is discussed separately in this
section, while Remove (Delete) is basically equivalent to hitting the Delete key
with that Exploit selected; that is, all exploits represented by this arrow will be
removed from the Graph.
When a Machine node is right-clicked, it is selected and the Context menu
contains three functions: Harden, Delete (Remove), and Traverse Exploits
(Alt+Left Click). Selecting Harden hardens the node (see next section), while
GMU Proprietary
Remove (Delete) performs the same function as the Delete key: that is, the node
is deleted, along with its associated edges. The Traverse Exploits function gives
an animated view of the Attack Graph relative to the selected node, and is also
described in more detail later in this section.
When an open Protection Domain is selected, available functions are the same as
for a machine node, and perform in much the same way. Additionally, the Close
Folder function is available, which closes the Protection Domain and hides the
Machines it contains. (This function can also be performed by clicking the -
symbol in the upper left hand corner of the node.)
When a closed Protection Domain node is right-clicked, the Context menu
displays the Harden, Delete (Remove), and Traverse Exploits (Alt+Left Click)
functions, which we have already seen. However, the Open Folder and Open
Folder Isolated functions are also displayed. Open Folder simply expands the
Domain to display the machines within it, but Open Folder Isolated displays the
contents of the domain in an isolated view mode, without the parent node or any
exploits. Even the Exploit Table remains blank when items in this view are
selected. To exit the Open Folder Isolated mode, double-click the Root folder in
the Tree View.
5.2.2.4.2
Hardening
Hardening is a function that allows the user to select items, and then view the graph as
though these items were no longer targets or originators of any exploits. When an item is
hardened, it is not necessarily deleted from the graph, but all exploits associated with that
item are removed. Additionally, hardened items are recorded in the Harden List, which is
the Visualization Tool pane located in the lower left corner.
Hardening is performed by right-clicking an item, then selecting Harden from the
Context menu. If an individual Machine is hardened, all exploits associated with that
machine disappear, and the name of the machine is appended to the Harden List.
Additionally, the screen color of the Machine icon is changed to purple to indicate its
new status.
If a Protection Domain is hardened, all exploits originating or terminating in that domain
disappear, and the names of all Machines in the Protection Domain (except Unconnected)
appear in the Harden List. (Note also that the Protection Domain name does not appear in
the list). The screens of all machines in the domain, if and when they are visible, are
colored purple. Likewise the screens of machines that make up the closed folder label for
that domain will be purple if the domain is closed.
Exploits can also be hardened, or rather groups of exploits represented by Exploit arrows
can be. When an Exploit group is hardened, all individual exploits in the group are
deleted, and the names of the individual exploits are added to the Harden list. The
listed Exploit names are actually a bit more informative than the Machine names which
appear here: they contain the Exploit name itself as well as the names of its source and
target Machines.
GMU Proprietary
5.2.2.4.3
Traverse Exploits
Traverse Exploits is an option that can be selected from the Context menu for either a
Machine or closed Protection Domain. It displays a brief animation in which Exploit
arrows associated with the selected node are progressively colored red, beginning with
their source nodes and ending with their target nodes. That is, the red color grows along
the Exploit arrows in the direction of the attack, and once the target node is reached the
process is reversed and the color retreats back to its original node. This is a handy tool
for conceptualizing attack paths originating or terminating in a given area.
5.2.2.4.4
Miscellaneous Functions
Mouse Wheel Zooming: - Whenever the cursor is positioned in the Graph View, the
display can be zoomed in and out by rotating the mouse wheel in the appropriate
direction. Zooming in magnifies objects visible in the display, but reduces the overall
scope of view relative to the entire Attack Graph. Zooming out reduces the size of visible
objects, but increases the scope of the display. The central point of the display is always
preserved. Note that other zooming functions are available in both the Visualization
Toolbar, and in the Context menus.
Machine and Protection Domain tooltips: - Tooltips are visible when the cursor hovers
over either a Machine node or a closed Protection Domain node in the Graph View. In
the case of a Machine node, the tooltip shows the machine name and also the term
Initial or Goal where appropriate, if the Machine in question is one of those specific
nodes. In the case of a closed Protection Domain, the Tooltip displays the name and the
total number of Machines it contains (including any Unconnected machines). If either
the Initial or Goal machine is contained in the Protection Domain, that fact is also
indicated in the tooltip, along with the machine name.
5.2.3 The Exploit Table
The Exploit Table is an Excel-like spreadsheet table that provides the list of exploits and
associated details for a selected entity: a Machine, group of Machines, Protection
Domain, Exploit arrow, etc. This mechanism avoids layout overhead and visual
confusion associated with a nodal representation for Exploits. When an item or group of
items is selected, all Exploits associated with that item are listed in the table. A scroll bar
appears when this Exploit list is too long for the display, and the Exploit Table itself can
be resized by clicking and dragging its top edge.
For each listed Exploit, the Name, Source Machine, Target Machine, Preconditions and
Postconditions are listed in the table, as provided by the Attack Graph model. Clicking on
a column header causes the Exploit list to be sorted by that specific parameter; either
ascending or descending order can be chosen. Column headers may also be rearranged
and resized by clicking and dragging in the table header.
GMU Proprietary
Select Edge - All individual exploits represented by the edge are displayed. The
number of exploits in the display list will agree with the edge label. Actual source
and target machine names are listed, whether or not they are actually visible.
Figure 39 shows a simple attack graph view in which a single machine dmz_mail has
been selected. The accompanying Exploit Table has been sorted on the From column in
descending order, so that intra-domain exploits associated with dmz_mail appear at the
bottom. There are four inter-domain (or normal) exploits associated with dmz_mail:
two originate from the outsideAttacker machine, and two originate with
dmz_mail itself and terminate at the srvr_mail machine. The srvr_mail machine
is not visible in the display to see it, it is necessary to expand the ServerLAN
protection domain.
GMU Proprietary
GMU Proprietary
Print (Ctrl+P)
Export (Ctrl+SHIFT+E)
Hierarchical Layout
Orthogonal Layout
Zoom In (+)
Circular Layour
Organic Layout
Incremental Layout
Print Area: Specifies the portion of the Graph View to be printed. Selecting
Entire Graph prints the whole Attack Graph, regardless of what is currently
visible in the Graph View. Current View will only print that portion of the
Attack Graph which is visible.
Sheet(s) Across: Specifies how many print sheets are to be spanned by the
horizontal dimension of the printed image.
Sheet(s) Down: Specifies how many print sheets are to be spanned by the vertical
dimension of the printed image.
GMU Proprietary
GMU Proprietary
Magnify Zoom (Ctrl+M) Selecting the Magnify Zoom tool puts the cursor at the center
of a 2 diameter circle that functions as virtual magnifying glass when dragged around
the Graph View (Figure 42). The degree of magnification inside the circle can be
adjusted by rotating the mouse wheel. Additionally, most of the Edit Mode functions
remain active in this mode, for example, one can select, delete, resize and relocate graph
objects. One especially useful application occurs in very large, complicated graphs when
it is necessary to locate and click the open/close (+/-) button in the upper left corner of a
Protection Domain.
Hierarchical Layout
Orthogonal Layout
GMU Proprietary
Circular Layout
Organic Layout
Incremental Layout
The first four of these tools implements what is known as a from-scratch layout
algorithm, meaning that node locations, edge routing, etc. are all completely recalculated
for the entire Attack Graph. The final algorithm is called Incremental it can be viewed
as a layout algorithm that attempts to optimize the display based on recent changes. Try
this algorithm after moving a few Machines or Protection Domain elements around,
relocating Exploit endpoints, or deleting a few items. You are encouraged to experiment
with these layouts and find the ones best suited to your analytical style, or to make
particular graph patterns more explicit.
Note that an incremental layout algorithm similar (but not necessarily identical) to this
one is implicitly invoked whenever hierarchical changes occur to the display: in
particular, opening and closing Protection Domain or Unconnected Group/Folder nodes.
Additionally, it should be mentioned that when a new Attack Graph is loaded, the initial
layout algorithm is Hierarchical.
Figure 43(a) shows an attack graph with an initial layout. Figure 43(b) the same attack
graph, rearranged by applying the Hierarchical layout tool from the Toolbar. This gives
you an idea of what this might be expected to produce. Starting from a fixed initial
graph, it is a good idea to see what the individual layout tools will do; this can give a
good intuitive idea of expected effects for each of the available algorithms.
GMU Proprietary
(a)
(b)
5.3
CAULDRON makes recommendations for hardening the network, based on the attack
graph. These recommendations are generated as XML (e.g., for subsequent reporting),
and rendered in CAULDRON. Recommendations are also saved in an XML file, with
the filename postfix .hardened (based on the attack graph filename). To compute
network hardening recommendations, you must constrain the attack graph with specific
attack start and/or goal machines (as described in Section 5.1.2).
CAULDRON makes 3 kinds of recommendations:
1. Optimal (minimum-effort) hardening requires the minimum number of changes
(e.g., firewall rules) to the network, while preventing the attacker from reaching
the goal. This option requires both start and goal machines to be defined.
2. First-level hardening gives the network changes that stop the attack as soon as
possible, i.e., immediately after the attack start. This option requires the start
machine to be defined.
3. Last-level hardening gives the network changes that protect the goal from all
attack sources, i.e., immediately preceding the attack goal. This option requires
the goal machine to be defined.
GMU Proprietary
Once you have defined the attack scenario, e.g., to the point that you would generate the
attack graph via View Full as described in Section 5.1.6, you are ready to compute
hardening recommendations. Just click the Network Hardening button, as shown in
Figure 44.
GMU Proprietary
You can drill down to see the details of each hardening recommendation. In this
example, the minimum-effort solution is one exploit from 1.1.219.100 to 1.1.1.244
(highlighted in Figure 47), and one exploit from 1.1.105.244. Here, attackerDom and
victimDom under DomToDom are the specific attacker and victim domains
(respectively), and numExploits is the total number of exploits between those two
domains.
GMU Proprietary