1. A tangible computer-readable medium encoded with a computer program for minimum-cost network hardening comprising the steps of: a) inputting a multitude of exploits, each of said “multitude of exploits” including at least one precondition mapped to at least one postcondition, at least one of said “multitude of exploits” being an initial-condition exploit, at least one of said “multitude of exploits” being a goal exploit, said “at least one precondition” being a logical combination of multiple preconditions; b) generating a dependency graph, by: i) generating a forward-reachable dependency graph by starting with said “initial-condition exploit” and iteratively: (1) creating a current mapping by mapping each of said “at least one postcondition” of each said “multitude of exploits” to corresponding said “at least one precondition” of said “multitude of exploits”; and (2) if said “current mapping” introduces a mapping cycle, then omit said “current mapping” from said “forward-reachable dependency graph”; and ii) generating a backward dependency graph using said “forward-reachable dependency graph” by starting with said “goal exploit” and iteratively mapping each of said “at least one precondition” of said “multitude of exploits” to corresponding “at least one postcondition” of said “multitude of exploits”; c) constructing a goal conditions expression using said “dependency graph” by starting with said “goal exploit,” for each of said “multitude of exploits” mapped on said “dependency graph,” recursively: i) mapping each of said “at least one precondition” to the corresponding said “at least one postcondition;” and ii) substituting the associated said “logical combination of multiple preconditions” with a corresponding algebraic expression; d) using said “goal conditions expression,” determine at least one set of safe network configurations; and e) choosing at least one of said “at least one set of safe network configurations” using hardening costs as a criterion.