PATENT CLAIM ANALYSIS

Application Number: 15871663
Application Type: Utility
Filing Date: 2018-01
Publication Date: 2018-07
Patent Classification: ["717", "100000"]

Abstract:
The present invention features a system in which dynamic code randomization may be used in concert with enforcement-based mitigation policies to optimally secure a software code. A privileged, external execution context is employed when rewriting (randomizing) the software code. The rewritten code is then reloaded and executed in a less privileged execution context. Finally, the system ensures that the less privileged execution context is authorized to load and execute the code before rewriting.

Claim (Index 1):
A system for providing randomization-based mitigation of a software code executed via a primary execution context protected by enforcement-based mitigations, wherein an execution context comprises the set of all privileges available to a piece of machine code during execution, wherein said randomization-based mitigation is used in a secondary execution context, wherein the secondary execution context has privileges which bypass the enforcement-based mitigations, thus allowing the randomization-based mitigation to be performed in concert with said enforcement-based mitigations, the system comprising:\n (a) a primary execution context, wherein the primary execution context is subject to enforcement based mitigations; (b) a secondary execution context, wherein the secondary execution context is not subject to the restrictions placed on the primary execution context by enforcement-based mitigations; (c) a client binary file ( 103 ); (d) a client ( 101 ), configured to execute the client binary file ( 103 ), having a memory space, wherein the client binary file ( 103 ) is optionally mapped to the memory space, wherein the client ( 101 ) executes the software code in the primary execution context, wherein the client binary file ( 103 ) is the software code which is protected by enforcement based mitigations; (e) a randomization engine, herein referred to as a randomizer ( 107 ), executed in the secondary execution context within which randomization-based mitigation of the client binary file ( 103 ) is performed, wherein an output of the randomizer ( 107 ) is a randomized code; (f) a communication channel ( 105 ) operatively connecting the client ( 101 ) and the randomizer ( 107 ); and (g) a randomization cache ( 109 ), operatively coupled to the randomizer ( 107 ), storing the randomized code. wherein when a client process begins execution of the client binary file ( 103 ) within the primary execution context, an entry point inside the process opens the communication channel ( 105 ) to the randomizer ( 107 ), operating in the secondary execution context, wherein the client ( 101 ) then sends a randomization request and a first identifier to the randomizer ( 107 ) via the communication channel ( 105 ), wherein the identifier comprises the location of the client binary file ( 103 ),\n wherein the randomizer ( 107 ) then identifies the location of the client binary file ( 103 ) from the first identifier, wherein the randomizer ( 107 ) reads the client binary file ( 103 ) and subsequently diversifies contents of the client binary file ( 103 ) in the secondary execution context, to produce the randomized code, which is then sent to and stored at a location in the randomization cache ( 109 ), \n wherein the randomizer ( 107 ) sends a second identifier to the client ( 101 ) via the communication channel ( 105 ), wherein the second identifier comprises the location of the randomized code, wherein the client ( 101 ) then maps the randomized code to the memory space in the primary execution context after un-mapping the client binary file ( 103 ) from the memory space if necessary, wherein the client ( 101 ) then executes the randomized code in the primary execution context.

Metadata:
- Claim Count in Document: 134.0
- Percentile: 86.0
- Lexical Diversity: 1.58824
- Patent Class: 717.0
- Transitional Phrase Type: open
- Component Type: 1
- Foreign Priority: False
- Related Applications: ['12478182', '11464749', '15267794', '15234028', '15093269']

Analysis Scores:
- 35 USC 101 Eligibility (BERT): 0.3015158638729464
- 35 USC 102 Novelty (BERT): 0.5198925408151209
- Combined Prediction Score: 0.3233535315671639
- Mean Citation Score: 158.121902
- Max Citation Score: 169.6694
- Similarity Product: 95.64397915366888

Labels:
- Claim Label 101: 1
- Claim Label 102: 1
- Claim Label 103: 1
- Claim Label 112: 1
- Combined Label: 1
- Label 101 Adjusted: 1

Dataset: test