북한이 안드로이드 앱에 대한 역공학(리버스 엔지니어링)으로 기술을 습득하고 있는 것으로 확인됐다. 그동안 북한이 다양한 소프트웨어(SW)에 대한 역공학으로 기술을 습득하고 취약점 등을 분석하고 있다는 지적이 있었지만 증거가 발견되지는 않았다. 그런데 이번에 북한의 자료에 명시된 내용이 확인됐다.  

북한은 역공학을 발전시키는 것과 함께 반대로 자신들이 개발한 프로그램의 소스코드 해독을 어렵게 하는 난독화 기술을 다양하게 사용하고 있는 것으로 나타났다. 이는 기술을 확보하기 위해 역공학을 발전시키면서 그 노하우로 보안도 강화하고 있는 것이다.

대북 소식통에 따르면 김일성종합대학이 발행한 김일성종합대학학보 정보과학 2018년 제64권 제3호에 'smali 코드에서 식별자 이름 변경의 한 가지 실현방법'이라는 논문이 수록됐다. smali 코드는 안드로이드 앱의 소스코드이자 언어를 뜻한다.

논문은 "현재 북한에서 이용되고 있는 Android 응용 프로그램들 중 많은 부분이 국내외에서 이미 개발됐던 프로그램에 대한 역공학을 통해 재생산 된 것들이며 역공학을 통한 새 기술 획득도 나라의 정보산업발전에 많은 기여를 하고 있다"고 밝혔다.

역공학 즉 리버스 엔지니어링은 프로그램을 분해해 소스코드와 기술을 확인하는 공학이다. 이 기법으로 SW에 사용된 기술과 소스코드를 확인할 수 있기 때문에 기업, 기관들에서 많이 사용한다. 역공학은 다른 SW에 대한 기술을 확인하는 것 뿐 아니라 취약점 분석 등에도 활용되고 있다. 

북한 논문은 "Apktool, VTS와 같은 많은 도구들이 Android 응용 프로그램의 역공학에 이용되고 있으며 이와 함께 보안기술도 발전하고 있다"고 설명했다.

역공학을 위한 도구를 사용하고 있으며 역공학과 관련해 보안기술도 개발하고 있다는 것이다. 이 논문 역시 역공학 방법에 대한 내용을 담고 있다.

북한 난독화 도구와 기술 이용 중

 

특히 이 논문은 다른 사람들이 역공학으로 북한이 개발한 프로그램을 분해할 수 없도록 하는 해석방지기술 일명 난독화 기술을 사용하고 있다고 밝혔다.

논문은 Android 응용 프로그램에 대한 해석이 두 단계로 진행되는데 첫 번째 단계는 원천코드화 단계이고 두 번째 단계는 코드해석 및 수정단계라고 설명했다.

Apkprotect와 같이 허위코드와 무한순환, 오류코드를 삽입해 원천코드 추출을 막는 프로그램들이 이미 개발돼 있지만 이에 대응하는 해석 도구들도 많이 개발돼 있어 이를 피할 수 없다고 논문은 설명했다.

논문은 두 번째 단계인 코드해석 및 수정을 방지하는 기술을 코드혼란기술 또는 난해처리(obfuscation)기술이라 한다고 소개했다.

난해처리는 프로그램의 기능은 변화시키지 않으면서도 프로그람을 공격자가 이해하기 어렵도록 변경하는 의미보존 프로그램 변환이라고 설명했다.

논문은 "현재 가장 우수한 난해처리프로그람들로는 KlassMaster, J Shrink, ProGuard, Dash-O를 들 수 있다"고 밝혔다. 이중 프로가드(ProGuard)는 오픈소스 기반 애플리케이션 난독화 툴로 유명하다. Dash-O는 미국에 본사를 둔 PreEmptive Solutions이 개발, 제공하고 있는 난독화 제품이다.

북한 논문은 또 "난해처리기술에는 조종흐름변경(Changing of Control Flow), 문자열 암호화(Encoding Java Strings), 식별자 이름변경(Name Mangling)들이 있다"며 "조종흐름변경 난해처리는 허위코드삽입, 명령분해와 같은 기술을 이용해 조종흐름을 복잡하게 만드는 것이다. 문자열 암호화 난해처리는 코드안에 있는 통보문과 같은 문자열을 복호화 함수를 거쳐야 정확한 문자렬이 나오도록 암호화해 코드해석을 위한 정보를 얻지 못하도록 하는 기술이다. 식별자이름변경 난해처리는 패키지 이름, 클라스 이름, 함수 이름, 변수 이름과 같은 의미있는 이름들을 의미없는 문자열들로 교체해 프로그램의 실행에는 영향을 주지 않으면 서도 역공학에 의해 얻어지는 코드를 이해하기 어렵게 만드는 기술이다"라고 설명했다.

논문은 현대적인 역공학 도구들에서 조종흐름변경과 문자열 암호화 난해처리에 대한 해석을 지원하지만 식별자이름변경 난해처리에 대한 회복기능은 지원하지 않는다며 이에 역공학에서 식별자이름 회복을 지원하는 기능을 실현하기 위한 방법을 연구했다고 밝혔다.

역공학 도구에서 지원하지 않는 식별자이름 회복 기능을 개발했다는 것이다. 이는 북한이 역공학 도구를 사용하고 있고 또 이를 보완하고 있다는 것을 보여준다. 

논문은 결론에서 자신들이 성공적으로 기술을 개발했다고 주장했다.

북한은 난독화 기술을 전문적으로 연구하고 있는 것으로 보인다. 이 논문의 북한 과학기술출판사가 2011년 발행한 '정보은닉기술' 서적을 참고했다고 밝혔다. 정보은닉기술은 정보를 감추는 방법에 대한 내용을 담고 있는 것으로 보인다.

이 논문을 통해 북한이 실제로 스마트폰 앱 등에 대한 역공학을 진행하고 있다는 것을 확인할 수 있다. 이를 통해 북한은 기술을 습득하고 취약점을 확인하고 있는 것으로 보인다. 역공학 기술의 발전 만큼 다른 국가, 기업들이 북한이 개발한 스마트폰 앱을 확인할 수 없도록 하는 기술도 개발하고 있는 것으로 추정된다.

강진규 기자  maddog@nkeconomy.com

* 독자님들의 뉴스레터 신청이 NK경제에 큰 힘이 됩니다. 많은 신청 부탁드립니다.

NK경제 뉴스레터 신청

 

관련기사

저작권자 © NK경제 무단전재 및 재배포 금지