북한이 소프트웨어(SW) 보안을 위해 허위코드를 삽입하는 코드혼란 기술을 적용하고 있는 것으로 확인됐다. 이는 북한이 자신들이 개발한 SW를 역공학 등으로 분석하는 것을 막기 위한 조치로 해석된다.

대북 소식통에 따르면 북한 김일성종합대학은 김일성종합대학학보 정보과학 2018년 64권 제4호에 '원천코드준위에서의 조종흐름 혼란에 의한 응용 프로그람 보안의 한 가지 방법'이라는 논문을 게재했다.

논문은 프로그램에 대한 보안이 소프트웨어 제품 개발에서 필수적인 공정으로 프로그램기술이 발전함에 따라 그것에 대한 요구수준도 높아지고 있다고 지적했다.

논문은 선행연구에서 허위코드삽입에 의한 안드로이드(Android) 응용프로그램보안 방법을 논의했으며 또 다른 연구에서 어셈블리코드에 대해 코드혼란을 실현하기 위한 여러가지 수법들을 개발했다고 밝혔다. 또 코드혼란 방법에 대한 모형화를 제기했다는 설명이다.

이는 북한 연구원들이 스마트폰, 태블릿PC 등에서 구동되는 안드로이드 앱에 허위코드를 넣고 있다는 뜻으로 해석할 수 있다. 또 어셈블리코드에서의 코드혼란 기술을 개발했으며 코드혼란 방법에 대한 모형화를 통해 기술을 체계화했다는 것이다.

하지만 북한 논문은 앞선 연구들이 원천코드에 대해서는 아무런 처리도 진행하지 않는다고 지적했다. 이에 원천소스코드에 코드혼란을 적용하는 기술을 연구했다는 것이다.

논문은 코드혼란이 프로그램을 의미적으로 동등(같은 결과를 출력하는)하나 해석하기 어려운 다른 프로그람으로 변환하는 수법이며 원천코드준위에서의 코드혼란은 원천코드를 그것과 동등하나 해석하기 어려운 다른 원천코드로 변환하는 방법이라고 해석했다.

실행파일을 대상으로 하는 경우에 비해 원천소스에 코드혼란을 적용하는 것에 장점이 있다고 논문은 소개했다

우선 실행파일에 대한 복잡한 해석과정이 필요없으며 임의의 프로그램 언어에 대해서도 적용이 가능하다는 것이다. 또 프로그램의 중요한 부분들에 대해서는 혼란 깊이를 마음대로 조절해 보다 높은 강도의 보안을 실현할 수 있다고 주장했다.

원천코드준위에서 적용할 수 있는 코드혼란 방법에는 이름혼란, 문자열혼란, 자원암호화, 조종흐름혼란 등 여러 가지가 있지만 그중에서 가장 중요한 것은 조종흐름혼란이라고 지적했다. 조종흐름혼란은 프로그램의 기능성을 보존하면서 실행흐름을 복잡하게 만드는 과정으로 함수 내에서의 혼란과 함수호출관계의 혼란으로 이루어진다고 설명했다.

논문은 함수호출관계의 혼란방법을 설명했다. 그리고 제안된 방법의 효과성을 검증하기 위해 C++와 Java로 작성된 검사용 프로그램들을 선행 코드혼란 방법과 제안된 방법에 의해 분석했다는 것이다.

논문은 분석 결과는 제안된 방식이 기존 방식보다 더 뛰어나다고 주장했다.

논문은 2015년 김일성종합대학 학보 논문을 참고했다고 밝혔다. 즉 이미 2015년부터 코드혼란 기술이 연구, 적용된 것으로 보인다.

이밖에도 논문은 'Chandan Kumar Behera et al.; Procedia Computer Science, 2015', 'E. E. Ogheneovo et al.; International Journal of Engineering Science Invention, 2014' 등 해외 논문을 참고했다고 지적했다.

이번 연구로 볼 때 북한은 스마트폰 앱 등 프로그램에 코드혼란 기술을 적용해 프로그램 분석을 막음으로써 보안을 유지하고 있는 것으로 추정된다. 또 코드혼란 기술을 계속 발전시키며 난독화(해석을 막는 방법)를 강화하고 있는 것이다.  

강진규 기자  maddog@nkeconomy.com

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

 

관련기사

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