# Patent

## Title
Method and apparatus for auditing network security

## Abstract

In an apparatus for auditing security of a computer system, at least one secure application server is in communication with a global computer network. The secure application server is programmed to receive selectively security audit instruction data from a remote computer system via the global computer network. A plurality of scanning machines each are in communication with the global computer network and are programmed to execute selectively a security audit scan of the remote computer system via the global computer network. A central computer, having a memory, is configured as a database server and as a scheduler. The central computer is in communication with the secure application server and the scanning machine. The central computer is programmed to perform the following operations: evaluate a database to determine if a security audit scan is currently scheduled to be run for a user; determine which of the plurality of scanning machines is available to perform a security audit scan; copy scan-related information into a scanning machine determined to be available and instruct the scanning machine to begin scan; and record the results of the scan in the memory.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. patent application Ser. No. 09/592,404 filed Jun. 13, 2000, entitled, now U.S. Pat. No. 7,346,929 “Method and Apparatus for Auditing Network Security”, the entire contents of which are hereby incorporated by reference. U.S. patent application Ser. No. 09/592,404 claims the benefit of priority to U.S. Provisional Patent Application Ser. No. 60/146,175, entitled “Method and Apparatus for Auditing Network Security,” and filed Jul. 29, 1999. The contents of U.S. Provisional Patent Application Ser. No. 60/146,175 are hereby incorporated by reference.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to computer network security and, more specifically, to a method and apparatus for auditing computer network security.
2. Description of the Prior Art
As use of large computer networks becomes more prevalent, computer security increases in importance. To reduce networked computer vulnerability, many organizations run periodic security audit scans of their computer systems. Such scans typically involve a dedicated scanning machine that attempts to gain unauthorized access to a computer system via a computer network through a variety of methods. The scanning machine will make numerous attempts to gain access and maintain a record of any security breaches that it detects.
Conventional scanning systems perform scans on command and are frequently dedicated to only a single user. Thus, scans are not performed periodically unless the user remembers to activate the scanning machines. Furthermore, many scanning machines are idle for large periods of time.
Therefore, there is a need for a scanning system that periodically schedules security scans of several users.
SUMMARY OF THE INVENTION
The disadvantages of the prior art are overcome by the present invention which, in one aspect, is an apparatus for auditing security of a computer system. At least one secure application server is in communication with a global computer network. The secure application server is programmed to receive selectively security audit instruction data from the remote computer system via the global computer network. A plurality of scanning machines each are in communication with the global computer network and are programmed to execute selectively a security audit scan of the remote computer system via the global computer network. A central computer, having a memory, is configured as a database server and as a scheduler. The central computer is in communication with the secure application server and the scanning machine. The central computer is programmed to perform the following operations: evaluate a database to determine if a security audit scan is currently scheduled to be run for a user; determine which of the plurality of scanning machines is available to perform a security audit scan; copy scan-related information into a scanning machine determined to be available and instruct the scanning machine to begin scan; and record the results of the scan in the memory.
In another aspect, the invention is a method of auditing security of a computer system in which an instruction to perform a security audit scan on a computer system is received from a user via a global computer network. A scanning machine is instructed to access the remote computer system via the global computer network and thereby perform a security audit scan of the remote computer system. At least one result of the security audit scan is reported to the user once the security audit scan is complete.
In yet another aspect, the invention is a method of auditing computer system security in which a database is accessed to determine when a security audit scan of a computer system is to be executed. Upon determining that a security audit scan of the remote computer system is to be executed, security audit scan data is copied into a scanning system, the scanning system is caused to establish communication with the remote computer system via a global computer network and to execute a security audit scan of the remote computer system via the global computer network. A result of the security audit scan of the global computer network is stored and a message is transmitted to a user of the remote computer system that indicates the result of the security audit scan.
These and other aspects of the invention will become apparent from the following description of the preferred embodiments taken in conjunction with the following drawings. As would be obvious to one skilled in the art, many variations and modifications of the invention may be effected without departing from the spirit and scope of the novel concepts of the disclosure.



BRIEF DESCRIPTION OF THE FIGURES OF THE DRAWINGS
FIG. 1 is a schematic diagram of the devices employed in one embodiment of the invention.
FIG. 2 is a flow chart showing the steps executed in one embodiment of the invention.



DETAILED DESCRIPTION OF THE INVENTION
A preferred embodiment of the invention is now described in detail. Referring to the drawings, like numbers indicate like parts throughout the views. As used in the description herein and throughout the claims, the following terms take the meanings explicitly associated herein, unless the context clearly dictates otherwise: the meaning of “a,” “an,” and “the” includes plural reference, the meaning of “in” includes “in” and “on.” Also, as used herein, “global computer network” includes the Internet. A “secure application server” could include any digital machine that controls a computer communication and includes security features that inhibit unauthorized access.
As shown in FIG. 1, one embodiment of an apparatus 100 for auditing security of a remote computer system 102 or a remote network 104 is resident at a central site 110. A central computer 120, including a computer-readable memory, is configured as a database server and acts as a scheduler. The central computer 120 is in communication with at least one secure application server 130 and a plurality of scanning machines 140, of the type generally known in the art of computer network security analysis. The secure application server 130 (for example, an Internet Web server) is in communication with a global computer network 106 (such as the Internet) and is programmed to receive selectively security audit instruction data from the remote computer system 102 via the global computer network 106. A plurality of scanning machines 140a-n is in communication with the global computer network 106 and each is programmed to execute selectively a security audit scan of the remote computer system 102 via the global computer network 106. A security audit scan could include, but is not limited to, any combination of the following forms of security assessments generally known to the art of computer network security analysis: security audit scan; security scan; audit; audit scan; remote assessment; vulnerability assessment; vulnerability analysis; and penetration study.
As shown in FIG. 2, one illustrative embodiment of the general procedure executed by the central computer 120 includes assigning 200 the value of zero to an iteration variable and performing a test 202 to determine whether a security audit scan is scheduled for the current period. If a scan is not scheduled, the central computer 120 performs a test 118 to determine if a user has requested a scan. If a scan is scheduled, or if the user has requested a scan, the central computer finds the next available scanning machine by iteratively performing a test 204 to determine if the scanning machine designated as the current value of the iteration variable is available and, if it is not available, incrementing 206 the iteration variable and returning the thread of execution to test 204. When a scanning machine is found to be available, the necessary scan related information is copied 208 from the central computer 120 to the scanning machine and a message is e-mailed 210 to the user that indicates that a scan is scheduled and that the scan is commencing. The central computer 120 then instructs 220 the scanning system to establish communication with the remote computer system via a global computer network and commence the scan.
Once the scanning machine begins performing the scan, the central computer 120 repeatedly performs a test 212 to determine whether a “scan complete” indication is received from the scanning machine. If a “scan complete” indication is received, then an e-mail is sent to the user 214 indicating that the scan is complete. The results of the scan are then recorded 216 in a database resident in the central computer 120 or on a file system of another database machine. Be results could include an indication that the scan is complete, the date and time of the scan, the nature of the tests performed during the scan and the nature of any deficiencies detected by the scan. The results of the scan may then be used for generating a scan report and other uses, such as statistical analyses, etc.
While one illustrative embodiment of the procedure executed by the central computer 120 is shown in FIG. 2, it will be readily understood that many other scan scheduling algorithms could be employed without departing from the scope of the invention so long as the algorithm employed provides for scheduling a scan of a remote system, selecting an available scanning machine and instructing the selected scanning machine to execute a scan via a global computer network.
The above described embodiments are given as illustrative examples only. It will be readily appreciated that many deviations may be made from the specific embodiments disclosed in this specification without departing from the invention. Accordingly, the scope of the invention is to be determined by the claims below rather than being limited to the specifically described embodiments above.

## Claims

1. An apparatus for auditing security of a remote computer system, comprising:
a plurality of scanning machines in communication with a global computer network and programmed to execute selectively a security audit scan of the remote computer system via the global computer network, each scanning machine capable of conducting multiple types of security assessments; and
a central computer in communication with the plurality of scanning machines, programmed to perform operations comprising:
determining which of the plurality of scanning machines is available to perform the security audit scan by examining a schedule for each scanning machine to identify certain ones of the scanning machines that are conducting another security audit scan or are scheduled to conduct another security audit scan, the available scanning machines comprising all of the scanning machines except for the certain scanning machines;
copying scan-related information into one of the available scanning machines and instructing the scanning machine to begin the security audit scan; and
recording the results of the security audit scan in the memory.

2. The apparatus of claim 1, further comprising a web server in communication with the global computer network and programmed to receive security audit instruction data from the remote computer system.

3. The apparatus of claim 1, wherein the central computer is further programmed to
evaluate a database to determine if the security audit scan is currently scheduled to be run on one of the scanning machines; and
issue a notification that the security audit scan is commencing.

4. The apparatus of claim 3, wherein when the central computer performs the operation in which the central computer records the results of the security audit scan, the central computer also copies the results to the database and copies a report to a file system on a database machine when the security audit scan is complete.

5. The apparatus of claim 1, wherein the central computer is further programmed to update the database to indicate that the security audit scan is complete.

6. The apparatus of claim 1, wherein the central computer is further programmed to send a signal representing completion of the security audit scan.

7. A method of auditing security, comprising the steps of:
determining with a central computer which of a plurality of scanning machines is available to perform a security audit scan by examining a schedule for each of the scanning machines to identify certain ones of the scanning machines that are conducting another security audit scan or are scheduled to conduct another security audit scan; and
instructing with the central computer one of the available scanning machines to access a remote computer system to perform the security audit scan of the remote computer system.

8. The method of claim 7, further comprising the step of recording with the central computer a result of the security audit scan in a computer memory.

9. The method of claim 7, further comprising the step of receiving at the available scanning machine scan related information for the security audit scan of the remote computer system, wherein the scan related information comprises at least one security assessment to be conducted during the security audit scan.

10. The method of claim 9, wherein the scan related information comprises an identity of at least one remote computer system upon which to conduct the security audit scan.

11. The method of claim 7, wherein the security audit scan comprises a vulnerability assessment.

12. The method of claim 7, further comprising the step of receiving from the available scanning machine a notification at the central computer that the security audit scan of the remote computer system is complete.

13. A method of auditing computer system security, comprising the steps of:
receiving at a central computer a schedule request for a security audit scan of a remote computer system;
determining at the central computer when the scheduled security audit scan of the remote computer system is to be executed;
in response to a determination that the scheduled security audit scan of the remote computer system is to be executed in a predetermined period of time, performing the following steps:
determining at the central computer which of a plurality of scanning machines is available to perform the scheduled security audit scan by identifying certain ones of the scanning machines that are conducting another security audit scan or are scheduled to conduct another security audit scan;
causing with the central computer a scanning system to establish communication with the remote computer system; and
causing with the central computer the scanning system to execute the scheduled security audit scan of the remote computer system.

14. The method of claim 13, further comprising the step of storing in a computer memory of the central computer a result of the security audit scan of the remote computer system, wherein the result is used for a statistical analysis of security on the remote computer system.

15. The method of claim 14, wherein the result comprises at least one vulnerability of the remote computer system detected during the security audit scan.

16. The method of claim 13, further comprising the step of determining with the central computer if the scheduled security audit scan is in the process of being conducted on the remote computer system.

17. The method of claim 13, further comprising the step of copying security audit scan data into a scanning system, wherein the security audit scan data comprises at least one security assessment to be conducted during the security audit scan.

18. The method of claim 17, wherein the security audit scan data further comprises an identity of at least one remote computer system upon which to conduct the scheduled security audit scan.

19. The method of claim 13, further comprising the step of sending from the central computer a message to a user interface prior to the commencement of the scheduled security audit scan.

20. The method of claim 13, further comprising the step of determining with the central computer if a request for an immediate security audit scan of one of a plurality of computer systems has been received in response to a determination that the scheduled security audit scan of the remote computer system will be executed outside of the predetermined period of time.