SAFEWARE by Dr. Michael Hsieh

It is easy to reverse engineer software today. An attacker generally requires no more than a basic debugger, a compiler and about a day's effort to de-obfuscate code that has been obfuscated with the best current methods. The reason for the relative ease is that program obfuscation is primarily based on "security through obscurity" strategies, typified by inserting passive junk code into a program’s source code. Existing program obfuscation methods also do not have quantifiable security models, and so it is difficult even to measure how much security is gained by a given obfuscation effort.

DARPA’s SafeWare program aims to develop obfuscation technology that would render the intellectual property in software (e.g., proprietary algorithms) incomprehensible to a reverse engineer, but allow the code to otherwise compile and run normally. To accomplish this, SafeWare researchers aim to develop fundamentally new program obfuscation technology with (i) quantifiable security that (ii) depends not on the appearance of complexity in code structure, but on the difficulty of the mathematical problems an attacker would have to solve to successfully de-obfuscate the program.

To gain the security benefits of program obfuscation, a price in program runtime efficiency must be paid. Fortunately, recent developments indicate that the scaling between the price paid in efficiency and the security benefit gained by obfuscation is favorable. Extant theory guarantees an adversary work factor (i.e., CPU cycles required to break the obfuscation) that scales exponentially with respect to polynomial increases in program runtime. Unfortunately, this runtime overhead is still extremely large in absolute terms, making even the simplest kinds of programs run unacceptably slow. SafeWare will address the main practical obstacle to implementing this technology today: reducing these overheads so that software can run efficiently for users while being safe from reverse engineering.

If successful, SafeWare technologies will provide provably-secure protection of sensitive intellectual property and algorithmic information in software that is vulnerable to capture and dissection.

오늘날 소프트웨어에 역공학을 적용하는 것은 어렵지 않다. 기본적인 디버거와 컴파일러만 있다면 난독화된 코드를 푸는 것은 하루정도밖에 걸리지 않는다. 이렇게 쉽게 풀리는 것은 대부분의 프로그램 난독화가 "security through obscurity", 즉 모호성을 통한 보안전략을 사용하기 때문이며 이는 passive junk code를 프로그램의 소스코드에 삽입하는 것으로 구현된다. 또 현존하는 프로그램 난독화 방법은 정량적 보안모델이 없기 때문에 난독화를 통해 어느 정도의 안전성을 얻을 수 있는지를 측정하기 어렵다.

DARPA의 SafeWare 프로그램은 역공학자들은 이해하기 힘든 특허기술을 사용하면서도 소스코드는 평범하게 돌아갈 수 있도록 하는 난독화 기술 개발을 목표로 한다. 이를 위해서 연구원들은 1) 안전성 측정이 가능하고 2) 그 측정이 코드구조의 복잡도가 아닌 수학적 문제의 어려움에 기반한, 새로운 프로그램 난독화 기술을 개발하는 것을 목표로 하고 있다.

프로그램 난독화를 통한 보안은 프로그램 실행시간의 효율성이 떨어뜨린다. 다행히도 최근의 제품들은 효율성과 보안성을 함께 고려하여 조정해야 한다고 명시하고 있다. 현존하는 이론들에 따르면, 실행시간이 polynomial로 증가할 때 공격자의 factor는 exponential하게 증가한다. 하지만 그럼에도 실행시간은 지나치게 크고, 가장 간단한 프로그램조차도 실용성이 없을 만큼 느리게 작동한다. SafeWare는 이 기술 개발에 있어서 가장 큰 문제인 효율성 문제를 해결할 것이다.

이 연구가 성공한다면, SafeWare는 역공학에 취약한 소프트웨어의 지적재산권을 provably-secure하게 보호할 수 있을 것이다.