{\vspace {3\baselineskip }} \contentsline {section}{\hspace {-\parindent }COPYRIGHT}{iii}{}% {\hfill \ } \contentsline {section}{\hspace {-\parindent }ABSTRACT}{iv}{}% {\hfill \ } \contentsline {section}{\hspace {-\parindent }ACKNOWLEDGEMENTS}{v}{}% {\hfill \ } \contentsline {section}{\hspace {-\parindent }TABLE OF CONTENTS}{viii}{}% {\hfill \ } \contentsline {section}{\hspace {-\parindent }LIST OF TABLES}{ix}{}% {\hfill \ } \contentsline {section}{\hspace {-\parindent }LIST OF FIGURES}{xi}{}% \contentsline {chapter}{\numberline {CHAPTER 1: }{\bf \uppercase {INTRODUCTION}}}{1}{}% \contentsline {section}{\numberline {1.1}\bf Introduction to Attack Graphs}{1}{}% \contentsline {section}{\numberline {1.2}\bf Application to Compliance}{2}{}% \contentsline {subsection}{\numberline {1.2.1}\it Introduction to Compliance Graphs}{2}{}% \contentsline {subsection}{\numberline {1.2.2}\it Defining Compliance Graphs}{3}{}% \contentsline {subsection}{\numberline {1.2.3}\it Difficulties of Compliance Graphs}{3}{}% \contentsline {section}{\numberline {1.3}\bf Objectives and Contributions}{4}{}% \contentsline {chapter}{\numberline {CHAPTER 2: }{\bf \uppercase {RELATED WORKS}}}{5}{}% \contentsline {section}{\numberline {2.1}\bf Introduction to Graph Generation}{5}{}% \contentsline {section}{\numberline {2.2}\bf Graph Generation Improvements}{5}{}% \contentsline {section}{\numberline {2.3}\bf Improvements Specific to Attack Graph Generation}{6}{}% \contentsline {chapter}{\numberline {CHAPTER 3: }{\bf \uppercase {UTILITY EXTENSIONS TO THE RAGE ATTACK GRAPH GENERATOR}}}{8}{}% \contentsline {section}{\numberline {3.1}\bf Path Walking}{8}{}% \contentsline {section}{\numberline {3.2}\bf Color Coding}{9}{}% \contentsline {section}{\numberline {3.3}\bf Compound Operators}{10}{}% \contentsline {section}{\numberline {3.4}\bf Relational Operators}{12}{}% \contentsline {section}{\numberline {3.5}\bf Intermediate Database Storage}{13}{}% \contentsline {subsection}{\numberline {3.5.1}\it Introduction to Intermediate Database Storage}{13}{}% \contentsline {subsection}{\numberline {3.5.2}\it Memory Constraint Difficulties}{13}{}% \contentsline {subsection}{\numberline {3.5.3}\it Maximizing Performance with Intermediate Database Storage}{15}{}% \contentsline {subsection}{\numberline {3.5.4}\it Portability}{16}{}% \contentsline {chapter}{\numberline {CHAPTER 4: }{\bf \uppercase {SYNCHRONOUS FIRING}}}{18}{}% \contentsline {section}{\numberline {4.1}\bf Introduction}{18}{}% \contentsline {subsection}{\numberline {4.1.1}\it Related Synchronous Firing Work}{19}{}% \contentsline {section}{\numberline {4.2}\bf Necessary Alterations and Additions}{20}{}% \contentsline {subsection}{\numberline {4.2.1}\it GNU Bison and Flex}{20}{}% \contentsline {subsection}{\numberline {4.2.2}\it PostgreSQL}{21}{}% \contentsline {subsection}{\numberline {4.2.3}\it Compound Operators}{22}{}% \contentsline {subsection}{\numberline {4.2.4}\it Graph Generation}{22}{}% \contentsline {section}{\numberline {4.3}\bf Experimental Networks and Results}{23}{}% \contentsline {subsection}{\numberline {4.3.1}\it Experimental Networks}{23}{}% \contentsline {subsection}{\numberline {4.3.2}\it Results}{25}{}% \contentsline {chapter}{\numberline {CHAPTER 5: }{\bf \uppercase {Parallelization Using MESSAGE PASSING INTERFACE}}}{29}{}% \contentsline {section}{\numberline {5.1}\bf Introduction to MPI Utilization for Attack and Compliance Graph Generation}{29}{}% \contentsline {section}{\numberline {5.2}\bf Necessary Components}{29}{}% \contentsline {subsection}{\numberline {5.2.1}\it Serialization}{29}{}% \contentsline {section}{\numberline {5.3}\bf Tasking Approach}{30}{}% \contentsline {subsection}{\numberline {5.3.1}\it Introduction to the Tasking Approach}{30}{}% \contentsline {subsection}{\numberline {5.3.2}\it Algorithm Design}{32}{}% \contentsline {subsubsection}{\numberline {5.3.2.1}Communication Structure}{34}{}% \contentsline {subsubsection}{\numberline {5.3.2.2}Task 0}{34}{}% \contentsline {subsubsection}{\numberline {5.3.2.3}Task 1}{34}{}% \contentsline {subsubsection}{\numberline {5.3.2.4}Task 2}{35}{}% \contentsline {subsubsection}{\numberline {5.3.2.5}Task 3}{37}{}% \contentsline {subsubsection}{\numberline {5.3.2.6}Task 4 and Task 5}{37}{}% \contentsline {subsubsection}{\numberline {5.3.2.7}MPI Tags}{38}{}% \contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations and Use Cases}{38}{}% \contentsline {subsection}{\numberline {5.3.4}\it Results}{39}{}% \contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{43}{}% \contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{43}{}% \contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{43}{}% \contentsline {subsubsection}{\numberline {5.4.2.1}Worker Nodes}{44}{}% \contentsline {subsubsection}{\numberline {5.4.2.2}Root Node}{45}{}% \contentsline {subsubsection}{\numberline {5.4.2.3}Database Node}{46}{}% \contentsline {subsubsection}{\numberline {5.4.2.4}MPI Tags}{46}{}% \contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations and Use Cases}{46}{}% \contentsline {subsection}{\numberline {5.4.4}\it Results}{47}{}% \contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{56}{}% \contentsline {section}{\numberline {6.1}\bf Conclusions}{56}{}% \contentsline {section}{\numberline {6.2}\bf Future Work}{57}{}% {\hfill \ } \contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{60}{}% \addvspace {10pt} \contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{60}{}% {\hfill \ }