1. A method for self-configuring a particular firewall, the method comprising: tracking different sets of vulnerabilities affecting different configurations of different software applications; mapping a set of software applications under protection of the particular firewall, wherein said mapping comprises scanning with the particular firewall, an address range of a network under protection of the particular firewall and detecting at the particular firewall, the set of software applications running on a set of machines addressable in said network as a result of said scanning; scanning a software configuration for each software application of the set of software applications based on one or more commands, scripts, and input passing from the particular firewall to the set of machines and a response each machine of the set of machines provides to said particular firewall as a result of said passing; identifying a subset of security vulnerabilities from the different sets of vulnerabilities present in said set of software applications and software configurations based on comparing the software configuration of each software application of the set of software applications from said scanning against the different configurations of the different software applications from said tracking; and automatically reconfiguring the particular firewall based on said identifying, wherein automatically reconfiguring comprises enabling on the particular firewall, a set of firewall signatures from a plurality of firewall signatures protecting against the subset of security vulnerabilities present in said set of software applications and software configurations, wherein the set of firewall signatures detect traffic comprising attacks directed to the subset of security vulnerabilities.