One feature of that VA project and of my work is the use of preconditions and postconditions to define the nature of an attack or vulnerability. This derives from an earlier work at UC Davis called A Requires/Provides Model for Computer Attacks. The nickname for the requires/provides project was Jigsaw, so that term may be seen in the documentation too. The basic idea is that every attack has certain conditions that must be met before it can execute, such as the presence of a vulnerability. This set of conditions are the preconditions. The second part of the basic idea is every attack has some consequence, such as giving the attacker root on a system. The set of consequences are the postconditions. The final part of the basic idea is that some consequences are actually preconditions for other attacks. So you can build an attack dependency graph by chaining consequences of one attack to preconditions of another attack.
Attack graphs are simply all such chains of attacks that exist in the network put together in one, typically large, graph. To compute an attack graph, the description of the network is needed. This lists the connectivity between hosts and the attacker's initial capabilities on each host, including privilege level and vulnerabilities present on the host. There should also be an additional external host that the attacker has root access on that is the starting point of the attack sequence. One also needs a set of rules to define the attacks possible in the system. For methods which use one rule per vulnerability like Nessus, this will be a very large set of rules. For methods which use abstracted vulnerability classes to define the rules, the set of rules will be much smaller. Here is a link to my set of rules. The expert system JESS is used to compute the attack graph. We will go through a demo in the lab.
5 node network
Attack graphs for 5 node network
JESS Rete network
/usr/local/sbin/nessus-update-pluginsThe machine must be connected to the Internet for this to work. We will update the plugins and re-run tests for the second half of the lab. Note any vulnerabilities that are new, if any, with this plugin set.
Write a brief summary of what you've seen and email it to my Helios account.