in describing the preferred embodiments of the present disclosure illustrated in the drawings , specific terminology is employed for sake of clarity . however , the present disclosure is not intended to be limited to the specific terminology so selected , and it is to be understood that each specific element includes all technical equivalents which operate in a similar manner . the present disclosure enables an ids to detect new and unknown malicious programs . according to embodiments of the present disclosure , the detection of new and unknown malicious programs can be facilitated by the automatic generation and implementation of new definitions . idss according to embodiments of the present disclosure may be either passive or active . an active ids according to an embodiment of the present disclosure is able to detect a new and unknown malicious program and prevent that malicious program from propagating from one subnet of the computer network to another subnet and / or prevent that malicious program from propagating beyond the computer network , for example , to another computer network . subnets are generally isolated segments of the computer network . subnets are often connected to the backbone of the computer network through a network connecting device , for example a router , switch and / or hub . a passive ids according to an embodiment of the present disclosure is able to detect a new and unknown malicious program and allow network administrators to become aware of the malicious program . because passive idss according to some embodiments of the present disclosure generally do not attempt to directly block the propagation of malicious programs , packets can remain free to travel between subnets without first having to pass through an ids control device . fig1 illustrates an example of active idss according to an embodiment of the present disclosure . in this example , a plurality of network devices 101 - 105 form a first subnet . these network devices can be any devices that are connected to the network , for example , network devices can be computers connected to the network . a first agent 116 connects the first subnet to the network backbone 119 . according to an embodiment of the present disclosure , an agent is a unit that monitors the exchange of packets between the subnet and the network and communicates with the master 120 . while there may be multiple agents 116 - 118 , a single master 120 is all that is generally required . agents 116 - 118 may be dedicated network devices and / or agents 116 - 118 may be computer programs executed on a network device , for example a computer connected to the network . according to an embodiment of the present disclosure , agents 116 - 118 are placed in such a way that communication between the subnets and the rest of the computer network are through the agents 116 - 118 . according to an embodiment of the present disclosure , agents 116 - 118 act as firewalls to prevent certain packets from being passed across the agent and thereby prevent those packets from being delivered to the destination addresses of those packets a second agent 117 connects a second subnet formed by a plurality of network devices 106 - 110 to the network backbone 119 and a third agent 118 connects a third subnet formed by a plurality of network devices 111 - 115 to the network backbone 119 . agents 116 - 118 monitor packets that are communicated across the respective subnets and report packet information to the master 120 . the master 120 may be located anywhere within the computer network , for example , within one of the subnets , or may be located outside of the computer network , for example , on a remote server connected over the internet through a virtual private network ( vpn ). according to some embodiments of the present disclosure , agents 116 - 118 may send sample packets to the master 120 . sample packets can be copies of packets that have traveled across the agent 116 - 118 , for example , from the corresponding subnet to the backbone 119 . sample packets may be selected at set intervals , for example , every 100 th packet may be sent or a packet can be sent every second . sample packets may be sent at random , for example , every packet may be given a 1 in 100 chance of being sent as a sample packet . the master 120 analyzes the sample packets and may look for indications of a malicious program infection . for example , the master 120 may analyze sample packets and watch for a proliferation of similar packets . because malicious programs often generate many copies of themselves in an attempt to propagate , a large proliferation of similar packets may indicate the presence of a malicious program infection . when proliferation of similar packets is detected by the master 120 , the master 120 can generate a signature for the proliferating packets . a signature can represent certain characteristics by which a packet can be identified . for example , a signature may be a hash value of the packet . a hash value is generally a number that can be used to identify a packet . the hash value is generally determined by performing a mathematical algorithm on the data that makes up the packet in question . there are many algorithms for calculating a packet &# 39 ; s hash value that are known in the art . among these are the md 5 and sha algorithms . while there are theoretically many different possible packets that can all produce the same hash value , the chances of two different files having the same hash value are infinitesimal . the signature may then be sent to the agents 116 - 118 . according to some embodiments of the present disclosure , agents 116 - 118 can then block the proliferation of packets matching the signature sent to it by the master 120 by preventing those packets from being delivered to the destination addresses of those packets . this can be accomplished , for example , by the agent 116 - 118 analyzing every packet that attempts to be communicated between the subnet and the rest of the network before the packet may proceed across the agent 116 - 118 and calculating the hash values for those packets to see if the hash values matches a signature hash value that has been sent to the agent 116 - 118 by the master 120 . because calculating the hash value of every packet might be time consuming , agents 116 - 118 need not calculate hash values of packets unless a signature has been sent to the agent 116 - 118 from the master 120 . packets that match the signature may then be prevented from being transmitted across the agent 116 - 118 . agents 116 - 118 can also log the proliferation of packets matching the signature sent to it by the master 120 . by logging the proliferation of packets corresponding to malicious programs , network administrators can be made aware of the threatened spread of the malicious program . by blocking the proliferation of packets corresponding to malicious programs , the spread of the malicious program from one subnet to another and / or from one computer network to another may be prevented . additionally , blocking the proliferation of packets corresponding to malicious programs can prevent packets corresponding to malicious programs from flooding onto the backbone 119 and potentially consuming large allotments of backbone 119 bandwidth potentially resulting in a slowdown of the entire network . fig2 illustrates an example of passive idss according to an embodiment of the present disclosure ( passive embodiments of the present disclosure ). in this example , a plurality of network devices 201 - 205 form a first subnet . a first router 216 connects the first subnet to the network backbone 219 . according to passive embodiments of the present disclosure , any network device may connect the subnets to the backbone 219 , alternatively , an agent 220 - 222 may connect subnets to the network backbone 219 as is done in active embodiments of the present disclosure . according to passive embodiments of the present disclosure , agents 220 - 222 monitor the exchange of packets throughout the subnet and communicate with the master 223 . while there may be multiple agents 220 - 222 , a single master 223 is all that is generally required . agents 220 - 222 may be dedicated network devices and / or agents 220 - 222 may be computer programs executed on a network device , for example a computer connected to the network . agents 220 - 222 may be placed at any locations within the subnet . a second router 217 connects a second subnet formed by a plurality of network devices 206 - 210 to the network backbone 219 and a third router 218 connects a third subnet formed by a plurality of network devices 211 - 215 to the network backbone 219 . agents 220 - 222 may be able to monitor packets that are communicated across the respective subnets and report packet information to the master 223 . the master 223 may be located anywhere within the computer network , for example , within one of the subnets , or may be located outside of the computer network , for example , on a remote server connected over the internet through a virtual private network ( vpn ). according to some passive embodiments of the present disclosure , agents 220 - 222 may send sample packets to the master 223 . the master 223 analyzes the sample packets and may look for indications of a malicious program infection . when proliferation of similar packets is detected by the master 223 , the master 223 can generate a signature for the proliferating packets . the signature may then be sent to the agents 220 - 222 . according to passive embodiments of the present disclosure , agents 220 - 222 can log the proliferation of packets matching the signature sent to it by the master 223 . by logging the proliferation of packets corresponding to malicious programs , network administrators can identify and take steps to correct the spread of the malicious program . fig3 illustrates the operation of an agent 116 - 118 for an active ids according to embodiments of the present disclosure . packets enter the agent 116 - 118 through the signature matching unit 301 . new signatures enter the agent 116 - 118 through the signatures database 302 . if there are signatures located within the signature database 302 then the signature matching unit 301 compares the incoming packet with the signatures within the signature database 301 . if the packet matches a signature , then the match may be logged in the log database 305 . packets that match may be prevented from being output . if the packet does not match , or there are no signatures in the signature database 302 , the packet enters the random selection unit 303 . if the packet is selected to be a sample packet , the packet may be sent to the master 120 . regardless of whether the packet is selected to be a sample packet , the packet may be output . where the agent 116 - 118 is examining packets sent from the subnet to the rest of the network , the packets may be input from the subnet to the signature matching unit 301 and output from the random packet selection unit 303 to the rest of the network . where the agent 116 - 118 is examining packets sent from the rest of the network to the subnet , the packets may be input from the rest of the network to the signature matching unit 301 and output from the random packet selection unit 303 to the subnet . according to another active embodiment of the present disclosure , additional signatures may be supplied to the signature database 302 from external sources , for example , from signature updates created and distributed by the ids vender . for these embodiments , it is possible to more easily protect networks against known malicious programs . fig4 illustrates the operation of an agent 220 - 222 for a passive ids according to embodiments of the present disclosure . according to some passive embodiments , packets that enter the agent 220 - 222 are allowed to pass out of the agent 220 - 222 and on to their designated recipient address . a copy of each packet that passes through the agent 220 - 222 may be sent to the signature matching unit 401 . new signatures enter the agent 220 - 222 through the signatures database 402 . if there are signatures located within the signature database 402 then the signature matching unit 401 can compare the incoming packet with the signatures within the signature database 402 . if the packet matches a signature , then the match may be logged in the log database 405 . if the packet does not match , or there are no signatures in the signature database 402 , the packet may enter the random selection unit 403 . if the packet is selected to be a sample packet , the packet may be sent to the master 223 . according to another passive embodiment of the present disclosure , additional signatures may be supplied to the signature database 402 from external sources , for example , from signature updates created and distributed by the ids vender . fig5 illustrates the operation of a master 120 , 223 according to embodiments of the present disclosure . selected sample packets may be received from the agents 116 - 118 , 220 - 222 . the source address of the packet may be added to the agent address database 501 . this allows the master 120 , 223 to keep track of the agents 116 - 118 , 220 - 222 that send packets to the master 120 , 223 so that in the event signatures may be created by the master 120 , 223 , these signatures can be sent back to the agents 116 - 118 , 223 - 222 that send packets to the master 120 , 223 . alternatively , the agent address database 501 may be preprogrammed to include the addresses of all agents 116 - 118 , 220 - 222 that are to receive signatures . in such cases , it might not be useful for the addresses of incoming packets to be recorded in the agent address database 501 . the packet may then be sent to a packet database 502 . the packet database 502 allows the worm detection intelligence 503 to examine multiple packets at the same time to determine the presence of a malicious program . the worm detection intelligence 503 , for example , uses factors such as the frequency of the receipt of common packets to determine if a malicious program is propagating . a database of exception signatures 504 may be provided to supply the worm detection intelligence 503 with a list of scenarios that are known not to be caused by malicious program infection even though the scenarios might otherwise exhibit characteristics indicative of malicious program infection . for example , the exception database 504 might inform the worm detection intelligence 503 that a particular mass email is not indicative of a malicious program even though the mass email results in the transmission of common packets . the exception signature database 504 can also be used by the network administrator to inform the master 120 , 223 of any mistakes made by the worm detection intelligence 503 so those mistakes need not be repeated . if the worm detection intelligence 503 determines that there is an infection from a malicious program , and the scenario is not listed in the exception signature database 504 , then a packet believed to be the result of the malicious program infection may then be sent to the signature generator 505 . the signature generator 505 may generate a signature that can be used to detect the packets created as a result of the malicious program and sends the signature to all agents 116 - 118 , 220 - 222 using the addresses listed in the agent address database 501 . the present disclosure is not limited to the analysis of whole packets . for example , packets sent to the master 120 , 223 may be broken into units of data smaller than one packet ( a sub - packet ). these sub - packets may then be individually stored in the packet database 502 . the worm detection intelligence 503 would then examine the sub - packets for signs of an infection from a malicious program . for example , the frequency of similar sub - packets can be tracked . analysis of sub - packets can aid in the identification of malicious programs that generate data smaller than a full packet and in cases where the malicious program attempts to disguise itself by changing forms as it propagates ( polymorphic malicious programs ). fig6 illustrates the operation of a packet database 502 according to embodiments of the present invention . when a packet arrives to the master 120 , 223 from an agent 116 - 118 , 220 - 222 , the packet may be sent to a data hasher 601 . the data hasher 601 may compute a hash value for the sent packet . the hash value may then be entered into an array of hash values 602 that keeps track of the number of packets that have been observed for each observed hash value within a set length of time . for example , each hash value in the array 603 may be associated with a list of times that the hash value was observed 604 - 606 . as new instances of a particular hash value are observed , the new time of observation may be added to the beginning of the list . instances deemed too remote in time may be removed from the list . for example , instances observed more than 5 minutes ago may be removed from the list . by keeping track of the number of instances within a particular length of time , the packet database 502 can calculate the frequency of observation of a particular packet , and this information can be used by the worm detection intelligence 503 to help determine the presence of a malicious program infection . fig7 depicts an example of a computer system which may implement the method and system of the present disclosure . the system and method of the present disclosure may be implemented in the form of a software application running on a computer system , for example , a mainframe , personal computer ( pc ), handheld computer , server , etc . the software application may be stored on a recording media locally accessible by the computer system and accessible via a hard wired or wireless connection to a network , for example , a local area network , or the internet . the computer system referred to generally as system 700 may include , for example , a central processing unit ( cpu ) 702 , random access memory ( ram ) 704 , a printer interface 706 , a display unit 708 , a local area network ( lan ) data transmission controller 710 , a lan interface 712 , a network controller 714 , an internal buss 716 , and one or more input devices 718 , for example , a keyboard , mouse etc . as shown , the system 700 may be connected to a data storage device , for example , a hard disk , 720 via a link 722 .