Runtime Bill-of-Materials via Memory Forensics
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in efficiently identifying and maintaining an up-to-date list of active software modules within computer systems, particularly in managed software frameworks, which is crucial for security and maintenance.
Innovation Solution
A system and method to identify active code sections by accessing memory spaces, detecting software frameworks, and using code section execution indicators (CSEIs) to construct a runtime bill-of-materials (RBOM) for managed software environments, including frameworks like Java, node.js, and Python.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional methods are used to identify active code sections, then security and maintenance efforts can be performed, but the process is inefficient and time-consuming
Solution Approach 1:
The system performs preliminary actions by continuously monitoring and identifying active code sections in real-time during software execution. Code section execution indicators are updated as code is executed, so when security or maintenance operations are needed, the current list of active modules is already available immediately without requiring time-consuming analysis.
2Reliability
If comprehensive monitoring of all code sections is performed, then complete security coverage is achieved, but system complexity and resource consumption increase
Solution Approach 1:
The system extracts only the essential information needed for security and maintenance by focusing on code section execution indicators rather than monitoring all code sections in detail. By taking out only the relevant execution status data from the memory space, the system achieves complete security coverage while minimizing system complexity and resource consumption.
3Reliability
If real-time identification of active code sections is implemented, then up-to-date security measures can be applied, but additional processing resources are required
Solution Approach 1:
The system utilizes self-service by leveraging existing code execution mechanisms and memory structures already present in the software framework. By reading execution indicators from existing data structures in memory and using the framework's own execution information, the system achieves real-time identification with minimal additional processing resources.
Data Source
AI summary
A system of determining a software bill-of-materials (RBOM) of an operating environment, the system comprising a processing circuitry configured to: a) access a memory space of a first process executing in the operating environment; b) for one or more threads of the first process: read contents of one or more memory location of a thread stack associated with the respective thread, determine whether a contained value of a respective memory location is a code section execution address, and responsive to the contained value of the respective memory location of the thread stack being a code section execution address: i) determine, based on the memory space of the first process and/or an executable file associated with the first process, a code section identifier associated with the code section, and ii) add the code section identifier associated with the code section to the RBOM.


