IP Library Granted Patent US 8,561,082
Granted Patent B2
US 8,561,082 · App. 12/903,993 · Granted Oct 15, 2013

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,561,082
App. No.
12/903,993
Granted
Oct 15, 2013
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 (46)

1. A method to be executed by a processor in an electronic environment, the method comprising:

determining a first linguistic interface of a service implementation, the first linguistic interface being configured to interpret requests that conform to a first grammar type;

replacing the first linguistic interface with a second linguistic interface, the second linguistic interface being configured to interpret requests that conform to a second grammar type that is different than the first grammar type; and

generating a unique client program based on a standard client program, the unique client program being configured to interact with the service implementation via the second linguistic interface,

wherein the second linguistic interface is configured to:

receive a first service request from the unique client program, the first service request being expressed in the second grammar type directed to the second linguistic interface; and

interpret the first service request to interact with the service implementation.

2. The method of claim 1 , wherein the replacing the first linguistic interface includes modifying the service implementation.

3. The method of claim 1 , wherein the replacing the first linguistic interface includes generating a new service implementation that is functionally equivalent to the service implementation with the first linguistic interface.

4. The method of claim 1 , wherein the second linguistic interface is unable to successfully interpret a second service request if the second service request is initiated by another standard client program and if the second service request is expressed in the first grammar type.

5. The method of claim 1 , wherein the unique client program and the service implementation reside on distinct hosts and communicate via a network.

6. The method of claim 1 , wherein the service implementation and the unique client program reside on the same host.

7. The method of claim 1 , wherein the generating the unique client program further includes:

identifying a first constant data of the standard client program, the first constant data expressed in the first grammar type of the first linguistic interface; and

determining a substitution code to replace the first constant data in the unique client program, the substitution code configured to translate the first constant data to a second constant data expressed in the second grammar type of the second linguistic interface.

8. An apparatus, comprising:

a memory element having stored thereon a first linguistic interface of a service implementation, the first linguistic interface being configured to interpret requests that conform to a first grammar type; and

one or more processors operable to execute instructions associated with the first linguistic interface, including;

replacing the first linguistic interface with a second linguistic interface, the second linguistic interface being configured to interpret requests that conform to a second grammar type that is different than the first grammar type; and

generating a unique client program based on a standard client program, the unique client program being configured to interact with the service implementation via the second linguistic interface,

wherein the second linguistic interface is configured to:

receive a first service request from the unique client program, the first service request being expressed in the second grammar type directed to the second linguistic interface; and

interpret the first service request to interact with the service implementation.

9. The apparatus of claim 8 , wherein the replacing the first linguistic interface includes modifying the service implementation.

10. The apparatus of claim 8 , wherein the replacing the first linguistic interface includes generating a new service implementation that is functionally equivalent to the service implementation with the first linguistic interface.

11. The apparatus of claim 8 , wherein the second linguistic interface is unable to successfully interpret a second service request if the second service request is initiated by another standard client program and if the second service request is expressed in the first grammar type.

12. The apparatus of claim 8 , wherein the service implementation and the unique client program reside on the same host.

13. The apparatus of claim 8 , wherein the generating the unique client program further includes:

identifying a first constant data of the standard client program, the first constant data expressed in the first grammar type of the first linguistic interface; and

determining a substitution code to replace the first constant data in the unique client program, the substitution code configured to translate the first constant data to a second constant data expressed in the second grammar type of the second linguistic interface.

14. Logic encoded in one or more non-transitory media that includes code for execution and when executed by one or more processors is operable to perform operations comprising:

determining a first client program and a first linguistic interface of a service implementation, the first linguistic interface being configured to interpret requests that conform to a first grammar type;

replacing the first linguistic interface with a second linguistic interface, the second linguistic interface being configured to interpret requests that conform to a second grammar type that is different than the first grammar type; and

generating a second client program based on the first client program, the second client program being configured to interact with the service implementation via the second linguistic interface,

wherein the second linguistic interface is configured to:

receive a first service request from the second client program, the first service request being expressed in the second grammar type directed to the second linguistic interface; and

interpret the first service request to interact with the service implementation.

15. The logic of claim 14 , wherein the replacing the first linguistic interface includes modifying the service implementation.

16. The logic of claim 14 , wherein the replacing the first linguistic interface includes generating a new service implementation that is functionally equivalent to the service implementation with the first linguistic interface.

17. The logic of claim 14 , wherein the second linguistic interface is unable to successfully interpret a second service request if the second service request is expressed in the first grammar type.

18. The logic of claim 14 , wherein the second client program and the service implementation reside on distinct hosts and communicate via a network.

19. The logic of claim 14 , wherein the service implementation and the second client program reside on the same host.

20. The logic of claim 14 , wherein the generating the second client program further includes:

identifying a first constant data of the first client program, the first constant data expressed in the first grammar type of the first linguistic interface;

determining a substitution code to replace the first constant data in the first client program, the substitution code configured to translate the first constant data to a second constant data expressed in the second grammar type of the second linguistic interface; and

creating the second client program using the first client program and the substitution code.

Assignments (9)
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: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →