Reverse Engineering Based Software Diversification for Cyber Fault Tolerance
As cyberthreats become commoditized, with a broad range of tools on the market that are easily accessible by attackers, there is a critical need in defense with automated tools. While the cyberthreat techniques and landscape are evolving, with latest technologies adopted quickly, we are falling behind in the defense side as software systems takes a long time to mature and production systems have fairly long life cycles. It is costly and technically difficult to patch these legacy systems once widespread zero-day cyberthreats are discovered.
This research explores reverse engineering bases diversification and transformation methods for defending such widely spread cyberthreats. Current computer systems are highly homogenous in terms of hardware and software, allowing attackers to attack numerous systems once a common vulnerability is revealed. To reverse such asymmetric attacks, we propose a set of reverse engineering based diversification techniques, shipped with an iterative platform which can compose and amplify small and basic diversification techniques. The proposed techniques and platform can defend cyberattacks and render threats not widely exploitable, as we are able to generate thousands of heterogeneous variants of the same software. Our aim is to make the reverse engineering code recompilable or reassembleable, which can help augment legacy software systems with modern security mechanisms.