Remote procedure call (RPC) services fuzz attacking tool
AssigneeCA, Inc.
InventorsFriar Chen, Pengcheng Dun, Zhiye Wang
Life of this patent
Estimating the term…
Loading patent…
AssigneeCA, Inc.
InventorsFriar Chen, Pengcheng Dun, Zhiye Wang
Estimating the term…
A system and method for testing a computer program using a computer system includes a plurality of computer systems communicating using a network. An interface parser module defines at least one program interface in a program file of a specified program. A fuzzer module reads the program file and identifies the program interfaces. An attack data generator module attacks the program interfaces and communicates with the fuzzer, and the fuzzer determines vulnerabilities in the specified program. A recorder records the attacking procedure. A verifier verifies remedies for vulnerabilities by replaying the attacking procedure of the program interface and determining vulnerabilities. A service status detective module restarts the specified program when the specified program ceases to operate or crashes.
A method for testing a computer program using a computer system comprising computer readable medium having a program recorded thereon and being executable by a processing unit, comprising:
A computer program product for testing a computer program using a plurality of computer systems communicating using a network, the computer program product comprising:
A system for testing a computer program, comprising:
Dependencies are inferred from the claim text.
The present invention relates generally to the field of testing computer programs, and more particularly, the present invention relates to a tool or system for testing computer software such as computer programs for initiating remote procedure calls (RPC).
Computer programs are typically debugged and tested using various methods. One method is to simulate an attack on the program or computer system to test for flaws or vulnerabilities in the program or system. For example, in the field of computer technology, Remote Procedure Call (RPC) is a technique that provides for a computer program to initiate a subroutine or procedure of a software package to execute in another address space (commonly on another computer on a shared network). The RPC occurs without a programmer explicitly coding the details for the remote interaction. For example, the RPC occurs whether the subroutine is local to the executing program or remote in relation to the executing program. It is noted that when the software package is written using Object-Oriented principles, RPC may be referred to as Remote Invocation or Remote Method Invocation. Different technologies have developed which are commonly used to accomplish RPC. However, one problem with current technologies is that the technologies are often incompatible with each other.
There are many RPC services within, for example, ARCserve® Backup, such as a User Authentication Service, and Message Engine Service, these RPC services provide various interfaces for communication. Further, these interfaces accept and process user inputted data, and return the process result to the user. For example, a User Validation Service accepts the user name and password that is typed in by a user, and returns the validation result to the user.
These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. The various features of the drawings are not to scale as the illustrations are for clarity in facilitating one skilled in the art in understanding the invention in conjunction with the detailed description. In the drawings:
FIG. 1 is a schematic block diagram of the development of an RPC program;
FIG. 2 is a schematic block diagram of the modules and method of an embodiment of a services attacking system/tool according to the present invention embodied as an RPC services attacking tool and a computer system;
Referring to FIG. 1, an interface description language (IDL), is a specification language used to describe a software component's interface. IDLs are commonly used in remote procedure call (RPC) software. In a computer system using RPC, computers 150, 170 communicate using a communications link between the computers such as in a local or wide area network 160. The computers at either end of the link may be using different operating systems and computer languages. The IDLs provide a bridge for communications between the different systems in linked computers.
Referring to step 14 in FIG. 1, an RPC program includes RPC interfaces defined in an IDL file. In step 18, the IDL file is compiled using an RPC compiler. The RPC compiler generates client side source files 22, common header files 26, and server side source files 30. The client side source files 22, common header files 26 and a client side main source program 38 are compiled and linked to form an RPC client application 50. Similarly, the server side source files 22, common header files 26 and a server side main source program 42 are compiled and linked to form an RPC server application 54. At this point, the generated RPC client application and server application have no other interaction other than being connected to each other via the network. Further, a user can add business logic for a specified purpose into the client side source files 22 and the server side source files 30, to generate the RPC client application 50 and the RPC server application 54, then these applications can execute the business logic and accomplish the specified purpose.
Referring to FIG. 2, an embodiment of a software or program testing tool or system is embodied as an RPC services attacking tool or system 100 according to the present invention. The system 100 includes the step of identifying configure files embodied as IDL files or other configure files in a target program embodied as an RPC program in step 104. The system 100 includes modules embodied as below. An RPC interface parser 108 interprets (in step 105) the IDL files and converts them into XML files. A fuzzer 112 reads the XML file and determines a list of defined RPC interfaces. The fuzzer 112 executes, for example in a programming loop, individual attacks on each interface of an RPC program (or service) 140. The fuzzer 112 uses an attack data generator 116 to attack each interface of the RPC program 140 with various randomized data. A recorder 120 records the attack progress (managed by the fuzzer 112 in step 121), in a database 124 (in step 123), including the interface, attacking data, and steps of the attack into a data file. A service status detective 128 detects the RPC service status, and restarts it if necessary. Once any vulnerabilities are detected, remedies or fixes can be implemented by adding or change program code in the target program, in this embodiment, the RPC program.
From the US filing history. Foreign family members aren’t listed.
For detecting or protecting against malicious traffic: vulnerability analysis
Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates…:…
Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms: test or assess software
Digital communication
About 5 years 3 months of term left · ends 22 Jan 2032 (estimated)