INTRODUCTIONDefending large scale enterprise networks from adversary attacks is an uphill task faced by present day network administrators. Defense approaches against such attacks traditionally have been mostly host centric, where attention is given to identifying vulnerabilities of the individual hosts and taking measures to mitigate them. Vulnerability scanning tools, such as Nessus, OpenVAS, Nexpose, etc. provide per host vulnerability information and help in achieving these objectives. However, one major problem with this approach is that it emphasises more on host specific local information and does not consider them in the light of global security context of the network. Theoretically, an exhaustive vulnerability searching and patching may lead to a secure system. However, this may not be possible in practice due to the costs involved and operational constraints. Moreover, in many cases, attackers combine elementary attacks to launch multistage attacks against critical assets. These elementary attacks exploit vulnerabilities of individual hosts and may be either remote or local. Intrusion Detection Systems, either network or host based, can detect those elementary attacks but cannot report whether they are part of a larger attack chain or not.An attack graph is an important modelling tool used in the assessment of security of enterprise networks. Using attack graphs, network administrators can understand how an attacker can combine vulnerabilities in multiple hosts in a multi-stage attack to compromise critical resources in a network. Moreover the size of an attack graph has direct impact on the perceived risk. Intuitively, a larger attack graph can mean more number of vulnerabilities that can be exploited or more number of attack paths to a resource or more attack spread; all implying less security and hence more risk. An exhaustive attack graph of a network provides global view of its security posture, enabling quantitative assessment of the same. Such assessments, when performed periodically help a network system to evolve over time.Since its introduction in 1998, attack graph has attracted lots of attention from researchers and a considerable amount of research effort has been spent in the development of theory and practices around the idea of attack graph. In its earlier days, dedicated security teams (called Red teams) used to determine overall security of networks by hand-drawing gigantic attack graphs and then analysing them. Obviously, this approach was tedious, error prone and did not scale up as the network size grew. This gave rise to the need for automated methods of attack graph generation. Automated techniques also guarantee that the generated attack graph is exhaustive and succinct. An exhaustive attack graph contains all possible attack paths and a succinct attack graph contains only those initial network states from where the attacker can reach the goal. Initial research proposed custom algorithms, model checking, logic based approaches as attack graph generation methods. However, the sca...