트로얀 소스, 소스코드를 몰래 감염시키는 신박한 공급망 공격 기법

2021-11-02 18:43
  • 카카오톡
  • 네이버 블로그
  • url
프로그래밍 언어들이 간과하는 요소가 한 가지 있다. 유니코드의 자체 제어 장치다. 이 장치는 사람의 눈에도 보이지 않고, 코드 편집기들도 크게 문제 삼지 않는다. 게다가 코멘트나 문자열 속에 집어 넣으면 컴파일러도 그냥 넘어가 준다. 이를 이용하면 투명 멀웨어가 포함된 정상 소스코드가 완성된다.
 
[보안뉴스 문가용 기자] 사람의 눈과 컴파일러의 탐지 기술을 모두 속이는 악성 코드 삽입 기법이 고안됐다. 소스코드에 악성 요소를 직접 심는 이 공격에는 ‘트로얀 소스(Trojan Source)’라는 이름이 붙었다. 캠브리지대학의 연구원들인 니콜라스 바우처(Nicholas Boucher)와 로스 앤더슨(Ross Anderson)이 이와 관련된 보고서를 발표했다.
 

[이미지 = utoimage]

두 연구원에 의하면 트로얀 소스 공격은 모든 소스코드를 위협할 수 있는 공격 기법이라고 한다. 그들 스스로도 C, C++, C#, 자바스크립트, 자바, 러스트, 고, 파이선 언어들에 대한 공격을 성공시켰으며, 그에 대한 개념증명 코드까지 개발을 완료했다. 그 외에도 다른 현대 모든 프로그래밍 언어들에도 영향을 줄 수 있을 것이라고 바우처와 앤더슨은 보고 있다.
 
이번 연구와 관련된 취약점은 총 두 가지로 CVE-2021-42574와 CVE-2021-42694다. 둘 다 유니코드(Unicode) 시스템과 관련된 취약점들이다. “예를 들어 라틴어로 된 문자들을 화면에 나타낼 때는 왼쪽에서 오른쪽으로 텍스트가 흐르도록 합니다. 반대로 아라비아어 문자라면 오른쪽에서 왼쪽으로 가는 게 정상이죠. 이런 두 가지 텍스트가 섞여 있을 때, 화면에 글자가 나타나는 순서가 서로 충돌하게 됩니다. 이를 해결하는 알고리즘이 유니코드에 있긴 하지만 충분치 않을 수 있습니다. 이 때 유니코드는 눈에 보이지 않는 문자나 기호들을 삽입함으로써 ‘여기서부터 텍스트 노출 순서가 바뀐다’는 표시를 합니다.” 트로얀 소스 공격은 이 지점을 악용하는 것이라고 볼 수 있다.
 
“아무리 정교하게 설계된 프로그래밍 언어들이라고 하더라도 유니코드가 텍스트 흐름을 제어하기 위해 삽입하는 투명 문자 및 기호들을 피해갈 수밖에 없습니다. 논리적인 인코딩을 유지하기 위해서이죠. 이 부분을 건드리게 되면 코딩의 논리 흐름이 깨집니다. 컴파일을 해 보면 구문 오류가 뜹니다. 구문 오류는 코멘트나 문자열 처리를 통해 해결할 수 있는 오류들인데요, 코멘트나 문자열 모두 처음과 끝을 지정해 주는 명령들이 존재합니다. 그런데 유니코드의 알고리즘을 익스플로잇 하는 공격은 코멘트와 문자열의 처음과 끝을 지정하는 명령을 무시합니다. 그러므로 특정 유니코드용 제어 문자들을 코멘트나 문자열 안에 삽입함으로써 컴파일러도 발견하지 못하는 악성 코드를 삽입할 수 있게 됩니다.”
 
이를 현실에 적용한다면 소스코드로서도 완벽히 정상적으로 보이고 컴파일도 제대로 되는데 완벽하게 악의적인 기능을 발휘하는 코드를 만들 수 있게 된다고 연구원들은 강조했다. 그러므로 전혀 새로운 공급망 공격을 할 수 있게 된다고 한다. “코멘트와 문자열 안에 악의적 논리를 가진 유니코드 글자들을 삽입함으로써 실제 소스코드의 논리를 해치지 않으면서도 독자적인 멀웨어를 설치할 수 있게 되는 겁니다. 사람들의 눈에도 띄지 않고 컴파일러도 속일 수 있으며, 심지어 보안 솔루션들도 높은 확률로 피해갈 수 있습니다.”
 
유니코드의 이러한 ‘보이지 않는 문자’들이 거의 모든 시스템에서 ‘복사 및 붙여넣기’ 기능을 통해서도 간편하게 옮겨진다는 것도 문제다. 코드의 정상적인 부분들을 긁어다 붙였을 뿐인데 자기도 모르게 악성 코드까지 심을 수 있다는 뜻이다. 깃허브(GitHub) 등을 통해 공유되는 코드들이 개발자들 사이에서 ‘복사 및 붙여넣기’로 대부분 전파된다는 걸 감안하면 이러한 특성 역시 대단히 위험하게 작용할 수 있다. 때문에 이러한 취약점이 통하지 않도록 컴파일러의 업데이트가 필요한 상황이다. 실제 두 연구원들은 보고서를 발표하기 전에 미리 컴파일러 개발사에 연락해 필요한 조치를 취했다고 한다. 하지만 모두 여기에 대응을 하고 있는 건 아니다.
 
한 가지 다행인 점은 아직 이러한 공격 시도가 실제 현장에서는 발견되지 않고 있다는 것이다. “CVE-2021-42574와 CVE-2021-42694가 아직까지는 실제 공격에서 익스플로잇 된 사례가 없었습니다. 하지만 아직까지 트로얀 소스 공격에 대한 완벽한 대처법이 존재하지 않는다는 걸 간과해서는 안 되겠죠. 현존하는 모든 프로그래밍 언어들의 유지 보수를 담당하는 분들이 빨리 코드 편집기와 컴파일러를 패치하기를 기다리는 수밖에 없습니다.”
 
3줄 요약
1. 거의 모든 프로그래밍 언어를 유니코드의 특성으로 농락하는 방법 개발됨.
2. 이 방법을 잘 사용하면 사람도, 컴파일러도, 보안 솔루션도 모두 속일 수 있음.
3. 프로그래밍 언어 관리 유지 책임자들이 컴파일러와 편집기 패치를 서둘러야만 해결이 가능한 위협.

[국제부 문가용 기자(globoan@boannews.com)]

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

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


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

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

    • 인콘

    • 엔텍디바이스코리아

    • 이노뎁

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

    • 아이디스

    • 씨프로

    • 웹게이트

    • 씨게이트

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 비엔비상사

    • 원우이엔지

    • 지인테크

    • 지오멕스소프트

    • 이화트론

    • 다누시스

    • 테크스피어

    • 렉스젠

    • 슈프리마

    • 인텔리빅스

    • 시큐인포

    • 미래정보기술(주)

    • 동양유니텍

    • 비전정보통신

    • 경인씨엔에스

    • 트루엔

    • 성현시스템

    • 한결피아이에프

    • 프로브디지털

    • 디비시스

    • 세연테크

    • 스피어AX

    • 투윈스컴

    • 위트콘

    • 유에치디프로

    • 구네보코리아주식회사

    • 주식회사 에스카

    • 넥스트림

    • 포엠아이텍

    • 세렉스

    • 탈레스

    • 에스지에이솔루션즈

    • 로그프레소

    • 윈스

    • 포티넷코리아

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

    • 에프에스네트워크

    • 유투에스알

    • 케이제이테크

    • 알에프코리아

    • 창성에이스산업

    • 아이엔아이

    • 미래시그널

    • 새눈

    • 에스에스티랩

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

    • 이스트컨트롤

    • 네티마시스템

    • 태정이엔지

    • (주)일산정밀

    • 넥스텝

    • 한국씨텍

    • 두레옵트로닉스

    • 에이티앤넷

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

    • 에이앤티글로벌

    • 포커스에이치앤에스

    • 신화시스템

    • 휴젠

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

    • 글로넥스

    • 엘림광통신

    • 세환엠에스(주)

    • 유진시스템코리아

    • 카티스

    • 유니온커뮤니티

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

Passwordless 설정

PC버전

닫기