IP Library Granted Patent US 8,762,928
Granted Patent B2
US 8,762,928 · App. 12/946,344 · Granted Jun 24, 2014

Method and system for containment of usage of language interfaces

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,762,928
App. No.
12/946,344
Granted
Jun 24, 2014
Kind
B2
Abstract

Client software is modified by a translator to use unique variant of linguistic interface of a service. An interceptor pre-processes subsequent client service requests from translated unique linguistic interface to standard linguistic interface implemented by service. Usage of linguistic interfaces of service is contained, rendering service incapable of executing arbitrary input, even if such input is crafted specifically for the service interface.

Claims (36)

1. A method, comprising:

defining a manifest of one or more client programs, the one or more client programs authorized to use a service; and

storing the manifest for subsequent reference by a client program execution procedure, wherein the client program execution procedure generates a second client program

based on a first client program and a substitution code, and wherein the client program execution procedure executes the second client program.

2. The method of claim 1 , wherein the manifest comprises a manifest integrity data, the client program execution procedure evaluating the manifest integrity data to detect a modification to the manifest.

3. The method of claim 2 , wherein the client program execution procedure computes a new integrity data for the manifest, wherein if the manifest integrity data does match the new integrity data then execution of all client programs identified in the manifest is blocked.

4. The method of claim 1 , wherein the manifest comprises a program integrity data for the first client program of the one or more client programs identified in the manifest, the client program execution procedure evaluating the program integrity data to detect a modification to the first client program.

5. The method of claim 4 , wherein the client program execution procedure computes a new program integrity data for the first client program, wherein if the program integrity data does match the new program integrity data then execution of the first client program is blocked.

6. The method of claim 1 , wherein a first constant data in the first client program of the one or more client programs is replaced by the substitution code, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data;

wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct.

7. The method of claim 6 , wherein the substitution code comprises a second constant data.

8. The method of claim 6 , wherein the substitution code comprises a subroutine call having the first constant data as an argument, wherein the subroutine call returns a second constant data as the expression in the second grammar type directed to the second linguistic interface.

9. A system, comprising:

one or more processors;

a client program transformer to be executed by at least one processor of the one or more processors, the client program transformer configured to:

define a manifest of one or more client programs, the one or more client programs authorized to use a service; and

store the manifest for subsequent reference; and

a client program execution procedure to be executed by at least one processor of the one or more processors, the client program execution procedure configured to:

generate a second client program based on a substitution code and a first client program identified by the manifest; and

execute the second client program.

10. The system of claim 9 , wherein the manifest comprises a manifest integrity data, wherein the client program execution procedure is configured to evaluate the manifest integrity data to detect a modification to the manifest.

11. The system of claim 10 , wherein the client program execution procedure is configured to:

compute a new integrity data for the manifest; and

block the execution of the one or more client programs identified in the manifest if the manifest integrity data does match the new integrity data.

12. The system of claim 9 , wherein the manifest comprises a program integrity data for the first client program of the one or more client programs identified in the manifest, and wherein the client program execution procedure is configured to evaluate the program integrity data to detect a modification to the first client program.

13. The system of claim 12 , wherein the client program execution procedure is configured to compute a new program integrity data for the first client program, wherein if the program integrity data does match the new program integrity data then execution of the first client program is blocked.

14. The system of claim 9 , wherein, when the second client program is generated, a first constant data in the first client program of the one or more client programs is replaced by the substitution code, the first constant data expressed in a first grammar type directed to a first linguistic interface of a first service implementation, the substitution code indicating an expression in a second grammar type directed to a second linguistic interface of a second service implementation, the expression equivalent to the first constant data;

wherein the first and second service implementations implement equivalent services, and the first and second linguistic interfaces are distinct.

15. At least one non-transitory computer readable storage medium having instructions stored thereon, the instructions when executed by at least one processor cause the at least one processor to:

define a manifest of one or more client programs, the one or more client programs authorized to use a service; and

store the manifest for subsequent reference by a client program execution procedure, wherein the client program execution procedure is configured to generate a second client program based on a first client program and a substitution code, and wherein the client program execution procedure is configured to execute the second client program.

16. The at least one non-transitory computer readable storage medium of claim 15 , wherein the manifest comprises a manifest integrity data, wherein the client program execution procedure is configured to evaluate the manifest integrity data to detect a modification to the manifest.

17. The at least one non-transitory computer readable storage medium of claim 15 , wherein the client program execution procedure is configured to compute a new integrity data for the manifest, wherein if the manifest integrity data does match the new integrity data then execution of all client programs identified in the manifest is blocked.

18. The at least one non-transitory computer readable storage medium of claim 15 , wherein the manifest comprises a program integrity data for the first client program of the one or more client programs identified in the manifest, wherein the client program execution procedure is configured to evaluate the program integrity data to detect a modification to the first client program.

19. The at least one non-transitory computer readable storage medium of claim 18 , wherein the client program execution procedure is configured to compute a new program integrity data for the first client program, wherein if the program integrity data does match the new program integrity data then execution of the first client program is blocked.

20. The at least one non-transitory computer readable storage medium of claim 15 , wherein a first constant data in the first client program of the one or more client programs is replaced by the substitution code, wherein the substitution code comprises one of a second constant data and a subroutine call, wherein the subroutine call includes the first constant data as an argument.

Assignments (11)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2010
From: SHARMA, ROSEN; SHAH, BAKUL; SEBES, E. JOHN
To: SOLIDCORE SYSTEMS, INC.
Reel/Frame 025604/0795 →
MERGER Recorded Nov 15, 2010
From: SOLIDCORE SYSTEMS, INC.
To: MCAFEE, INC.
Reel/Frame 025362/0646 →