Bytecode Instrumentation for Dynamic Access Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing bytecode instrumentation methods are labor-intensive and costly due to manual insertion of instrumentation codes, requiring frequent recompilation and being dependent on specific programming languages, which hinders efficient access control and data integrity in computer networks.

Innovation Solution

A computer-implemented system and method that instruments bytecode to generate dynamic, rule-based access control policies, identifying instrumentation points and inserting probes at method entry and exit points to track transactions, allowing for granular access control and reduced processing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual insertion of instrumentation codes is used to track memory operations, then authorization detection capability is improved, but time consumption and labor intensity increase significantly

Engineering Contradiction:
Improveauthorization detection capabilityVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system automatically identifies instrumentation points and inserts instrumentation codes without human intervention. The bytecode instrumentation system performs self-service by autonomously analyzing the bytecode, determining where instrumentation is needed, and inserting the appropriate codes, thereby eliminating manual labor and reducing time consumption while maintaining detection precision.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary bytecode instrumentation system that acts as a mediator between the source code and the monitoring objective. This intermediary automatically performs the instrumentation task, translating high-level monitoring requirements into specific instrumentation code insertions without requiring manual programmer intervention, thus resolving the contradiction between precision and time consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If instrumentation codes are manually inserted into program code, then monitoring capability is improved, but device complexity and maintenance difficulty increase

Engineering Contradiction:
Improvemonitoring capabilityVSAvoidinstrumentation management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The bytecode instrumentation system performs self-service by automatically managing the entire instrumentation process. It identifies instrumentation points, inserts codes, and handles removal when unnecessary, all without human intervention. This self-service capability significantly reduces the complexity of instrumentation management and maintenance while preserving monitoring capability.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent extracts the complex task of instrumentation management from manual programmer activities and transfers it to an automated bytecode instrumentation system. By taking out the manual intervention requirement, the system reduces device complexity and maintenance difficulty while maintaining the necessary monitoring capability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If instrumentation codes are added to source program code, then runtime monitoring is improved, but recompilation frequency and processing overhead increase

Engineering Contradiction:
Improveruntime monitoring accuracyVSAvoidcode execution efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the instrumentation process into distinct phases: bytecode compilation phase where instrumentation codes are inserted, and runtime execution phase where monitoring occurs. This segmentation allows instrumentation to be performed once during compilation rather than repeatedly, reducing processing overhead while maintaining runtime monitoring accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary action by inserting instrumentation codes during the bytecode compilation phase before the program is executed. This preliminary instrumentation eliminates the need for frequent recompilation during runtime, as the monitoring capability is already embedded in the bytecode. The redundant check mechanism further optimizes this by skipping instrumentation insertion when not needed, thereby improving code execution efficiency while preserving monitoring accuracy.

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If parse tree-based instrumentation is used for source code analysis, then language-specific monitoring is improved, but programming language dependency increases

Engineering Contradiction:
Improvelanguage-specific monitoring accuracyVSAvoidprogramming language independence
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent employs bytecode as a universal intermediate representation that can represent programs from multiple programming languages. The bytecode instrumentation system is designed to work with this universal format, enabling it to monitor programs regardless of their original programming language. This universal approach maintains monitoring precision while eliminating programming language dependency, as bytecode serves as a language-agnostic intermediate form.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The bytecode acts as an intermediary between the diverse programming languages and the instrumentation system. Instead of requiring the instrumentation system to understand multiple programming languages directly, the bytecode serves as a universal mediator that translates various languages into a common format that the instrumentation system can uniformly process, thereby achieving language independence while maintaining monitoring accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

5Adaptability or versatility

If object code instrumentation is performed to achieve language independence, then programming language adaptability is improved, but target processor compatibility and modification cost increase

Engineering Contradiction:
Improveprogramming language independenceVSAvoidtarget processor compatibility requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the instrumentation target from the final executable object code to an intermediate bytecode representation. This segmentation allows the instrumentation to occur at a level that is independent of both programming languages and target processors. The bytecode serves as an intermediate layer that can be generated from various source languages and later interpreted or compiled for different target processors, thereby achieving language independence without requiring modifications for each target architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent shifts the instrumentation dimension from the traditional source code or native object code level to the bytecode intermediate representation level. This dimensional change enables the instrumentation system to operate in a space that is decoupled from both source language specifics and target processor requirements. By working at this intermediate dimension, the system achieves programming language independence while avoiding the complexity of target processor compatibility issues that arise with native object code instrumentation.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS11314856B2Generating rule-based access control policies using a bytecode instrumentation system
Publication Date: 2022.04.26 COLORTOKENS INC
  • US11314856B2 patent drawing
  • US11314856B2 patent drawing
  • US11314856B2 patent drawing

AI summary

Instrumentation codes are inserted into predetermined portions of a bytecode. Every transaction referenced in the bytecode is virtually combined and arranged hierarchically to describe a virtual transaction stack describing the computer-based resources accessed during the transaction. Based at least on the origin of the transaction, the characteristics of the transaction and the computer-based resources accessed during the transaction, the sensitivity of the transaction, and the security context of each of the computer-based resources accessed during the transaction are determined. A policy store is searched for at least one access control policy referencing the transaction, or the computer-based resources requested accessed by the transaction. If such an access control policy is found, it is selectively modified to refer exclusively to the transaction and the corresponding sensitive computer-based resources. Otherwise, a new access control policy exclusively referencing the data-oriented transactions and the corresponding sensitive computer-based resources is created.