Software Policy Engine for Unmodified Binary Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing evaluation frameworks for cyber-physical systems are inadequate in assessing exploitation risk, particularly in complex environments involving cyber-physical interactions, and fail to integrate evaluations of software, firmware, and custom ASIC interactions with environmental factors like RF, IR, GPS signals, gravity, wind, thermal, and mechanical stress.
Innovation Solution
A framework that configures processing circuitry to detect policy violations in unmodified binaries within a virtual environment by using an emulator to execute the binary, sending symbols and states to a software policy engine for assertion verification, and logging warnings for policy failures, while also modifying physical and location data to simulate real-world conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional evaluation frameworks are used to assess software reliability, then evaluation of user interfaces, file I/O, and network communications is improved, but evaluation of firmware, custom ASIC interactions, and cyber-physical system interactions is insufficient
Solution Approach 1:
The evaluation framework is designed to handle multiple types of systems and interactions through a unified architecture. The policy engine can evaluate software applications, firmware, and custom ASIC interactions using the same core infrastructure, allowing the system to adapt to different evaluation needs without requiring separate frameworks for each type
2Reliability
If existing frameworks are used for cyber-physical system evaluation, then software evaluation capability is maintained, but integrated evaluation of RF, IR, GPS signals with environmental factors is not achieved
Solution Approach 1:
The framework introduces virtualized sensor intermediaries that simulate physical sensors (RF, IR, GPS, environmental sensors) and their interactions with the system under evaluation. These intermediaries allow the policy engine to evaluate cyber-physical interactions without requiring actual physical hardware, enabling integrated evaluation of software with environmental factors through virtualized representations
3Reliability
If the binary is executed in a virtual environment with policy enforcement, then policy violation detection is improved, but execution performance may be reduced
Solution Approach 1:
Policy assertions and constraints are pre-configured in the policy engine before binary execution begins. The framework performs preliminary setup of the virtual environment, sensor models, and policy rules, allowing the actual binary execution to proceed with minimal overhead from policy checking during runtime
4Adaptability or versatility
If physical sensor data is modified by random amounts to simulate real-world conditions, then evaluation realism is improved, but measurement precision of sensor data is reduced
Solution Approach 1:
The framework modifies sensor data parameters by introducing controlled random variations that simulate real-world measurement uncertainties and environmental conditions. This allows the evaluation to reflect realistic sensor behavior while maintaining the underlying data structure and enabling policy enforcement on the modified data
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods, systems, and computer-readable mediums for detection of policy violations in an unmodified binary in a virtual environment include receiving the unmodified binary in an executable and linkable format (ELF). The unmodified binary is executed, via an emulator, within the virtual environment. The executing includes determining, by an instruction set emulator, a symbol that is referenced during the executing of the unmodified binary. The symbol, a current state, and a global state is sent to a software policy engine. The software policy engine determines an assertion associated with the symbol. The assertion verifies a policy is enforced. A previous state is updated based on the symbol. The assertion is executed based on the current state, the previous state, and the global state. The assertion is determined to have failed based on the executing the assertion. A warning is logged indicating the failed assertion.