오픈소스인 '프로가드'와 비교하여 상용 난독화 도구인 세이프넷의 'AndroidEnv' 난독화 도구에 대해 알아보십시오.



안드로이드용 앱을 개발할 때 보통 Java를 사용합니다.

Java는 원래부터 디컴파일이 가능한 언어이며 C와 같은 다른 언어는 컴파일하면, 디컴파일하여 소스코드를 알아낼 수 없습니다. 따라서 C로 개발된 소프트웨어는 컴파일하여 exe, dll 형태로 배포되어도 소스코드 유출을 걱정할 필요가 없습니다. 하지만 Java는 이와 반대입니다. Java는 컴파일해도 기계코드가 아닌 중간 형태의 바이트코드(Byte code)이기 때문에 이것을 디컴파일하면 쉽게 소스코드를 알아낼 수 있습니다.


안드로이드 앱도 마찬가지 보안 문제로부터 자유로울 수 없습니다. java로 개발되기 때문입니다. 보통 안드로이드 앱 개발자들은 Proguard라고 하는 오픈소스 난독화 도구를 많이 사용하십니다. Proguard도 계속해서 업그레이드되고는 있지만 보안 도구라고 하기에는 난독화 정도가 약합니다. 난독화이기는 하지만 그리 어렵지 않은 난독화인 것입니다.

이보다 더 높은 수준의 난독화를 하기 위해서는 상용 난독화 도구를 사용할 수 있습니다.

암호화 회사로 유명한 미국 세이프넷사의 ‘안드로이드 엔브(AndroidEnv)’에 대해 알아보자. 안드로이드 엔브(Android Env)는 ‘Android Envelope’의 축약어로, 세이프넷이 이미 30년간 업계에서 선두를 지켜온 윈도, 리눅스 용 난독화 기술인 엔빌롭(Envelope) 기술을 사용하고 있습니다. 





즉 이미 안드로이드가 나오기 이전 윈도, 리눅스 시절부터 난독화 기술이 필요했고, 수많은 개발사들이 세이프넷 사의 엔빌롭(Envelope)이나, 코드커버(CodeCover), 셸(Shell) 등의 상용 난독화 도구를 사용해 왔습니다.

이러한 난독화 도구는 바이너리를 뒤섞고 암호화하여 디컴파일했을 때 원래의 프로그램 플로우를 알아보기 힘들게 합니다.

미국 세이프넷이 개발한 안드로이드엔브(AndroidEnv)는 이미 30년 정도의 보안 기술이 축약된 윈도, 리눅스 플랫폼에서의 엔빌롭(Envelope) 기술을 그대로 계승하고 있습니다.

이미 보안을 가장 중요시하는 선도 B2B 앱 개발 업체들은 기존에 사용하던 오픈소스 프로가드(Proguard)를 버리고 더욱 향상된 난독화를 제공하는 ‘안드로이드엔브’를 사용하는 업체들도 많이 있습니다.