CRMar 2, 2020

Code Renewability for Native Software Protection

arXiv:2003.00916v19 citations
AI Analysis

This addresses software protection for developers and organizations by making attacks more difficult, though it appears incremental as it builds on existing diversification techniques.

The paper tackles the problem of protecting native software from reverse engineering and tampering by introducing an architecture and tool flow that dynamically renews and diversifies code and data on demand from a secure server, resulting in frequent changes to software components under attack to make attacks harder. The prototype was evaluated on industrial use cases, showing that it enables novel protection combinations and strengthens existing ones.

Software protection aims at safeguarding assets embedded in software by preventing and delaying reverse engineering and tampering attacks. This paper presents an architecture and supporting tool flow to renew parts of native applications dynamically. Renewed and diversified code and data belonging to either the original application or to linked-in protections are delivered from a secure server to a client on demand. This results in frequent changes to the software components when they are under attack, thus making attacks harder. By supporting various forms of diversification and renewability, novel protection combinations become available, and existing combinations become stronger. The prototype implementation is evaluated on a number of industrial use cases.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes