Crucial Security will research and develop techniques for the automated partitioning of software systems. The techniques will facilitate a system which can modify the source code or binary form of an application in order to partition user-defined critical code segments for the purpose of running the segments in a separate, trusted, and distributed environments. We will investigate how to determine and define specific attributes that accurately describe a critical code segment while mitigating the occurrence of false positives. Additionally, we will develop techniques to determine the feasibility of running the critical code segments outside of the original software system, based on the operating requirements of the existing piece of software and the environment in which the code segment will execute. Finally, we will develop techniques to automatically parse and manipulate source and binary code in order to meet the conditions required for the code to execute in a separate environment. The end result of Phase I will be a proof of concept utility which will demonstrate the effectiveness of these techniques on both the source and binary forms of a test application.
Keywords: Reverse Engineering, Partition, Secure Execution, Distributed, Coprocessor, Nodal Architecture, Software, Protection