기술자산 탈취 막는 방어 기술, 안티탬퍼링... 어떤 기술들이 적용되고 있나

2023-10-16 02:20
  • 카카오톡
  • 네이버 블로그
  • url
소프트웨어 안티탬퍼링, 적용 목적에 따라 ‘억지, 예방, 탐지, 대응’ 기술로 구분
코드 난독화 기술...변환의 수준 및 단위, 변환의 시점 및 방식, 대상 등 분류 가능


[보안뉴스 김영명 기자] ‘안티탬퍼링(Anti-Tampering)’이란 무기체계 코드 기술보호기법으로, 외부에서 기술 자산을 탈취할 수 없도록 방어하는 기술을 의미한다. 안티탬퍼링은 단순한 물리적인 방책부터 고도의 기술을 이용해 전문적인 지식 없이는 접근할 수 없는 방책까지 다양하다. 이 기술은 유·무형의 자산을 어우르기 때문에 우리의 삶에서 인지하지 못하는 부분까지 다양하게 적용돼 있다.


[이미지=gettyimagesbank]

한국과학기술원(KAIST) 사이버보안연구센터(차상길 센터장, CSRC)는 ‘소프트웨어 안티탬퍼링의 정의 및 분류 그리고 기반 기술’에 대해 소개했다. 안티탬퍼링을 가장 쉽고 간편하게 설명할 수 있는 사례를 보면 미국 애플(Apple)사의 아이폰(iPhone)에 적용된 나사를 들 수 있다.

아이폰의 하단부 충전 단자 양쪽을 보면 두 개의 나사로 조여져 있는데, 나사의 머리 부분은 흔히 일상에서 사용하는 ‘+’ 혹은 ‘-’가 아닌 ‘★’모양인 것을 알 수 있다. 이 특이한 나사는 ‘Pentalobe Security Screw’로 국내에서는 ‘별 렌치’라고 부르는 보안 나사다. 이를 풀고 조이기 위해선 같은 모양의 도구가 필요하며, 모양이 다른 드라이버로 강제로 풀거나 조이기 위해 힘을 가하게 되면 나사가 손상돼 더 이상 조일 수도 풀 수도 없게 된다. 이 나사는 2009년부터 애플사의 제품에 적용돼 사용 중이다. 이 외에도 일상에서 쉽게 접하지는 못하지만 다양한 보안 나사들이 존재한다. 이는 외부에서 손쉽게 기기의 외장을 열지 못하게 하려는 단순한 수준의 하드웨어 안티탬퍼링 기술이다.


▲아이폰의 ‘Pentalobe Security Screw’ 및 다양한 모양의 스크류(좌부터)[자료=카이스트 CSRC]

소프트웨어 분야에는 어떤 방식으로 안티탬퍼링을 적용할 수 있을까? 역공학을 통해 소프트웨어를 분석, 위변조를 막는 기술인 소프트웨어 안티탬퍼링은 기술의 적용 목적에 따라 △억지 △예방 △탐지 △대응 등으로 구분할 수 있다. ‘억지’ 기술은 공격 시도 자체를 포기하게 하는 방법으로, 공격을 방어하는 측면에서 기본적인 방법이자 최선의 방어 기술인 안티탬퍼링이다. 보안 나사의 경우가 억지 기술의 일종이며, 소프트웨어의 경우 해시코드, 체크섬 및 스템프로 무결성을 검증해 공격을 사전에 억지할 수 있다. ‘예방’ 기술은 소프트웨어 리버싱을 어렵게 하기 위해 암호화 및 난독화 방법을 적용하는 것으로, 데이터의 가공(변형) 또는 은닉 기술을 이용해 데이터를 숨기거나 복잡도를 증가시켜 중요한 데이터 획득을 어렵게 하는 방법이다.

‘탐지’ 기술은 인증, 접근제어, 무결성 검사와 같은 기술을 이용해 위·변조 시도를 탐지하는 기술이다. ‘대응’ 기술은 공격 시도 탐지 후 로그 기록 분석, 모니터링 강화, 레포팅, 자산 복구, 취약점 패치와 같은 기술을 이용한 사후 보안 강화 기술을 의미한다. 이 네 가지 대응 기술 중 예방 기술 부분에서 ‘안티 리버싱’과 ‘난독화’에 대해 살펴본다.

합법적으로 소스코드를 취득할 수 없는 소프트웨어를 위·변조하기 위해서는 역공학을 통한 소프트웨어 분석이 선행돼야 하는데, 이를 방해하는 방법이 바로 ‘안티 리버싱’ 기술이다. 안티탬퍼링은 안티 리버싱을 포괄하는 의미다.

안티 리버싱은 적용하는 방식에 따라 네 가지로 구분한다. 먼저, ‘소프트웨어의 심볼 정보 제거’는 텍스트와 같은 의미를 내포해 유추 가능한 정보를 삭제하는 방식이다. 클래스명, 클래스 멤버명, 전역 변수 등 다양한 정보를 제거해 분석을 어렵게 한다. ‘안티 디버깅’은 프로그램을 분석하기 위해 역공학을 진행할 때 디버그 분석을 불가능하게 하는 방식이다. 디버거가 연결된 경우 디버거를 손상하거나 비활성화하는 작업을 의도적으로 수행하게 하는 것이다.

‘안티 디스 어셈블리’는 역공학을 통해 바이너리를 분석하기 위해 디스 어셈블링을 하거나 디컴파일 과정을 거치게 되는데, 이러한 역공학을 막기 위해 프로그램 내 특수한 코드와 데이터를 사용해 실제 실행과 다른 명령어들을 보이게 해 디스 어셈블러나 디컴파일러 도구를 방해하기 위해 사용한다. ‘난독화’ 기법은 역공학을 시도하더라도 코드의 분석 및 이해를 어렵게 해 정보를 쉽게 획득하지 못하게 하는 기술이다. 난독화 기법은 대상, 목적, 방법 등 다양한 관점에서 이뤄진다. 여러 안티 리버싱 중 가장 활발히 연구되는 분야는 난독화 기법이다.


▲난독화 기술의 다양한 분류[자료=카이스트 CSRC]

난독화 기법의 목적은 역설계를 통해 프로그램의 기능을 파악하려는 공격자가 코드를 읽을 수 있다 하더라도 내용을 이해하지 못하도록 하는 기술이다. 난독화가 적용된 코드는 사람이 이해하기 힘들게 변조되어 은닉되지만, 소프트웨어의 본래 기능은 원본과 동일하게 작동된다. 코드 난독화 기술은 크게 △변환의 수준 △변환의 단위 △변환의 시점 및 방식 △변환의 대상 등 네 갈래로 분류할 수 있다.

‘변환의 수준’은 개발 언어 및 난독화 시점에 따라 코드 변환 수준을 결정할 수 있다. 예를 들어 C언어의 경우 바이너리와 소스코드 수준에서의 난독화를 수행하지만, 자바(JAVA)의 경우에는 소스코드 수준에서 중점적으로 난독화 기술이 연구·개발되고 있다. 개발 언어의 특징이나 구조에 따라 변환 대상의 수준이 달라 어떠한 기술이 우월하다고 단정지을 수는 없다.

‘변환의 단위’는 목적에 따라 변환 명령어, 기본 블록, 순환(Loop), 함수, 프로그램, 시스템 등 단위별로 세분해 난독화 수준을 선택할 수 있다. 명령어 수준 변환에서 소스코드는 중간 언어 혹은 어셈블리 명령어로 구성될 수 있으며, 이 단계에서 개별 명령어나 명령어의 시퀀스에 변환을 적용한다. 기본 블록 수준 변환에서 기본 블록은 하나의 진입점과 분기 명령어로 끝나는 순차 명령어 모음을 의미하며, 명령어들을 포괄하는 단위가 된다. 순환 수준 변환은 개발자가 프로그램 내에 삽입한 순환 구조에 변환을 주는 수준을 말한다.

함수 수준 변환에서 특정한 서브 루틴의 기본 블록 및 여러 명령어에 변환을 주며, 함수와 연관된 스택 및 힙 메모리에도 영향을 준다, 프로그램 수준 변환은 애플리케이션 내부의 여러 함수를 대상으로 변환하며, 프로그램의 전역 변수 및 정적 변수와 같은 데이터 세그먼트와 할당된 메모리도 변환의 대상이 된다. 시스템 수준 변환은 운영 체제 또는 런타임 환경을 대상으로 하며 다른 프로그램과 상호작용을 할 때, 변환의 영향을 끼친다.

‘변환의 시점 및 방식’은 변환 시기에 따라 정적·동적 변환으로 구분될 수 있다. 정적 변환은 프로그램 설계 주기 중 한 번 적용되며, 동적 변환은 프로그램 실행 중 변환이 가능하다. 동적 변환은 더욱 분석을 어렵게 하는 장점은 있지만, 실행 중 쓰기 및 실행이 허용돼 원격 공격에 노출될 수 있으며, 과도한 동작으로 인한 성능 문제를 일으킬 수도 있다.

‘변환의 대상’은 크게 ‘데이터’와 ‘코드’로 분류할 수 있다. 먼저, 데이터 변환은 애플리케이션에 하드 코딩된 값의 표현과 위치를 변환해 난독화를 진행한다. 바이트 배열 혹은 정수, 변수 등의 상수 데이터를 다른 데이터의 값으로 치환해 인코딩하는 정적 데이터 변환과 가변 메모리값의 표현이나 구조를 수정하는 가변 데이터 변환 등이 대표적인 난독화 기술이다.

코드 변환은 코드 논리 및 코드 추상화 변환으로 분류해 앱의 제어흐름과 알고리즘, 자료구조 등 코드의 논리 및 제어를 변형하는 코드 논리 변화와 변수명, 주석, 들여쓰기(공백 문자 및 탭) 등의 높은 수준의 코드 추상화 변환이 주요 기술이다.

CSRC 관계자는 “네 가지의 난독화 기술 외에도 다양한 기술이 존재한다”며 “일반적으로 다양한 난독화 기술을 섞어 복잡도를 증가시켜 소프트웨어를 보호하고, 보호 효과가 매우 높다”고 말했다. 이어 “다만 중첩된 난독화 기술로 인해 소프트웨어의 성능 저하가 발생하고, 파일의 크기가 증가하는 문제가 있어 최적화 작업이 필요하다는 단점도 존재한다”고 덧붙였다.
[김영명 기자(boan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


과월호 eBook List 정기구독 신청하기

    • 가시

    • 인콘

    • 엔텍디바이스코리아

    • 핀텔

    • KCL

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 아이리스아이디

    • 원우이엔지

    • 지인테크

    • 홍석

    • 이화트론

    • 다누시스

    • 테크스피어

    • 프로브디지털

    • 슈프리마

    • 인텔리빅스

    • 시큐인포

    • 미래정보기술(주)

    • 비전정보통신

    • 지오멕스소프트

    • HS효성인포메이션시스템

    • 인터엠

    • 위트콘

    • 성현시스템

    • 동양유니텍

    • 투윈스컴

    • 스피어AX

    • 다후아테크놀로지코리아

    • 한결피아이에프

    • 경인씨엔에스

    • 디비시스

    • 트루엔

    • 세연테크

    • 아이원코리아

    • 유니뷰

    • 포엠아이텍

    • 넥스트림

    • 아이닉스

    • 아이리스아이디

    • 펜타시큐리티

    • 셀파인네트웍스

    • 지코어코리아

    • 시큐아이

    • 신우테크
      팬틸드 / 하우징

    • 에프에스네트워크

    • 엣지디엑스

    • 케이제이테크

    • 알에프코리아

    • (주)일산정밀

    • 아이엔아이

    • 미래시그널

    • 새눈

    • 네티마시스템

    • 유투에스알

    • 주식회사 에스카

    • 한국아이티에스

    • 케비스전자

    • 레이어스

    • 지에스티엔지니어링
      게이트 / 스피드게이트

    • 에이앤티글로벌

    • 이스트컨트롤

    • 현대틸스
      팬틸트 / 카메라

    • 제네텍

    • 넥스텝

    • 티에스아이솔루션

    • 에이티앤넷

    • 구네보코리아주식회사

    • 엘림광통신

    • 한국씨텍

    • 포커스에이치앤에스

    • 이엘피케이뉴

    • 휴젠

    • 신화시스템

    • 글로넥스

    • 메트로게이트
      시큐리티 게이트

    • 세환엠에스(주)

    • 유진시스템코리아

    • 카티스

    • 유니온커뮤니티

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

Passwordless 설정

PC버전

닫기