There is currently a proliferation of organizational networked systems. Every type of organization, be it a commercial company, a university, a bank, a government agency or a hospital, heavily relies on one or more networks interconnecting multiple computing nodes. Failures of the networked system of an organization or even of only a portion of it might cause a significant damage, up to completely shutting down all operations. Additionally, much of the data of the organization (and for some organizations even all data) exists somewhere on its networked system, including all confidential data comprising its “crown jewels” such as prices, details of customers, purchase orders, employees' salaries, technical formulas, etc. Loss of such data or leaks of such data to outside unauthorized entities might be disastrous for the organization.
Many organizational networks are connected to the Internet at least through one network node, and consequently they are subject to attacks by computer hackers or by hostile adversaries. Even an organizational network that is not connected to the Internet might be attacked by an employee of the organization. Quite often the newspapers are reporting incidents in which websites crashed, sensitive data was stolen or service to customers was denied, where the failures were the results of hostile penetration into an organization's networked system.
Thus, many organizations invest a lot of efforts and costs in preventive means designed to protect their networked systems against potential threats. There are many defensive products offered in the market claiming to provide protection against one or more known modes of attack, and many organizations arm themselves to the teeth with multiple products of this kind.
However, it is difficult to tell how effective such products really are in achieving their stated goals of blocking hostile attacks, and consequently most CISO's (Computer Information Security Officers) will admit (maybe only off the record), that they don't really know how well they can withstand an attack from a given adversary. The only way to really know how strong and secure a networked system is, is by trying to attack it as a real adversary would. This is known as penetration testing (pen testing, in short), and is a very common approach that is even required by regulation in some developed countries.
Penetration testing requires highly talented people to man the testing team. Those people should be familiar with each and every known security vulnerability and attacking method and should also have a very good familiarity with networking techniques and multiple operating systems implementations. Such people are hard to find and therefore many organizations give up establishing their own penetration testing teams and resort to hiring external expert consultants for carrying out that role (or completely give up penetration testing). But external consultants are expensive and therefore are typically called in only for brief periods separated by long time intervals in which no such testing is done. This makes the penetration testing ineffective as security vulnerabilities caused by new forms of attacks that appear almost daily are discovered only months after becoming serious threats to the organization.
Additionally, even rich organizations that can afford hiring talented experts for in-house penetration testing teams do not achieve good protection. Testing for security vulnerabilities of a large networked system containing many types of computers, operating systems, network routers and other devices is both a very complex and a very tedious process. The process is prone to human errors of missing testing for certain threats or misinterpreting the damages of certain attacks. Also, because a process of full testing of a large networked system against all threats is quite long, the organization might again end with a too long discovery period after a new threat appears.
Because of the above deficiencies automated penetration testing solutions were introduced in recent years by multiple vendors. These automated solutions reduce human involvement in the penetration testing process, or at least in some of its functions.
A penetration testing process involves at least the following main functions: (i) a reconnaissance function, (ii) an attack function, and (ii) a reporting function. The process may also include additional functions, for example a cleanup function that restores the tested networked system to its original state as it was before the test. In an automated penetration testing system, at least one of the above three functions is at least partially automated, and typically two or three of them are at least partially automated.
A reconnaissance function is the function within a penetration testing system that handles the collection of data about the tested networked system. The collected data may include internal data of networks nodes, data about network traffic within the tested networked system, business intelligence data of the organization owning the tested networked system, etc. The functionality of a prior art reconnaissance function can be implemented, for example, by software executing in a server that is not one of the network nodes of the tested networked system, where the server probes the tested networked system for the purpose of collecting data about it.
An attack function is the function within a penetration testing system that handles the determination of whether security vulnerabilities exist in the tested networked system based on data collected by the reconnaissance function. The functionality of a prior art attack function can be implemented, for example, by software executing in a server that is not one of the nodes of the tested networked system, where the server attempts to attack the tested networked system for the purpose of verifying that it can be compromised.
A reporting function is the function within a penetration testing system that handles the reporting of results of the penetration testing system. The functionality of a prior art reporting function may be implemented, for example, by software executing in the same server that executes the functionality of the attack function, where the server reports the findings of the attack function to an administrator or a CISO of the tested networked system.
In
In one example and as shown in
“A campaign of penetration testing” is a specific run of a specific test of a specific networked system by the penetration testing system.
A penetration-testing-campaign module may comprise at least part of reconnaissance function code 20, attack function code 30 and optionally cleanup function code 50—for example, in combination with suitable hardware (e.g. one or more computing device 110 and one or more processor(s) 120 thereof) for executing the code.
Memory 160 may include any combination of volatile (e.g. RAM) and non-volatile (e.g. ROM, flash, disk-drive) memory.
Code 180 may include operating-system code—e.g. Windows®, Linux®, Android®, Mac-OS ®.
Computing device 110 may include a user-interface for receiving input from a user (e.g. manual input, visual input, audio input, or input in any other form) and for visually displaying output. The user-interface (e.g. graphical user interface (GUI)) of computing device 110 may thus include the combination of HID device 140 or an interface thereof (i.e. in communication with an external HID device 140), display device 130 or an interface thereof (i.e. in communication with an external display device), and user-interface (UI) code stored in memory 160 and executed by one or more processor(s) 120. The user-interface may include one or more GUI widgets such as labels, buttons (e.g. radio buttons or check boxes), sliders, spinners, icons, windows, panels, text boxes, and the like.
In one example, a penetration testing system is the combination of (i) code 10 (e.g. including reconnaissance function code 20, attack function code 30, reporting function code 40, and optionally cleaning function code 50); and (ii) one or more computing devices 110 which execute the code 10. For example, a first computing device may execute a first portion of code 10 and a second computing device (e.g. in networked communication with the first computing device) may execute a second portion of code 10.
Each network node may be a different computing device 110. Two network nodes are “immediate neighbors” of each other if and only if they have a direct communication link between them that does not pass through any other network node.
In the example of
Embodiments of the invention relate to penetration testing of networked systems, such as that illustrated in
During penetration testing, a node may become compromised. In the examples of
The term “compromising a network node” is defined as: Successfully causing execution of an operation in the network node that is not allowed for the entity requesting the operation by the rules defined by an administrator of the network node, or successfully causing execution of code in a software module of the network node that was not predicted by the vendor of the software module. Examples for compromising a network node are reading a file without having read permission for it, modifying a file without having write permission for it, deleting a file without having delete permission for it, exporting a file out of the network node without having permission to do so, getting an access right higher than the one originally assigned without having permission to get it, getting a priority higher than the one originally assigned without having permission to get it, changing a configuration of a firewall network node such that it allows access to other network nodes that were previously hidden behind the firewall without having permission to do it, and causing execution of software code by utilizing a buffer overflow. As shown by the firewall example, the effects of compromising a certain network node are not necessarily limited to that certain network node. In addition, executing successful ARP spoofing, denial-of-service, man-in-the-middle or session-hijacking attacks against a network node are also considered compromising that network node, even if not satisfying any of the conditions listed above in this definition.
According to the example illustrated in
In this particular example, it is assumed that it is easier for an attacker to compromise a node if one or more of its immediate neighbors has been compromised.
When a user desires to operate a prior art penetration testing system for running a test on a specific networked system, the penetration testing system must know what test it should execute. For example, the penetration testing system must know what is the type of attacker against whom the test is making its assessment (a state-sponsored actor, a cyber criminal etc.) and what are his capabilities. As another example, the penetration testing system must know what is the goal of the attacker according to which the attack will be judged as a success or a failure (copying a specific file and exporting it out of the tested networked system, encrypting a specific directory of a specific network node for ransom, etc.).
A specific run of a specific test of a specific networked system by a penetration testing system is called a “campaign” of that penetration testing system and entails performing at least the reconnaissance (step S21 of
The results of the penetration testing campaign may be reported by performing the reporting function (step S41) of
All prior art penetration testing systems are not flexible in letting the user define the specifications of a campaign. Typically, those systems are delivered with a library of pre-defined campaign specifications from which the user should choose.
Some prior art penetration testing systems provide slightly better flexibility by allowing the user to select a scenario based on explicit selection of the type of the attacker. The user may be presented with a closed list of alternatives for the type of the attacker—a state-sponsored actor, a cyber criminal, an amateur hacker, etc., and he may choose one of those alternatives. Once the user picks one of the listed alternatives, the system selects a pre-defined scenario whose type of attacker is the same as the picked alternative. All other fields of the specifications of the campaign (goal of the attacker, capabilities of the attacker, etc.) are automatically decided either by the selected pre-defined scenario or by internal algorithms of the penetration testing system, with no explicit input from the user. The internal algorithms may depend on the user-selected type of attacker and/or on pre-defined information items of the selected pre-defined scenario, and/or on a random process. For example, the capabilities of the attacker may be automatically defined based on the type of the attacker, while the lateral movement strategy of the attacker may be picked at random from a pre-defined list of available strategies.
This rigid campaign definition is not satisfactory for many users, who would like to have greater control over the specifications of the campaigns they run for testing their networked systems. Such control will allow them to test specific combinations of features of scenarios, which might be impossible to test with prior art systems.
Both of nodes 254 and 252 are “networked system external”—i.e. outside of networked system 200. The term ‘networked system external’ is abbreviated as “NS-external”.
In the present document, a network node may be referred to simply as ‘node’—‘network node’ and ‘node’ are interchangeable. Each network node may be different a computing device 110 illustrated in
A Discussion of Actual Attack vs. Simulated Attack
All prior art penetration testing systems can be characterized as doing either an “actual attack penetration testing” or as doing a “simulated penetration testing”.
A prior art actual attack penetration testing system does its penetration testing by accessing and attempting to attack the tested networked system. Such a system actually accesses the tested networked system during the test and is not limiting itself to simulation. This includes (i) collecting data by the reconnaissance function about the tested networked system and its components by actively probing it. The probing is done by sending queries or other messages to one or more network nodes of the tested networked system, and then deducing information about the tested networked system from the received responses or from network traffic triggered by the queries or the messages. The reconnaissance function is fully implemented by software executing outside the tested networked system or by software executing in one or more network nodes of the tested networked system that analyze network traffic and network packets of the tested networked system, and (ii) verifying that the tested networked system can be compromised by actively attempting to compromise it and checking if it was indeed compromised. This implies that a side-effect of executing an actual attack penetration test might be actually compromising the tested networked system. Typically, prior art actual attack penetration testing systems include a function of cleanup and recovery at the end of the test, in which any compromising operation that was done during the test is undone.
A prior art simulated penetration testing system does its penetration testing by avoiding disturbance to the tested networked system and specifically by avoiding any risk of compromising it. This implies, among other things, that (i) no installation of software agents of any kind on network nodes of the tested networked system is allowed, and (ii) whenever there is a need to verify that the tested networked system can be compromised by an operation or a sequence of operations, the verification is done by simulating the results of that operation or sequence of operations or by otherwise evaluating them, without taking the risk of actually compromising the tested networked system. Some prior art simulated penetration testing systems implement the simulation by duplicating all or parts of the hardware of the tested networked system. Then when there is a need for verifying that an operation or a sequence of operations compromises the tested networked system, this is done by actually attacking the duplicated system without risking the tested system. While this implementation achieves the goal of avoiding the risk of not compromising the tested networked system, it is highly expensive and also difficult to accurately implement, and therefore rarely used.
While the prior art automated penetration testing systems provide great advantages over manual penetration testing systems, they still do not provide a fully satisfactory solution, as they suffer from some deficiencies, examples of which are explained below.
Prior art automated penetration testing systems face difficulties in their reconnaissance function's ability to collect internal data of network nodes. Internal data of a network node is data that is only directly accessible to code executing by a processor of that network node. This may include, for example, factual data about the network node such as the version of the firmware of a solid-state drive installed in that network node. Unless the internal node was already compromised by the penetration testing system, it might be difficult or even impossible for it to determine such internal fact. A human hostile attacker may gain knowledge of such fact by indirect means—for example if he had previously been an employee of the organization owning the tested networked system, or if he is an employee of the vendor supplying the organization with solid-state drives. Once the attacker possesses knowledge of the fact, he might use it to advantage for compromising the network node and consequently compromising the networked system. But a prior art penetration testing system that does not have access to that internal data of the network node might miss the detection of a security vulnerability related to a specific firmware version. This deficiency is mainly problematic for simulated penetration testing systems, but is also relevant to actual attack penetration testing systems, as even active probing by the penetration testing system may not be enough for obtaining internal data of a network node that was not yet compromised when the attempt to probe is performed from outside of the probed network node.
Another deficiency is relevant only to actual attack penetration testing systems that might actually compromise the tested networked system during the test. This characteristic of actual attack penetration testing systems is by itself a security vulnerability. As the testing process might compromise the networked system, there is a risk that the recovery function of the penetration testing system, that is supposed to undo the compromising and make the tested networked system safe again, might fail in fully doing that, and the tested networked system might be left with one or more compromised components without the CISO of the owning organization being aware of it. Additionally, even if the penetration testing system's recovery function is faultless, the testing still makes the tested networked system vulnerable and exposed to attacks during the test, before the recovery function is activated.
Another deficiency of an actual attack penetration testing system is that it cannot answer “what if” questions, as one cannot attack a configuration that does not exist in the real world. For example, a CISO of an organization may want to find out whether adding a new security tool will indeed improve his networked system's immunity to attacks. Or to find how much would the immunity degrade if he will remove an existing security tool that costs a lot of money in licensing fees. In both cases an actual attack penetration testing system cannot answer the question. Another example is determining the vulnerability of a networked system against a new type of attack whose existence is known, but its detailed implementation is not yet known. Again, an actual attack penetration testing system cannot make such determination.
Prior art automated penetration testing systems can successfully detect many types of vulnerabilities in the tested networked system. However, they have difficulty in detecting an important class of vulnerabilities, termed herein “opportunistic vulnerabilities”.
An “opportunistic vulnerability” is a security vulnerability that becomes available to attackers only after an occurrence of a specific event. In many cases, an opportunistic security vulnerability remains available to attackers only for a limited time interval, and once that time interval is over, the vulnerability is no longer available to them. However, in some cases an opportunistic vulnerability remains available to attackers with no time limit.
In some cases the availability of the vulnerability to the attackers is created by the occurrence of the event—for example when a transmission of a network message creates the weakness making an attack possible. In other cases, the availability of the vulnerability to attackers is not created by the occurrence of the event, but rather exists beforehand, and the occurrence of the event makes the existing vulnerability known to the attackers.
A specific event that triggers the availability of a specific opportunistic vulnerability is said to be an event “associated with” that specific opportunistic vulnerability, and the specific opportunistic vulnerability is said to be an opportunistic vulnerability “associated with” that specific event.
A specific event that triggers the availability of a specific opportunistic vulnerability may trigger that availability unconditionally. That is—the specific opportunistic vulnerability will become available to attackers following every occurrence of the specific event. However, it may also be the case that the specific event might sometimes trigger the specific opportunistic vulnerability and sometimes not trigger it, depending on some condition.
An event is said to be associated with an opportunistic vulnerability and an opportunistic vulnerability is said to be associated with an event if the event may trigger the opportunistic vulnerability, regardless if the triggering relation is conditional or unconditional. In the first case we say that the event is “unconditionally associated” with the opportunistic vulnerability, and in the second case we say that the event is “potentially associated” or “conditionally associated” with the opportunistic event. As a result of the above, detecting an event that is associated with an opportunistic vulnerability does not necessarily imply that the vulnerability will be available to the attacker in a future occurrence of the event. In order to conclude that the opportunistic vulnerability will indeed be available to the attacker for a future occurrence of the event, it must be determined that the condition enabling the triggering of the vulnerability by the event (if such exists) is satisfied.
A time interval during which a specific opportunistic vulnerability is available to attackers (if such limiting time interval exists for that specific opportunistic vulnerability) is said to be a time interval “associated with” that specific opportunistic vulnerability.
A time interval associated with an opportunistic vulnerability may be of a fixed length for all occurrences of the event associated with that opportunistic vulnerability, or it may have different length in different occurrences of the associated event and be terminated by the occurrence of another event that makes the use of the vulnerability to attackers no longer possible.
As one example of an opportunistic vulnerability, it might be the case that a bug in a storage driver causes a buffer overflow to occur in a certain network node whenever a USB storage device in inserted into a USB port of the network node, if the volume name of the storage device is longer than a certain length. Thus, the event of the insertion of the storage device having a volume name of a specific length may create an opportunity which attackers may exploit for compromising that network node, an opportunity that ceases to exist after any access to the inserted storage device.
Another example of an opportunistic vulnerability is when a transmission by a network node of a certain message type of a certain network protocol creates an opportunity for attackers to respond with a malicious reply message, which leads to compromising of the network node. In this example, the opportunity for the attacker is triggered by the event of transmission of the first message and is only available to the attacker until a true addressee of the first message responds to the message.
Many prior art penetration testing systems detect vulnerabilities by blindly attempting to compromise a network node without having certainty, in advance, whether the attempted vulnerability indeed compromises the attacked node. Clearly, vulnerabilities of the opportunistic type create a problem for such penetration testing systems. Since an event triggering the opportunistic vulnerability may occur at random, and the window of opportunity for attackers to exploit the opportunistic vulnerability may be limited, it is quite likely that an attempted “blind attack” by a penetration testing system will fail to detect the vulnerability. This is particularly true when the window of opportunity is short, as is the case in many real-life opportunistic vulnerabilities, including many of the examples provided herein. Thus, the prior art testing system would not detect that opportunistic vulnerability, while in reality the network node is subject to a threat of being compromised by a sophisticated attacker that knows how to time his attack to occur within the window of opportunity opened by the triggering event. Such an attacker might lay dormant while monitoring the network node for an occurrence of the triggering event, and upon detection of such an event, may exploit the newly created opportunistic vulnerability while the window of opportunity is still open.
Even penetration testing systems that use simulation instead of actual attacks face difficulties when trying to detect opportunistic vulnerabilities. In order to conclude that a given network node is prone to a given opportunistic vulnerability, it is necessary to determine that the event associated with the opportunistic vulnerability that triggers the vulnerability to occur may actually occur in the given network node. For example, if the triggering event of an opportunistic vulnerability is a transmission of a certain type of message of a certain network protocol out of the given network node, it might be the case that the given network node, even though theoretically prone to that vulnerability, in reality never uses the certain network protocol or never uses the certain type of message triggering the vulnerability. It may be possible to make an educated guess by the penetration testing system as to whether the triggering message is in actual use based on the applications installed in the network node and what versions they are, but this is quite difficult to do, and even under best case circumstances does not provide certainty.
The problems faced by prior art penetration testing systems when dealing with opportunistic vulnerabilities are even more severe when the event associated with the opportunistic vulnerability is a free event.
A “free event of a network node” is an event occurring in a network node of the networked system, which event is initiated in and by the node in which it occurs, and is not directly caused or triggered by an entity outside that node.
An occurrence of a free event in a network node may be triggered by:
As elaborated herein below, all the above free event examples are associated with opportunistic vulnerabilities. In other words, each of the free events of the above examples may trigger a security vulnerability that creates an opportunity for a hostile attacker to compromise the network node, where the vulnerability becomes available to the attacker after the occurrence of the free event and because of it.
For example, when a user submits a query to a web server within the networked system that is already compromised by the attacker, the attacker can use the opportunity to compromise the node making the submission. The web server, which is under control of the attacker, may construct an answer page (for example an HTML page) that contains malicious code, that when rendered by the browser of the querying node compromises that node.
As another example, when an operating system of a first node transmits into the network an ARP request message asking for the MAC address of a second node having a given IP address, a third node, that is under the control of an attacker, might use the opportunity to perform “ARP spoofing”. This may be accomplished by the third node responding to the ARP request message before the true addressee of the message (the second node) does so. The false response provided by the third, compromised, node will be a formally-valid ARP reply message that includes a false MAC address belonging to the third node, or to another compromised node. As a result, the false MAC address will be used by the first node for communicating with what it believes to be the second node, while in reality the first node will be communicating with a compromised node which is controlled by the attacker. This might lead to a successful denial-of-service, man-in-the-middle, or session-hijacking attack, thus compromising the first node by the attacker.
As still another example, when a browser running on a first node transmits into the network a WPAD message asking to determine a proxy server for a target URL to which it wants access, a second node that is under the control of the attacker might use the opportunity and respond to the message, before any valid addressee of the message (which is a valid DHCP or DNS server) does so. This false response might include a false URL leading to a false configuration file that in turn determines a false proxy server that is under the control of the attacker. From now on, all communications the first node believes it is directing to the target URL are actually sent to the false proxy server, which is controlled by the attacker. As in the previous example, this might lead to compromising of the first node by the attacker.
As still another example, when a user inserts a USB thumb drive into a USB port of a first node, it may be determined that the currently inserted USB thumb drive is the same device that was previously detected being inserted into a USB port of a second network node (i.e. the same device serial number is detected in both cases) that is already compromised by an attacker. This finding implies that the user may be moving the USB thumb drive back and forth between the two nodes. The attacker may rely on this finding to compromise the first node, by making the second node download a malicious file onto the USB thumb drive the next time it is inserted into the second node, such that when the USB thumb drive will later be inserted into the first node, the first node will be compromised by the poisoned file.
In addition to the difficulties explained above for all opportunistic vulnerabilities, additional difficulties exist when a prior art penetration testing system has to detect an opportunistic vulnerability associated with a free event, because the triggering event is a free event. The additional difficulties arise from the fact that free events are asynchronous relative to the testing process, and cannot be generated or caused from outside of the targeted network node.
Additional difficulties are caused to prior art penetration testing systems when these have to detect an opportunistic vulnerability associated with an event that is an internal event of a network node. The additional difficulties arise from the fact that internal events are, by their nature, impossible to directly detect by software executing on a remote computing device that is separate from the targeted network node.
Thus, there is need in the art for an automatic penetration testing solution that efficiently and correctly handles opportunistic vulnerabilities, and especially opportunistic vulnerabilities that have free events associated with them.
Every penetration testing system operates by iteratively (physically or simulatively) compromising network nodes of the tested networked system. At any iteration during the testing process some of the network nodes of the tested networked system are considered to be already compromised by the potential attacker, and the penetration testing system is attempting to compromise an additional network node (not yet compromised) by utilizing the already-compromised network nodes that are operating under the control of the attacker's instructions. Once an additional network node is found to be compromisable, it is added to the group of already-compromised network nodes and a new iteration begins.
As a hypothetical example, there might be malicious code circulating in cyberspace and available to potential attackers known as the “Bad 7 Trojan”. This Bad 7 Trojan only compromises nodes running the Windows 7® Operating System under a specific set of circumstances, discussed below.
A penetration testing system has a frequent need to identify a vulnerability that would compromise a given network node. This identification is typically achieved by using a pre-compiled knowledge base about known vulnerabilities, that depends on characteristics of the given network node. In one example related to the Bad 7 Trojan, the penetration testing system may have in its knowledge base a rule saying that a network node running the Windows 7 Operating System might be compromised by sending it a specific network message through a specific Internet port.
However, knowing that a target network node might be compromised by a specific vulnerability is not the same as knowing for sure it would be compromised by that specific vulnerability under the current specific conditions in the target network node. For example, the target network node may have installed on it a patch provided by Microsoft for making the Windows 7 Operating System immune to that vulnerability—i.e. immune to the Bad 7 Trojan. Or the administrator of the target network node may have disabled the service that is typically using the specific Internet port (i.e. port number “XYZ”) used by the specific vulnerability (i.e used by the Bad 7 Trojan) and therefore the network node is currently not listening to that specific port and is thus currently not vulnerable to anything sent to it through that specific port. Additionally, even if a target network node would be compromised by the specific vulnerability under the current conditions if it receives a certain network message through the specific port (i.e. causing the node to execute the code of the Bad 7 Trojan), it might still be the case that a firewall that is protecting the target network node is blocking the damaging network message from reaching the specific port of the target network node, thus making it non-compromisable in practice.
Therefore, it is clear that without detailed knowledge about what is going on inside the target network node it is not always possible to know for sure whether a given potential vulnerability would compromise a given network node under current conditions. This is a major issue for penetration testing systems that need to know for sure that a given network node could be compromised before reporting a penetration success. As a result, when a penetration testing system determines that a given vulnerability might compromise a given network node, it has to find a way of validating that this is indeed so under current conditions.
The common approaches adopted by prior art penetration testing systems are:
a. Validating by actual attack—testing whether the given vulnerability succeeds in compromising the target network node by actually attempting to compromise the target network node using the vulnerability, and then finding out if the network node was indeed compromised.
b. Validating by simulation or by evaluation—testing whether the given vulnerability succeeds in compromising the target network node either by simulating the tested networked system and attempting to compromise it using the vulnerability in the simulation, or by evaluating the success/failure of applying the vulnerability by using pre-compiled knowledge about the vulnerability plus fresh data about current conditions in the target network node. In both cases the validation is done without actually attempting to compromise the tested networked system.
None of the above approaches provides a fully satisfactory solution to the validation problem. The actual attack method has the severe drawback of risking actually compromising the tested networked system. Even though penetration testing systems employing this method attempt to undo any compromising operations they performed during the test, it is difficult to guarantee that full recovery will always be achieved. The simulation/evaluation method has the drawback of sometimes lacking knowledge of data that is essential for reaching a correct result. If the condition for successful compromising depends on data that is internal to the target network node (for example the version of the firmware of a storage device internal to the node), then the method cannot reliably validate the success of the compromising by the vulnerability.
A possible remedy to the drawback of the simulation/evaluation method is to employ a reconnaissance client agent for collecting information about the target network node. A reconnaissance client agent is a software module that can be installed on a network node and can be executed by a processor of that network node for partially or fully implementing the reconnaissance function of a penetration test. The reconnaissance function is the function that is in charge of the collection of data useful for the penetration testing process, and this may include the collection of data that is internal to the network node in which the agent is installed.
As an example, US Application No. 2016/0044057 (hereinafter “057 application” or '057) to Chenette et al. discloses a penetration testing system that uses an agent software module installed in the target node (called “server” in '057), that is in charge of validation of vulnerabilities in that target node. When the penetration testing system of '057 needs to verify that a given vulnerability can compromise the target node under current conditions, an exploit payload is sent to the target node where the exploit contains code implementing the vulnerability. The agent installed on the target node receives the payload, but instead of attempting to execute the code (which would expose us to the danger of compromising the networked system by the testing process), it examines the code and determines whether the target node would have been compromised by executing it, taking into account the current state of the node and the defenses currently in place in it. As a client agent has access to internal data of the node in which it is installed, this solution solves the problem from which other evaluation-based penetration testing systems suffer, as explained above.
However, the solution of '057 suffers from other drawbacks. The client agent of '057 has to validate every type of vulnerability that is potentially applicable to the node on which it is installed. For each such vulnerability, it must implement logic for determining whether that vulnerability will succeed in compromising the node under current conditions. This logic is specific for each vulnerability and is not always simple and straight-forward. Therefore, when the number of potential vulnerabilities is high, as is usually the case, the complexity and code size of the client agent become high too. While penetration testing systems are complex systems, it is highly desirable that their complexity will reside in the central server from which the testing sessions are initiated and controlled, and will not be duplicated in code installed on each one of the many network nodes taking part in the test. Moreover, new vulnerabilities are discovered on almost a daily basis and require very frequent updates of the vulnerabilities validation logic of penetration testing systems. Having to frequently update the locally-installed agents in the many nodes of a tested networked system is a logistic nightmare and should better be avoided.
One additional drawback of the '057 method is that it relies on sending to the target node code or some other representation of the potential vulnerability. It is not always the case that a vulnerability is known to the penetration testing system with such detail. In many cases a newly-discovered vulnerability is known in general terms but not much detail is known about its implementation. In such case the agent-based '057 method cannot be used for validating success in compromising the target node by newly-discovered vulnerabilities.
There is thus a need for validating that a given vulnerability will indeed compromise a given node under current conditions, without suffering from the drawbacks described above.
In this disclosure, the phrase ‘active method of validation’ (or the equivalent ‘active method’) is used in connection with validation methods using actual attack. Similarly, the phrase ‘passive method of validation’ (or the equivalent ‘passive method’) is used in connection with validation methods using simulation or other type of evaluation.
U.S. Pat. No. 10,038,711 discloses penetration testing systems that employ reconnaissance agent penetration testing. Such penetration testing systems are characterized by using a reconnaissance agent software module installed on some network nodes of the tested networked system, where the instances of the reconnaissance agent take part in implementing the reconnaissance function. With regard to verifying that the tested networked system can be compromised by an operation or a sequence of operations, reconnaissance agent penetration testing systems may use either actual attack methods (active validation) or simulation/evaluation methods (passive validation).
This section is provided to reveal information believed by the applicant to be of possible relevance. No admission is necessarily intended, nor should be construed, that any of the information anywhere in this background section (in particular, that U.S. Pat. No. 10,038,711) constitutes prior art against the present invention.
As explained above, every penetration testing system operates by iteratively compromising (physically or by simulation/evaluation) network nodes of the tested networked system. At any iteration during the testing process some of the nodes of the tested networked system are considered to be already compromised by the potential attacker, and the penetration testing system is attempting to compromise one or more additional network nodes (not yet compromised) by utilizing the already-compromised nodes that are operating under the control of the attacker's instructions. Once an additional network node is found to be compromisable, it is added to the group of already-compromised nodes and a new iteration begins.
Thus, a penetration testing system has a frequent need to identify a vulnerability that would compromise a given network node. This identification is typically achieved by using a pre-compiled knowledge base about known vulnerabilities, that depends on characteristics of the given network node. For example, the penetration testing system may have in its knowledge base a rule saying that a network node running the Windows 7 Operating System might be compromised by sending it a specific network message through a specific Internet port.
However, knowing that a node might be compromised is not the same as knowing for sure it would be compromised by the examined vulnerability under current conditions. For example, the target node may have installed on it a patch provided by Microsoft for making the Windows 7 Operating System immune to that vulnerability. Or the administrator of the target node may have disabled the service that is typically using the specific Internet port and therefore the node is currently not listening to that specific Internet port and is thus currently not vulnerable to anything sent to it through that specific Internet port.
Therefore, it is clear that without detailed knowledge about what is going on inside the target node it is not always possible to know for sure whether a given potential vulnerability would compromise a given network node under current conditions. This is a major issue for penetration testing systems, that need to know for sure that a given node could be compromised before reporting a penetration vulnerability. As a result, when a penetration testing system determines that a given vulnerability might compromise a given network node, it has to find a way of validating that this is indeed so under current conditions.
As explained above, the common solutions adopted by prior art penetration testing systems are:
a. Validating by actual attack—testing whether the given vulnerability succeeds in compromising the given node by actually attempting to compromise the node by exploiting the vulnerability, and then finding out if the attempt was successful and the node was indeed compromised.
b. Validating by simulation or by other evaluation—testing whether the given vulnerability succeeds in compromising the given node by either simulating the tested networked system and attempting to compromise it by exploiting the vulnerability in the simulation, or by evaluating the success/failure of exploiting the vulnerability by using pre-compiled knowledge about the vulnerability plus data about current conditions in the network node. In both cases the validation is done without actually attempting to compromise the tested networked system and thus without risking an actual compromising of the network node.
Each of the above approaches has its drawbacks. The actual attack method has the severe drawback of risking actually compromising the tested networked system. Even though penetration testing systems employing this method attempt to undo any compromising operations they performed during the test, it is difficult to guarantee that full recovery will always be achieved. The simulation/evaluation method has the drawback of sometimes lacking knowledge of data that is essential for reaching a correct result. If the condition for successful compromising depends on data that is internal to the target node (for example the version of the firmware of a storage device internal to the node), then the method cannot reliably validate the success of the compromising by the vulnerability unless special arrangements are done in order to obtain the required information during the execution of the penetration testing campaign.
Prior art penetration testing systems are quite rigid regarding the validation approach they employ—a given penetration testing system either employs validation by actual attack or validation by simulation/evaluation. This implies:
a. For a given penetration testing campaign, there is no way of employing validation by actual attack for some potential vulnerabilities and validation by simulation/evaluation for other potential vulnerabilities.
b. For a given scenario template, there is no way of employing validation by actual attack for execution of some campaigns that are based on the scenario template and employing validation by simulation/evaluation for execution of other campaigns that are also based on the scenario template.
c. For a given tested networked system, there is no way of employing validation by actual attack for execution of some penetration testing campaigns and employing validation by simulation/evaluation for execution of other penetration testing campaigns, even when different campaigns are based on different scenario templates.
But in many situations a user of a penetration testing system may want to have more flexibility. For example:
a. A user may want to execute a penetration testing campaign in which some potential vulnerabilities are validated by actual attack, while other potential vulnerabilities are validated by simulation or evaluation.
As an example, the user may prefer to use validation by actual attack for most vulnerabilities because it provides better reliability for the validation conclusions, but for some specific vulnerabilities would like to use validation by simulation/evaluation because the damage to the tested networked system in case an actual attack exploiting any of these specific vulnerabilities turns out to be successful (e.g. a shutdown of the network node) is unacceptable and therefore cannot be risked.
As another example, the user may prefer to use validation by simulation/evaluation for most vulnerabilities because it is important not to risk compromising the tested networked system, but for some specific vulnerabilities would like to use validation by actual attack because the importance of the resources put at risk by these specific vulnerabilities (e.g. password files) is so high that the most reliable validation conclusions are desired, even at the cost of risking the compromising of the tested networked system during the test (e.g. by exporting a password file to the penetration testing system, which may be under the control of the organization owning the tested networked system, and thus causing no real damage when being compromised during the penetration test).
b. A user may want to execute multiple penetration testing campaigns where all campaigns are based on the same scenario template, when some of the campaigns employ validation by actual attack, while other campaigns employ validation by simulation/evaluation.
As an example, the user may prefer to use validation by actual attack for most of the campaigns because this provides better reliability for the validation conclusions, but for some specific campaigns would like to use validation by simulation/evaluation because at the time of those specific runs a flawless operation of the tested networked system is critical and no risk of the system being compromised can be taken.
As another example, the user may prefer to use validation by simulation/evaluation for most of the campaigns because it is important not to risk compromising the tested networked system, but for some specific campaigns would like to use validation by actual attack because it is desired to get the most reliable validation conclusions once in a while, even at the cost of risking the compromising of the tested networked system.
c. A user may want to execute some penetration testing campaigns while employing validation by actual attack, and to execute some other penetration testing campaigns while employing validation by simulation/evaluation (where different campaigns are based on different scenario templates).
As an example, for some campaigns which are set with the goal of the attacker being exporting certain files out of the tested networked system, the user may accept the risk of compromising the networked system and wish to employ validation by actual attack, as the damage at risk is not critical (at least when the penetration testing system, which is the receiver of the exported files, is under control of the organization owning the tested networked system). For other campaigns which are set up with the goal of the attacker being damaging of certain files, the user may not agree to accept the risk and therefore wishes to employ validation by simulation/evaluation.
There is thus a need for providing users of penetration testing systems with greater flexibility in controlling the method of validation of potential vulnerabilities employed during the penetration testing process.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to one or more manually and explicitly-selected capabilities of an attacker of the penetration testing campaign, the method comprising: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly selecting one or more capabilities of the attacker of the penetration testing campaign; executing the penetration testing campaign, by the penetration testing system and according to the manually and explicitly-provided selection of the one or more capabilities of the attacker, so as to test the networked system; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the method is carried out so that before receiving the one or more manually-entered inputs that explicitly select the one or more capabilities of the attacker, the penetration testing system automatically computes and displays an explicit recommendation for selecting the one or more capabilities of the attacker.
In some embodiments, the received one or more manually-entered inputs comprises an explicit user approval of the explicit recommendation.
In some embodiments, further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the one or more capabilities of the attacker, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a value for a second information item of the penetration testing campaign, wherein the second information item is not a capability of the attacker.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected value for the second information item, and (ii) the manually and explicitly selected one or more capabilities of the attacker.
In some embodiments, further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the one or more capabilities of the attacker, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a method of one of the manually and explicitly selected one or more capabilities of the attacker.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected one or more capabilities of the attacker, and (ii) the manually and explicitly selected method.
A system for penetration testing of a networked system, the system comprising: a. an attacker-capability-selection user interface including one or more user interface components for manual and explicit selection of one or more capabilities of an attacker of a penetration testing campaign; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign whose attacker has the one or more capabilities that are manually and explicitly selected via the attacker-capability-selection user interface; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the system further comprises a recommendation module configured to automatically compute an explicit recommendation for selecting the one or more capabilities of the attacker, wherein the attacker-capability-selection user interface displays the explicit recommendation.
In some embodiments, the system is configured so that the manual and explicit selection of the one or more capabilities of the attacker includes a manual and explicit approval of the explicit recommendation.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a value of a second information item of the penetration testing campaign, the second information item being other than a capability of the attacker, wherein the system is configured to receive the manual and explicit selection of the value of the second information item subsequent to the manual and explicit selection of the one or more capabilities.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the one or more capabilities of the attacker and (ii) the value of the second information item, to perform the penetration testing campaign using both (i) the manually and explicitly selected one or more capabilities of the attacker and (ii) the manually and explicitly selected value of the second information item.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a method of one capability of the manually and explicitly selected one or more capabilities of the attacker of the penetration testing campaign, wherein the system is configured to receive the manual and explicit selection of the method of the one capability subsequent to the manual and explicit selection of the one capability.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the one or more capabilities of the attacker and (ii) the method of the one capability, to perform the penetration testing campaign using both (ii) the manually and explicitly selected one or more capabilities of the attacker and (ii) the manually and explicitly selected method of the one capability.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to one or more manually and explicitly-selected traits of an attacker of the penetration testing campaign, the method comprising: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly selecting one or more traits of the attacker of the penetration testing campaign; executing the penetration testing campaign, by the penetration testing system and according to the manually and explicitly-provided selection of the one or more traits of the attacker, so as to test the networked system; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the method is carried out so that before receiving the one or more manually-entered inputs that explicitly select the one or more traits of the attacker, the penetration testing system automatically computes and displays an explicit recommendation for selecting the one or more traits of the attacker.
In some embodiments, the received one or more manually-entered inputs comprises an explicit user approval of the explicit recommendation.
In some embodiments, the method further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the one or more traits of the attacker, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a value for a second information item of the penetration testing campaign, wherein the second information item is not a trait of the attacker.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected value for the second information item, and (ii) the manually and explicitly selected one or more traits of the attacker.
A system for penetration testing of a networked system, the system comprising: a. an attacker-trait-selection user interface including one or more user interface components for manual and explicit selection of one or more traits of an attacker of a penetration testing campaign; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign whose attacker has the one or more traits that are manually and explicitly selected via the attacker-trait-selection user interface; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the system further comprises a recommendation module configured to automatically compute an explicit recommendation for selecting the one or more traits of the attacker, wherein the attacker-trait-selection user interface displays the explicit recommendation.
In some embodiments, the system is configured so that the manual and explicit selection of the one or more traits of the attacker includes a manual and explicit approval of the explicit recommendation.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a value of a second information item of the penetration testing campaign, the second information item being other than a trait of the attacker, wherein the system is configured to receive the manual and explicit selection of the value of the second information item subsequent to the manual and explicit selection of the one or more traits.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the one or more traits of the attacker and (ii) the value of the second information item, to perform the penetration testing campaign using both (i) the manually and explicitly selected one or more traits of the attacker and (ii) the manually and explicitly selected value of the second information item. A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to a manual and explicit selecting of one or more network nodes of the networked system, the method comprising: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly selecting the one or more network nodes of the networked system, wherein at least one of the manually and explicitly selected nodes is other than the computing device; in accordance with the manual and explicit selecting of the network nodes, executing the penetration testing campaign by the penetration testing system so as to test the networked system, the penetration testing campaign being executed under the assumption that the manually and explicitly selected one or more network nodes of the networked system are already compromised at the time of beginning the penetration testing campaign; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the method is carried out so that before receiving the one or more manually-entered inputs that explicitly select the one or more network nodes of the networked system, the penetration testing system automatically computes and displays an explicit recommendation for selecting the one or more network nodes that are already compromised at the time of beginning the penetration testing campaign.
In some embodiments, the received one or more manually-entered inputs comprises an explicit user approval of the explicit recommendation.
In some embodiments, the method further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the one or more network nodes of the networked system, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a value for a second information item of the penetration testing campaign, wherein the second information item is not a set of one or more network nodes that are assumed to be already compromised at the time of beginning the penetration testing campaign.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected value for the second information item, and (ii) an assumption that the manually and explicitly selected one or more network nodes of the networked system are already compromised at the time of beginning the penetration testing campaign.
A system for penetration testing of a networked system, the system comprising: a. a network-nodes-selection user interface including one or more user interface components for manual and explicit selection of one or more network nodes, where the network-nodes-selection user interface resides in a computing device and at least one of the manually and explicitly selected one or more network nodes is other than the computing device; b. a penetration-testing-campaign module programmed to perform a penetration testing campaign under the assumption that the manually and explicitly selected one or more network nodes of the networked system are already compromised at the time of beginning the penetration testing campaign; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the system further comprises a recommendation module configured to automatically compute an explicit recommendation for selecting the one or more network nodes, wherein the network-nodes-selection user interface displays the explicit recommendation.
In some embodiments, the system is configured so that the manual and explicit selection of the one or more network nodes includes a manual and explicit approval of the explicit recommendation.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a value of a second information item of the penetration testing campaign, the second information item being other than one or more network nodes, wherein the system is configured to receive the manual and explicit selection of the value of the second information item subsequent to the manual and explicit selection of the one or more network nodes.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the one or more network nodes and (ii) the value of the second information item, to perform the penetration testing campaign using both (i) the manually and explicitly selected one or more network nodes and (ii) the manually and explicitly selected value of the second information item.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to a manually and explicitly provided node-selection condition, the method comprising: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly selecting a Boolean node-selection condition, the manually and explicitly selected node-selection condition defining a proper subset of network nodes of the networked system such that any network node of the networked system is a member of the subset of network nodes if and only if it satisfies the condition; in accordance with the manual and explicit selecting of the node-selection condition, executing the penetration testing campaign by the penetration testing system so as to test the networked system, the penetration testing campaign being executed under the assumption that every node of the subset of network nodes is already compromised at the time of beginning the penetration testing campaign; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the method is carried out so that before receiving the one or more manually-entered inputs that explicitly select the Boolean node-selection condition, the penetration testing system automatically computes and displays an explicit recommendation for selecting the Boolean node-selection condition.
In some embodiments, the received one or more manually-entered inputs for selecting the Boolean node-selection condition comprise an explicit user approval of the explicit recommendation.
In some embodiments, the method further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the Boolean node-selection condition, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a value for a second information item of the penetration testing campaign, wherein the second information item is not a node-selection condition defining a subset of network nodes that are assumed to be already compromised at the time of beginning the penetration testing campaign.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected value for the second information item, and (ii) an assumption that every node of the subset of network nodes is already compromised at the time of beginning the penetration testing campaign.
A system for penetration testing of a networked system, the system comprising: a. a node-selection-condition user interface including one or more user interface components for manually and explicitly selecting a Boolean node-selection condition defining a proper subset of network nodes of the networked system such that any network node of the networked system is a member of the subset of network nodes if and only if it satisfies the condition; b. a penetration-testing-campaign module programmed to perform a penetration testing campaign under the assumption that every network node of the subset of network nodes is already compromised at the time of beginning the penetration testing campaign; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the system further comprises a recommendation module configured to automatically compute an explicit recommendation for selecting the Boolean node-selection condition, wherein the node-selection-condition user interface displays the explicit recommendation.
In some embodiments, the system is configured so that the manual and explicit selection of the Boolean node-selection condition includes a manual and explicit approval of the explicit recommendation.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a value of a second information item of the penetration testing campaign, the second information item being other than a Boolean node-selection condition, wherein the system is configured to receive the manual and explicit selection of the value of the second information item subsequent to the manual and explicit selection of the Boolean node-selection condition.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the Boolean node-selection condition and (ii) the value of the second information item, to perform the penetration testing campaign using both (i) the manually and explicitly selected Boolean node-selection condition and (ii) the manually and explicitly selected value of the second information item.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to an automatic selecting of one or more network nodes of the networked system, the method comprising: determining, by the penetration testing system, at least one of (i) a type of an attacker of the penetration testing campaign, and (ii) whether one or more network nodes of the networked system satisfy a pre-defined Boolean condition; based on a result of the determining, automatically selecting, by the penetration testing system, the one or more network nodes of the networked system, wherein at least one of the automatically selected network nodes is other than the computing device; in accordance with the automatically selecting of the network nodes, executing the penetration testing campaign by the penetration testing system so as to test the networked system, the penetration testing campaign being executed under the assumption that the automatically selected one or more network nodes of the networked system are already compromised at the time of beginning the penetration testing campaign; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the determining comprises determining the type of the attacker of the penetration testing campaign.
In some embodiments, the determining of the type of the attacker comprises automatically determining the type of the attacker by the penetration testing system.
In some embodiments, the determining of the type of the attacker comprises receiving, via the user interface of the computing device, one or more manually-entered inputs that explicitly select the type of the attacker.
In some embodiments, the determining comprises automatically determining whether the one or more network nodes of the networked system satisfy the pre-defined Boolean condition.
In some embodiments, the pre-defined Boolean condition is satisfied for a given network node if and only if the given network node has a direct connection to a computing device that is outside the networked system.
In some embodiments, the pre-defined Boolean condition is satisfied for a given network node if and only if the given network node has an operating system that is a member of a pre-defined set of operating systems.
In some embodiments, the pre-defined Boolean condition is satisfied for a given network node if and only if the given network node has a cellular communication channel.
A system for penetration testing of a networked system that is controlled by a user interface of a computing device, the system comprising: a. a node-selection module configured to: determine at least one of (i) a type of an attacker of a penetration testing campaign, and (ii) whether one or more network nodes of the networked system satisfy a pre-defined Boolean condition; and based on a result of the determining, automatically select one or more network nodes of the networked system, wherein at least one of the automatically selected network nodes is other than the computing device; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign under the assumption that the automatically selected one or more network nodes of the networked system are already compromised at the time of beginning the penetration testing campaign; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the node-selection module is configured to determine the type of the attacker of the penetration testing campaign.
In some embodiments, the node-selection module is configured to automatically determine the type of the attacker of the penetration testing campaign.
In some embodiments, the node-selection module is configured to determine the type of the attacker by receiving, via the user interface of the computing device, one or more manually-entered inputs that explicitly select the type of the attacker.
In some embodiments, the node-selection module is configured to automatically determine whether the one or more network nodes of the networked system satisfy the pre-defined Boolean condition.
In some embodiments, the pre-defined Boolean condition is satisfied for a given network node if and only if the given network node has a direct connection to a computing device that is outside the networked system.
In some embodiments, the pre-defined Boolean condition is satisfied for a given network node if and only if the given network node has an operating system that is a member of a pre-defined set of operating systems.
In some embodiments, the pre-defined Boolean condition is satisfied for a given network node if and only if the given network node has a cellular communication channel.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to one or more manually and explicitly-selected goals of an attacker of the penetration testing campaign, the method comprising: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly selecting one or more goals of the attacker of the penetration testing campaign, wherein at least one goal of the one or more goals satisfies at least one condition selected from the group consisting of: i. the at least one goal is a resource-specific goal; ii. the at least one goal is a file-specific goal; iii. the at least one goal is a node-count-maximizing goal; iv. the at least one goal is a file-count-maximizing goal; v. the at least one goal is an encryption-related goal; vi. the at least one goal is a file-exporting goal; vii. the at least one goal is a file-size-related goal; viii. the at least one goal is a file-type-related goal; ix. the at least one goal is a file-damage-related goal; and x. the at least one goal is a node-condition-based goal; executing the penetration testing campaign, by the penetration testing system and according to the manually and explicitly-provided selection of the one or more goals of the attacker, so as to test the networked system; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability. In some embodiments, the at least one goal is a resource-specific goal.
In some embodiments, the at least one goal is a file-specific goal.
In some embodiments, the at least one goal is a node-count-maximizing goal.
In some embodiments, the at least one goal is a file-count-maximizing goal.
In some embodiments, the at least one goal is an encryption-related goal.
In some embodiments, the at least one goal is a file-exporting goal.
In some embodiments, the at least one goal is a file-size-related goal.
In some embodiments, the at least one goal is a file-type-related goal.
In some embodiments, the at least one goal is a file-damage-related goal.
In some embodiments, the at least one goal is a node-condition-based goal.
In some embodiments, the method is carried out so that before receiving the one or more manually-entered inputs that explicitly select the one or more goals of the attacker, the penetration testing system automatically computes and displays an explicit recommendation for selecting the one or more goals of the attacker.
In some embodiments, the received one or more manually-entered inputs comprises an explicit user approval of the explicit recommendation.
In some embodiments, the method further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the one or more goals of the attacker, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a value for a second information item of the campaign of the penetration testing system, wherein the second information item is not a goal of the attacker.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected value for the second information item, and (ii) the manually and explicitly selected one or more goals of the attacker.
A system for penetration testing of a networked system, the system comprising: a. a goals-selection user interface including one or more user interface components for manual and explicit selection of one or more goals of an attacker of a penetration testing campaign, wherein at least one goal of the one or more goals satisfies at least one condition selected from the group consisting of: i. the at least one goal is a resource-specific goal; ii.
the at least one goal is a file-specific goal; iii. the at least one goal is a node-count-maximizing goal; iv. the at least one goal is a file-count-maximizing goal; v. the at least one goal is an encryption-related goal; vi. the at least one goal is a file-exporting goal; vii. the at least one goal is a file-size-related goal; viii. the at least one goal is a file-type-related goal; ix. the at least one goal is a file-damage-related goal; and x. the at least one goal is a node-condition-based goal; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign whose attacker has the one or more goals that are manually and explicitly selected via the goals-selection user interface; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the at least one goal is a resource-specific goal.
In some embodiments, the at least one goal is a file-specific goal.
In some embodiments, the at least one goal is a node-count-maximizing goal.
In some embodiments, the at least one goal is a file-count-maximizing goal.
In some embodiments, the at least one goal is an encryption-related goal.
In some embodiments, the at least one goal is a file-exporting goal.
In some embodiments, the at least one goal is a file-size-related goal.
In some embodiments, the at least one goal is a file-type-related goal.
In some embodiments, the at least one goal is a file-damage-related goal.
In some embodiments, the at least one goal is a node-condition-based goal.
In some embodiments, the system further comprises a recommendation module configured to automatically compute an explicit recommendation for selecting the one or more goals of the attacker, wherein the goals-selection user interface displays the explicit recommendation.
In some embodiments, the system is configured so that the manual and explicit selection of the one or more goals of the attacker includes a manual and explicit approval of the explicit recommendation.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a value of a second information item of the penetration testing campaign, the second information item being other than a goal of the attacker, wherein the system is configured to receive the manual and explicit selection of the value of the second information item subsequent to the manual and explicit selection of the one or more goals.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the one or more goals of the attacker and (ii) the value of the second information item, to perform the penetration testing campaign using both (i) the manually and explicitly selected one or more goals of the attacker and (ii) the manually and explicitly selected value of the second information item.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to an automatic selecting of one or more goals of an attacker of the penetration testing campaign, the method comprising: a. determining, by the penetration testing system, a type of the attacker of the penetration testing campaign; b. automatically selecting, by the penetration testing system and according to the type of the attacker of the penetration testing campaign, one or more goals of the attacker; c. executing the penetration testing campaign, by the penetration testing system and according to i. the type of the attacker of the penetration testing campaign, and ii. the automatically selected one or more goals, so as to test the networked system; d. reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the determining of the type of the attacker comprises automatically determining the type of the attacker by the penetration testing system.
In some embodiments, the determining of the type of the attacker comprises receiving, via the user interface of the computing device, one or more manually-entered inputs that explicitly select the type of the attacker.
In some embodiments, at least one goal of the one or more goals satisfies at least one condition selected from the group consisting of: i. the at least one goal is a resource-specific goal; ii. the at least one goal is a file-specific goal; iii. the at least one goal is a node-count-maximizing goal; iv. the at least one goal is a file-count-maximizing goal; v. the at least one goal is an encryption-related goal; vi. the at least one goal is a file-exporting goal; vii. the at least one goal is a file-size-related goal; viii. the at least one goal is a file-type-related goal; ix. the at least one goal is a file-damage-related goal; and x. the at least one goal is a node-condition-based goal.
In some embodiments, the automatic selecting of one or more goals includes performing at least one of a. in response to a determination that the attacker type is state-sponsored, automatically selecting a goal to export as many files that are of a file type that may contain drawings as possible; b. in response to a determination that the attacker type is cyber-criminal, automatically selecting a goal to export as many Excel files as possible.
A system for penetration testing of a networked system, the system comprising: a. a goals-selection module configured to: i. determine a type of an attacker of a penetration testing campaign; and ii. based on a result of the determining, automatically select one or more goals of the attacker of the penetration testing campaign; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign according to: i. the type of the attacker of the penetration testing campaign, and ii. the automatically selected one or more goals; c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the goals-selection module is configured to automatically determine the type of the attacker of the penetration testing campaign.
In some embodiments, the goals-selection module is configured to determine the type of the attacker by receiving, via a user interface of a computing device, one or more manually-entered inputs that explicitly select the type of the attacker.
In some embodiments, at least one goal of the one or more goals satisfies at least one condition selected from the group consisting of: i. the at least one goal is a resource-specific goal; ii. the at least one goal is a file-specific goal; iii. the at least one goal is a node-count-maximizing goal; iv. the at least one goal is a file-count-maximizing goal; v. the at least one goal is an encryption-related goal; vi. the at least one goal is a file-exporting goal; vii. the at least one goal is a file-size-related goal; viii. the at least one goal is a file-type-related goal; ix. the at least one goal is a file-damage-related goal; and x. the at least one goal is a node-condition-based goal.
In some embodiments, the goals-selection module is configured to perform at least one of the following: a. in response to a determination that the attacker type is state-sponsored, a goal to export as many files that are of a file type that may contain drawings as possible is automatically selected; b. in response to a determination that the attacker type is cyber-criminal, a goal to export as many Excel files as possible is automatically selected.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to a manually and explicitly-selected lateral movement strategy of an attacker of the penetration testing campaign, the method comprising: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly selecting the lateral movement strategy of the attacker of the penetration testing campaign; executing the penetration testing campaign, by the penetration testing system and according to the manually and explicitly-provided lateral movement strategy of the attacker, so as to test the networked system; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the method is carried out so that before receiving the one or more manually-entered inputs that explicitly select the lateral movement strategy of the attacker, the penetration testing system automatically computes and displays an explicit recommendation for selecting the lateral movement strategy of the attacker.
In some embodiments, the received one or more manually-entered inputs comprises an explicit user approval of the explicit recommendation.
In some embodiments, the method further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the lateral movement strategy of the attacker, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a value for a second information item of the penetration testing campaign, wherein the second information item is not a lateral movement strategy of the attacker.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected value for the second information item, and (ii) the manually and explicitly selected lateral movement strategy of the attacker.
A system for penetration testing of a networked system, the system comprising: a. a lateral-movement-strategy-selection user interface including one or more user interface components for explicit and manual selection of a lateral movement strategy of an attacker of a penetration testing campaign; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign according to the lateral movement strategy that is manually and explicitly selected via the lateral-movement-strategy-selection user interface; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the system further comprises a recommendation module configured to automatically compute an explicit recommendation for selecting a lateral movement strategy of the attacker, wherein the lateral-movement-strategy-selection user interface displays the explicit recommendation.
In some embodiments, the system is configured so that the manual and explicit selection of the lateral movement strategy of the attacker includes a manual and explicit approval of the explicit recommendation.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a value of a second information item of the penetration testing campaign, the second information item being other than a lateral movement strategy of the attacker, wherein the system is configured to receive the manual and explicit selection of the value of the second information item subsequent to the manual and explicit selection of the lateral movement strategy.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the lateral movement strategy of the attacker and (ii) the value of the second information item, to perform the penetration testing campaign using both (i) the manually and explicitly selected lateral movement strategy of the attacker and (ii) the manually and explicitly selected value of the second information item.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to an automatic selecting of a lateral movement strategy of an attacker of the penetration testing campaign, the method comprising: a. determining, by the penetration testing system, at least one of (i) a type of the attacker of the penetration testing campaign and (ii) one or more goals of the attacker of the penetration testing campaign; b. based on a result of the determining, automatically selecting by the penetration testing system a lateral movement strategy of the attacker of the penetration testing campaign; c. executing the penetration testing campaign, by the penetration testing system and according to i. the at least one of the type of the attacker and the one or more goals of the attacker, and ii. the automatically selected lateral movement strategy of the attacker, so as to test the networked system; d. reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the determining comprises determining the type of the attacker of the penetration testing campaign.
In some embodiments, the determining of the type of the attacker comprises automatically determining the type of the attacker by the penetration testing system.
In some embodiments, the determining of the type of the attacker comprises receiving, via the user interface of the computing device, one or more manually-entered inputs that explicitly select the type of the attacker.
In some embodiments, the determining comprises determining the one or more goals of the attacker of the penetration testing campaign.
In some embodiments, the determining of the one or more goals of the attacker comprises automatically determining the one or more goals of the attacker by the penetration testing system.
In some embodiments, the determining of the one or more goals of the attacker comprises receiving, via the user interface of the computing device, one or more manually-entered inputs that explicitly select the one or more goals of the attacker.
A system for penetration testing of a networked system, the system comprising: a. a lateral-movement-strategy-selection module configured to: determine at least one of (i) a type of the attacker of the penetration testing campaign and (ii) one or more goals of the attacker of the penetration testing campaign; based on a result of the determining, automatically select a lateral movement strategy of the attacker of the penetration testing campaign; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign according to the automatically selected lateral movement strategy; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the lateral-movement-strategy-selection module is configured to determine the type of the attacker of the penetration testing campaign.
In some embodiments, the lateral-movement-strategy-selection module is configured to automatically determine the type of the attacker of the penetration testing campaign.
In some embodiments, the lateral-movement-strategy-selection module is configured to determine the type of the attacker by receiving, via a user interface of a computing device, one or more manually-entered inputs that explicitly select the type of the attacker.
In some embodiments, the lateral-movement-strategy-selection module is configured to determine the one or more goals of the attacker of the penetration testing campaign.
In some embodiments, the lateral-movement-strategy-selection module is configured to automatically determine the one or more goals of the attacker of the penetration testing campaign.
In some embodiments, the lateral-movement-strategy-selection module is configured to determine the one or more goals of the attacker by receiving, via a user interface of a computing device, one or more manually-entered inputs that explicitly select the one or more goals of the attacker.
A method of penetration testing of a networked system by a penetration testing system that is controlled by a user interface of a computing device so that a penetration testing campaign is executed according to manually and explicitly-selected sensitivity to detection of an attacker of the penetration testing campaign, the method comprising: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly selecting a level of sensitivity to detection of the attacker of the penetration testing campaign; executing the penetration testing campaign, by the penetration testing system and according to the manually and explicitly-provided selection of the level of sensitivity to detection of the attacker, so as to test the networked system; and reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the penetration testing campaign, wherein the reporting comprises at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the method is carried out so that before receiving the one or more manually-entered inputs that explicitly select the level of sensitivity to detection of the attacker, the penetration testing system automatically computes and displays an explicit recommendation for selecting the level of sensitivity to detection of the attacker.
In some embodiments, the received one or more manually-entered inputs comprises an explicit user approval of the explicit recommendation.
In some embodiments, further comprising: subsequent to the receiving by the penetration testing system of the one or more manually-entered inputs that explicitly select the level of sensitivity to detection of the attacker, receiving, by the penetration testing system and via the user interface of the computing device, one or more additional manually-entered inputs, the one or more additional manually-entered inputs explicitly selecting a value for a second information item of the penetration testing campaign, wherein the second information item is not a level of sensitivity to detection of the attacker.
In some embodiments, the executing of the penetration testing campaign is performed using both (i) the manually and explicitly selected value for the second information item, and (ii) the manually and explicitly selected level of sensitivity to detection of the attacker.
In some embodiments, the manual and explicit selection of the level of sensitivity to detection of the attacker is a selection between two pre-defined alternative levels. In some embodiments, the manual and explicit selection of the level of sensitivity to detection of the attacker is a selection from a list of multiple pre-defined levels, the list containing at least three levels.
In some embodiments, the manual and explicit selection of the level of sensitivity to detection of the attacker is a selection in which any value from a pre-defined numerical interval may be selected.
A system for penetration testing of a networked system, the system comprising: a. an attacker-sensitivity-selection user interface including one or more user interface components for manual and explicit selection of a level of sensitivity to detection of an attacker of a penetration testing campaign; b. a penetration-testing-campaign module programmed to perform the penetration testing campaign whose attacker has the level of sensitivity to detection that is manually and explicitly selected via the attacker-sensitivity-selection user interface; and c. a reporting module for reporting at least one security vulnerability determined to exist in the networked system according to results of the penetration testing campaign that is performed by the penetration-testing-campaign module, wherein the reporting module is configured to report the at least one security vulnerability by performing at least one of (i) causing a display device to display a report describing the at least one security vulnerability, and (ii) electronically transmitting a report describing the at least one security vulnerability.
In some embodiments, the system further comprises a recommendation module configured to automatically compute an explicit recommendation for selecting the level of sensitivity to detection of the attacker, wherein the attacker-sensitivity-selection user interface displays the explicit recommendation.
In some embodiments, the system is configured so that the manual and explicit selection of the level of sensitivity to detection of the attacker includes a manual and explicit approval of the explicit recommendation.
In some embodiments, the system further comprises a second user interface including one or more user interface components for manual and explicit selection of a value of a second information item of the penetration testing campaign, the second information item being other than a level of sensitivity to detection of the attacker, wherein the system is configured to receive the manual and explicit selection of the value of the second information item subsequent to the manual and explicit selection of the level of sensitivity to detection.
In some embodiments, the penetration-testing-campaign module is configured, subsequent to the manual and explicit selection of both (i) the level of sensitivity to detection of the attacker and (ii) the value of the second information item, to perform the penetration testing campaign using both (i) the manually and explicitly selected level of sensitivity to detection of the attacker and (ii) the manually and explicitly selected value of the second information item.
In some embodiments, the manual and explicit selection of the level of sensitivity to detection of the attacker is a selection between two pre-defined alternative levels.
In some embodiments, the manual and explicit selection of the level of sensitivity to detection of the attacker is a selection from a list of multiple pre-defined levels, the list containing at least three levels.
In some embodiments, the manual and explicit selection of the level of sensitivity to detection of the attacker is a selection in which any value from a pre-defined numerical interval may be selected.
To date, there are two main approaches in penetration testing: (i) actual attack penetration testing, which has the advantage of accuracy, and (ii) simulated penetration testing, which avoids exposing the tested networked system to risk during penetration testing.
An automated penetration testing system that is neither a direct attack penetration testing system, nor a simulated penetration testing system is now disclosed. It includes the use of a reconnaissance agent software modules (RASM) installed on multiple network nodes of the tested networked system, and therefore it is referred to herein as “reconnaissance agent penetration testing system”. As discussed below, in embodiments of the invention, the penetration testing system makes use of ‘internal data’ of multiple nodes of the tested networked system—this internal data is transmitted from the multiple nodes to a remote computing device on which a penetration testing software module is installed.
Towards this end, apparatus and methods are now disclosed which address the above deficiencies, including not exposing any node of the tested networked system to risk, while still providing one or more advantages of actual attack penetration systems.
As will be explained below, these features are combined with software architecture features such that: (i) instances of the RASM installed on multiple network nodes (hereinafter RASM-hosting nodes') of the tested networked system transmit internal data of the RASM-hosting nodes to the remote computing device; (ii) this internal data is analyzed on the remote computing device; (iii) all of the analysis required for determining a method for an attacker to compromise the networked system is performed by the remote computing device; and (iv) no network node is put under a risk of being compromised during the testing process.
The aforementioned software architecture features may be useful, for example, for minimizing the CPU burden of penetration testing imposed on each of the multiple nodes of the penetration-tested networked system. Alternatively or additionally, these software architecture features may be useful for updating—e.g. when new threats need to be added to a threat-database, there is no need to update this threat-database on each of the RASM-hosting nodes. Instead, the threat-database may be updated only on the remote computing device.
Preferably, these RASM instances are not completely autonomous, but rather obtain the internal data of the RASM-hosting network nodes and/or transmit the internal data in response to a data-requesting command received, by each of the RASM-hosting network nodes, from the remote computing device.
Similar to actual-attack penetration testing systems, actual data from the network nodes is analyzed to determine the method for the attacker to compromise the networked system. According to the present invention, this actual data includes actual internal data. It should be noted that the internal data of a specific node (i) is only directly accessible to code executing by a processor of the specific node and (ii) is only accessible to any code executing outside of the specific node by receiving it from code executing by a processor of the specific node. Therefore, in order to the remote computing device to analyze such internal data, the RASM instances must be installed on each of the network nodes from which it is desired to obtain data during the test.
Internal data of a network node includes one or more of:
Even though analysis is performed using actual internal data from the actual network nodes, no node is ever placed at risk during the penetration testing—this is in contrast with actual attack penetration testing systems (this is the ‘second rule’ discussed below).
Thus, according to embodiments of the invention, the penetration testing is carried out to enforce both first and second rules:
In order to better understand embodiments of the invention, the reader is referred to three use case examples presented below in the Detailed Description of the Embodiments Section of this document.
Optionally, and in some embodiments preferably, the RASM is preinstalled on each of the participating nodes. Thus, some embodiments provide a RASM ‘pre-installation feature’ instead of (or in addition to) the features of having the first and second rules enforced.
The pre-installation may make the penetration testing simpler and more reliable. The pre-installation can be closely monitored by the IT people of the organization and any problem or issue of access right can be resolved prior to the testing. Additionally, if agents are employed without being pre-installed, then they are installed instead at runtime during the testing process. This implies that the state of the tested networked system is being changed by the test and unexpected side-effects might occur.
In some embodiments, the RASM instances are pre-installed and both the first and second rules are enforced.
In some embodiments, the RASM instances are pre-installed and only the first rule is enforced.
In some embodiments, the RASM instances are pre-installed and only the second rule is enforced.
One aspect of the invention relates to a method for executing a penetration test of a networked system by a penetration testing system so as to determine, while enforcing first and second rules, a method for an attacker to compromise the networked system. According to the method, the penetration testing system comprises (A) a penetration testing software module installed on a remote computing device and (B) a reconnaissance agent software module (RASM) installed on at least some network nodes of the networked system so that each network node of the networked system on which the RASM is installed is defined as a RASM-hosting network node.
The method for executing the penetration test comprising: a. obtaining, by each given RASM-hosting network node of one or more RASM-hosting network nodes, respective internal data of the given RASM-hosting network node, the obtaining comprising executing computer code of the RASM by one or more processors of the given RASM-hosting network node, the respective internal data including data about at least one of: A. an internal event of the given RASM hosting network node, B. an internal condition of the given RASM-hosting network node, and C. an internal fact of the given RASM-hosting network node; b. transmitting to the remote computing device, by each given RASM-hosting network node of the one or more RASM-hosting network nodes, the obtained respective internal data of the given RASM-hosting network node, the transmitting comprising executing computer code of the RASM by the one or more processors of the given RASM-hosting network node; c. analyzing, by the remote computing device, the internal data transmitted by at least one RASM-hosting network node of the one or more RASM-hosting network nodes, so as to determine the method for the attacker to compromise the networked system, the analyzing comprising executing computer code of the penetration testing software module by one or more processors of the remote computing device; and d. reporting, by the penetration testing system, the method for the attacker to compromise the networked system, the reporting comprising executing computer code of the penetration testing software module by the one or more processors of the remote computing device, wherein the reporting comprises at least one of (i) causing a display device to display a report including information about the determined method for the attacker to compromise the networked system, (ii) recording the report including the information about the determined method for the attacker to compromise the networked system in a file, and (iii) electronically transmitting the report including the information about the determined method for the attacker to compromise the networked system, wherein each given RASM-hosting network node of the one or more RASM-hosting network nodes performs at least one of step (a) and step (b) in response to a receiving of one or more data-requesting commands from the remote computing device, and wherein the method for executing the penetration test is performed in a manner that enforces the first and second rules such that: A. according to the first rule, all of the analyzing of the internal data for determining the method for the attacker to compromise the networked system is performed by the remote computing device; and B. according to the second rule, no network node of the networked system is ever put at risk of being compromised by the executing of the penetration test.
In some embodiments, the RASM is installed on at least one of the one or more RASM-hosting network nodes prior to the beginning of the executing of the penetration test.
In some embodiments, the RASM is installed on all of the one or more RASM-hosting network nodes prior to the beginning of the executing of the penetration test.
In some embodiments, the RASM is installed on every network node of the networked system which is a RASM-hosting network node prior to the beginning of the executing of the penetration test.
In some embodiments, at least one given RASM-hosting network node of the one or more RASM-hosting network nodes performs the obtaining in response to the receiving, by the given RASM-hosting network node, of the one or more data-requesting commands from the remote computing device.
In some embodiments, at least one given RASM-hosting network node of the one or more RASM-hosting network nodes obtains at least some of the respective internal data of the given RASM-hosting network node transmitted in step (b) before the receiving of the one or more data-requesting commands by the given RASM-hosting network node.
In some embodiments, each given RASM-hosting network node of the one or more RASM-hosting network nodes performs both steps (a) and (b) in response to the receiving, by the given RASM-hosting network node, of the one or more data-requesting commands from the remote computing device.
In some embodiments, the information about the method for an attacker to compromise the networked system comprises at least one of: (i) information about a method for compromising one network node of the networked system (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
In some embodiments, the analyzing comprises: (i) assessing, by said remote computing device, if a first network node can be compromised; and (ii) in the event that the assessing indicates that said first network node can be compromised, A. simulating or evaluating, by said remote computing device, a result of compromising said first network node; and B. determining, by said remote computing device and based on said result, that a second network node can be compromised.
Another aspect of the invention relates to a penetration testing system for executing a penetration test of a networked system so as to determine, while enforcing first and second rules, a method for an attacker to compromise the networked system. The penetration testing system comprises: a. a remote computing device comprising a computer memory and one or more processors, the remote computing device in electronic communication with the networked system; b. a first non-transitory computer-readable storage medium containing first code of a reconnaissance agent software module (RASM), wherein execution of the first code of the RASM by respective one or more processors of each given network node of a first set of network nodes of the networked system, causes the one or more processors of the given network node of the first set to carry out the following: i. obtaining respective internal data of the given network node of the first set, the respective internal data including data about at least one of: A. an internal event of the given network node of the first set, B. an internal condition of the given network node of the first set, and C. an internal fact of the given network node of the first set; and ii. transmitting to the remote computing device and out of the given network node of the first set the obtained respective internal data of the given network node of the first set, such that at least one of the obtaining and the transmitting is performed in response to one or more data-requesting commands issued by the remote computing device; c. a second non-transitory computer-readable storage medium containing second code of a penetration testing software module, wherein execution of the second code of the penetration testing software module by the one or more processors of the remote computing device: i. analyzes the respective internal data transmitted by each given network node of a second set of network-nodes of the networked system so as to determine the method for the attacker to compromise the networked system; and ii. reports the method for the attacker to compromise the networked system, wherein the reporting comprises at least one of (A) causing a display device to display a report including information about the determined method for the attacker to compromise the networked system, (B) recording the report including the information about the determined method for the attacker to compromise the networked system in a file, and (C) electronically transmitting a report including the information about the determined method for the attacker to compromise the networked system, wherein (i) the execution of the first code of the RASM by the respective one or more processors of each given network node of the first set of network nodes of the networked system; and (ii) the execution of the second code of the penetration testing software module by the one or more processors of the remote computing device, subject the networked system to penetration testing while enforcing both of the first and second rules such that: A. according to the first rule, all of the analyzing of the internal data for determining the method for the attacker to compromise the networked system is performed by the remote computing device; and B. according to the second rule, no network node of the networked system is ever put at risk of being compromised by the executing of the penetration test.
In some embodiments, for at least one given network node of the first set of network nodes, the execution of the first code by the respective one or more processors of the given network node performs the obtaining in response to the one or more data-requesting commands issued by the remote computing device.
In some embodiments, for at least one given network node of the first set of network nodes, the execution of the first code by the respective one or more processors of the given network node performs the obtaining of at least some of the respective internal data of the given network node before the issuing of the one or more data-requesting commands by the remote computing device.
In some embodiments, for each given network node of the first set of network nodes, the execution of the first code by the respective one or more processors of the given network node performs the obtaining and the transmitting in response to the one or more data-requesting commands issued by the remote computing device.
In some embodiments, the information about the method for an attacker to compromise the networked system comprises at least one of: (i) information about a method for compromising one network node of the networked system (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
In some embodiments, the analyzing performed by the execution of the second code of the penetration testing software module by the one or more processors of the remote computing device comprises: (i) assessing if a first network node can be compromised; and (ii) in the event that the assessing indicates that said first network node can be compromised, A. simulating or evaluating a result of compromising said first network node; and B. determining that a second network node can be compromised.
Another aspect of the invention relates to a method for executing a penetration test of a networked system by a penetration testing system so as to determine a method for an attacker to compromise the networked system, where the penetration testing system comprises (A) a penetration testing software module installed on a remote computing device and (B) a reconnaissance agent software module (RASM) installable on network nodes of the networked system so that each network node of the networked system on which the RASM is installed is defined as a RASM-hosting network node.
The method for executing the penetration test comprises: a. subsequent to an installing of the RASM on at least some network nodes of the networked system, which installing occurs prior to starting the executing of the penetration test, performing the following: i. obtaining, by each given RASM-hosting network node of one or more RASM-hosting network nodes, respective internal data of the given RASM-hosting network node, the obtaining comprising executing computer code of the RASM by one or more processors of the given RASM-hosting network node, the respective internal data including data about at least one of: A. an internal event of the given RASM-hosting network node, B. an internal condition of the given RASM-hosting network node, and C. an internal fact of the given RASM-hosting network node; and ii. transmitting to the remote computing device, by each given RASM-hosting network node of the one or more RASM-hosting network nodes, the obtained respective internal data of the given RASM-hosting network node, the transmitting comprising executing computer code of the RASM by the one or more processors of the given RASM-hosting network node; b. analyzing, by the remote computing device, the internal data transmitted by at least one RASM-hosting network node of the one or more RASM-hosting network nodes, so as to determine the method for the attacker to compromise the networked system, the analyzing comprising executing computer code of the penetration testing software module by one or more processors of the remote computing device; and c. reporting, by the penetration testing system, the method for the attacker to compromise the networked system, the reporting comprising executing computer code of the penetration testing software module by the one or more processors of the remote computing device, wherein the reporting comprises at least one of (i) causing a display device to display a report including information about the determined method for the attacker to compromise the networked system, (ii) recording the report including the information about the determined method for the attacker to compromise the networked system in a file, and (iii) electronically transmitting the report including the information about the determined method for the attacker to compromise the networked system, wherein each given RASM-hosting network node of the one or more RASM-hosting network nodes performs at least one of step a(i) and step a(ii) in response to a receiving of one or more data-requesting commands from the remote computing device.
In some embodiments, further comprising the step of: d. before commencing step (a), installing the RASM on the at least some network nodes of the networked system.
In some embodiments, the method for executing the penetration test is performed in a manner that enforces at least one of first and second rules such that: A. according to the first rule, all of the analyzing of the internal data for determining the method for the attacker to compromise the networked system is performed by the remote computing device; and B. according to the second rule, no network node of the networked system is ever put at risk of being compromised by the executing of the penetration test.
In some embodiments, the method for executing the penetration test is performed in a manner that enforces at least the first rule.
In some embodiments, the method for executing the penetration test is performed in a manner that enforces at least the second rule.
In some embodiments, the method for executing the penetration test is performed in a manner that enforces both the first and second rules.
In some embodiments, at least one given RASM-hosting network node of the one or more RASM-hosting network nodes performs the obtaining in response to the receiving, by the given RASM-hosting network node, of the one or more data-requesting commands from the remote computing device.
In some embodiments, at least one given RASM-hosting network node of the one or more RASM-hosting network nodes obtains at least some of the respective internal data of the given RASM-hosting network node transmitted in step a(ii) before the receiving of the one or more data-requesting commands by the given RASM-hosting network node.
In some embodiments, each given RASM-hosting network node of the one or more RASM-hosting network nodes performs both steps a(i) and a(ii) in response to the receiving, by the given RASM-hosting network node, of the one or more data-requesting commands from the remote computing device.
In some embodiments, the information about the method for an attacker to compromise the networked system comprises at least one of: (i) information about a method for compromising one network node of the networked system (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
In some embodiments, said analyzing comprises: (i) assessing, by said remote computing device, if a first network node can be compromised; (ii) in the event that the assessing indicates that said first network node can be compromised, A. simulating or evaluating, by said remote computing device, a result of compromising said first network node; and B. determining, by said remote computing device and based on said result, that a second network node can be compromised.
Another aspect of the invention relates to a penetration testing system for executing a penetration test of a networked system so as to determine a method for an attacker to compromise the networked system, the penetration testing system comprising: a. a remote computing device comprising a computer memory and one or more processors, the remote computing device in electronic communication with the networked system; b. a first non-transitory computer-readable storage medium containing first code of a reconnaissance agent software module (RASM), wherein for a first set of network-nodes of the networked system on which the RASM is pre-installed before starting the executing of the penetration test, subsequent execution of the first code, after starting the executing of the penetration test, by respective one or more processors of each given network node of the first set of network nodes, causes the one or more processors of the given network node of the first set to carry out the following: i. obtaining respective internal data of the given network node of the first set, the respective internal data including data about at least one of: A. an internal event of the given network node of the first set, B. an internal condition of the given network node of the first set, and C. an internal fact of the given network node of the first set; and ii. transmitting to the remote computing device and out of the given network node of the first set the obtained respective internal data of the given network node of the first set, such that at least one of the obtaining and the transmitting is performed in response to one or more data-requesting commands issued by the remote computing device; and c. a second non-transitory computer-readable storage medium containing second code of a penetration testing software module, wherein execution of the second code of the penetration testing software module by the one or more processors of the remote computing device: i. analyzes the respective internal data transmitted by each given network node of a second set of network-nodes of the networked system, so as to determine the method for the attacker to compromise the networked system; and ii. reports the method for the attacker to compromise the networked system, wherein the reporting comprises at least one of (A) causing a display device to display a report including information about the determined method for the attacker to compromise the networked system, (B) recording the report including the information about the determined method for the attacker to compromise the networked system in a file, and (C) electronically transmitting a report including the information about the determined method for the attacker to compromise the networked system, wherein (i) the execution of the first code of the RASM by the respective one or more processors of each given network node of the first set of network nodes of the networked system; and (ii) the execution of the second code of the penetration testing software module by the one or more processors of the remote computing device, subject the networked system to penetration testing.
In some embodiments, (i) the execution of the first code of the RASM by the respective one or more processors of each given network node of the first set of network nodes of the networked system; and (ii) the execution of the second code of the penetration testing software module by the one or more processors of the remote computing device, subject the networked system to penetration testing while enforcing a rule such that all of the analyzing of the internal data for determining the method for the attacker to compromise the networked system is performed by the remote computing device.
In some embodiments, (i) the execution of the first code of the RASM by the respective one or more processors of each given network node of the first set of network nodes of the networked system; and (ii) the execution of the second code of the penetration testing software module by the one or more processors of the remote computing device, subject the networked system to penetration testing while enforcing a rule such that no network node of the networked system is ever put at risk of being compromised by the executing of the penetration test.
In some embodiments, (i) the execution of the first code of the RASM by the respective one or more processors of each given network node of the first set of network nodes of the networked system; and (ii) the execution of the second code of the penetration testing software module by the one or more processors of the remote computing device, subject the networked system to penetration testing while enforcing both first and second rules such that: A. according to the first rule, all of the analyzing of the internal data for determining the method for the attacker to compromise the networked system is performed by the remote computing device; and B. according to the second rule, no network node of the networked system is ever put at risk of being compromised by the executing of the penetration test.
In some embodiments, for at least one given network node of the first set of network nodes, the execution of the first code by the respective one or more processors of the given network node performs the obtaining in response to the one or more data-requesting commands issued by the remote computing device.
In some embodiments, for at least one given network node of the first set of network nodes, the execution of the first code by the respective one or more processors of the given network node performs the obtaining of at least some of the respective internal data of the given network node before the issuing of the one or more data-requesting commands by the remote computing device.
In some embodiments, for each given network node of the first set of network nodes, the execution of the first code by the respective one or more processors of the given network node performs the obtaining and the transmitting in response to the one or more data-requesting commands issued by the remote computing device.
In some embodiments, the information about the method for an attacker to compromise the networked system comprises at least one of: (i) information about a method for compromising one network node of the networked system (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
In some embodiments, the analyzing performed by the execution of the second code of the penetration testing software module by the one or more processors of the remote computing device comprises: (i) assessing if a first network node can be compromised; (ii) in the event that the assessing indicates that said first network node can be compromised, A. simulating or evaluating a result of compromising said first network node; and B. determining that a second network node can be compromised.
In some embodiments of the invention, the presently-disclosed penetration testing system further includes a penetration testing software module that is installed on a remote computing device which can communicate with at least one of the network nodes of the tested networked system on which a reconnaissance agent is installed. The penetration testing software module implements (i) the portion of the reconnaissance function that is not implemented by the multiple instances of the reconnaissance agent, (ii) the attack function and (iii) the reporting function. Optionally, it may also implement other functions of the penetration testing process, for example a recovery function.
In some embodiments of the invention, one or more (i.e. any combination of) the following features are provided:
Some embodiments of the invention relate to methods and systems for detecting opportunistic vulnerabilities in a network node of a networked system.
According to an aspect of an embodiment of the invention, there is provided a method for discovering and reporting a security vulnerability of a networked system by a penetration testing system, the networked system including a plurality of network nodes interconnected by one or more networks, wherein the penetration testing system includes (i) a reconnaissance agent software module, that (A) can be installed on one or more network nodes of the plurality of network nodes, and (B) when installed on a network node of the plurality of network nodes, is operable to detect at least some free events occurring in the network node on which it is installed and to transmit data about occurrences of the at least some free events to a remote computing device, and (ii) a penetration testing software module installed on the remote computing device and operable to communicate with at least one of the plurality of network nodes on which the reconnaissance agent software module is installed, the method including:
In some embodiments, the specific free event is an internal event of the first network node.
In some embodiments, the identifying of the specific opportunistic vulnerability includes executing the method for an attacker to compromise so as to validate that the first network node is compromised by the method for an attacker to compromise.
In some embodiments, the identifying of the specific opportunistic vulnerability includes validating that the first network node is compromised by the method of an attacker to compromise by simulating or otherwise evaluating the method for an attacker to compromise, without attempting to compromise the first network node.
In some embodiments, the message notifying the remote computing device of the specific occurrence of the specific free event in the first network node is sent by the reconnaissance agent software module installed on the first network node immediately after and in response to detecting the specific occurrence of the specific free event in the first network node.
In some embodiments, the message notifying the remote computing device of the specific occurrence of the specific free event in the first network node is sent by the reconnaissance agent software module installed on the first network node according to a schedule that is independent of (i) a time of occurrence of the specific occurrence of the specific free event in the first network node, and (ii) a time of detection of the specific occurrence of the specific free event in the first network node by the reconnaissance agent software module installed on the first network node.
In some embodiments, the specific free event is an event of physically attaching a physical device to the first network node.
In some embodiments, the specific free event is an attaching of a storage device to a port of the of the first network node. In some embodiments, the storage device is a removable USB storage device and the port is a USB port.
In some embodiments, the specific free event is an attaching of a communication device to a port of the first network node.
In some embodiments, the specific free event is an event of mounting a storage volume onto the first network node.
In some embodiments, the specific free event is an event of sending a network message out of the first network node, the sending caused by a command from a user of the first network node.
In some embodiments, the specific free event is a submission of a query from the first network node to a server.
In some embodiments, the specific free event is an event of sending a network message out of the first network node, the sending caused by an operating system of the first network node.
In some embodiments, the specific free event is an event of sending an ARP request message out of the first network node.
In some embodiments, the specific free event is an event of sending a network message out of the first network node, the sending caused by a software application installed on the first network node.
In some embodiments, the specific free event is an event of sending a WPAD message out of the first network node.
According to an aspect of an embodiment of the invention, there is provided a system for discovering and reporting a security vulnerability of a networked system, the networked system including a plurality of network nodes interconnected by one or more networks, each network node of the plurality of network nodes including one or more processors, and at least one network node of the plurality of network nodes is in electronic communication with a remote computing device, the remote computing device including one or more processors, the penetration testing system including:
In some embodiments, the specific free event is an internal event of the first network node.
In some embodiments, the instructions to identify the specific opportunistic vulnerability include instructions to execute the method for an attacker to compromise so as to validate that the first network node is compromised by the method for an attacker to compromise.
In some embodiments, the instructions to identify the specific opportunistic vulnerability include instructions to simulate or otherwise evaluate the method for an attacker to compromise so as to validate that the first network node is compromised by the method of an attacker to compromise, without attempting to compromise the first network node.
In some embodiments, the message notifying the remote computing device of the specific occurrence of the specific free event in the first network node is sent by executing the instructions to transmit by the one or more processors of the first network node immediately after and in response to detecting the specific occurrence of the specific free event in the one first network node.
In some embodiments, the message notifying the remote computing device of the specific occurrence of the specific free event in the first network node is sent by executing the instructions to transmit by the one or more processors of the first network node according to a schedule that is independent of (i) a time of occurrence of the specific occurrence of the specific free event in the first network node, and (ii) a time of detection of the specific occurrence of the specific free event in the first network node.
In some embodiments, the specific free event is an event of physically attaching a physical device to the first network node.
In some embodiments, the specific free event is an attaching of a storage device to a port of the of the first network node. In some such embodiments, the storage device is a removable USB storage device and the port is a USB port.
In some embodiments, the specific free event is an attaching of a communication device to a port of the first network node.
In some embodiments, the specific free event is an event of mounting a storage volume onto the first network node.
In some embodiments, the specific free event is an event of sending a network message out of the first network node, the sending caused by a command from a user of the first network node.
In some embodiments, the specific free event is a submission of a query from the first network node to a server.
In some embodiments, the specific free event is an event of sending a network message out of the first network node, the sending caused by an operating system of the first network node.
In some embodiments, the specific free event is an event of sending an ARP request message out of the first network node.
In some embodiments, the specific free event is an event of sending a network message out of the first network node, the sending caused by a software application installed on the first network node.
In some embodiments, the specific free event is an event of sending a WPAD message out of the first network node.
When a penetration testing system determines that a potential vulnerability might compromise a target network node of a networked system, the penetration testing system has to find out that this is indeed so under current conditions—this is referred to as “validating.”
An automated penetration testing system for carrying out a penetration testing campaign of a networked system is now disclosed. This penetration testing system (i) does not employ the “validating by actual attack” technique described above, where the target node is exposed to risk of being compromised; and (ii) in embodiments of the invention, differs from and provides advantages over systems that employ the conventional “validation by simulation or by evaluation” technique, also described above.
The presently-disclosed automated penetration testing system employs a reconnaissance agent software module (RASM) installed on at least some network nodes of the networked system, including one or more target network nodes for which validation is performed.
Instead of performing validation (i.e. for a particular target node) by executing code of the RASM on the target node (as is done by the '057 application), validation: (i) is performed on a remote computing device in communication with the target node; (ii) is performed using internal data of the target node, which is received by the remote computing device from the RASM installed in the target node. In contrast with actual attack penetration testing systems, validation is performed without exposing the target node to a risk of being compromised.
During the penetration testing campaign, execution of code of the RASM (i.e. execution of the instance of the RASM installed on the target node—the target node may also be referred to as a ‘hosting node’ of that instance) makes no attempt to actually compromise the target node. Additionally, execution of the RASM on the target node does not make any determination about whether or not a potential vulnerability would succeed to compromise the target node under current conditions. Instead, execution of the RASM on the target node primarily serves to obtain and transmit data about the target node out of the target node to the remote computing device—this data includes internal data of the target node, and optionally also includes other data of the target node or data of other nodes.
For each target node, the validation decisions are left to the remote computing device, rather than to the target node. Towards this end, the remote computing device hosts and/or implements both (i) a vulnerabilities knowledge base and (ii) validation logic for the potential vulnerabilities. For each validation to be decided for a given potential vulnerability and for a given target node, the remote computing device applies the decision logic associated with the given potential vulnerability according to the vulnerabilities knowledge base using data obtained from the target node, including internal data of the target node. This internal data of the target node is first obtained at the target node by execution thereon of the RASM installed on the target node, and subsequently received by the remote computing device from the RASM installed on the target node.
In order to better understand embodiments of the invention, the reader is referred to two use case examples presented below under the following headings (within the
“Detailed Description of the Embodiments”): (i) Use Case Example 1—Bad 7 Trojan; and (ii) Use Case Example 2—Potentially-Poisoned File in a Shared Folder (PPFSF) Vulnerability.
It should be noted that whenever the description of the proposed solution uses the terms “compromising a network node”, “compromising a networked system”, “an already-compromised network node”, “a not-yet-compromised network node” and the like, no actual compromising is meant. As the proposed solution is based on simulation or evaluation rather than on an actual attack, the above terms refer to a simulated or to an evaluated compromising. For example, “compromising a network node” means determining that the network node could be compromised, and “an already-compromised network node” means a network node which was already determined to be compromisable in previous stages of the current testing process.
A method of carrying out a penetration testing campaign of a networked system by a penetration testing system is disclosed herein where the penetration testing system comprises (A) a penetration testing software module installed on a remote computing device and (B) a reconnaissance agent software module (RASM) installed on at least some network nodes of the networked system. The presently-disclosed method comprises: a. subsequent to installing the RASM on the at least some network nodes, initiating the penetration testing campaign; b. subsequent to the initiating of the penetration testing campaign, selecting a target network node of the networked system on which the RASM is installed; c. based on the target network node, selecting a potential vulnerability that may compromise the target network node; d. subsequent to the selecting of the potential vulnerability, receiving at the remote computing device and from the RASM installed on the target network node, internal data of the target network node; e. validating that the target network node could be successfully compromised using the selected potential vulnerability, the validating being carried out in a manner which does not expose the target network node to a risk of being compromised and which is based on the received internal data of the target network node; f. based on the potential vulnerability, determining a method for an attacker to compromise the target network node; g. based on the method for an attacker to compromise the target network node, determining a security vulnerability of the networked system; and h. reporting the security vulnerability of the networked system, the reporting comprising at least one of (i) causing a display device to display a report including information about the determined security vulnerability of the networked system, (ii) recording the report including the information about the determined security vulnerability of the networked system in a file, and (iii) electronically transmitting the report including the information about the determined security vulnerability of the networked system, wherein each of steps a-h is performed by executing computer code of the penetration testing software module by one or more processors of the remote computing device.
In some embodiments, the internal data includes data about an internal event of the target network node.
In some embodiments, the internal data includes data about an internal condition of the target network node.
In some embodiments, the internal data includes data about an internal fact of the target network node.
In some embodiments, the selecting of the potential vulnerability is based on one or more properties of the target node.
In some embodiments, i. the method further comprises performing the following steps, subsequent to steps b-f and before step g: A. selecting an additional target network node of the networked system on which the RASM is installed; B. based on the additional target network node, selecting an additional potential vulnerability that may compromise the additional target network node; C. subsequent to the selecting of the additional potential vulnerability, receiving at the remote computing device and from the RASM installed on the additional target network node, internal data of the additional target network node; D. validating that the additional target network node could be successfully compromised using the additional potential vulnerability, the validating being carried out in a manner which does not expose the additional target network node to a risk of being compromised and which is based on the received internal data of the additional target network node; and E. based on the additional potential vulnerability, determining a method for an attacker to compromise the additional target network node; and ii. the determining of the security vulnerability of the networked system is further based on the method for an attacker to compromise the additional target network node.
In some embodiments, the information about the determined security vulnerability of the networked system comprises at least one of: (i) information about a method for compromising the target network node (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
In some embodiments, the receiving of the internal data of the target network node is in response to sending by the remote computing device a message to the target network node, the message requesting specific internal data according to the selected potential vulnerability.
A method of carrying out a penetration testing campaign of a networked system by a penetration testing system is disclosed herein where the penetration testing system comprises (A) a penetration testing software module installed on a remote computing device and (B) a reconnaissance agent software module (RASM) installed on at least some network nodes of the networked system. The presently-disclosed method comprises: a. subsequent to installing the RASM on the at least some network nodes, initiating the penetration testing campaign; b. subsequent to the initiating of the penetration testing campaign, selecting a target network node of the networked system on which the RASM is installed; c. based on the target network node, selecting a potential vulnerability that may compromise the target network node; d. receiving at the remote computing device and from the RASM installed on the target network node, internal data of the target network node; e. validating that the target network node could be successfully compromised using the selected potential vulnerability, the validating being carried out in a manner which does not expose the target network node to a risk of being compromised and which is based on the received internal data of the target network node; f. based on the potential vulnerability, determining a method for an attacker to compromise the target network node; g. based on the method for an attacker to compromise the target network node, determining a security vulnerability of the networked system; and h. reporting the security vulnerability of the networked system, the reporting comprising at least one of (i) causing a display device to display a report including information about the determined security vulnerability of the networked system, (ii) recording the report including the information about the determined security vulnerability of the networked system in a file, and (iii) electronically transmitting the report including the information about the determined security vulnerability of the networked system, wherein each of steps a-h is performed by executing computer code of the penetration testing software module by one or more processors of the remote computing device.
In some embodiments, the internal data includes data about an internal event of the target network node.
In some embodiments, the internal data includes data about an internal condition of the target network node.
In some embodiments, the internal data includes data about an internal fact of the target network node.
In some embodiments, the selecting of the potential vulnerability is based on one or more properties of the target node.
In some embodiments, i. the method further comprises performing the following steps, subsequent to steps b-f and before step g: A. selecting an additional target network node of the networked system on which the RASM is installed; B. based on the additional target network node, selecting an additional potential vulnerability that may compromise the additional target network node; C. receiving at the remote computing device and from the RASM installed on the additional target network node, internal data of the additional target network node; D. validating that the additional target network node could be successfully compromised using the additional potential vulnerability, the validating being carried out in a manner which does not expose the additional target network node to a risk of being compromised and which is based on the received internal data of the additional target network node; and E. based on the additional potential vulnerability, determining a method for an attacker to compromise the additional target network node; and ii. the determining of the security vulnerability of the networked system is further based on the method for an attacker to compromise the additional target network node.
In some embodiments, the information about the determined security vulnerability of the networked system comprises at least one of: (i) information about a method for compromising the target network node (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
In some embodiments, the receiving of the internal data of the target network node is in response to sending by the remote computing device a message to the target network node, the message requesting specific internal data according to the selected potential vulnerability.
A penetration testing system for carrying out a penetration testing campaign of a networked system in cooperation with a reconnaissance agent software module (RASM) installed on at least some network nodes of the networked system, the penetration testing system comprising: A. a remote computing device comprising a computer memory and one or more processors, the remote computing device in electronic communication with the networked system; and B. a non-transitory computer-readable storage medium containing first, second, third, fourth, fifth, sixth, seventh and eighth program instructions of a penetration testing software module, wherein: a. execution of the first program instructions, by the one or more processors of the remote computing device and subsequent to installing the RASM on the at least some network nodes, initiates the penetration testing campaign; b. execution of the second program instructions, by the one or more processors of the remote computing device and subsequent to the initiating of the penetration testing campaign, selects a target network node of the networked system on which the RASM is installed; c. execution of the third program instructions, by the one or more processors of the remote computing device, selects, based on the target network node, a potential vulnerability that may compromise the target network node; d. execution of the fourth program instructions, by the one or more processors of the remote computing device and subsequent to the selecting of the potential vulnerability, receives at the remote computing device and from the RASM installed on the target network node, internal data of the target network node; e. execution of the fifth program instructions, by the one or more processors of the remote computing device, validates that the target network node could be successfully compromised using the selected potential vulnerability such that the validating is carried out in a manner which does not expose the target network node to a risk of being compromised and which is based on the received internal data of the target network node;
f. execution of the sixth program instructions, by the one or more processors of the remote computing device, determines, based on the potential vulnerability, a method for an attacker to compromise the target network node; g. execution of the seventh program instructions, by the one or more processors of the remote computing device, determines, based on the method for an attacker to compromise the target network node, a security vulnerability of the networked system; and h. execution of the eighth program instructions, by the one or more processors of the remote computing device, reports the security vulnerability of the networked system, the reporting comprising at least one of (i) causing a display device to display a report including information about the determined security vulnerability of the networked system, (ii) recording the report including the information about the determined security vulnerability of the networked system in a file, and (iii) electronically transmitting the report including the information about the determined security vulnerability of the networked system. A penetration testing system for carrying out a penetration testing campaign of a networked system in cooperation with a reconnaissance agent software module (RASM) installed on at least some network nodes of the networked system, the penetration testing system comprising: A. a remote computing device comprising a computer memory and one or more processors, the remote computing device in electronic communication with the networked system; and B. a non-transitory computer-readable storage medium containing first, second, third, fourth, fifth, sixth, seventh and eighth program instructions of a penetration testing software module, wherein: a. execution of the first program instructions, by the one or more processors of the remote computing device and subsequent to installing the RASM on the at least some network nodes, initiates the penetration testing campaign; b. execution of the second program instructions, by the one or more processors of the remote computing device and subsequent to the initiating of the penetration testing campaign, selects a target network node of the networked system on which the RASM is installed; c. execution of the third program instructions, by the one or more processors of the remote computing device, selects, based on the target network node, a potential vulnerability that may compromise the target network node; d. execution of the fourth program instructions, by the one or more processors of the remote computing device, receives at the remote computing device and from the RASM installed on the target network node, internal data of the target network node; e. execution of the fifth program instructions, by the one or more processors of the remote computing device, validates that the target network node could be successfully compromised using the selected potential vulnerability such that the validating is carried out in a manner which does not expose the target network node to a risk of being compromised and which is based on the received internal data of the target network node; f. execution of the sixth program instructions, by the one or more processors of the remote computing device, determines, based on the potential vulnerability, a method for an attacker to compromise the target network node; g. execution of the seventh program instructions, by the one or more processors of the remote computing device, determines, based on the method for an attacker to compromise the target network node, a security vulnerability of the networked system; and h. execution of the eighth program instructions, by the one or more processors of the remote computing device, reports the security vulnerability of the networked system, the reporting comprising at least one of (i) causing a display device to display a report including information about the determined security vulnerability of the networked system, (ii) recording the report including the information about the determined security vulnerability of the networked system in a file, and (iii) electronically transmitting the report including the information about the determined security vulnerability of the networked system.
The aforementioned architecture of a penetration testing system may be useful, for example, for minimizing the CPU burden of penetration testing imposed on each of the multiple nodes of the penetration-tested networked system. Alternatively or additionally, these software architecture features may be useful for updating—e.g. when new threats need to be added to a threat-database, there is no need to update this threat-database on each of the RASM-hosting nodes. Instead, the threat-database may be updated only on the remote computing device.
Preferably, these RASM instances are not completely autonomous, but rather obtain the internal data of the RASM-hosting network nodes and/or transmit the internal data in response to a data-requesting command received, by each of the RASM-hosting network nodes, from the remote computing device.
Similar to actual-attack penetration testing systems, actual data from the network nodes is obtained and analyzed to determine the method for the attacker to compromise the networked system.
According to embodiments of the present invention, (i) this actual data includes actual internal data; and (ii) the penetration testing is carried out based on actual internal data of the target network node without putting the target node at risk of being compromised. Thus, it is now possible to enjoy the benefits of obtaining results that are more accurate and reliable than those obtainable by conventional simulated penetration testing without suffering from the risks associated with actual attack penetration testing.
Optionally, and in some embodiments preferably, the RASM is preinstalled before the beginning of the penetration testing campaign on each of the participating nodes.
The pre-installation may make the penetration testing simpler and more reliable. The pre-installation can be closely monitored by the IT people of the organization and any problem or issue of access right can be resolved prior to the testing. Additionally, if agents are employed without being pre-installed, then they are installed instead at runtime during the testing process. This implies that the state of the tested networked system is being changed by the test and unexpected side-effects might occur.
In some embodiments of the invention, one or more (i.e. any combination of) the following features are provided:
A method for penetration testing of a networked system by a penetration testing system, using both active and passive validation methods during a single penetration testing campaign, is disclosed herein. The presently-disclosed method comprises: a. determining a first target network node of the networked system to be the next network node to attempt to compromise during the single penetration testing campaign; b. determining a first vulnerability of network nodes to be used for compromising the first target network node; c. selecting a first validation method for validating the first vulnerability for the first target network node, a type of the first validation method being selected from the type group consisting of active validation and passive validation; d. validating the first vulnerability for the first target network node using the first validation method; e. determining a second target network node of the networked system to be the next network node to attempt to compromise during the single penetration testing campaign; f. determining a second vulnerability of network nodes to be used for compromising the second target network node; g. selecting a second validation method for validating the second vulnerability for the second target network node, a type of the second validation method being selected from the type group consisting of active validation and passive validation and being different from the type of the first validation method; h. validating the second vulnerability for the second target network node using the second validation method; and i. reporting at least one security vulnerability of the networked system determined to exist based on results of the executing of the single penetration testing campaign, wherein the reporting comprises performing at least one operation selected from the group consisting of: (A) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (B) storing the report containing information about the at least one security vulnerability of the networked system in a file and (C) electronically transmitting the report containing information about the at least one security vulnerability of the networked system, wherein all of steps a-i are performed by the penetration testing system, and all of steps a-h are performed during the single penetration testing campaign.
In some embodiments, the first and second validation methods are respectively selected in accordance with the first and second vulnerabilities.
In some embodiments, i. the selecting of the first validation method comprises: A. determining a first damage to the first target network node that can be caused by validating the first vulnerability for the first target network node by using active validation; and B. selecting the type of the first validation method to be a type of a validation method that is associated with the first damage; and ii. the selecting of the second validation method comprises: A. determining a second damage to the second target network node that can be caused by validating the second vulnerability for the second target network node by using active validation; and B. selecting the type of the second validation method to be a type of a validation method that is associated with the second damage. In some such embodiments, the determining of the first damage includes determining an extent of the first damage. Also, in some such embodiments, the determining of the first damage includes determining a likelihood of the first damage occurring.
In some embodiments, the selecting of the type of the first and second validation methods are performed such that the identity of the first vulnerability uniquely determines the type of the first validation method, and the identity of the second vulnerability uniquely determines the type of the second validation method.
In some embodiments, steps a-i are performed in the order listed.
In some embodiments, the penetration testing system is controlled by a user interface of a computing device, and the method for penetration testing of the networked system further comprises: j. receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly defining at least one item selected from the group consisting of (i) a type of a validation method to be used for validating the first vulnerability, and (ii) a type of a validation method to be used for validating the second vulnerability.
A penetration testing system for executing penetration testing of a networked system using both active and passive validation methods during a single penetration testing campaign is disclosed herein. The presently disclosed penetration testing system comprises: a. a remote computing device comprising a computer memory and one or more processors, the remote computing device in networked communication with multiple network nodes of the networked system; b. a non-transitory computer-readable storage medium containing program instructions, wherein execution of the program instructions by the one or more processors of the remote computing device performs all of the following during the single penetration testing campaign: i. determine a first target network node of the networked system to be the next network node to attempt to compromise during the single penetration testing campaign; ii. determine a first vulnerability of network nodes to be used for compromising the first target network node; iii. select a first validation method for validating the first vulnerability for the first target network node, a type of the first validation method being selected from the type group consisting of active validation and passive validation; iv. cause a validation of the first vulnerability for the first target network node using the first validation method; v. determine a second target network node of the networked system to be the next network node to attempt to compromise during the single penetration testing campaign; vi. determine a second vulnerability of network nodes to be used for compromising the second target network node;
vii. select a second validation method for validating the second vulnerability for the second target network node, a type of the second validation method being selected from the type group consisting of active validation and passive validation and being different from the type of the first validation method; and viii. cause a validation of the second vulnerability for the second target network node using the second validation method; wherein the execution of the program instructions by the one or more processors of the remote computing device further performs: report at least one security vulnerability of the networked system determined to exist based on results of executing the single penetration testing campaign, wherein the reporting comprises performing at least one operation selected from the group consisting of: (A) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (B) storing the report containing information about the at least one security vulnerability of the networked system in a file and (C) electronically transmitting the report containing information about the at least one security vulnerability of the networked system.
A method for penetration testing of a networked system by a penetration testing system using both active and passive validation methods is disclosed herein. The presently disclosed method for penetration testing comprises: a. determining a first target network node of the networked system to be the next network node to attempt to compromise; b. determining a first vulnerability of network nodes to be used for compromising the first target network node; c. determining a first damage to the first target network node that can be caused by validating the first vulnerability for the first target network node by using active validation; d. selecting a first validation method for validating the first vulnerability for the first target network node, a type of the first validation method being: A. selected from the type group consisting of active validation and passive validation; and B. associated with the first damage; e. validating the first vulnerability for the first target network node using the first validation method; f. determining a second target network node of the networked system to be the next network node to attempt to compromise; g. determining a second vulnerability of network nodes to be used for compromising the second target network node; h. determining a second damage to the second target network node that can be caused by validating the second vulnerability for the second target network node by using active validation; i. selecting a second validation method for validating the second vulnerability for the second target network node, a type of the second validation method being: A. selected from the type group consisting of active validation and passive validation; B. associated with the second damage; and C. different from the type of the first validation method; j. validating the second vulnerability for the second target network node using the second validation method; and k. reporting at least one security vulnerability of the networked system determined to exist based on results of performing steps a-j, wherein the reporting comprises performing at least one operation selected from the group consisting of: (A) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (B) storing the report containing information about the at least one security vulnerability of the networked system in a file and (C) electronically transmitting the report containing information about the at least one security vulnerability of the networked system, wherein all of steps a-k are performed by the penetration testing system.
In some embodiments, all of steps a-j are performed during a single penetration testing campaign that is carried out by the penetration testing system.
In some embodiments, the determining of the first damage includes determining an extent of the first damage.
In some embodiments, the determining of the first damage includes determining a likelihood of the first damage occurring.
In some embodiments, steps a-k are performed in the order listed.
In some embodiments, the penetration testing system is controlled by a user interface of a computing device, and the method for penetration testing of the networked system further comprises: j. receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly defining at least one item selected from the group consisting of (i) a type of a validation method associated with the first damage, and (ii) a type of a validation method associated with the second damage.
A penetration testing system for executing penetration testing of a networked system using both active and passive validation methods is disclosed herein. The presently disclosed penetration testing system comprises: a. a remote computing device comprising a computer memory and one or more processors, the remote computing device in networked communication with multiple network nodes of the networked system; b. a non-transitory computer-readable storage medium containing program instructions, wherein execution of the program instructions by the one or more processors of the remote computing device performs all of the following: i. determine a first target network node of the networked system to be the next network node to attempt to compromise; ii. determine a first vulnerability of network nodes to be used for compromising the first target network node; iii. determine a first damage to the first target network node that can be caused by validating the first vulnerability for the first target network node by using active validation; iv. select a first validation method for validating the first vulnerability for the first target network node, a type of the first validation method being: A. selected from the type group consisting of active validation and passive validation; and B. associated with the first damage; v. cause a validation of the first vulnerability for the first target network node using the first validation method; vi. determine a second target network node of the networked system to be the next network node to attempt to compromise; vii. determine a second vulnerability of network nodes to be used for compromising the second target network node; viii. determine a second damage to the second target network node that can be caused by validating the second vulnerability for the second target network node by using active validation; ix. select a second validation method for validating the second vulnerability for the second target network node, a type of the second validation method being: A. selected from the type group consisting of active validation and passive validation; B. associated with the second damage; and C. different from the type of the first validation method; x. cause a validation of the second vulnerability for the second target network node using the second validation method; and xi. report at least one security vulnerability of the networked system determined to exist based on results of performing operations b(i)-b(x), wherein the reporting comprises performing at least one operation selected from the group consisting of: (A) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (B) storing the report containing information about the at least one security vulnerability of the networked system in a file and (C) electronically transmitting the report containing information about the at least one security vulnerability of the networked system.
A method is disclosed herein for subjecting a single networked system to first and second penetration testing campaigns such that (i) both penetration testing campaigns are performed by a single penetration testing system; (ii) the first penetration testing campaign employs only active validation for validating vulnerabilities of network nodes of the single networked system; and (iii) the second penetration testing campaign employs only passive validation for validating vulnerabilities of network nodes of the single networked system. The presently disclosed method comprises: a. executing the first penetration testing campaign by the single penetration testing system, the executing of the first penetration testing campaign comprising performing one or more validation operations for validating vulnerabilities for network nodes of the single networked system, wherein the methods of validation used for all validation operations included in the first penetration testing campaign are active validation methods; b. executing the second penetration testing campaign by the single penetration testing system, the executing of the second penetration testing campaign comprising performing one or more validation operations for validating vulnerabilities for network nodes of the single networked system, wherein the methods of validation used for all validation operations included in the second penetration testing campaign are passive validation methods, and c. reporting, by the single penetration testing system, at least one security vulnerability of the single networked system determined to exist based on at least one member selected from the group consisting of (1) results of the executing of the first penetration testing campaign, and (2) results of the executing of the second penetration testing campaign, wherein the reporting comprises performing at least one operation selected from the group consisting of (i) causing a display device to display a report containing information about the at least one security vulnerability of the single networked system, (ii) storing the report containing information about the at least one security vulnerability of the single networked system in a file, and (iii) electronically transmitting the report containing information about the at least one security vulnerability of the single networked system.
In some embodiments, the second penetration testing campaign commences after the first penetration testing campaign has concluded.
In some embodiments, the first penetration testing campaign commences after the second penetration testing campaign has concluded.
In some embodiments, the second penetration testing campaign commences after the first penetration testing campaign has commenced but before the first penetration testing campaign has concluded.
In some embodiments, the first and second penetration testing campaigns are performed at least partially simultaneously.
In some embodiments, the first penetration testing campaign is based on a first scenario template, the second penetration testing campaign is based on a second scenario template, and the second scenario template is different from the first scenario template.
In some such embodiments, the identity of the first scenario template uniquely determines the use of active validation for all validation operations included in the first penetration testing campaign, and the identity of the second scenario template uniquely determines the use of passive validation for all validation operations included in the second penetration testing campaign.
Also in some such embodiments, the penetration testing system is controlled by a user interface of a computing device, and the method for executing the penetration testing campaigns further comprises: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly defining at least one of (i) a type of a validation method to be used for validating all vulnerabilities in the first penetration testing campaign that is based on the first scenario template, and (ii) a type of a validation method to be used for validating all vulnerabilities in the second penetration testing campaign that is based on the second scenario template.
In some other such embodiments, the penetration testing system is controlled by a user interface of a computing device, and the method for executing the penetration testing campaigns further comprises: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly defining at least one of (i) a type of a validation method to be used for validating vulnerabilities in all penetration testing campaigns that are based on the first scenario template, and (ii) a type of a validation method to be used for validating vulnerabilities in all penetration testing campaigns that are based on the second scenario template.
In some embodiments, the first penetration testing campaign and the second penetration testing campaign are both based on a common scenario template.
In some such embodiments, the penetration testing system is controlled by a user interface of a computing device, and the method for executing the penetration testing campaigns further comprises: receiving, by the penetration testing system and via the user interface of the computing device, one or more manually-entered inputs, the one or more manually-entered inputs explicitly defining at least one of (i) a type of a validation method to be used for validating all vulnerabilities in the first penetration testing campaign that is based on the common scenario template, and (ii) a type of a validation method to be used for validating all vulnerabilities in the second penetration testing campaign that is based on the common scenario template.
A penetration testing system is disclosed herein for subjecting a networked system to first and second penetration testing campaigns such that (i) both penetration testing campaigns are performed by the penetration testing system; (ii) the first penetration testing campaign employs only active validation for validating vulnerabilities of network nodes of the networked system; and (iii) the second penetration testing campaign employs only passive validation for validating vulnerabilities of network nodes of the networked system. The presently disclosed penetration testing system comprises: a. a remote computing device comprising a computer memory and one or more processors, the remote computing device in networked communication with multiple network nodes of the networked system; b. a non-transitory computer-readable storage medium containing program instructions, wherein execution of the program instructions by the one or more processors of the remote computing device performs all of the following during the first and second penetration testing campaigns: i. execute the first penetration testing campaign by the remote computing device, the executing of the first penetration testing campaign comprising causing one or more validation operations for validating vulnerabilities for network nodes of the networked system, wherein the methods of validation used for all validation operations included in the first penetration testing campaign are active validation methods; and ii. execute the second penetration testing campaign by the remote computing device, the executing of the second penetration testing campaign comprising causing one or more validation operations for validating vulnerabilities for network nodes of the networked system, wherein the methods of validation used for all validation operations included in the second penetration testing campaign are passive validation methods; wherein the execution of the program instructions by the one or more processors of the remote computing device further performs: report at least one security vulnerability of the networked system determined to exist based on at least one member selected from the group consisting of (1) results of the executing of the first penetration testing campaign, and (2) results of the executing of the second penetration testing campaign, wherein the reporting comprises performing at least one operation selected from the group consisting of (i) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (ii) storing the report containing information about the at least one security vulnerability of the networked system in a file, and (iii) electronically transmitting the report containing information about the at least one security vulnerability of the networked system.
Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains, unless explicitly defined in this application. In case of conflict, the specification, including definitions, will take precedence.
As used herein, the terms “comprising”, “including”, “having” and grammatical variants thereof are to be taken as specifying the stated features, integers, steps or components but do not preclude the addition of one or more additional features, integers, steps, components or groups thereof. These terms encompass the terms “consisting of” and “consisting essentially of”.
The invention is herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice. Throughout the drawings, like-referenced characters are used to designate like elements.
This disclosure should be interpreted according to the definitions in the “Definitions Section” at the end of the specification. In case of a contradiction between the definitions in the “Definitions Section” at the end of the specification and other sections of this disclosure, the “Definitions Section” at the end of the specification section should prevail.
In case of a contradiction between the “Definitions Section” at the end of the specification and a definition or a description in any other document, including in another document incorporated in this disclosure by refence, the “Definitions Section” at the end of the specification should prevail, even if the definition or the description in the other document is commonly accepted by a person of ordinary skill in the art.
Embodiments of the invention relate to penetration testing of networked systems, such as that illustrated in
Penetration testing systems test networked systems. For example, the networked system comprises a plurality of network nodes (referred to simply as “nodes”) in communication with each other—e.g. see
In prior art penetration testing systems (e.g. see the example discussed above with reference to
However, in some cases this way of operation does not satisfy the user's needs. The user may want to learn what might an attacker be able to achieve if s/he starts her/his attack with one or more specific nodes already under her/his control. This may be useful, for example, when evaluating the damages that might be incurred if the attacker is an employee of the organization owning the tested networked system that already controls his own network node. Another example is when knowing in advance that one or more given nodes are prone to being compromised (e.g. because they are accessible by the public) and evaluating the risks to the rest of the networked system after the one or more given nodes are compromised.
Therefore, it is useful to let a user of a penetration testing system to select one or more network nodes that will be assumed to be already compromised and under the control of the attacker when the penetration testing campaign starts. Such nodes are called herein “initially-compromised” or “initially-red” network nodes. When initially-compromised nodes are selected for a penetration testing campaign, these nodes are the only nodes that are assumed to be already compromised when the campaign starts. In other words, a node that is not selected to be an initially-compromised node for a campaign is assumed to be non-compromised when the campaign starts. An example related to initially-compromised nodes is presented below with reference to
In contrast to conventional penetration testing systems (i.e. where penetration testing campaigns are performed from an initial state in which no network node of the tested networked system is compromised), in a first embodiment of the invention the user manually and explicitly selects one or more nodes of the tested networked system as initially-compromised nodes. The skilled artisan is directed to
In contrast to conventional penetration testing systems (i.e. where penetration testing campaigns are performed from an initial state in which no network node of the tested networked system is compromised), in a second embodiment of the invention, before penetration testing, initially-compromised nodes are defined by the user as follows: the user manually and explicitly selects a Boolean node-selection condition defining which nodes or nodes are initially compromised. Any network node of the networked system that satisfies the Boolean condition is considered initially compromised. The skilled artisan is directed to
In contrast to conventional penetration testing systems (i.e. where penetration testing campaigns are performed from an initial state in which no network node of the tested networked system is compromised), in a third embodiment of the invention, the penetration testing system automatically selects one or more of the nodes that is to be considered initially-compromised. This selection may be performed, for example, according to features discussed with reference to
It is appreciated that the first, second and/or third embodiments may be combined in any manner.
Before discussing the first, second and third embodiments, an example related to initially-compromised nodes in general is now discussed with reference to
In contrast to the user-case of
According to the example illustrated in
N111, N112, N106, N122 and N125 are compromised—this is indicated in
The networked system example of
In one example, the selecting is performed using the GUI element 330E of
In step S501 of
In Frame 1 of
In all frames of
In Frame 2, at time t2 the user clicks on the button labelled N117 to manually and explicitly select node N117. In Frame t3, at time t3 the user clicks on the button labelled N108 to manually and explicitly select node N108. In Frame t4, at time t4 the user clicks on the button labelled N110 to manually and explicitly select node N110.
In Frame 5 of
In Frame 4 of
One feature of step S501 is that at least one of the automatically selected network nodes is other than the computing device. This is clearly satisfied in the example of
In step S505 of
In step S509 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
Step S501 of
As noted above, some embodiments relate to methods and apparatus where user-input manually and explicitly designates one or more nodes of the networked system as initially-compromised—e.g. see the example of
In some embodiments, a user manually and explicitly selects a Boolean node-selection condition and a penetration testing campaign is performed according to the Boolean node-selection condition.
Specific examples of step S551 of the flow-chart of
In step S551 of
A first example is presented in
Three candidate Boolean node-selection conditions are listed in GUI element 330F: (i) a first node-selection condition that states that a node is a selected (i.e. to be part of the ‘proper subset’ of network nodes) if and only if the node is a ‘Linux box’ (i.e. it is a computer executing Linux); (ii) a second node-selection condition that states that a node is a selected (i.e. to be part of the ‘proper subset’ of network nodes) if and only if the node has a direct connection to the outside world; and (iii) a third node-selection condition that states that a node is a selected (i.e. to be part of the ‘proper subset’ of network nodes) if and only if the node has an on-board cell-phone modem.
The first node-selection condition relates to software executing by a node; the second node-selection condition relates to a location of the node within the network; the third node-selection condition relates to hardware resources.
In Frame 1, no selection has yet been made by the user. In Frame 2, at time t2 the user selects the third candidate node-selection condition in 330F—e.g. the user engagement of GUI element 330F may be provided by a mouse-click.
In Frame 3 of
In Frame 4 of
In step S555 of
In step S559 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
In one particular example relating to the example of
A number of examples of Boolean node conditions: (example A) machine is a mobile node; (example B) machine is a node with a direct connection to the outside world; (example C) machine is a node where MS Word is installed; (example D) machine is a
Linux node; (example E) machine is a node with Windows 7.0 or lower; (example F) machine is a node physically situated in the State of California; (example G) machine provides FTP services to other nodes.
Example G is one example of a service dependent condition. Examples D-E are examples of operating-system (OS) dependent conditions. Example C is an example of a software-application dependent condition.
In step S811, the following is performed: determining whether one or more network nodes of the networked system satisfy a pre-defined Boolean condition. Some examples of pre-defined Boolean conditions are listed in 330F, discussed above. The Boolean condition is automatically selected by the penetration testing system. For example, a database may store a list of Boolean conditions, and one is selected randomly every time the penetration testing campaign is run.
In step S805, the following is performed: based on a result of the determining, automatically selecting, by the penetration testing system, the one or more network nodes of the networked system, wherein at least one of the automatically selected network nodes is other than the computing device.
In step S809, the following is performed: in accordance with the automatically selecting of the network nodes, executing the penetration testing campaign by the penetration testing system so as to test the networked system, the penetration testing campaign being executed under the assumption that the automatically selected one or more network nodes of the networked system are already compromised at the time of beginning the penetration testing campaign.
In step S813 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
A “type of an attacker” is defined as a classification of the attacker that indicates its main incentive in conducting attacks of networked systems. Typical values for a type of an attacker are state-sponsored, opportunistic cyber criminal, organized cyber criminal and insider.
An attacker can have only a single type.
Some embodiments relate to methods and systems where one or more nodes are automatically selected by the penetration testing system according to a type of attacker. The type of attacker can be determined in any manner—e.g. according to user-input or automatically or in any other manner.
In one example, whenever it is determined that an attacker is state sponsored, nodes that operate Windows 7 are assumed to be initially compromised. In another example, whenever it is determined that the attacker is an insider, nodes that are physically located in field offices and not within the corporate headquarters are assumed to be initially compromised.
In step S821, the following is performed: determining S821, by the penetration testing system a type of an attacker of the penetration testing campaign. Also appearing in
These steps are the same steps as in
In step S801, the following is performed: determining, by the penetration testing system, at least one of (i) a type of an attacker of the penetration testing campaign, and (ii) whether one or more network nodes of the networked system satisfy a pre-defined Boolean condition. The type of attacker can be determined in any manner—e.g. according to user-input or automatically or in any other manner.
Also appearing in
A Discussion of
In some embodiments, a user manually and explicitly selects one or more capabilities of an attacker of a penetration testing campaign.
Specific examples of step S301 of the flow-chart of
The term ‘capability’ of an attacker is defined below—see definition “27” of the ‘Definitions Section.’
In step S301 of
A first example is presented in
Three attacker capabilities are listed in GUI element 330A: (i) the ability to copy a local file and export it to the attacker—if the user selects “YES” then the subsequent penetration testing campaign is performed in step S305 such that the attacker is assumed to have this capability; (ii) the ability to remotely collect database (DB) information (info) form the SQL-server of Microsoft®—if the user selects “YES” then the subsequent penetration testing campaign is performed in step S305 such that the attacker is assumed to have this capability; and (iii) the ability to force remote code execution (RCE)—if the user selects “YES” then the subsequent penetration testing campaign is performed in step S305 such that the attacker is assumed to have this capability.
Frame 1 of
In Frame 2 of
In Frame 3 of
Frame 1 of
In Frame 2 of
In Frame 3 of
In Frame 4 of
In step S305 of
In step S309 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
A Discussion of
In some embodiments, a user manually and explicitly selects a level of sensitivity to detection of an attacker of a penetration testing campaign.
The term ‘level of sensitivity to detection of an attacker’ is defined below—see definition “30” of the ‘Definitions Section’.
Specific examples of step S1351 of the flow-chart of
In step S1351 of
A first example is presented in
GUI element 330B allows for the user to manually and explicitly select a level of sensitivity of the attacker to being detected (e.g. typically ‘lone-wolf’ or ‘free-wheeling’ attackers have ‘less to lose’ if detected while state-sponsored attackers are more sensitive to being detected).
For the particular example of
Frame 1 of
In Frame 2 of
In Frame 3 of
Frame 1 of
Thus, the {HS } value is illustrated in diagonal gray lines, indicating that this value has not been manually and explicitly selected by the user—in the initial state of
In Frame 2 of
In Frame 3 of
In Frame 4 of
In step S1355 of
In step S1359 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
A Discussion of
In some embodiments, a user manually and explicitly selects one or more traits of an attacker of a penetration testing campaign.
Specific examples of step S351 of the flow-chart of
In step S351 of
A first example is presented in
Two attacker traits are listed in GUI element 330H: (i) how sensitive the attacker is to being detected (e.g. typically ‘lone-wolf’ or ‘free-wheeling’ attackers have ‘less to lose’ if detected while state-sponsored attackers are more sensitive to being detected); and (ii) how resilient the attacker is against initial failure—i.e. often when an attacker tries to accomplish a goal, the attacker may initially fail—more resilient attackers are willing to make more attempts even when previous attempts failed.
For the first trait, the user may select ‘highly sensitive’ (HS), ‘moderately sensitive’ (MS) or ‘not sensitive’(NS)—if the user selects “highly sensitive” then the subsequent penetration testing campaign is performed in step S355 in a manner where the attacker is constrained to be highly sensitive, if the user selects “moderately sensitive” then the subsequent penetration testing campaign is performed in step S355 in a manner where the attacker is constrained to be moderately sensitive, if the user selects “not sensitive” then the subsequent penetration testing campaign is performed in step S355 in a manner where the attacker is not sensitive to being detected.
For the second trait, the user may select ‘very resilient’ (VR), ‘moderately resilient’ (MR) and ‘not resilient’ (NR).
Frame 1 of
In Frame 2 of
In Frame 3 of
In Frame 4 of
Frame 1 of
Thus, the {HS,MR} values are illustrated in diagonal gray lines, indicating that these values have not been manually and explicitly selected by the user—in the initial state of
In Frame 2 of
In Frame 3 of
In Frame 4 of
In step S355 of
In step S359 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
A Discussion of
In some embodiments, a user manually and explicitly selects a lateral movement strategy of an attacker of a penetration testing campaign.
Specific examples of step S601 of the flow-chart of
The term ‘lateral movement strategy’ of an attacker is defined below—see definition “42” of the ‘Definitions Section.’
In step S601 of
A first example is presented in
Three lateral movement strategies are listed in GUI element 330G: (i) breadth-first strategy (BFS); (ii) depth-first-strategy (DFS); and (iii) ‘random neighbor strategy’ where the movement is from a node to an immediately-neighboring node, the immediately-neighboring node being selected randomly.
Frame 1 of
In Frame 2 of
In Frame 3 of
Frame 1 of
In Frame 2 of
In Frame 3 of
In Frame 4 of
In step S605 of
In step S609 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
In step S901 of
In step S905 of
In step S909 of
In step S913 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
The term a ‘goal of an attacker’ is defined below—see “31” of the Definitions Section.
Seventeen (17) examples of goals of an attacker are listed below:
There are many particular species of “goals” of an attacker.
Thus, some goals (but not all goals) are resource-specific goals. The term ‘resource-specific goal’ is defined below in definition ‘32’ of the Definitions Section. Some but not all of the example goals A-Q are resource specific goals. In particular, examples A, B, H, and K are resource-specific goals. Examples C-G, I-J, L-Q are not resource-specific goals.
The term ‘file-specific goal’ is defined below in definition ‘33’ of the Definitions Section. Some but not all of the example goals A-Q are file-specific goals. In particular, examples A, B, H, and K are file specific goals. Examples C-G, I-J, L-Q are not file-specific goals.
The term ‘node-count-maximizing goal’ is defined below in definition ‘34’ of the Definitions Section. Some but not all of the example goals A-Q are node-count-maximizing goals. In particular, examples N, O, and Q are node-count-maximizing goals. Examples A-M and P are not node-count-maximizing goals.
The term ‘file-count-maximizing goal’ is defined below in definition ‘35’ of the Definitions Section. Some but not all of the example goals A-Q are file-count-maximizing goals. In particular, examples E and F are file-count-maximizing goals. Examples A-D, G-Q are not file-count-maximizing goals.
The term ‘encryption-related goal’ is defined below in definition ‘36’ of the Definitions Section. Some but not all of the example goals A-Q are encryption-related goals. In particular, examples J-L are encryption-related goals. Examples A-I and M-Q are not encryption-related goals.
The term ‘file-exporting goal’ is defined below in definition ‘37’ of the Definitions Section. Some but not all of the example goals A-Q are file-exporting goals. In particular, examples A-F are file-exporting goals. Examples G-Q are not file-exporting goals.
The term ‘file-size-related goal’ is defined below in definition ‘38’ of the Definitions Section. Some but not all of the example goals A-Q are file-size-related goals.
In particular, examples E-F are file-size-related goals. Examples A-D and G-Q are not file-size-related goals.
The term ‘file-type-related goal’ is defined below in definition ‘39’ of the Definitions Section. Some but not all of the example goals A-Q are file-type-related goals. In particular, examples F, I and L are file-size-related goals. Examples A-E, G-H, J-K and M-Q are not file-type-related goals.
The term ‘file-damage-related goal’ is defined below in definition ‘40’ of the Definitions Section. Some but not all of the example goals A-Q are file-damage-related goals. In particular, examples G-L are file-damage-related goals. Examples A-F and M-Q are not file-damage-related goals.
The term ‘node-condition-based goal’ is defined below in definition ‘41’ of the Definitions Section. Some but not all of the example goals A-Q are node-condition-based goals. In particular, examples P and Q are node-condition-related goals. Examples A-O are not node-condition-related goals.
A Discussion of
In some embodiments, a user manually and explicitly selects one or more capabilities of an attacker of a penetration testing campaign.
Specific examples of step S401 of the flow-chart of
The term ‘goal of an attacker’ is defined below—see definition “31” of the ‘Definitions Section.’
In step S401 of
A first example is presented in
Three attacker goals are listed in GUI element 330C: (i) a goal to copy a file having a user-specified file-name from a user-specified network node and export it to the attacker—if the user selects “YES” then the subsequent penetration testing campaign is performed in step S405 such that the attacker is assumed to have this goal; (ii) a goal to encrypt a file having a user-specified file-name residing on a user-specified network node—if the user selects “YES” then the subsequent penetration testing campaign is performed in step S405 such that the attacker is assumed to have this goal; and (iii) a goal to compromise a user-specified number of network nodes without caring which nodes they are—if the user selects “YES” then the subsequent penetration testing campaign is performed in step S405 such that the attacker is assumed to have this goal.
Frame 1 of
In Frame 2 of
In Frame 3 of
Frame 1 of
Thus, the {N,Y,N} values are illustrated in diagonal gray lines, indicating that these values have not been manually and explicitly selected by the user—in the initial state of
In Frame 2 of
In Frame 3 of
In Frame 4 of
It should be noted that in the example of
In step S405 of
In step S409 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
In step S851 of
In step S855 of
In step S859 of
In step S863 of
In one example where the reporting comprises causing a display device to display a report describing the at least one security vulnerability, a computing device that performs the reporting causes a local display device (e.g. either residing in a common housing with the computing device that performs the reporting or connected via a local device interface) to display the report. Alternatively or additionally, data describing the report may be sent to another computing device (e.g. in communication with the computing device that performs the reporting via a local or remote network) to cause the other computing device to display the report on a display device local to the other computing device or to store it in a storage device for later use.
In some embodiments, the reporting may be in real time or substantially in real time. Alternatively, the reporting may be a delayed reporting where the data is first stored in volatile and/or non-volatile memory, and the reporting step may be completed only after some delay (e.g. even a delay of weeks or months or years).
In the example of
In the example of
One example of a penetration testing system code module 210 is shown in
Penetration testing system code module 210 includes one or more of (i.e. any combination of): attacker capability selection user interface code module 230A (e.g. which produces GUI element 330A), attacker detection sensitivity selection user interface code modules 230B (e.g. which produces GUI element 330B), attacker goal selection user interface code module 230C (e.g. which produces GUI element 330C), attacker type selection user interface code module 230D (e.g. which produces GUI element 330D), network node selection user interface code module 230E (e.g. which produces GUI element 330E), node selection condition user interface code module 230F (e.g. which produces GUI element 330F), lateral movement strategy selection user interface code module 230G (e.g. which produces GUI element 330G), attacker trait selection user interface code module 230H (e.g. which produces GUI element 330H); node selection engine (SE) code module 240A (e.g. for performing step S805 discussed above); attacker goal selection engine (SE) code module 240B (e.g. for performing step S855 discussed above); lateral movement strategy selection engine (SE) code module 240C (e.g. for performing step S905 discussed above).
Embodiments of the invention relate to a penetration testing system that provides the user great flexibility in defining the specifications of a campaign he wants to run for testing a networked system. In some embodiments, the user of the penetration testing system can directly and independently select values for multiple information items of a campaign. This is different from prior art systems in which the user selects a pre-defined scenario from a list of scenarios, and is also different from prior art systems in which the user indirectly selects a pre-defined scenario by selecting a value for one information item of the campaign that causes the system to automatically choose a specific pre-defined scenario that is the only available scenario having that value for that information item, or causes the system to automatically choose a scenario from a plurality of the available pre-defined scenarios which have that value for that information item. In some embodiments, the user of the penetration testing system can directly select the type of the attacker that will be used in a campaign. Specifically, such selection is done without committing to specific values of other information items of the campaign according to a pre-defined scenario. In other words, after selecting the type of attacker, the user may for example select the goal of the attack independently of his type of attacker selection. This is different from prior art systems in which when the user selects a type of attacker, he is tying his hands by committing to a fully-defined scenario and giving up any options of independently selecting values for other information items of the campaign he is initiating. The selection of the type of the attacker is typically done by selecting from a closed list of alternatives, for example by choosing from a drop-down list. In some embodiments, the user of the penetration testing system can directly select the capabilities of the attacker that will be used in a campaign. An attacker may have one or more capabilities. The selection of the capabilities of the attacker is typically done by selecting from a closed list of alternatives, for example by marking one or more checkboxes. The list of alternatives to the user may depend on the type of the attacker previously selected for the campaign. In some embodiments, the user of the penetration testing system can directly select the methods of a capability of the attacker that will be used in a campaign. A capability of an attacker may have one or more methods. The selection of the methods is typically done by selecting from a closed list of alternatives, for example by marking one or more checkboxes. The list of alternatives to the user may depend on the specific type of the attacker and on the specific capability previously selected. In some embodiments, the user of the penetration testing system can directly select the traits of an attacker that will be used in a campaign. An attacker may have one or more traits. The selection of the traits is typically done by selecting from a closed list of alternatives, for example by marking one or more checkboxes. The list of alternatives to the user may depend on the specific type of the attacker previously selected for the campaign. In some embodiments, the user of the penetration testing system can directly select one or more network nodes of the tested networked system that are assumed to be already compromised at the beginning of the test. Such network nodes are referred to herein as “initial red network nodes” or “initially red network nodes”. This selection is useful for assessing the penetration capability of an attacker to other network nodes of the networked system once those one or more initial red network nodes are compromised. For example, a CISO of an organization may fear that a specific network node of the organization is more prone than other nodes to be compromised, because it is directly facing the external world or because there are employees with access rights to that specific node that are less trustworthy than the other employees of the organization. In such case the CISO may want to know what might happen if his fears will be justified and run a specific penetration test for finding the answer.
In some embodiments, the selection of the initial red network nodes may be done by presenting the user with a graphical map of the networked system in which each network node is shown as a circle identified by a name or by an IP address. Using the graphical map, the user can point, using a mouse or some other pointing device, to each network node to be initially red and press a button (a pointing device button or a keyboard button) for selecting that node to be initially red. Alternatively, the user may be presented with a list of network nodes identified by a name or by an IP address, where each node is accompanied by a corresponding checkbox. Marking a checkbox selects the corresponding node to be initially red.
In some embodiments, the user also has the option to select that there will be no initially red nodes, in which case the penetration test will start with the assumption that none of the network nodes is compromised.
In some embodiments, the user of the penetration testing system can select the one or more network nodes of the tested networked system that are assumed to be already compromised at the beginning of the test by an open definition, rather than by directly identifying those nodes by the methods explained above. By “open definition” it is meant that the user provides a condition a node must satisfy in order to be selected as an initial red network node. For example, the user may specify that all network nodes having a direct connection to the outside world are selected to be initially red. Or that all network nodes that are cellular mobile devices are selected to be initially red. Or that all network nodes that are MacBook computers are selected to be initially red. Or that all network nodes that are running the Windows XP operating system are selected to be initially red. Or that all network nodes having installed Internet Explorer version 8 or earlier are selected to be initially red.
In some embodiments, the selection condition may be a combination of multiple conditions. For example, the user may specify that all network nodes that are both running Windows XP and having installed Internet Explorer version 8 or earlier are selected to be initially red. Additionally, the user may define multiple selection conditions that operate in parallel. For example, one condition is that a node is running Windows XP, and a second condition is that the a node has installed Internet Explorer version 8 or earlier. The effective result of having these two selection conditions is equivalent to specifying that all network nodes having either Windows XP or having installed Internet Explorer version 8 or earlier are selected to be initially red. Also, the user may be able to define a selection condition by using a “not” operator. For example, the user may select that all user nodes that do not have a specific anti-virus installed are selected to be initially red.
In some embodiments, the selection of the initially red network nodes may be done by the user using a GUI (Graphical User Interface). The GUI may include selection of single alternatives from drop-down closed lists, selection of one or more alternatives from closed lists by marking checkboxes, selection of logic operators (AND, OR, NOT) for combining conditions, and any other means required for the user for defining his selection of initially red network nodes.
In some embodiments, the penetration testing system may be configured to relieve the user from the burden of selecting the condition to be satisfied by the initial red network nodes by automatically determining which nodes are the most likely to be compromised in the networked system, for example because they are the ones facing the external world. In such case the system tells the user which nodes it recommends to select as the initial red nodes, and the user may then either confirm the recommendation or disagree with it and make his own selection according to the methods described above.
In some embodiments, the penetration testing system may be configured to completely leave the selection of the initial red network nodes in the hands of the system. In such case the system automatically determines which nodes it recommends to be selected as the initial red nodes, for example those nodes of the networked system that are the most likely to be compromised by the type of attacker previously selected for the campaign, and then selects those nodes to be the initial red network nodes without asking for user confirmation.
In some embodiments, the user of the penetration testing system can directly select the goals of the attacker during a campaign. An attacker may have one or more goals in a campaign. The selection of the goals of the attacker is typically done by selecting from a closed list of alternatives, for example by marking one or more checkboxes or by selecting a single goal from a drop-down list. For some goals, in addition to marking a checkbox or selecting from a drop-down list, the user also must specify one or more parameters. For example, for the goal “export a specific file from a specific network node” the user should specify the file name and the network node. The list of goals to the user may depend on the type of the attacker previously selected for the campaign.
In some embodiments, the user of the penetration testing system can directly select the lateral movement strategy of the attacker during the campaign. The selection of the lateral movement strategy is typically done by selecting from a closed list of alternatives, for example by selecting a single alternative from a drop-down list. For some strategies, the user also has to specify a parameter. For example, for a lateral movement strategy in which a priority is given to compromising network nodes satisfying a specific condition, the user has to specify the condition, possibly selecting it from a second drop-down list that becomes operative after the selection of that strategy from the first drop-down list. The list of alternatives to the user for selecting the lateral movement strategy may depend on the type of the attacker and on the goals of the attacker previously selected for the campaign. In some embodiments, the penetration testing system may be configured to relieve the user from the burden of selecting the lateral movement strategy by automatically determining the most effective strategy for the goals previously selected for the campaign. In such case the system tells the user what lateral movement strategy it recommends to select for the campaign, and the user may then either confirm the recommendation or disagree with it and make his own selection according to the methods described above.
In some embodiments, the penetration testing system may be configured to completely leave the selection of the lateral movement strategy in the hands of the system. In such case the system automatically determines the strategy it recommends to be selected for the campaign, for example the strategy that is most effective for achieving the goals previously selected for the campaign, and then selects that strategy without asking for user confirmation.
In some embodiments, the user performs all the above selections by operating a console with a GUI supporting all the functions described above. The console is typically associated with a remote computing device that includes a processor that executes software implementing part or all of the penetration testing software functions during the execution of a campaign. Alternatively, the console may be associated with a separate computing device that is different from the remote computing device executing the campaign and is in communication with it.
Some embodiments relate to a first method (see
The step of manually selecting the capability may include the following steps:
The second method may further comprise:
Alternatively, the second method may further comprise:
Some embodiments relate to a third method (see
The step of manually selecting the trait of the attacker may include the following steps:
Some embodiments relate to a fourth method (see
The step of manually selecting the one or more network nodes may include providing a condition, where a network node is included in the one or more network nodes if and only if it satisfies the condition.
Alternatively, the step of manually selecting the one or more network nodes may include the following steps:
Some embodiments relate to a fifth method (see
The step of manually selecting the first value for the goal may include the following steps:
Some embodiments relate to a sixth method (see
The step of manually selecting the lateral movement strategy may include the following steps:
Embodiments of the invention relate to penetration testing of networked systems, such as that illustrated in
Before presenting further discussion of these figures, a description of three Use Case Examples, related to presently-disclosed techniques for penetration testing, is now presented.
Networked System/Penetration Testing System for Example 1: The first non-limiting example relates to a networked system having the following properties: (i) the networked system comprises a plurality of laptop or desktop work-stations, each of which is a network node; (ii) each network node work-station has one or more USB ports; (iii) a first work-station/node (“Node A”) is “strongly defended”—on this work-station/node the most recent version of Windows® is installed including all of the latest security patches; (iv) a second work-station/node (“Node B”) is “weakly defended”—on this node, a much older version of Window has been installed, and security patches have not been installed for over two years.
This networked system is subjected to penetration testing.
In this example, a penetration testing software module is installed on a remote computing device which is outside of the networked system—in this example, the remote computing device is deployed in the cloud relative to the networked system, and is in networked communication with the networked system. This particular architecture is illustrated in
In example 1, the terms “work-station A” and “node A” are used interchangeably; Similarly, the terms “work-station B” and “Node B” are also used interchangeably.
Activity that Typically Occurs in the Networked System for Example 1: In addition to the aforementioned networked system and the aforementioned penetration testing system, the first example relates to first, second and third office workers.
The first office worker owns a USB memory stick having the serial number “XA2312YAFIQ”, tends to use both work-stations A and B, and occasionally inserts her USB memory stick into the USB ports of each of those two work-stations.
The second office worker owns a USB memory stick having serial number “9232XG292ZZZ”. The second office worker (i) uses only work station A; (ii) occasionally inserts his USB memory stick into USB ports of work-station A; (iii) never inserts his USB memory stick into USB ports of station B.
The third office worker owns a USB memory stick having serial number “JIJI88812ACDQP”. The third office worker (i) uses only work-station B; (ii) occasionally inserts his USB memory stick into USB ports of work station B; (iii) never inserts his USB memory stick into USB ports of station A.
In this example, “user” and “office worker” are used interchangeably.
Goal of the Penetration Testing Campaign for Example 1: In example 1, the goal of the penetration testing campaign is for an attacker to compromise Node A—only if the attacker succeeds to compromise Node A is the penetration testing campaign considered a success.
In this first example, the penetration testing campaign commences at 10 AM on Apr. 1, 2017 and concludes at 12 noon on Apr. 1, 2017. Thus, in this example the “Commencement Time” is 10 AM on Apr. 1, 2017. Prior to the Commencement Time (e.g. on Mar. 31, 2017), the RASM is pre-installed on each node of the networked system, including Node A which is strongly-defended and Node B which is weakly-defended.
During the two-hour penetration testing campaign, processor(s) of Node A execute code of the RASM to “listen” to events which occur on USB ports of Node A—these events including coupling events, decoupling events, and transfer of data-files (e.g. from the USB memory stick to Node A or vice versa) Similarly, processor(s) of Node B execute code of the RASM to “listen”” to events which occur on USB ports of Node B.
In this example, at 10:01 AM Node A (i.e. by executing code of RASM) transmits to the remote computing device “Windows version/update data” for Node A—the Windows version/update data transmitted from Node A indicates that the most recent version of Windows® including all of the latest security patches is installed on Node A.
In this example, at 10:02 AM Node B (i.e. by executing code of RASM) transmits to the remote computing device “Windows version/update data” for Node B—the Windows® version/update data transmitted from Node B indicates that (i) an older version of Windows® is installed on Node B and (ii) the most recent security patch installed on Node B is over two years old.
In this example, executing code of each instance of the RASM stores a USB-event log file (i.e. a first USB-event log file on Node A for USB events of Node A and a second USB-event log file on Node B for USB events of Node B). Each USB-event log file is updated on an ongoing basis in response to detected events that occur at the USB ports of the corresponding node. Updates of the USB log-files occur locally (i.e. on Nodes A and B) on an ongoing basis without requiring any data-requesting commands from the remote computing device.
The content of the USB-event log files (the entire log files or data describing the most recent updates to the log files) are only transmitted out of Nodes A and B (i.e. by executing code of the RASM on Nodes A and B) to the remote computing device in response to a data-requesting command received at each of the nodes (i.e. Nodes A and B) from the remote computing device—e.g. processor(s) of the remote computing device execute code of the penetration testing software module to issue the data-requesting commands and to transmit these data-requesting commands to Nodes A and B.
In this first example, the RASM instances which listen to the USB ports on Nodes A and B detect the following USB-related events that occur at the USB ports:
At 11:56 AM, as part of the penetration testing, the remote computing device broadcasts a data-requesting command to Nodes A and B.
At 11:57, Node A responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the Node A-local USB log file including descriptions of Events A1-A9.
At 11:58, Node B responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the Node B-local USB log file including descriptions of Events B1-B5.
Analysis
At 11:59, an analysis required for determining whether there is a method for an attacker to compromise the networked system is performed exclusively at the remote computing device (i.e. by executing code of the penetration testing software module). This analysis which is performed exclusively at the remote computing device is based upon input data comprising the following:
This analysis, which is performed exclusively at the remote computing device, is effective to conclude the following:
At 12 noon, the remote computing device sends an email to an email account belonging to the system administrator—the email includes information about the determined method for the attacker to compromise the networked system—see Conclusion “D” above. At this point, the penetration testing campaign, which began at 10 AM, has now concluded.
First observation about Example 1—(i) data from the USB log file of Node A is never present on Node B; (ii) data from the USB log file of Node B is never present on Node A; (iii) in order to determine the method for an attacker to compromise the networked system (i.e. to achieve the goal of the penetration testing campaign), USB log file data from both nodes A and B are required.
Conclusion—Neither the RASM instance on Node A nor the RASM instance on Node B has enough information for determining on its own that Node A can be compromised by an attacker. Only after the information collected by both RASM instances is provided to the penetration testing software module in the remote computing device and analyzed together, it becomes possible to determine the existence of a method for compromising Node A.
Second observation about Example 1—No actual attack is ever performed for validating the vulnerability of Node A, and consequently there is no risk of actually compromising Node A by the testing. Instead, an analysis of actual internal data of some network nodes is performed and an evaluation of the results of the analysis is carried out. This analysis and evaluation are performed entirely at the remote computing device.
Networked System/Penetration Testing System for Example 2: The second non-limiting example relates to a networked system having the following properties: (i) the networked system comprises a plurality of laptop or desktop work-stations, each of which is a network node; (ii) some of the network nodes have access to a shared folder SF which resides on a file-server on one of the nodes (“Node S”); (iii) some of the network nodes have read-only access to the shared folder SF on Node S—i.e. the nodes with read-only access can read files from the shared folder SF but cannot modify these files, and cannot add files to the shared folder SF; (iv) some nodes have both read and write privileges to shared folder SF—these nodes can modify existing files within the shared folder SF and can add new files to shared folder SF, in addition to having read access to shared folder SF; (v) nodes with read-only access and nodes that have both read and write privileges are “nodes having at least read privileges” (vi) nodes having at least read privileges of the folder can import and execute.exe executable files from the shared folder SF, and can import and open MS-Word® files that contain auto-executing macros from the shared folder SF—i.e. content or macros of these files are read into local memory of each such node and executed from the local memory; (vii) a first work-station/node (“Node A”) is “strongly defended”—on this work-station/node the most recent version of Windows® is installed including all of the latest security patches; (viii) a second work-station/node (“Node B”) is “weakly defended”—on this node, a much older version of Window has been installed, and security patches have not been installed for over two years; (ix) Node A has read-only access to shared folder SF; (x) Node B has both read and write privileges to shared folder SF.
This networked system is subjected to penetration testing.
In this example, a penetration testing software module is installed on a remote computing device which is outside of the networked system—in this example, the remote computing device is deployed in the cloud relative to the networked system, and is in networked communication with the networked system. This particular architecture is illustrated in
In example 2, the terms “work-station A” and “node A” are used interchangeably. Similarly, the terms “work-station B” and “Node B” are also used interchangeably.
Goal of the Penetration Testing Campaign for Example 2: In example 2, the goal of the penetration testing campaign is for an attacker to compromise Node A—only if the attacker succeeds to compromise Node B is the penetration testing campaign considered a success.
In this second example, the penetration testing campaign commences at 1 PM on Apr. 21, 2017 and concludes at 11 PM on Apr. 21, 2017. Thus, in this example the “Commencement Time” is 1 PM on Apr. 21, 2017. Prior to the Commencement Time, the RASM is pre-installed on each node of the networked system, including Node A which is strongly-defended and Node B which is weakly-defended.
During the ten-hour penetration testing campaign, processor(s) of Node A execute code of the RASM both to ascertain status data of Node A and to “listen” to events which occur at Node A. The status data may include: (i) determining a version of an operating system executing on Node A; (ii) determining which security patches have been installed on Node A; (iii) determining whether or not Node A has read privileges for the shared folder SF; and (iv) determining whether or not Node A has write privileges for the shared folder SF. The events may include execution of an executable by processors of Node A, opening of an MS-word® file or an MS-excel® file (applications which support macros) on Node A, mouse and keyboard events on Node A, reading a file from the shared folder SF (i.e. on Node S) into Node A, execution of a file (or a macro) read from the shared folder SF into Node A.
Similarly, processor(s) of Node B execute code of the RASM both to ascertain status data of Node B and to “listen” to events which occur at Node B.
In this example, at 1:01 PM Node A (i.e. by executing code of the RASM) transmits to the remote computing device “Windows version/update data” for Node A—the Windows version/update data transmitted from Node A indicates that the most recent version of Windows® including all of the latest security patches is installed on Node A.
In this example, at 1:02 PM Node B (i.e. by executing code of the RASM) transmits to the remote computing device “Windows version/update data” for Node B—the Windows® version/update data transmitted from Node B indicates that (i) an older version of Windows® is installed on Node B and (ii) the most recent security patch installed on Node B is over two years old.
In this example, RASM code executing on Node B records the following event-Node B writes an executable file entitled “test.exe” to shared folder SF.
In this example, RASM code executing on Node A records the following events-every 60 minutes (e.g. at 1:30, at 2:30, at 3:30, etc.) Node A reads an executable file named “hourly test.exe” from shared folder SF and executes it.
At 7:56 PM, as part of the penetration testing, the remote computing device broadcasts a data-requesting command to Nodes A and B.
At 7:57 PM, Node A responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the status data and the events data of Node A, both of which are stored in volatile and/or non-volatile storage of Node A.
At 7:58 PM, Node B responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the status data and the events data of Node B, both of which are stored in volatile and/or non-volatile storage of Node B.
Analysis
At 7:59 PM, an analysis required for determining whether there is a method for an attacker to compromise the networked system is performed exclusively at the remote computing device (i.e. by executing code of the penetration testing software module). This analysis which is performed exclusively at the remote computing device is based upon input data comprising the following:
This analysis, which is performed exclusively at the remote computing device, is effective to conclude the following:
At 8 PM, the remote computing device sends an email to an email account belonging to the system administrator—the email includes information about the determined method for the attacker to compromise the networked system—see Conclusion “D” above. At this point, the penetration testing campaign, which began at 1 PM, has now concluded.
First observation about Example 2—(i) data about the status and events of Node A is never present on Node B; (ii) data about the status and events of Node B is never present on Node A; (iii) in order to determine the method for an attacker to compromise the networked system (i.e. to achieve the goal of the penetration testing campaign), status and events data from both nodes A and B are required.
Conclusion—Neither the RASM instance on Node A nor the RASM instance on Node B has enough information for determining on its own that Node A can be compromised by an attacker. Only after the information collected by both RASM instances is provided to the penetration testing software module in the remote computing device and analyzed together, it becomes possible to determine the existence of a method for compromising Node A.
Second observation about Example 2—No actual attack is ever performed for validating the vulnerability of Node A, and consequently there is no risk of actually compromising Node A by the testing. Instead, an analysis of actual internal data of some network nodes is performed and an evaluation of the results of the analysis is carried out. This analysis and evaluation are performed entirely at the remote computing device.
Networked System/Penetration Testing System for Example 3: The third non-limiting example relates to a networked system, where email clients are installed on a plurality of the nodes including a first node (“Node A”) and a second node (“Node B”).
This networked system is subjected to penetration testing. In this example, a penetration testing software module is installed on a remote computing device which is outside of the networked system—in this example, the remote computing device is deployed in the cloud relative to the networked system, and is in networked communication with the networked system. This particular architecture is illustrated in
Goal of the Penetration Testing Campaign for Example 3: In example 3, the goal of the penetration testing campaign is for an attacker to compromise Node B—only if the attacker succeeds to compromise Node B is the penetration testing campaign considered a success.
Timing of the Penetration Testing Campaign for Example 3:
In this third example, the penetration testing campaign commences at 9 AM on May 1, 2017 and concludes at 5 PM on May 2, 2017. Thus, in this example the “Commencement Time” is 9 AM on May 1, 2017. Prior to the Commencement Time (e.g. on Apr. 30, 2017), the RASM is pre-installed on each node of the networked system, including Node A and Node B.
During the thirty two-hour penetration testing campaign, processor(s) of Node A execute code of the RASM to “listen” to activity of Node A (e.g. including activity of the email client, link-clicking events, and other activities) and to store the Node-A-specific activity data of Node A on Node A. Similarly, processor(s) of Node B execute code of the RASM to “listen” to activity of Node B (e.g. including activity of the email client, link-clicking events, and other activities) to store the Node-B-specific activity data of Node B on Node B.
In particular, the RASM instance on Node A records that at 2 PM on May 1, the email client of Node A sends an email including an embedded link to Node B.
The RASM instance on Node B records that at 9:15 AM on May 2, the user of Node B opens the email using the email client of Node B and clicks on the embedded link.
Broadcast of Data-Requesting Command; Response to Data-Requesting Commands for Example 3
At 4:56 PM on May 2, as part of the penetration testing, the remote computing device broadcasts a data-requesting command to Nodes A and B.
At 4:57 PM on May 2, Node A responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the Node A-local data including the activity data specific to Node A.
At 4:58 PM on May 2, Node B responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the Node B-local data including the activity data specific to Node B.
Analysis
At 4:59 PM on May 2, an analysis required for determining whether there is a method for an attacker to compromise the networked system is performed exclusively at the remote computing device (i.e. by executing code of the penetration testing software module). This analysis which is performed exclusively at the remote computing device is based upon input data comprising the following:
This analysis, which is performed exclusively at the remote computing device, is effective to conclude the following:
Reporting
At 5 PM on May 2, the remote computing device sends an email to an email account belonging to the system administrator—the email includes information about the determined method for the attacker to compromise the networked system—see Conclusion “B” above. At this point, the penetration testing campaign, which began at 9 AM on May 1, has now concluded.
First observation about Example 3—(i) data about the status and events of Node A is never present on Node B; (ii) data about the status and events of Node B is never present on Node A; (iii) in order to determine the method for an attacker to compromise the networked system (i.e. to achieve the goal of the penetration testing campaign, which in this example is the compromising of Node B), status and events data from Node B are required. However, in this example events data from Node A are not necessarily required for determining the method for an attacker to compromise the networked system—once the remote computing device learns from Node B reports that the user of Node B does not refrain from clicking links embedded in emails received from Node A, it knows that Node B can be compromised if Node A is first compromised. Note that even though Node A may report events of sending emails with embedded links to Node B, the remote computing device may make its determination even without relying on those reported events. However, the remote computing device still needs to know that Node A can be compromised, for example by utilizing a known weakness in its version of operating system, and therefore some status reports from Node A may still be required for making the determination.
Conclusion—Neither the RASM instance on Node A nor the RASM instance on Node B has enough information for determining on its own that Node A can be compromised by an attacker. Even though the RASM instance of Node B can determine that Node B can be compromised if Node A is already compromised, it cannot know whether Node A can be compromised. Only when the information collected by both RASM instances is provided to the penetration testing software module in the remote computing device and analyzed together, it becomes possible to determine the existence of a method for compromising Node B.
Second observation about Example 3—As was the case in Examples 1 and 2, no actual attack is ever performed for validating the vulnerability of Node A, and consequently there is no risk of actually compromising Node A by the testing. Instead, an analysis of actual internal data of some network nodes is performed and an evaluation of the results of the analysis is carried out. This analysis and evaluation are performed entirely at the remote computing device.
A Discussion of
Embodiments of the invention relate to penetration testing of networked systems, such as that illustrated in
Embodiments of the invention are described below with reference to a networked system of an organization which contains multiple network nodes. The nodes of the networked system may be of different types—different computer hardware, different operating systems, different applications, different resources (printers, communications devices, etc.), etc.
In the example of
As noted above, any network node on which the RASM is installed is defined as a RASM-hosting network node. Thus, in the example of
As will be discussed below, in embodiments of the invention, PTSM 260 and RASM 270 cooperate to collectively subject the networked system 200 to penetration testing. In different embodiments of the invention, the penetration testing test may be performed according to the methods described in any of
For example, the penetration testing of the networked system 200 (i.e. performed by execution of PTSM 260 and RASM 270 on their respective hosts) may include both of the following operations: (i) collecting internal data by the RASM 270 of two or more network nodes of networked system 200 (e.g. each RASM 270 collects respective internal data of its RASM-hosting network node and transmits this internal data to the PTSM 260); and (ii) analyzing this data by the PTSM 260 to determine a method for the attacker to compromise the networked system 200.
The label 350 for the remote computing device refers to any remote computing device on which the PTSM 260 is installed. As noted above, for the example of
Thus, in the example of
Each RASM-hosting network node 300[i] executes code of RASM 270. Execution of code of RASM 270 by one or more processor(s) of each RASM-hosting network node 300[i]: (i) obtains respective internal data specific to RASM-hosting network node 300[i]; and (ii) respectively transmits the internal data to the remote computing device 350 (e.g. to PTSM 260 executing on remote computing device 350).
Thus, execution by RASM-hosting network node 300[1] of code of RASM 270: (i) obtains internal data specific to node 300[i]; (ii) transmits, to remote computing device 350, the internal data specific to node 300[1]. Execution by RASM-hosting network node 300[2] of code of RASM 270: (i) obtains internal data specific to node 300[2]; (ii) transmits, to remote computing device 350, the internal data specific to node 300[2]. And so on.
The internal data specific to RASM-hosting network node 300[i] (i.e. i is an index that runs between 1 and N) includes data about at least one of: A. an internal event of the RASM-hosting network node 300[i], B. an internal condition of the RASM-hosting network node 300[i], and C. an internal fact of the RASM-hosting network node 300[i].
In the specific example of
A Discussion of
First Rule—according to the first rule, all of the analyzing of the internal data for determining the method for the attacker to compromise the networked system is performed by the remote computing device rather than at the RASM-hosting nodes.
In some embodiments, this may be useful, for example, for minimizing the CPU burden of penetration testing imposed on each of the nodes of the penetration-tested networked system. Alternatively or additionally, this may be useful for updating—e.g. when new threats need to be added to a threat-database, there is no need to update this threat-database on each of the nodes. Instead, the threat-database may be updated only on the remote computing device.
Second Rule—in contrast to penetration testing systems in which the nodes of the networked system 200 are subjected to an actual attack, no network node of the networked system is ever put at risk of being compromised by the executing of the penetration test.
In embodiments of the invention, even though no network node is put at risk (“Second Rule”), thanks to the RASM 270 installed on a plurality of nodes 300[i] of the networked system, the penetration testing may be performed in a manner which accurately reflects the current status of the networked system.
Thus,
The method of
Step S201—step S201 includes obtaining, by each given RASM-hosting network node 300[i] (i.e. i is an index that runs between 1 and N) of one or more RASM-hosting network nodes of networked system 200, respective internal data of the given RASM-hosting network node 300[i]. The obtaining of step S201 comprises executing computer code of the RASM 270 by one or more processors of the given RASM-hosting network node 300[i].
The respective internal data (i.e. related to node 300[i]) includes data about at least one of: A. an internal event of the given RASM-hosting network node 300[i], B. an internal condition of the given RASM-hosting network node 300[i], and C. an internal fact of the given RASM-hosting network node 300[i].
In some embodiments, for at least one of the RASM-hosting network nodes, step S201 is performed in response to a data-requesting command received by the RASM-hosting network node from the remote computing device. In other embodiments, the RASM executing on the RASM-hosting network node may not require a data-requesting command—for example, the RASM may periodically (e.g. once every minute) update a log of internal data stored in volatile or non-volatile memory of the RASM-hosting network node.
Step S205—step S205 includes transmitting to the remote computing device 350 (e.g. 254 of
In some embodiments, for at least one of the RASM-hosting network nodes, step S205 is performed in response to a data-requesting command received by the RASM-hosting network node from the remote computing device. In other embodiments, the RASM executing on the RASM-hosting network node may not require a data-requesting command—for example, the RASM may be programmed to periodically (e.g. once every minute) transmit internal data stored in volatile or non-volatile memory of the RASM-hosting network node from the RASM-hosting network node to the remote computing device.
Step S209—step S209 includes analyzing, by the remote computing device 350 (e.g. 254 of
Step S213—step S213 includes reporting, by the penetration testing system the method for the attacker to compromise the networked system 200. The reporting may comprise executing computer code of the PTSM 260 by the one or more processors of the remote computing device 350 (e.g. 254 of
(i) causing a display device [NOT SHOWN—e.g. an LCD screen or any other electronic display device] to display a report including information about the determined method for the attacker to compromise the networked system,
(ii) recording the report including the information about the determined method for the attacker to compromise the networked system in a file, and
(iii) electronically transmitting the report including the information about the determined method for the attacker to compromise the networked system.
In different examples, the information about the determined method for the attacker to compromise the system may comprise one or more of: (i) information about a method for compromising one network node of the networked system (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
In some embodiments, each given RASM-hosting network node 300[i] of the one or more RASM-hosting network nodes performs at least one of step S201 and step S205 in response to a receiving (i.e. by the RASM-hosting network node 300[i]) of one or more data-requesting commands (e.g. see
Discussion of
Reference is now made to
Alternatively or additionally, and as shown in
According to the second rule, no network node of the networked system 200 is ever put at risk of being compromised by the executing of the penetration test.
In some embodiments, the method of
A Discussion of
In the example of
A Discussion of
It is noted that
Embodiments of the invention relate to a method of testing a networked system by a reconnaissance agent penetration testing system and include the following steps.
In a first step the penetration testing software module is installed on a remote computing device. The remote computing device may be a server located outside the tested networked system and owned by a different company than the organization owning the tested networked system. In such case the server is typically owned by a company which provides the testing as a service, including providing the penetration testing tool. Alternatively, the remote computing device may be a server located outside the tested networked system and owned by the organization owning the tested networked system or the remote computing device may be a cloud computing resource operating in the service of the organization owning the tested networked system. In such cases the testing is typically carried out by the organization owning the tested networked system, which may obtain the penetration testing tool from an external source or develop it in-house. Alternatively, the remote computing device may be a network node of the tested networked system.
In all the above alternatives, the remote computing device may be a dedicated computing device that is dedicated only to the penetration testing process or it may be a non-dedicated computing device that also performs other functionality in addition to the penetration testing process.
The penetration testing software module may be installed from scratch for each new penetration test, but typically it is persistently installed on the remote computing device and is not uninstalled or otherwise removed between tests.
In a second step, the reconnaissance agent is installed on multiple network nodes of the tested networked system. The network nodes on which the reconnaissance agent is installed are typically all the network nodes of the portion of the networked system that is tested in the current test. That portion may be the full tested networked system or only a subset of it. For example, in a large company the current test may be directed only to the sales organizational unit, in which case only network nodes belonging to the sales organizational unit get installed with the reconnaissance agent. The installation of the reconnaissance agent on a network node may be either persistent or non-persistent.
In a third step, initial conditions are set for the test. The initial conditions include an identification of which of the network nodes of the tested networked system should be assumed to be already compromised at the beginning of the test. The list of network nodes assumed to be already compromised at the beginning of the test may include zero, one or multiple network nodes. Other initial conditions for the test may also be set. For example, the type and capabilities of the attacker against whom the testing process should run the test, the goals of the attacker in his current attack, etc.
In a fourth step the reconnaissance function is started. This function collects data about the tested networked system, and optionally also other types of data such as business intelligence data about the organization owning the tested networked system. The collection of data about the tested networked system includes at least the following sub-steps.
In a first sub-step of the fourth step, at least one command is sent from the remote computing device to a group of one or more of the network nodes on which the reconnaissance agent is installed. The at least one command originates from the penetration testing software module and is received by the respective reconnaissance agent installed on each addressed network node. The at least one command instructs each of the receiving instances of the reconnaissance agent to collect internal data about the network node hosting it. The at least one command may also instruct each of the receiving instances of the reconnaissance agent to collect other data about the networked system, which is not internal data of the network node on which that instance of the reconnaissance agent is installed.
In a second sub-step of the fourth step, each instance of the reconnaissance agent that received the at least one command collects internal data of the network node on which it is installed, and possibly also other data about the tested networked system.
In a third sub-step of the fourth step, each network node that received the at least one command sends one or more messages to the remote computing device. The one or more messages sent by a network node originate in the corresponding reconnaissance agent installed on that network node. Each message contains data collected by the corresponding instance of the reconnaissance agent installed on the network node that sent it.
In a fifth step the one or more messages of all sending network nodes are received by the penetration testing software module.
In a sixth step, the attack function is started. The penetration testing software module determines, based on data contained in at least one of the messages received from one of the network nodes and based on the current state of the list of already compromised network nodes, whether a network node that was previously not included in the list of already compromised network nodes can now be compromised and should be added to the list. Typically, but not necessarily, the determination of which network node will be the next one to be added to the list is based on data contained in multiple messages received from multiple network nodes, and possibly on data contained in all messages received from all sending network nodes.
A network node is determined to be compromiseable by an attacker if the attack function determines that an attacker can successfully cause execution of an operation in the network node that is not allowed for the attacker by the rules defined by an administrator of the network node or can successfully cause execution of an operation in a software module of the network node that was not predicted by the vendor of the software module. The determination that a new network node can now be compromised is achieved without risking compromising the networked system. That is—the determination is achieved by simulation or by some other method of evaluation, for example by relying on one or more databases that store knowledge about known methods of compromising networks or computing devices. The determination does not attempt to verify an assessment that a given operation or sequence of operations may successfully compromise the network node by actually performing the operation or sequence of operations and then checking if the network node was compromised or not.
In a seventh step, the fourth, fifth and sixth steps are iteratively repeated. In each iteration one or more commands are sent to one or more network nodes, internal data is collected in the addressed network nodes, one or more messages are sent from each of the addressed network nodes to the remote computing device, and the penetration testing software module determines whether a new network node can be compromised and should be added to the list of already compromised networked nodes, all that done without risking compromising the tested networked system. The determination of which network node will be the next one to be added to the list may be based not only on messages received during the present iteration, but also on messages received during previous iterations. The iterations continue until one of: (i) the attack function determines that a security vulnerability exists in the tested networked system and that vulnerability might be utilized by an attacker for the disadvantage of the organization owning the tested networked system or of a user of one of the network nodes, or (ii) the penetration testing system gives up on finding a security vulnerability in the tested networked system.
In an eighth step, if the attack function had determined that a security vulnerability exists in the tested networked system, the reporting function generates at least one report based on the identified vulnerability and possibly also based on additional data prepared by the attack function. The at least one report contains at least one of (i) a list of network nodes which are vulnerable to attack. The list may include network nodes that are not directly subject to attack from outside the networked system, but can be compromised after other network nodes in their vicinity are compromised, (ii) a damage assessment including a list of resources in the networked system that could be damaged or exported out of the networked system by an attacker. The damaged or exported resources may be files that might be corrupted or deleted by an attacker, files that might be exported out of the networked system by an attacker, peripheral devices that might be shut-down by an attacker, etc. Additionally, a damage assessment may include a list of services provided to employees of the organization or to outside customers that might fail to operate, (iii) a trajectory (an ordered list of network nodes) across the networked system according to which an attacker could advance by using a network node that was already compromised as a basis for compromising the next network node in the list.
If the attack function had determined that multiple security vulnerabilities exist in the tested networked system, the reporting function generates at least one report according to the above for each vulnerability.
If the attack function had determined that no security vulnerability could be found, the reporting function generates a report saying so.
In a ninth step, any reports generated in the previous step are output by the reporting function. A report may be output to a screen of a network node, output to a screen of the remote computing device, sent by mail to one or more network nodes, sent by mail to the remote computing device, sent by mail to a predefined address, sent by any delivery method to any destination, or any combination of the above. Typically, the reports are addressed to the CISO of the organization owning the tested networked system or to its administrator.
Once the components of the penetration testing system are installed (see the first and second steps), the above other steps are carried out automatically. As explained in the third step above, a user who initiates a test does it by first defining parameters for the testing process—the portion of the network to be covered in the test, types of threats that have to be taken into account, initial network nodes that are assumed to be already compromised by the attacker when the test starts, etc. The rest of the penetration testing process then proceeds without human intervention until the report(s) are presented or sent out.
The proposed reconnaissance agent penetration testing system eliminates the deficiencies of the prior art penetration testing systems described above. The collection of internal data of network nodes is achieved by installing instances of the reconnaissance agent on network nodes of the tested networked system. The installation is done prior to starting the test and in consent and cooperation with the organization owning the tested networked system. The code of the reconnaissance agent is executed by a processor of each network node on which it is installed and therefore has direct access to all internal data of the hosting network node. If issues of access rights are raised for the reconnaissance agent then they can be resolved ahead of the test by the networked system's administrator by either allocating the reconnaissance agent higher access rights or deciding that certain internal data will not be used by the test.
The invention, in some embodiments, relates to penetration testing of a networked system, and specifically to detecting opportunistic vulnerabilities in a network node of a networked system.
The present invention provides a solution to the challenges discussed hereinabove with respect to the prior art, and specifically provides a penetration testing system that detects opportunistic vulnerabilities triggered by free events of a network node.
The proposed solution is an automatic penetration testing system that is capable of detecting opportunistic vulnerabilities, including ones associated with free events, and including ones associated with internal events. The solution is based on a reconnaissance client agent software module, which is installed in multiple nodes of the tested networked system and is capable of detecting and reporting events occurring in the hosting node. The events may be associated with opportunistic vulnerabilities, including when the events are free events and/or internal events. A block diagram of the penetration testing system of the proposed solution is shown and described hereinbelow with respect to
A reconnaissance client agent according to the present invention is a software module that may be installed on a network node and may be executed by a processor of that network node, for partially or fully implementing the reconnaissance function of a penetration test. The reconnaissance agent must be able, when executed by a processor of the network node in which it is installed, to collect data about at least some of the events occurring in the network node. Such events may be internal events of the network node, or messages sent out of the network node or received by the network node. The reconnaissance client agent may be able to collect data about all types of internal events of its hosting network node. Additionally, the reconnaissance client agent may be able to collect other types of data regarding its hosting network node. The reconnaissance client agent may additionally be able to collect data about other network nodes or about other components of a networked system containing its hosting network node. The reconnaissance client agent can communicate with a server executing penetration testing code and can report any collected data to the server. The collected data may include (but is not necessarily limited to) data about multiple types of events occurring in the hosting node or in the network nodes to which the hosting node is connected.
The reconnaissance client agent of the present invention is an opportunistic reconnaissance agent, capable of detecting and reporting events associated with opportunistic vulnerabilities, including when the events are internal to the network node in which they occur. In some embodiments, it is also a free event reconnaissance agent, capable of detecting and reporting not only events occurring in the hosting network node that have external causes or triggers, but also free events that occur asynchronously relative to external causes and do not depend on any external causes.
Examples of events triggered by external causes include a network node receiving a network message from another network node, transmission of a network message by a network node as an answer to a previously-received incoming network message, etc. Examples of free events not triggered by external causes include insertion and removal of a USB storage device (which are also examples of internal events), transmission of a network message as a result of a manual user command (as in the case of submitting a query to a web server following a user's manual input), transmission of a network message as a result of an internal and independent process of the network node (as in the case of initiating a WPAD message in order to access a URL required by a locally running application), etc.
A free event reconnaissance agent must be able to detect at least some occurrences of at least one type of free events occurring in the network node in which it is installed.
The penetration testing system of the present invention further includes a penetration testing software module installed on a remote computing device. The remote computing device may be a dedicated server that executes only functions of penetrations testing, but may also be a shared computer that also performs other functions in addition to penetration testing.
The remote computing device, and consequently the penetration testing software module installed thereon, receive reports sent by all the reconnaissance client agents installed in all the network nodes included in the test. The penetration testing software module then identifies in the reports (among other things) events that are known to be potentially or unconditionally associated with opportunistic vulnerabilities, based on pre-defined rules. For each such opportunistic vulnerability, the penetration testing software module then determines whether it might be used to advantage by an attacker under the current circumstances in the currently tested networked system.
Such determination can be achieved by one or more of the following methods:
i. Actually generating the potential attack (for example by responding to an ARP request message with a false ARP reply message containing a false MAC address) and checking if the target node is indeed compromised.
ii. Simulating the potential attack without attempting to compromise the tested networked system. This can be done by fully simulating the tested network with both hardware and software simulation, or by using only software simulation.
iii. Evaluating the results of the potential attack without simulating it. For example, the penetration testing server may employ a pre-defined rule according to which, if a hostile node (already compromised by the attacker) is able to capture a WPAD request from another node and the browser submitting the request is Internet Explorer version 8.0 or earlier, it can be assumed that the attack would succeed.
Following a determination that a potential opportunistic vulnerability is indeed exploitable by attackers of the tested networked system, the penetration testing software module reports its findings to the penetration testing system's operator and/or to the tested networked system's administrator and/or to the CISO of the organization owning the tested networked system, possibly as part of a comprehensive report containing findings about multiple vulnerabilities, whether opportunistic or not. For each reported opportunistic vulnerability, the reported findings include at least an identification of the opportunistic vulnerability. Typically, the reported findings also include an identification of the event associated with the opportunistic vulnerability (regardless if it is a free event or not), and some information about the method by which an attacker might use that event to compromise the networked system.
The opportunistic reconnaissance agent of the present invention may achieve detection of free events, whether internal or not, by closely monitoring certain components of its hosting network node that are known to be potential sources of such events. Non-limiting examples of such elements include:
Thus, the penetration testing system of the present invention is superior to prior art penetration testing systems in being able to detect a variety of opportunistic vulnerabilities, including opportunistic vulnerabilities associated with free events and opportunistic vulnerabilities associated with events that are internal events of their corresponding network nodes. This is achieved by using an opportunistic reconnaissance agent installed on the network nodes included in the test, which detects and reports events potentially or unconditionally associated with opportunistic vulnerabilities. The detected events may include free events potentially or unconditionally associated with opportunistic vulnerabilities, and may also include internal events of the node hosting the opportunistic reconnaissance agent potentially or unconditionally associated with opportunistic vulnerabilities.
The identified events that are potentially or unconditionally associated with opportunistic vulnerabilities are reported to the penetration testing software module, which determines whether, under the current circumstances, a given event is indeed associated with an opportunistic vulnerability. If so, the vulnerability, and in some embodiments also the event associated therewith, are reported by the penetration testing system.
It should be noted that the reconnaissance agent cannot always know whether an identified event is associated with an opportunistic vulnerability or not, as this might require knowledge not in the possession of the agent. For this reason, the reconnaissance agent of the present invention is said to detect “events potentially or unconditionally associated with opportunistic vulnerabilities”. For example, a reconnaissance agent detecting sending a query from its hosting node to a web server cannot tell whether this event is currently associated with an actual opportunistic vulnerability. This question depends on whether the server to which the query is addressed is currently compromised by the attacker or not. If the server is currently compromised, then the event is currently associated with a real vulnerability that can be exploited in the next occurrence of such a query event. Otherwise, if the server is currently not compromised, then the event is currently not associated with a real vulnerability.
Therefore, it is essential to have a separation between the detection of events and the identification of the currently relevant opportunistic vulnerabilities—the former is accomplished within the network nodes by the reconnaissance agents, while the latter is accomplished in the remote computing device by the penetration testing software module, that is in possession of the knowledge required for determining whether a potential vulnerability is indeed a real vulnerability under the current circumstances.
Obviously, in some cases, the reconnaissance agent can tell that a given event is associated with an opportunistic vulnerability, because such determination does not require extra knowledge not available to the agent (e.g. it is an unconditional association). In such a case the reconnaissance agent may have reported the associated vulnerability and not just the event. However, in order for all opportunistic vulnerabilities to be handled the same way, the reconnaissance agent of the proposed penetration testing system reports only the identified events for all events and leaves the determination of the relevant opportunistic vulnerabilities to the penetration testing software module.
Reference is now made to
As seen in
As seen, the network node 3202 includes one or more processors 3206, illustrated in
A system for discovering and reporting a security vulnerability of the networked system 3200 includes a reconnaissance agent storage medium 3212, and a penetration testing storage medium 3214.
The reconnaissance agent storage medium 3212 may be a non-transitory computer readable storage medium and includes instructions to be executed by processor(s) 3206 of the network node 3202 on which the reconnaissance agent in installed and which is in electronic communication with remote computing device 3208.
Specifically, reconnaissance agent storage medium 3212 has stored:
instructions 3216 to detect at least some free events occurring in network node 3202; and instructions 3218 to transmit data about occurrences of the detected free events to remote computing device 3208.
In some embodiments, the instructions 3216 include instructions to detect at least some internal events occurring in network node 3202.
The penetration testing storage medium 3214 may be a non-transitory computer readable storage medium, and includes instructions to be executed by processor(s) 3210 of remote computing device 3208. Specifically, penetration testing storage medium 3214 has stored:
instructions 3220 to receive a message from network node 3202, the message notifying remote computing device 3208 of a specific occurrence of a specific free event in network node 3202; and
instructions 3222 to identify, based on the received message, a specific opportunistic vulnerability with which the specific free event is associated.
In some embodiment, the specific free event is one of:
In some embodiments, the instructions 3222 to identify a specific opportunistic vulnerability, include:
instructions 3222a to identify a method for an attacker to compromise network node 3202;
instructions 3222b to identify that the method to compromise would be available to the attacker at or after a future occurrence of the specific free event in network node 3202; and
instructions 3222c to report the specific opportunistic vulnerability, including at least one of: (i) instructions to cause a display device to display information about the specific opportunistic vulnerability, (ii) instructions to store the information about the specific opportunistic vulnerability in a file, and (iii) instructions to electronically transmit the information about the specific opportunistic vulnerability.
In some embodiments, the penetration testing is an actual attack penetration testing, and instructions 3222 include instructions to execute the method for an attacker to compromise network node 3202, so as to validate that network node 3202 is compromised by this method.
In other embodiments, the penetration testing is a simulated penetration testing, and instructions 3222 include instructions to simulate or otherwise evaluate the method for an attacker to compromise network node 3202, so as to validate that network node 3202 would be compromised by this method, without attempting to actually compromise network node 3202.
Reference is now additionally made to
At step 3300, the remote computing device 3208, and specifically the penetration testing software module installed therein, receives a message from network node 3202, and specifically from the reconnaissance agent software module installed thereon, for example by carrying out instructions 3220 of penetration testing memory 3214. The message notifies the penetration testing module of a specific occurrence of a specific free event in the network node 3202, for example as detected by carrying out instructions 3216 and transmitted by carrying out instructions 3218 stored in reconnaissance agent memory 3212.
In some embodiments, the specific free event is an internal event of network node 3202.
In some embodiments, the specific free event includes sending a network message out of network node 3202. Such sending may be caused by a command from a user of network node 3202, by an operating system of network node 3202, or by a software application installed on network node 3202.
As discussed hereinabove, such sending of a network message out of network node 3202 may include submission of a query from the network node 3202 to a server, sending an ARP request message out of network node 3202, or sending a WPAD message out of network node 3202.
In some embodiments, the specific free event includes mounting a storage volume onto network node 3202.
In some embodiments, the specific free event includes physically attaching a physical device to network node 3202. The physical device may be a storage device, such as attaching a removable USB storage device to a USB port of the network node 3202, and may be a communication device attached to a suitable port of network node 3202.
In some embodiments, the message is sent by the reconnaissance agent software module of network node 3202, immediately after and in response to detection of the specific occurrence of the specific free event in network mode 3202.
For the purposes of the present application and claims, the term “immediately after” relates to sending of the message being initiated no later than 100 milliseconds from completing the detection. If delays occur due to the communication hardware or bandwidth limits of the system, the message is still considered sent immediately after detection of the specific occurrence of the free event, even if the message is received in the remote computing device several minutes after such detection.
In some embodiments, the message is sent by the reconnaissance agent software module of network node 3202, and is received by remote computing device 3208, according to a schedule, that is independent of a time of occurrence of the specific free event, and of a time of detection of the specific occurrence of the free event by the reconnaissance agent software module.
In some embodiments, the schedule may be a periodic schedule, for example sending messages once an hour relating to all free events occurring and/or detected by the reconnaissance agent module during the passing hour.
In other embodiments, the schedule may be non periodic, or intermittent. For example, the schedule may dictate that messages are sent every time a user logs into the workstation (in addition to reporting every round hour), or that messages are sent at predetermined times that are not at equal durations from one another (e.g. reporting more frequently during working hours).
At step 3302, the penetration testing software module installed on remote computing device 3208 identifies, based on the received message, a specific opportunistic vulnerability with which the specific free event specified in the message is associated.
In some embodiments, such identification includes:
At step 3304, identifying a method for an attacker to compromise network node 3202, for example by carrying out instructions 3222a; and
At step 3306, identifying that such method, identified in step 3304, would be available for an attacker at, or after, a future occurrence of the specific free event in network node 3202, for example by carrying out instructions 3222b.
In some embodiments, in which the penetration testing system is an actual attack penetration testing system, step 3306 includes executing the method identified in step 3304, so as to validate that network node 3202 is compromised by this method.
In some embodiments, in which the penetration testing system is a simulating penetration testing system, step 3306 includes validating that network node 3202 would be compromised by the method identified in step 3304, by simulating or otherwise evaluating this method, without attempting to actually compromise the network node.
Subsequently, at step 3308, the penetration testing software module installed on remote computing device 3208 reports the specific opportunistic vulnerability, by causing a display device to display a report including information about the specific opportunistic vulnerability, storing the report including information about the specific opportunistic vulnerability in a file, and/or electronically transmitting the report including information about the specific opportunistic vulnerability.
Embodiments of the invention relate to penetration testing of networked systems according to the flow-charts of
Before discussing the flow-chart of
A Discussion of
Embodiments of the invention are described below with reference to a networked system of an organization which contains multiple network nodes. The nodes of the networked system may be of different types—different computer hardware, different operating systems, different applications, different resources (printers, communications devices, etc.), etc.
In the example of
As noted above, any network node on which the RASM is installed is defined as a RASM-hosting network node. Thus, in the example of
As will be discussed below, in embodiments of the invention, PTSM 260 and RASM 270 cooperate to collectively subject the networked system 200 to penetration testing. In different embodiments of the invention, the penetration testing test may be performed according to the methods described in any of
For example, the penetration testing of the networked system 200 (i.e. performed by execution of PTSM 260 and RASM 270 on their respective hosts) may include both of the following operations: (i) collecting internal data by the RASM 270 of two or more network nodes of networked system 200 (e.g. each instance of RASM 270 collects respective internal data of its hosting network node and transmits this internal data to the PTSM 260); and (ii) analyzing this data by the PTSM 260 to determine a method for the attacker to compromise the networked system 200.
The label 350 for the remote computing device refers to any remote computing device on which the PTSM 260 is installed. As noted above, for the example of
Thus, in the example of
Each RASM-hosting network node 300[i] executes code of RASM 270. Execution of code of RASM 270 by one or more processor(s) of each RASM-hosting network node 300[i]: (i) obtains respective internal data specific to RASM-hosting network node 300[i]; and (ii) respectively transmits the internal data to the remote computing device 350 (e.g. to PTSM 260 executing on remote computing device 350).
Thus, execution by RASM-hosting network node 300[1] of code of RASM 270: (i) obtains internal data specific to node 300[1]; (ii) transmits, to remote computing device 350, the internal data specific to node 300[1]. Execution by RASM-hosting network node 300[2] of code of RASM 270: (i) obtains internal data specific to node 300[2]; (ii) transmits, to remote computing device 350, the internal data specific to node 300[2]. And so on.
The internal data specific to RASM-hosting network node 300[i] (i.e. i is an index that runs between 1 and N) includes data about at least one of: A. an internal event of the RASM-hosting network node 300[i], B. an internal condition of the RASM-hosting network node 300[i], and C. an internal fact of the RASM-hosting network node 300[i].
In the specific example of
A Discussion of
In step S4101 of
Steps S4201 and S4205 of the method of
48 are performed at the remote computing device—e.g. computing device 254 of
LEFT HAND SIDE OF
Step S4201 includes obtaining, by each given RASM-hosting network node 300[i] (i.e. i is an index that runs between 1 and N) of one or more RASM-hosting network nodes of networked system 200, respective internal data of the given RASM-hosting network node 300[i]. The obtaining of step S4201 comprises executing computer code of the RASM 270 by one or more processors of the given RASM-hosting network node 300[i].
The respective internal data (i.e. related to node 300[i]) includes data about at least one of: A. an internal event of the given RASM-hosting network node 300[i], B. an internal condition of the given RASM-hosting network node 300[i], and C. an internal fact of the given RASM-hosting network node 300[i].
In some embodiments, for at least one of the RASM-hosting network nodes, step S4201 is performed in response to a data-requesting command received by the RASM-hosting network node from the remote computing device. In other embodiments, the RASM executing on the RASM-hosting network node may not require a data-requesting command—for example, the RASM may periodically (e.g. once every minute) update a log of internal data stored in volatile or non-volatile memory of the RASM-hosting network node.
Step S4205 includes transmitting to the remote computing device 350 (e.g. 254 of
In some embodiments, for at least one of the RASM-hosting network nodes, step S4205 is performed in response to a data-requesting command received by the RASM-hosting network node from the remote computing device. In other embodiments, the RASM executing on the RASM-hosting network node may not require a data-requesting command—for example, the RASM may be programmed to periodically (e.g. once every minute) transmit internal data stored in volatile or non-volatile memory of the RASM-hosting network node from the RASM-hosting network node to the remote computing device.
RIGHT HAND SIDE OF
As noted above, steps S4305, S4309, S4313, S4317, S4321 and S4325 of
All of these steps are performed after the installation S4101 of at the RASM on at least some of the network nodes and after initiating the penetration testing campaign. Furthermore, as discussed below, the validating of step S4313 is performed in a manner that does not expose the target node (i.e. selected in step S4301) to a risk of being compromised.
Thus, in step S4301, a target network node is selected—i.e. a target node of the networked system on which the RASM is installed. It is this target node which is the candidate to be compromised in the next iteration of the penetration testing campaign and for which the subsequent validating step S4313 is performed. Typically, the selection of the target network node is done according to a lateral movement strategy employed in the penetration testing campaign. See the definition of “lateral movement strategy” in the Definitions Section.
Alternatively, the selection of the target node can be performed in another manner—for example, if a security alert is published that a recently unleashed computer virus attacks only nodes that run a particular version of Linux®, one such node might be selected in step S4301 to be the next target node.
In one particular non-limiting example, in the first iteration of the penetration testing campaign (when no network nodes are known to be compromisable) step S4301 is performed to select a network node having a direct connection to the outside world—e.g. N101 of
In another non-limiting example, when an iteration of the penetration testing campaign is performed after some network nodes are already known to be compromisable, step S4301 is performed to select a network node that has a direct connection to one of the compromisable nodes.
In step S4305, a potential vulnerability is selected based on the target node. Thus, in one example, if the target node selected in step S4301 happens to be a Windows XP® node, then a vulnerability specific to MacOs® nodes would not be selected but a vulnerability specific to any Windows® node (or to Windows XP® in particular) may be selected.
In step S4309, internal data of the target network node is received (e.g. data obtained in step S4201 and transmitted in step S4205) at the remote computing device and from the RASM installed on the target network node.
Performing step S4309 subsequent to step S4305 (FIRST OPTION)—Optionally, step S4309 is performed subsequent to the selecting of the potential vulnerability in step S4305. For example, the RASM on each node may not necessarily be completely autonomous and may perform steps S4201 and/or S4205 according to a data-requesting command. Performing step S4309 subsequent to step S4305 provides (i) the ability to the remote computing device to send such a data-requesting command specifically to the node selected in step S4301 (and not, for example, broadcasting the data-requesting command to all nodes of networked system 200)—this may be useful for minimizing consumption of network resources; and (ii) to customize such a data-requesting command to request specific internal-data (i.e. from the target node) that is particularly relevant to the selected potential vulnerability
The skilled artisan is directed below to “Use Case Example 1.”
One potential advantage of this FIRST OPTION is that it may reduce consumption of (i) network resources and/or CPU resources at the remote computing device and/or at node(s) of system 200.
Performing step S4309 before step S4305 (SECOND OPTION)—Alternatively, the timing of step S4309 may not depend on that of step S4305—step S4309 may even be performed before step S4305 and may even be performed before step S4301. For example, RASM instances may perform steps S4201 and/or S4205 without requiring any data-requesting command from the remote computing device. One potential advantage of this SECOND OPTION is that it might simplify the software architecture of PTSM 260.
The skilled artisan is directed below to the section entitled “Use Case Example 2.”
A discussion of steps S4313-S4325 is now provided.
In step S4313, the remote computing device validates that the target network node (i.e. selected in step S4301) could be successfully compromised using the selected potential vulnerability (i.e. selected in step S4305). The validating is based on the internal data of the target node received in step S4309, and is carried out in a manner which does not expose the target network node to a risk of being compromised.
It is noted that in
In step S4317, a method for an attacker to compromise the target network node (i.e. the target node selected in step S4301) is determined, by the remote computing device, based on the potential vulnerability (i.e. the vulnerability selected in step S4305).
In step S4321, a security vulnerability of the networked system is determined, by the remote computing device, based on the method (i.e. determined in step S4317) for an attacker to compromise the target network node.
In step S4325 this security vulnerability of the networked system is reported by the penetration testing system. The reporting may comprise at least one of:
(i) causing a display device [NOT SHOWN—e.g. an LCD screen or any other electronic display device] to display a report including information about the determined security vulnerability of the networked system,
(ii) recording the report including the information about the determined security vulnerability of the networked system in a file, and
(iii) electronically transmitting the report including the information about the determined security vulnerability of the networked system.
In different examples, the information about the determined security vulnerability of the networked system may comprise one or more of: (i) information about a method for compromising one network node of the networked system (ii) information about one or more network nodes of the networked system which are vulnerable to attack, (iii) information about one or more resources of the networked system that could be damaged or exported out of the networked system by an attacker, and (iv) information about an ordered list of network nodes of the networked system, wherein an attacker could use a specific network node in said ordered list that is already compromised as a basis for compromising another network node that immediately follows said specific network node in said ordered list.
Although not illustrated in
In embodiments of the invention, all of steps S4305, S4309, S4313, S4317, S4321 and S4325 are performed by executing computer code of the PSTM by one or more processors of the remote computing device.
Logic of S4305; Logic of S4313
For each of the following use-cases, each of steps S4305 and S4313 are performed at the remote computing device. In embodiments of the invention, the logic for implemented steps S4305 and S4313 may be code-based—e.g. hardcoded into code of the penetration testing software module (PTSM) 260. Alternatively, the logic may be rule-based and implemented as data (e.g. as rules in a configuration file or in a relational database) accessible by PTSM 260. Alternatively, the logic may be implemented in any other manner.
For step S4305, a vulnerability is a “potential vulnerability that may compromise the target network node” if and only the vulnerability is determined to compromise the target network node if certain conditions are satisfied (e.g. the vulnerability is associated with a rule that specifies the certain conditions). If information about the target node shows that the certain conditions are currently satisfied, then the potential vulnerability is known to be an actual vulnerability of the target network node under the current circumstances. The identification of the potential vulnerability that should be checked for the target network node selected in step S4301 is performed by step S4305, while the validation that the conditions associated with the potential vulnerability are currently satisfied, and consequently that the vulnerability could successfully compromise the target network node, is performed by step S4313.
Both step S4305 and step S4313 are carried out by PTSM 260, which is stored in remote computing device 252 and executed by processor(s) thereof.
Use Case Example 1I—Bad 7 Trojan
The skilled artisan is referred to the Bad 7 Trojan example, discussed above in the ‘Problem to Solve’ section.
In Use Case Example 1, there are hundreds of potential vulnerabilities which may be investigated during penetration testing, but for simplicity only three of them will be mentioned here:
(i) Macintosh Vulnerability 843, which can only compromise nodes running MacOS® (and not all MacOS® nodes);
(ii) XP Vulnerability 228, which can only compromise nodes running Windows XP® (and not all Windows XP® nodes); and
(iii) Bad 7 Trojan, which can only compromise nodes running Windows 7® (and not all Windows 7® nodes).
In Use Case Example 1, the networked system 200 of
In Use Case Example 1, two databases reside on the remote computing device 252:
A) A node OS database describing for each node, the OS type (i.e. Windows® vs. Android® vs. MacOS® vs. Linux®) and version (i.e. Windows 7® vs. Windows 8® vs. Windows 10®) executing on the node;
B) A vulnerabilities database (VDB)—for example, the vulnerabilities database may be periodically updated by the vendor of the penetration testing system according to security updates/alerts (e.g. when a certain new virus or Trojan or phishing technique becomes known to the public).
The Nodes OS database has 16 entries, one each of nodes N101-N109, N111-N117, as follows:
Among the hundreds of entries, there are the following 3 entries in the vulnerabilities database: (i) one entry specifically for Macintosh Vulnerability 843; (ii) one entry specifically for XP Vulnerability 228; and (iii) one entry specifically for Bad 7 Trojan. For brevity, only the entry for the Bad 7 Trojan vulnerability is now discussed.
The Bad 7 Trojan vulnerability defines both LOGIC of S4305 and LOGIC of S4313—in this non-limiting example, LOGIC of S4305 and LOGIC of S4313 are hard-coded into penetration testing software module (PTSM) 260 as follows:
I. LOGIC of S4305—Bad 7 Trojan is a potential vulnerability that may compromise the target network node if and only if the target node is a Windows® 7 node—in this example, Bad 7 Trojan is a potential vulnerability that may compromise the target network node only for nodes N103, N107, N113 and N117. Only if one of these four nodes is selected in step S4301 may the Bad 7 Trojan vulnerability be selected in step S4305;
II. LOGIC of S4313—a target node is deemed to be a node that could be successfully compromised by using the Bad 7 Trojan vulnerability (i.e. in step S4313) if and only all of the following conditions are true (in addition to the Windows 7 condition that was already checked in step S4305):
A. A given Microsoft® security patch must not been installed on the node;
B. Port XYZ is open to receive incoming network messages;
In this particular example, instances of the RASM are preinstalled on all of nodes N101-N109 and N111-N117 on Dec. 18, 2017 at 9 AM. Penetration testing begins at Dec. 18, 2017 at 10 AM.
In this example, RASM instances on each of nodes N101-N109 and N111-N117 (i.e. whose code is executed thereof) perform step S4201 on all 16 of these nodes, no earlier than 10 AM.
In step S4301 (performed at 11:01 AM) the remote computing device selects a node having a direct connection to the outside world—for example node N103.
A lookup of the Nodes OS database indicates that this node is a Windows® 7 node—the only relevant entry in the vulnerabilities database (VDB) is the Bad 7 Trojan Vulnerability entry.
Because Node N103 is a Windows® 7 node, the potential vulnerability selected (i.e. according to LOGIC of S4305) in step S4305 is the Bad 7 Trojan Vulnerability. Step S4305 is carried out at 11:02 AM.
In this particular example, before carrying out step S4309 but subsequent to carrying out step S4305, a single data-request command is sent from remote device 252 to node N103 at 11:03 AM.
In this particular iteration of the penetration testing campaign of this particular example, step S4205 is performed only in node N103.
In step S4205 as performed by node N103, the following data is transmitted at 11:04 AM from node N103 to remote computing device 252:
Other data may also be transmitted from node N103 to remote computing device 252. All of the transmitted data is received at 11:04 AM at remote device 252 in step S4309.
Thus, in this example, both of steps S4205 and S4309 are performed at 11:04 AM.
In this use case example, it turns out that: (i) the given security patch is not installed in node N103; and (ii) port XYZ of node N103 is open to use at the current time.
Therefore, in step S4313, when the entry for the Bad 7 Trojan Vulnerability of the VDB is applied to the data for node N103 received in step S4309, the result is YES (i.e. the vulnerability would succeed in compromising node N103)—this is according to LOGIC of S4313.
In step S4317 a method for an attacker to compromise the target network node N103 is determined to be sending to port XYZ of node N103 a specific network message causing node N103 to download (i.e. from a known repository of Bad 7 Trojan) and execute the Bad 7 Trojan malicious code.
Subsequently, in step S4321 it is determined that networked system 200 suffers from a security vulnerability that includes the use of Bad 7 Trojan to compromise node N103. It should be emphasized that the discovery that node N103 is vulnerable to the Bad 7 Trojan may be just one step in the discovery of the vulnerability of networked system 200. For example, the goal of the penetration testing campaign may be to compromise node N116 (which may be the CEO's computer), and the compromising of node N103 is just a necessary first step for the attacker to reach node N116. The other steps of the method to compromise the networked system by reaching node N116 are each determined using another iteration of the campaign, where in each iteration a new target node is selected, then a new potential vulnerability for compromising that new node is selected, and then the new potential vulnerability is validated to be able to compromise the new target node under the current conditions.
In step S4325, an email message is sent to the system administrator's mobile phone with the following text “Campaign detected a security vulnerability. For more details see the reports screen.”
Additional Comment About Use Case Example 1—because step S4309 is performed after step S4301, it is possible for the remote computing device to target only node N103 with a data-requesting command (as noted above, this command was sent at 11:03 AM). This may obviate the need to broadcast such a command to multiple nodes, reducing consumption of network resources. This may also obviate the need to consume CPU cycles (i.e. for the purpose of penetration testing) at other nodes other than node N103.
Second Additional Comment About Use Case Example 1—because step S4309 is performed after step S4305, it is possible to customize the data-requesting command sent at 11:03 AM to only request data relevant to the Bad 7 Trojan Vulnerability. This may reduce consumption of CPU resources of Node N103 and/or network resources.
Similar to Use Case Example 1, in Use Case Example 2, the networked system 200 of
In Use Case Example 2, there are hundreds of potential vulnerabilities which may be investigated during penetration testing, but for simplicity only one of them will be mentioned here: the PPFSF vulnerability.
It is known in the art that some nodes can access files residing in a shared folder that is accessible to multiple nodes. The shared folder may physically reside outside of a given network node and is accessible to it either via a LAN or a WAN. Sometimes, these files may be poisoned—i.e. include malicious code. Generally speaking, one technique for attacking well-defended nodes may relate to exploiting such vulnerability—even if a hostile attacker is unable to directly upload malicious code to a node, s/he may succeed in achieving this aim indirectly.
This may be achieved as follows: (i) first, the hostile attacker may compromise a node that is poorly-defended (i.e. a node where the latest security patches have not been installed) that hosts (or at least has write access to) a shared folder from which the well-defended node is known to execute files. Because the node is poorly defended, the compromising has a good chance of success; (ii) then the hostile attacker may cause the compromised node to write a malicious executable file to the shared folder; and (iii) subsequently, even a well-defended node may be compromised if it executes files read from the shared folder.
Potentially Poisoned Executable-File vulnerability in a shared folder—The next example relates to the “potentially-poisoned file in a shared folder” (PPFSF) vulnerability—i.e. a vulnerability that can compromise a node which executes, via LAN or WAN, executable files that reside in a shared folder.
Networked System/Penetration Testing System for Example 2: The networked system 200 of the second non-limiting example has all of the following properties: (i) the networked system comprises a plurality of laptop or desktop work-stations, each of which is a network node; (ii) some of the network nodes have access to a shared folder SF which resides on a file-server on one of the nodes (“Node S”); (iii) some of the network nodes have read-only access to the shared folder SF on Node S—i.e. the nodes with read-only access can read files from the shared folder SF but cannot modify these files, and cannot add files to the shared folder SF; (iv) some nodes have both read and write privileges to shared folder SF—these nodes can modify existing files within the shared folder SF and can add new files to shared folder SF, in addition to having read access to shared folder SF; (v) nodes with read-only access and nodes that have both read and write privileges are “nodes having at least read privileges”; (vi) nodes having at least read privileges of the folder can import and execute.exe executable files from the shared folder SF, and can import and open MS-Word® files that contain auto-executing macros from the shared folder SF—i.e. content or macros of these files are read into local memory of each such node and executed from the local memory; (vii) a first work-station/node (“Node A”) is “strongly defended”—on this work-station/node the most recent version of Windows® is installed including all of the latest security patches; (viii) a second work-station/node (“Node B”) is “weakly defended”—on this node, a much older version of Window has been installed, and security patches have not been installed for over two years; (ix) Node A has read-only access to shared folder SF; (x) Node B has both read and write privileges to shared folder SF.
This networked system is subjected to penetration testing.
In this example, (i) Node A is N108 (for the present example, “Node A” and N108 are interchangeable); (ii) Node S is N113 (for the present example, “Node S” and N113 are interchangeable) and (iii) Node B is N117 (for the present example, “Node B” and N117 are interchangeable).
In this networked system, access privileges to shared folder SF are controlled by a system administrator, and are published in a table entitled “Access Privilege Table for SF on N113 (APT-SF-N113)”—the table is freely available to any node of system 200, and to any external node having a password—in this case, the password (i.e. for reading the table) is provided to the remote computing device 252.
The content of table APT-SF-N113 is as follows:
In this example, there is only a single shared folder within the entirety of networked system 200.
In this example, the following rules are enforced (e.g. hardcoded into penetration testing software module (PTSM) 260) on the remote device:
I. LOGIC of S4305—in step S4305 (discussed below), the PPFSF vulnerability is a potential vulnerability that may compromise the target network node if and only if the target node (i) has at least read access via the LAN to a given shared folder on another node (the ‘folder-hosting node’); (ii) an additional node other than the target node (which may be the folder-hosting node) has write access to the given shared folder;
II. LOGIC of S4313—a target node is deemed as a node that could be successfully compromised by using the PPFSF potential vulnerability (i.e. in step S4313) if and only if all of the following conditions are true:
Timing of steps S4201 and S4205 of Penetration Testing Campaign for Example 2:
In this second example, the penetration testing campaign commences at 1 PM on Apr. 21, 2017. Thus, in this example the “Commencement Time” is 1 PM on Apr. 21, 2017. Prior to the Commencement Time, the RASM is pre-installed on each node of the networked system, including Node A which is strongly-defended and Node B which is weakly-defended.
Immediately after the Commencement Time, the table APT-SF-N113 is read by the PTSM—in this example, the content of APT-SF-N113 never changes during the penetration testing campaign.
During the ten-hour penetration testing campaign, processor(s) of Node A execute (i.e. in step S4201) code of the RASM both to ascertain status data of Node A and to “listen” to events which occur at Node A. The status data may include: (i) a version of an operating system executing on Node A; (ii) which security patches have been installed on Node A. The events may include execution of an executable file by processors of Node A, opening of an MS-word® file or an MS-excel® file (applications which support macros) on Node A, mouse and keyboard events on Node A, reading a file from the shared folder SF (i.e. on Node S) into Node A, execution of a file read from the shared folder SF into Node A.
Similarly, processor(s) of Node B (i.e. in step S4201) execute code of the RASM both to ascertain status data of Node B and to “listen” to events which occur at Node B.
In this example, at 1:01 PM Node A (i.e. by executing code of the RASM) transmits (i.e. in step S4205) to the remote computing device “Windows version/update data” for Node A—the Windows version/update data transmitted from Node A indicates that the most recent version of Windows® including all of the latest security patches is installed on Node A.
In this example, at 1:02 PM Node B (i.e. by executing code of the RASM) transmits (i.e. in step S4205) to the remote computing device “Windows version/update data” for Node B—the Windows® version/update data transmitted from Node B indicates that (i) an older version of Windows® is installed on Node B and (ii) the most recent security patch installed on Node B is over two years old.
In this example, RASM code executing on Node A records the following events i.e. recorded in step S4201 and transmitted in step S4205)—every 60 minutes (e.g. at 1:30, at 2:30, at 3:30, etc.) Node A reads an executable file named “hourly test.exe” from shared folder SF and executes it.
Broadcast of Data-Requesting Command; Response to Data-Requesting Commands for Example 2
At 7:56 PM, as part of the penetration testing, the remote computing device broadcasts a data-requesting command to all nodes, including Nodes A and B.
At 7:57 PM, Node A responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the status data and the events data of Node A, both of which are stored in volatile and/or non-volatile storage of Node A.
At 7:58 PM, Node B responds to this broadcast data-requesting command by transmitting (i.e. via the Internet), to the remote computing device, the status data and the events data of Node B, both of which are stored in volatile and/or non-volatile storage of Node B.
A discussion of steps S4301-S4325, each performed by the remote computing device 252, is now presented.
At 7:59 PM, in step S4309, the remote computing device receives the following data:
A) status data and the events data of Node A, both of which were transmitted at 7:57 PM from Node A, as mentioned above; and
B) status data and the events data of Node B, both of which were transmitted at 7:58 PM from Node B, as mentioned above;
In step S4301, Node A (N108) is selected from the plurality of nodes of system 200. In one non-limiting example, Node A is selected because it was determined to be a well-defended node, which might indicate it contains important assets.
In step S4305, performed at 8:02 PM, the PPFSF vulnerability is selected (i.e. according to LOGIC of S4305) as a potential vulnerability for compromising Node A. The selection of the PPFSF vulnerability is based on the following:
(i) Based on the APT-SF-N113 table, Node A has read access to shared folder SF.
(ii) Based on the APT-SF-N113 table, Node B has write access to shared folder SF.
(iii) According to the current state of the penetration testing campaign, Node B is already determined to be compromisable.
The above findings indicate that the PPFSF vulnerability is a potential vulnerability for compromising Node A. It is only a “potential” vulnerability, because it is still not known at this stage whether the condition of Node A reading and executing executable files from shared folder SF is satisfied.
In step S4313, performed at 8:05 PM, LOGIC of S4313 at the remote computing device, analyzes the input data received at 7:59 PM in step S4309 in order to check whether the PPFSF vulnerability can compromise Node A under the current circumstances. The input data includes the reporting from Node A that an executable file from shared folder SF is periodically retrieved and executed by Node A.
This analysis, which is performed exclusively at the remote computing device, is effective to conclude that Node A could be compromised by the PPFSF vulnerability, because Node B (which is already determined to be compromisable) can replace the executable file periodically executed by Node A by a poisoned version, that when executed by Node A would result in Node A being compromised.
In step S4317 performed at 8:06 PM, the penetration testing software module can now determine that there is a method for an attacker to compromise the target network node—i.e. N108 (Node A). The method to compromise is as follows: (i) take advantage of the fact that Node B is already found to be compromisable, (ii) get Node B to download a poisoned executable file from the attacker's website and store it on Node B, (iii) In the next time of detecting that Node B writes into the shared folder SF, get Node B to replace the existing executable file “hourly test.exe” in the shared folder SF by the poisoned file, leaving a poisoned “hourly-test.exe” file in the shared folder SF.
Subsequently, in step S4321 it is determined that networked system 200 suffers from a security vulnerability that includes the use of the PPFSF vulnerability to compromise Node A. It should be emphasized that the discovery that Node A is vulnerable to the PPFSF vulnerability may be just one step in the discovery of the vulnerability of networked system 200. For example, the goal of the penetration testing campaign may be to compromise node N116 (which may be the CEO's computer), and the compromising of Node A is just a necessary first step for the attacker to reach node N116. The other steps of the method to compromise the networked system by reaching node N116 are each determined using another iteration of the campaign, where in each iteration a new target node is selected, then a new potential vulnerability for compromising that new node is selected, and then the new potential vulnerability is validated to be able to compromise the new target node under the current conditions.
In step S4325, an email message is sent to the system adminstrator's mobile phone with the following text “Campaign detected a security vulnerability. For more details see the reports screen.”
Additional Comments About Use Case Example 2:
because step S4309 is performed before step S4301, reports are obtained by the remote computing device from all network nodes, and not only from Node A, which at the time of performing step S4309 is not yet selected to be the next target node.
because step S4309 is performed before step S4305, it is not possible to customize data-requesting commands that trigger data reports from network nodes, as at the time of performing step S4309 it is not yet known which vulnerability will be the selected potential vulnerability.
A discussion of
In the example of
For example, PTSM 290 may run on a virtual machine installed on top of the Operating System of node N114. Optionally, no RASM 270 is installed on the node N114.
Additional Discussion of Data Collection By Reconnaissance Client Agents
The proposed solution is a penetration testing system that uses a reconnaissance client agent that is installed in the network nodes of the tested networked system and reports (among other things) current internal data of its hosting network nodes. However, unlike in the '057 solution, in the proposed solution the validation of the success of a potential vulnerability in compromising a target network node is decided by code executing in the central server managing the penetration testing process and not by code of the agent executing in the target network node.
Co-pending U.S. patent application Ser. Nos. 15/911,168 and 15/874,429 disclose an architecture of an automated penetration testing system that is using reconnaissance client agents able to collect internal data of their hosting network nodes, as is required according to embodiments of the invention.
As already explained, a reconnaissance client agent is a software module designed to be installed in nodes of the tested networked system. Such reconnaissance client agent is able to communicate with a central server managing the testing process and executing the penetration testing code and to report to the central server data extracted by the agent from its surroundings. The extracted data includes (but is not necessarily limited to) current data about the hosting node, and specifically current data that is internal to the hosting node.
In embodiments of the invention, the reconnaissance client agent makes no attempt of actually compromising its hosting network node using a given vulnerability. Additionally, in embodiments of the invention the reconnaissance client agent makes no determinations whether a given vulnerability would succeed to compromise the hosting node under current conditions. It only reports factual data about the hosting node (and possibly also about other network elements), leaving all validation decisions to the remote server. The remote server is the device containing the vulnerabilities knowledge base and the validation logic for all potential vulnerabilities. For each validation to be decided for a given vulnerability and a given network node, the server applies the decision logic associated with the given vulnerability using the data collected and reported by the reconnaissance client agent installed on the given node.
For example, the penetration testing server, in embodiments of the invention, retrieves from its vulnerabilities knowledge base a rule for deciding the success of compromising a target node using the given vulnerability. In this example, the rule says that a Windows 7 node is compromisable by that vulnerability if and only if (i) it does not a have a given OS patch installed, and (ii) the Internet port associated with the vulnerability is in use. The server then queries the reconnaissance client agent installed on that node or reviews the most recently report received from the reconnaissance client agent installed on that node, and then checks whether those two conditions are currently satisfied. Only if both conditions are satisfied will the server conclude that the compromising of the node would have been successful.
According to embodiments of the invention, the steps of each iteration of the penetration testing process may be:
a. Data is collected from the reconnaissance client agents installed on all already-compromised nodes. The data collected from the already-compromised nodes may include data about not-yet-compromised nodes, as long as this data can be obtained by any attacker controlling the already-compromised nodes. For example, data may be obtained by querying the not-yet-compromised domain controller or file server by an already-compromised node.
b. Based on the collected data and the vulnerabilities knowledge base in the server, the server chooses the node that will be the next target for compromising.
c. Based on the chosen target node, the server chooses a vulnerability that is highly likely (and preferably the most likely) to succeed in compromising the chosen target node.
d. Based on the chosen vulnerability, the server collects data from the reconnaissance client agent installed on the chosen target node. The collected data includes data of the chosen target node (including internal data) that is required for validating the success of compromising the chosen target node by the chosen vulnerability according to the specific rules associated with the chosen vulnerability.
e. Based on the collected data, the server determines whether the compromising of the chosen target node would have succeeded under the current conditions.
Note that during the first step in the above list of steps data is collected only from agents installed in already-compromised nodes, but not from agents installed in not-yet-compromised nodes, and specifically not from the agent installed on the not-yet-compromised node that would become the target node in the second step. This is because we want to emulate the capabilities of a potential attacker, and an attacker would be able to collect data (including internal data) from the already-compromised nodes that it already controls, but not from the not-yet-compromised nodes.
However, in the fourth step we do collect data (including internal data) from the reconnaissance client agent installed in the not-yet-compromised chosen target node. This is allowed because we are only using such data for finding out the success or failure of compromising that node and not for extending the capabilities of the attacker. Similarly, it is allowed to use data from agents installed on not-yet-compromised nodes even in the first step, provided that such data is only used for speeding up determining factual findings that an attacker would be able to determine, even if with higher effort. For example, an attacker can determine which Internet ports are open in a not-yet-compromised node by instructing an already-compromised node to run a port scanning operation on the not-yet-compromised node. However, it is more efficient for the penetration testing system to obtain the open ports list directly from the agent installed on the not-yet-compromised node, for which this is a relatively simple task, rather than from an agent installed on an already-compromised node that would have to run a port scanning operation, which is a longer and heavier task. Taking such “shortcut” in obtaining the data does not change the end results of the penetration test but saves time in reaching those end results.
This additional discussion is presented with reference to
Additional Discussion of the Role of Reconnaissance Client Agents
The penetration testing system of the present disclosure comprises:
(A) a reconnaissance agent software module installed on multiple network nodes of the plurality of network nodes prior to starting a penetration test of the networked system, wherein the reconnaissance agent software module is operable, when installed on a network node, to do at least (i) collect internal data of the network node, and (ii) transmit the internal data out of the network node, and
(B) a remote computing device penetration testing software module installed on a remote computing device, wherein the remote computing device is operable at least to (i) communicate with at least one network node of the multiple network nodes on which the reconnaissance agent software module is installed, and (ii) receive the internal data transmitted out of the multiple network nodes,
In embodiments of the invention, the method of the present disclosure comprises:
The method may further be characterized by:
(i) the executing of the penetration test further comprising: validating, by the remote computing device penetration testing software module and prior to the selecting of the target network node, that a second network node of the multiple network nodes can be compromised,
(ii) the validating that the potential vulnerability can be used for successfully compromising the target network node further comprising: receiving data from the reconnaissance agent software module installed on the second network node, and
(iii) the evaluating whether the target network node could be successfully compromised using the potential vulnerability is further based on the data received from the second network node.
In other words, the validating that the potential vulnerability can be used for successfully compromising the target network node may also depend on data received from the reconnaissance agent software module that is installed on a second network node that was already validated to be compromisable prior to the time the validating of the compromisability of the target network node starts.
For example, if the target network node is located behind a firewall that blocks access from the outside world to a certain Internet port, and the potential vulnerability operates by sending a message into this certain port, then even if the potential vulnerability could in theory compromise the target network node, it cannot be directly used by an attacker located outside the networked system. However, if the second network node is already under the control of the attacker and is also behind the same firewall, then it is not blocked by that firewall when attempting to send a message to the certain port of the target node (but may still be blocked by another firewall). Therefore, it is not possible to evaluate whether the target network node could be successfully compromised using the potential vulnerability without knowing whether the second network node can send messages that will reach the certain node of the target network node. This essential information is obtained from the reconnaissance agent software module that is installed on the second network node.
The selecting of the target network node may be based on data received by the remote computing device penetration testing software module from one or more network nodes.
The receiving of the internal data may be prior to the selecting of the target network node. In other words, the internal data of the target network node that is used for evaluating whether or not the target network node could be successfully compromised using the potential vulnerability, may be obtained from reports of the reconnaissance agent software module installed on the target network node that were received during previous stages of the test. For example, the agent may have sent periodic reports to the remote computing device during a previous stage of the penetration tests, or the agent may have sent a report in response to a query from the remote computing device penetration testing software module sent during a previous stage of the penetration test.
Alternatively, the receiving of the internal data may be subsequent to the selecting of the target network node. In other words, the internal data of the target network node that is used for evaluating whether or not the target network node could be successfully compromised using the potential vulnerability, may be obtained from a report of the reconnaissance agent software module installed on the target network node that was generated and sent specifically for the current stage of the penetration test. For example, after selecting the target network node, the remote computing device penetration testing software module may send a query to the newly selected target node, asking for data that may be used for selecting the potential vulnerability.
The internal data of the target network node may include at least one of (i) an internal condition of the target network node, and (ii) internal factual data of the target network node. For example, the internal data may indicate that the memory of the target network node is over 95% used or the identity of the vendor of the communication controller of the target network node.
Discussion of
Embodiments of the invention relate to penetration testing of networked systems, such as networked system 200 illustrated in
Penetration testing systems test networked systems. For example, the networked system 200 comprises a plurality of network nodes (referred to simply as “nodes”) in communication with each other—e.g. see
In prior art penetration testing systems, a penetration testing campaign performs or emulates an attack of a potential attacker, starting from an initial state in which no network node of the tested networked system is compromised. The attacker is assumed to start by compromising a first network node (e.g. node N122 of
In
According to the second example illustrated in
In the present document, a network node may be referred to simply as ‘node’—‘network no’ and ‘no’ are interchangeable. Each network node may be a different computing device 110 illustrated in
Discussion of
In step S5151 of
The right side of
In step S5101, a penetration testing campaign is commenced. In some cases, a penetration testing campaign is commenced automatically by the penetration testing system based on a programmed schedule having a start time, and either an end time or a pre-programmed duration. Alternatively, a penetration testing campaign can be commenced manually—i.e. by a testing operator entering a command to begin the campaign. Besides starting time and duration (or ending time), a penetration testing campaign can have a set of unique characteristics based on its goals and methods. In a non-limiting example, a penetration testing campaign can be designed to determine whether a specific highly confidential file can be reached by an attacker and exported out of the networked system.
In step S5103, a first target network node is selected—i.e. determined to be the next target node for an attempt to compromise during the single penetration campaign. Typically, during a penetration testing campaign the selection of the next target network node is done according to a lateral movement strategy employed in the penetration testing campaign. See the definition of “lateral movement strategy” in the Definitions Section.
In one particular non-limiting example, in the first iteration of the penetration testing campaign (when no network nodes are known to be compromisable) step S5103 is performed to select a network node having a direct connection to the outside world—e.g. N101 of
In another non-limiting example, when an iteration of the penetration testing campaign is performed after some network nodes are already known to be compromisable, step S5103 is performed to select a network node that has a direct connection to one of the compromisable nodes.
In step S5105, a potential vulnerability is selected based on the target node. Thus, in one example, if the target node selected in step S5103 happens to be a Windows XP® node, then a vulnerability specific to MacOs® nodes would not be selected but a vulnerability specific to any Windows® node (or to Windows XP® in particular) may be selected.
Validation of the vulnerability for any given target network node can be performed either using an active (e.g., actual attack) validation method or a passive (e.g., simulated attack) validation method. In step S5107, a first validation method is selected for validating the first vulnerability for the first target network node. The first validation method is either active validation or passive validation. Examples of network nodes at which an active validation method has been chosen include Nodes N116 in
In step S5109, the first vulnerability for the first target network node is validated using the first validation method as selected in step S5107.
At some other point during the penetration testing campaign, a second target network node (e.g. other than the first target network node) which the penetration testing system will try to compromise is determined in step S5111. As mentioned earlier, the selection of the target network node is done according to a lateral movement strategy employed in the penetration testing campaign. A penetration testing campaign can select subsequent nodes in an order that emulates the progress of an attacker through the networked system 200. For example, an attacker frequently moves on to attempt to compromise a next node which is in communication with an already compromised node (e.g., the network node most recently compromised).
In step S5113, a second vulnerability of network nodes, to be used for compromising the second target network node, is determined.
In step S5115, a second validation method is selected for validating the second vulnerability for the second target network node. The second validation method can be either active or passive. If an active validation method was selected as the first validation method in step S5107, then the second validation method is selected to be a passive validation method. Conversely, if a passive validation method was selected as the first validation method in step S5107, then the second validation method is selected to be an active validation method. Thus, in a single penetration testing campaign, by a single penetration system, both active and passive validation methods can be selected and performed. For example, in
In step S5119, the single penetration testing campaign is terminated, either in accordance with a programmed duration or ending time as discussed earlier, or manually by a user, or by achieving its goal of determining a vulnerability ahead of the scheduled ending time. The skilled artisan will appreciate that the penetration testing campaign can encompass the testing/validation of more than two nodes as described here, and, for example, can encompass all of the nodes in a networked system 200.
In step S5121, the following is performed: reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the single penetration testing campaign, wherein the reporting comprises at least one of (A) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (B) storing the report containing information about the at least one security vulnerability of the networked system in a file and (C) electronically transmitting the report containing information about the at least one security vulnerability of the networked system.
First Additional Discussion of
In some embodiments, it can be preferable to primarily use an active (actual attack) method of validation, in order to determine the existence of any possible vulnerability with the highest reliability. In some embodiments it can be preferable to primarily use a passive (e.g., emulation) method so as to avoid actually compromising network nodes during the testing. In some embodiments, the first and second validation methods are respectively selected in accordance with the first and second vulnerabilities. Even when active methods are preferred, it can be that certain vulnerabilities can be satisfactorily validated using passive methods. Conversely, even when passive methods are preferred, it can be that certain vulnerabilities can only be satisfactorily validated using active methods.
Other, non-technical considerations may come into play when selecting a validation method for a particular vulnerability for a particular network node, such as in the following non-exhaustive illustrative examples: (A) The identity of the node's user—is it someone with access to top-level confidential data, or someone with little or no access to confidential data? Is it the company's CEO whose use of the node cannot be interrupted by an actual attack method? (B) the department within which the node operates—is it a legal or financial department, which have computers storing the company's most sensitive information, or a marketing department with critical customer data, or perhaps an engineering department with the specs and drawings of the company's next generation of products? Or maybe the node belongs to the office manager, whose computer only stores cleaning schedules and orders for office supplies?
It might not be reasonable to make ad hoc decisions about each and every computer in a networked system before commencing a penetration testing campaign. Similarly, it might not be reasonable to make ad hoc decisions about each and every potential vulnerability included the penetration testing system's vulnerabilities knowledge base. However, it is possible to characterize vulnerabilities, with or without co-consideration of the corresponding network nodes, according to a parameter corresponding to the maximum damage (financial, technical, etc.) that would be incurred should a given node be compromised by a given vulnerability. Thus, the method of
In one non-limiting example, a damage scale is established wherein 0.0 means ‘no damage’ and 1.0 means ‘irreparable or irreversible damage’. A maximum ‘allowable’ damage threshold can be set. Any node and vulnerability for which a successful actual attack would result in damage above the threshold would trigger validation by simulation/evaluation. For nodes and vulnerabilities below the threshold, an active method of validation may be used. In an illustrative first penetration testing campaign, the damage threshold may be set at a moderate 0.5. However, in the first campaign it may be discovered that this threshold is too low and nearly every single validation is performed using a passive validation method, including some nodes and vulnerabilities where use of an active validation method is objectively (i.e. through detailed pre- or post-analysis) deemed necessary. In a second illustrative campaign, the damage threshold may be set at an extreme 0.9. In this iteration it may be discovered that this threshold is too high as nearly every single validation is performed using an active validation method, including some nodes and vulnerabilities where use of an active validation method exposes the tested networked system to unnecessary risk of damage. In a third iteration, a damage threshold of 0.7 may be determined to be optimal for the networked system in which the penetration testing campaign is being carried out.
In one non-limiting implementation of the above example, a look-up table may be established and made available to a penetration testing system for determining the extent of expected damage from using active validation for validating any given vulnerability, regardless of the identity of the attacked node. Such a table may be arranged so as to be indexed by the type of vulnerability determined (regardless of the attacked node), where the table returns a damage ‘score’ based on the type of vulnerability. Multiple vulnerability types may be combined into a joint entry in order to save space, if they share a common attribute and correspond to the same damage score (e.g. multiple vulnerabilities that are all attempting to achieve execution of remote code in the attacked node, but each of them achieving the common goal using a different technique). As explained above, the damage score is a numerical representation of the expected extent or severity of damage from using active validation for the specific type of vulnerability. The damage score can be calculated or determined on any scale, linear or otherwise—for example the 0.0 to 1.0 scale described above. Whatever scale is used, it is created in such a way that a maximum-damage threshold is established somewhere on the scale. An example of an entry in such table is an entry that tells the penetration testing system that any node against which the “ARP Spoofing” technique is employed for active validation corresponds to a damage score of 0.4.
In another non-limiting implementation of the above example, a two-dimensional look-up table may be established and made available to a penetration testing system for determining the extent of expected damage from using active validation for validating any combination of a given vulnerability and a given network node. Such a table may be arranged as having multiple columns, each column corresponding to a specific node or to a specific class of nodes and containing entries for all vulnerability types. As in the above one-dimensional table example, multiple vulnerability types may be combined into a joint entry in order to save space, if they share a common attribute and correspond to the same damage score. The node that is involved in the validation determines the table's column and the vulnerability involved in the validation determines the row within the column. The indexed entry in the table contains the resulting damage score. An example of a row of entries in such table is a row that tells the penetration testing system that actively validating the “ARP Spoofing” technique against the CEO's computer corresponds to a damage score of 0.8, actively validating the “ARP Spoofing” technique against any node residing in the finance group corresponds to a damage score of 0.6, actively validating the “ARP Spoofing” technique against any other node using the Windows XP operating system corresponds to a damage score of 0.5 and actively validating the “ARP Spoofing” technique against any other node corresponds to a damage score of 0.4.
To illustrate: The leftmost data point in the
In the example of
Additionally or alternatively, the method of
To illustrate: The leftmost data point in the
In the example of
Second Additional Discussion of
In other embodiments, potential damage to network nodes from using an active method of validation to validate a vulnerability can be assessed with more than a single parameter as was the case in the preceding paragraphs and in
In
It should be obvious that the threshold curve shown in
Discussion of
In step S5151 of
The right side of
In step S5201, a penetration testing campaign is commenced, either automatically by the penetration testing system based on a programmed schedule or manually by a user.
In step S5203, a first target network node is selected—i.e. determined to be the next target node for an attempt to compromise during the single penetration campaign.
In step S5205, a first potential vulnerability is selected based on the target node.
Validation of the first vulnerability in the first target network node can be performed either using an active (e.g., actual attack) validation method or a passive (e.g., simulated attack) validation method. Validation using an active method can lead to various kinds damage—including, but not exhaustively, financial and/or operational damage—by actually compromising the node, and this damage can be assessed before selecting a validation method for the respective vulnerability at each node. In step S5207, a first damage to the first target network node, which can be caused by validating the first vulnerability for the first target network node by using active validation, is determined. This determination of the first damage is then taken into account when selecting a first validation method. The reader is referred to the first and second additional discussions of
In step S5211, the first vulnerability for the first target network node is validated using the first validation method as selected in step S5209.
At a second point during the single penetration testing campaign, a second target network node (e.g. different from the first target node) which the penetration testing system will try to compromise is determined in step S5213. As mentioned earlier in the discussion of
In step S5215, a second vulnerability of network nodes, to be used for compromising the second target network node, is determined.
In step S5217, a second damage to the second target network node, which can be caused by validating the second vulnerability for the second target network node by using active validation, is determined. This determination of the second damage is then taken into account when selecting a second validation method in step S5219.
In step S5219, a second validation method is selected for validating the second vulnerability for the second target network node. The second validation method can be either active or passive. If an active validation method was selected as the first validation method in step S5209, then the second validation method is selected to be a passive validation method. Conversely, if a passive validation method was selected as the first validation method in step S5209, them the second validation method is selected to be an active validation method. Thus, in a single penetration testing campaign, and by a single penetration system, both active and passive validation methods can be selected and performed. In step S5221, the second vulnerability for the second target network node is validated using the second validation method selected in step S5219.
In step S5223, the single penetration testing campaign is terminated, either in accordance with a programmed duration or ending time as discussed earlier, or manually by a user, or by achieving its goal of determining a vulnerability ahead of the scheduled ending time. The skilled artisan will appreciate that the penetration testing campaign can encompass the testing/validation of more than two nodes as described here, and, for example, can encompass all of the nodes in a networked system 200.
In step S5225, the following is performed: reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the single penetration testing campaign, wherein the reporting comprises at least one of (A) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (B) storing the report containing information about the at least one security vulnerability of the networked system in a file and (C) electronically transmitting the report containing information about the at least one security vulnerability of the networked system.
Discussion of
In step S5153 of
The right side of
In step S5301, the first penetration testing campaign is executed by the single penetration testing system. The executing of the first penetration testing campaign comprises performing one or more validation operations for validating vulnerabilities for network nodes of the single networked system, wherein the methods of validation used for all validation operations included in the first penetration testing campaign are active validation methods.
In step S5302, the second penetration testing campaign is executed by the single penetration testing system. The executing of the second penetration testing campaign comprises performing one or more validation operations for validating vulnerabilities for network nodes of the single networked system, wherein the methods of validation used for all validation operations included in the second penetration testing campaign are passive validation methods.
In step S5305, the following is performed: reporting, by the penetration testing system, at least one security vulnerability determined to exist in the networked system by the executing of the first and second penetration testing campaigns, wherein the reporting comprises at least one of (A) causing a display device to display a report containing information about the at least one security vulnerability of the networked system, (B) storing the report containing information about the at least one security vulnerability of the networked system in a file and (C) electronically transmitting the report containing information about the at least one security vulnerability of the networked system.
The method of
In any of the methods disclosed herein, the penetration testing system 500 can be controlled by a user interface (not shown) of a computing device 110. Any of the methods can additionally include a step (like all other steps, performed by the penetration testing system 500) of receiving, via the user interface of the computing device 110, one or more manually-entered inputs. In the method discussed in connection with the flowchart of
Additional Discussion of Control of the Method of Validation of Vulnerabilities.
The proposed solution is a penetration testing system that provides flexible control of the method of validation of potential vulnerabilities that is to be employed—whether validation by actual attack (active validation) or validation by simulation/evaluation (passive validation).
In a first embodiment, each potential vulnerability has a validation method associated with it (e.g. active validation or passive validation), and different potential vulnerabilities may have different validation methods, even during the execution of the same penetration testing campaign. That is, during the execution of a given penetration testing campaign, some vulnerabilities are validated by actual attack, while other vulnerabilities are validated by simulation/evaluation. For example, during the execution of a given penetration testing campaign, a first vulnerability that takes advantage of a weakness in a software driver of an I/O device and might cause a temporary disabling of the output device is validated by actual attack, while a second vulnerability that takes advantage of a weakness in Microsoft Word and might cause corruption of one or more user files is validated by simulation/evaluation. This embodiment addresses the first flexibility issue presented above.
In a first implementation of the first embodiment, the user is given control over the method of validation of each vulnerability. Each vulnerability in the system's knowledge base has a default method of validation associated with it, but the user interface of the penetration testing system provides means for the user to change the validation method currently associated with a vulnerability, selectively for each vulnerability. The change by the user may be temporary for only a single campaign execution, or it may be permanent and remain in effect until explicitly changed again.
In a second implementation of the first embodiment, the vendor of the penetration testing system decides which method of evaluation is associated with each specific vulnerability because it is considered to be more suitable for that specific vulnerability, and the user of the penetration testing system cannot override this decision. For example, the vendor may set the validation method of a first potential vulnerability that might result in a crash of a target network node to be validation by simulation/evaluation, while setting the validation method of a second potential vulnerability that might result in exporting a certain file to validation by actual attack.
In a second embodiment, vulnerabilities are handled according to the damaging operation resulting from their successful exploitation. Each damaging operation has a method of validation associated with it, and different damaging operations may be associated with different validation methods, even during the execution of the same penetration testing campaign. This embodiment eliminates the tedious task of separately associating a validation method with each one of the many potential vulnerabilities typically included in a vulnerabilities knowledge base of a penetration testing system. For example, during the execution of a given penetration testing campaign, some vulnerabilities (that might cause some damaging operations) are validated by actual attack, while other vulnerabilities (that might cause other damaging operations) are validated by simulation/evaluation. Whenever a vulnerability has to be validated, its damaging operation is determined, and the vulnerability is validated using the validation method associated with its damaging operation. Examples of damaging operations caused by vulnerabilities are corrupting of a system file, exporting of a user file, exporting of a passwords file, crashing down a network node, temporary disabling of an I/O device, etc. As an example, all vulnerabilities that might cause a temporary disabling of an I/O device are validated by actual attack, while all vulnerabilities that might cause corruption of a user file are validated by simulation/evaluation. This embodiment also addresses the first flexibility issue presented above.
In a first implementation of the second embodiment, the user is given control over the method of validation associated with each damaging operation. Each damaging operation has a default method of validation associated with it, but the user interface of the penetration testing system provides means for the user to change the validation method currently associated with a damaging operation, selectively for each damaging operation. The change by the user may be temporary for only a single campaign execution, or it may be permanent and remain in effect until explicitly changed again.
In a second implementation of the second embodiment, the vendor of the penetration testing system decides which method of validation is associated with each specific damaging operation because it is considered to be more suitable for that specific damaging operation, and the user of the penetration testing system cannot override this decision. For example, the vendor may set the validation method of all vulnerabilities that might result in a crash of the target network node to be validation by simulation/evaluation, while setting the validation method of all vulnerabilities that might result in exporting a system file to validation by actual attack.
In a third embodiment, each execution of a penetration testing campaign has a method of validation associated with it, so that all the vulnerabilities validated during the execution of the campaign are validated using that campaign-associated validation method. Different campaigns may have different validation methods. In some implementations, the same scenario template may be the basis for multiple campaigns executed at different points in time while having different validation methods associated with them. This embodiment addresses the second and third flexibility issues presented above.
In a first implementation of the third embodiment, the user is given control over the method of validation associated with each penetration testing campaign. The user interface of the penetration testing system provides means for the user to select the validation method associated with either the next campaign or with all campaigns that are based on a scenario template, selectively for each scenario template. That is, when selecting a scenario template in order to define a penetration testing campaign to execute, the user is given an option to select the validation method to be associated with that campaign, thus overriding any validation method previously defined for that scenario template.
If the scenario template is created by the user of the penetration testing system, then during the creation process the user selects the validation method that is to be associated with the newly-created scenario template. If the scenario template is selected from a library of scenario templates provided by the vendor of the penetration testing system or from a library of scenario templates previously defined by a user, then the current user may override the validation method previously associated with the scenario template (by the vendor, by another user, or by himself) and select a new validation method to be associated with the scenario template. The user selection may be temporary and be in effect only for a single campaign execution, or it may be permanent and stay in effect for all executions of campaigns that are based on the scenario template until a different selection is explicitly made.
In a second implementation of the third embodiment, the creator of a scenario template (either the vendor of the penetration testing system or a user of it) decides which method of validation is associated with the currently-created scenario template, and the user of the penetration testing system cannot later override this decision.
In any of the above embodiments, the considerations according to which a method of validation is selected for a given vulnerability, a given damaging operation, a given scenario template or a given campaign may be based on any type of reasoning. Specific examples are:
As an example, in a penetration testing system that employs local reconnaissance agents installed in network nodes of the tested networked system (as shown in
Additional Discussion of Methods
We propose a method (see
The identity of the first vulnerability may uniquely determine the first validation method, and the identity of the second vulnerability may uniquely determine the second validation method.
The penetration testing system may be controlled by a user interface of a computing device, and the method for executing the penetration testing campaign may further comprise:
We also propose an additional method (see
The identity of the first damage may uniquely determine the first validation method, and the identity of the second damage may uniquely determine the second validation method. The penetration testing system may be controlled by a user interface of a computing device, and the method for executing the penetration testing campaign may further comprise:
We also propose yet another method (see
In a first case, the first penetration testing campaign may be based on a first scenario template, the second penetration testing campaign may be based on a second scenario template, and the second scenario template may be different from the first scenario template.
In that first case, the identity of the first scenario template may uniquely determine the first validation method, and the identity of the second scenario template may uniquely determine the second validation method.
Also in that first case, the penetration testing system may be controlled by a user interface of a computing device, and the method for executing the penetration testing campaigns may further comprise:
Also in that first case, the one or more manually-entered inputs may explicitly define at least one of (i) a validation method to be used for validating vulnerabilities in all penetration testing campaigns that are based on the first scenario template, and (ii) a validation method to be used for validating vulnerabilities in all penetration testing campaigns that are based on the second scenario template.
In a second case, the first penetration testing campaign and the second penetration testing campaign may be both based on a common scenario template.
In that second case, the penetration testing system may be controlled by a user interface of a computing device, and the method for executing the penetration testing campaigns may further comprise:
Also in that second case, the one or more manually-entered inputs may explicitly define a validation method to be used for validating vulnerabilities in all penetration testing campaigns that are based on the common scenario template.
Definitions
This disclosure should be interpreted according to the definitions below. In case of a contradiction between the definitions in this Definitions section and other sections of this disclosure, this section should prevail.
In case of a contradiction between the definitions in this section and a definition or a description in any other document, including in another document incorporated in this disclosure by reference, this section should prevail, even if the definition or the description in the other document is commonly accepted by a person of ordinary skill in the art.
Unless otherwise explicitly specified, a reference to penetration testing should be understood as referring to automated penetration testing.
An execution of a campaign must end by one of the following: (i) determining by the penetration testing system that the goal of the attacker was reached by the campaign, (ii) determining by the penetration testing system that the goal of the attacker cannot be reached by the campaign, (iii) if the campaign is assigned a time limit, exceeding the time limit by the campaign, and (iv) manually terminating the campaign by a user of the penetration testing system.
It should be noted that the term “an event of X” refers to any occurrence of an event of the type X and not to a specific occurrence of it. For referring to a specific occurrence of an event of type X one should explicitly say “an occurrence of event of X”. Thus, a software module which looks for detecting insertions of a USB drive into a port is “detecting an event of USB drive insertion”, while after that module had detected such event it may report “an occurrence of an event of USB drive insertion”.
A remote computing device may be (i) a physical computing device, or (ii) a virtual machine running inside a physical computing device on top of a hosting operating system.
All references cited herein are incorporated by reference in their entirety. Citation of a reference does not constitute an admission that the reference is prior art. It is further noted that any of the embodiments described above may further include receiving, sending or storing instructions and/or data that implement the operations described above in conjunction with the figures upon a computer readable medium. Generally speaking, a computer readable medium (e.g. non-transitory medium) may include storage media or memory media such as magnetic or flash or optical media, e.g. disk or CD-ROM, volatile or non-volatile media such as RAM, ROM, etc.
Having thus described the foregoing exemplary embodiments it will be apparent to those skilled in the art that various equivalents, alterations, modifications, and improvements thereof are possible without departing from the scope and spirit of the claims as hereafter recited. In particular, different embodiments may include combinations of features other than those described herein. Accordingly, the claims are not limited to the foregoing discussion.
This patent application is a continuation-in-part of U.S. patent application Ser. No. 15/681,782 filed on Aug. 21, 2017 and entitled “Setting-up penetration testing campaigns” which claims the benefit of U.S. Provisional Patent Application No. 62/453,056 filed on Feb. 1, 2017 and the benefit of U.S. Provisional Patent Application No. 62/451,850 filed on Jan. 30, 2017. application Ser. Nos. 15/681,782, 62/453,056 and 62/451,850 are all incorporated herein by reference in their entirety. This patent application is also a continuation-in-part of U.S. patent application Ser. No. 15/874,429 filed on Jan. 18, 2018 and entitled “Penetration testing of a networked system,” which claims the benefit of U.S. Provisional Patent Application No. 62/451,850 filed on Jan. 30, 2017. application Ser. Nos. 15/874,429 and 62/451,850 are both incorporated herein by reference in their entirety. The present application is also a continuation-in-part of U.S. patent application Ser. No. 15/940,376 filed on Mar. 29, 2018 and entitled “Systems and methods for detecting computer vulnerabilities that are triggered by events,” which (i) claims the benefit of U.S. Provisional Patent Application 62/482,535 filed on Apr. 6, 2017; (ii) is a Continuation In Part of U.S. patent application Ser. No. 15/911,168 filed on Mar. 4, 2018, which is a continuation of U.S. patent application Ser. No. 15/874,429 filed on Jan. 18, 2018, which claims the benefit of U.S. Provisional Patent Application No. 62/451,850 filed on Jan. 30, 2017, both Ser. Nos. 15/911,168 and 15/874,429 being entitled “Penetration Testing of a Networked System”; and (iii) is a Continuation In Part of the aforementioned U.S. patent application Ser. No. 15/874,429. Aforementioned U.S. patent application Ser. No. 15/911,168 was issued as U.S. Pat. No. 10,038,711 on Jul. 31, 2018. The aforementioned U.S. patent applications Ser. Nos. 15/940,376, 15/911,168, 15/874,429, 62/482,535 and 62/451,850 are all incorporated herein by reference in their entirety. This patent application is also a continuation-in-part of U.S. patent application Ser. No. 15/983,309 filed on May 18, 2018 and entitled “Verifying success of compromising a network node during penetration testing of a networked system,” which claims the benefit of U.S. Provisional Patent Application No. 62/510,794 filed on May 25, 2017. patent application Ser. No. 15/983,309 is a continuation in part of U.S. patent application Ser. No. 15/911,168 filed on Mar. 4, 2018, which is a continuation of U.S. patent application Ser. No. 15/874,429 filed on Jan. 18, 2018, which claims the benefit of U.S. Provisional Patent Application No. 62/451,850 filed on Jan. 30, 2017. patent application Ser. No. 15/983,309 is also a continuation of PCT/IB2018/053298 filed on May 11, 2018, which claims the benefit of U.S. Provisional Patent Application No. 62/510,794 filed on May 25, 2017. The aforementioned patent applications Ser. Nos. 15/983,309, 62/510,794, 15/911,168, 15/874,429, 62/451,850 and PCT/IB2018/053298 are all incorporated herein by reference in their entirety. This patent application is also a continuation-in-part of U.S. patent application Ser. No. 16/186,557 filed on Nov. 11, 2018 and entitled “Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign”, which claims the benefit of U.S. Provisional Patent Application No. 62/586,600 filed on Nov. 15, 2017. applications Ser. Nos. 16/186,557 and 62/586,600 are both incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62451850 | Jan 2017 | US | |
62453056 | Feb 2017 | US | |
62451850 | Jan 2017 | US | |
62482535 | Apr 2017 | US | |
62510794 | May 2017 | US | |
62510794 | May 2017 | US | |
62586600 | Nov 2017 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15874429 | Jan 2018 | US |
Child | 15911168 | US | |
Parent | PCT/IB2018/053298 | May 2018 | US |
Child | 15983309 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15681782 | Aug 2017 | US |
Child | 16258702 | US | |
Parent | 15874429 | Jan 2018 | US |
Child | 15681782 | US | |
Parent | 15940376 | Mar 2018 | US |
Child | 15874429 | US | |
Parent | 15911168 | Mar 2018 | US |
Child | 15940376 | US | |
Parent | 15874429 | Jan 2018 | US |
Child | 15940376 | US | |
Parent | 15983309 | May 2018 | US |
Child | 15874429 | US | |
Parent | 15911168 | Mar 2018 | US |
Child | 15983309 | US | |
Parent | 16186557 | Nov 2018 | US |
Child | 15911168 | US |