자동화 된 바이너리

마지막 업데이트: 2022년 5월 24일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

Month: July 2016

2014년 여름, 미 국방성 연구부문을 담당하고 있는 DARPA (Defense Advanced Research Projects Agency)에서 매우 흥미로운 competition event를 진행한다. 이름하여 Cyber Grand Challenge – 자동화된 공격방어 시스템 (automated cyber reasoning system) 하에 상호 간의 공격과 방어를 모두 기계가 실시간으로 담당하게 해 경쟁하는 대회다.

많은 CTF Challenge 대회가 있지만, 사람의 개입없이 순수히 기계만을 이용해 취약점을 찾고, 공격과 방어를 하는 경우는 세계적으로 처음이었다. 게다가 상당히 큰 금액의 상금은 자동화 된 바이너리 보안인의 관심을 끌기에 충분했다.

대표링크는 여기 https://cgc.darpa.mil 로 각종 문서와 대회결과를 확인할 수 있다. 대회는 3년간 예선(2014년)과 최종후보 결선전(2015년)을 거쳐 2016년 8월 4일 DEF CON에서 Final 결승전을 치룬다. Final은 7개의 팀이 겨룰 예정이며, 우승자는 무려 20만불의 상금을 거머쥘 수 있다.

작년 USENIX technical session에서 Invite 자동화 된 바이너리 Talk으로 DARPA의 Mike가 두번의 대회를 치르면서 있었던 과정과 결과를 발표했다. 발표자료는 여기를 참고하기 바란다.

UPDATED (As of Aug. 8, 2016)
a. Mayhem declared the final winner of historic Cyber Grand Challenge.
b. Mayhem has been developed as a cyber reasoning system since 2012 by Sang Kil Cha et al., see the paper, Unleashing MAYHEM on Binary Code, for more details)
c. CFE File Archive is available now.

2. DECREE

무엇보다도 DARPA는 취약점 자체에 초점을 맞출 수 있도록 기존 리눅스 환경을 변형한 DECREE라는 운영제체를 개발했다. DECREE는 수백 개의 system call이 존재하는 리눅스와는 다르게 실행파일이 다음과 같이 단 7개의 system call만을 이용하도록 설계했다. (Header 파일 참조)

  • int transmit(int fd, const void *buf, size_t count, size_t *tx_bytes);
  • int receive(int fd, void *buf, size_t count, size_t *rx_bytes);
  • int fdwait(int nfds, fd_set *readfds, fd_set *writefds);
  • 자동화 된 바이너리
  • int allocate(size_t length, int is_X, void **addr);
  • int deallocate(void *addr, size_t length);
  • int random(void *buf, size_t count, size_t *rnd_bytes);

새로운 운영체제에서 작동할 수 있는 실행파일을 컴파일할 수 있도록 gcc를 수정하고, 실행파일포맷 또한 기존의 ELF를 기반으로 한 cgc 포맷을 새로 정의했다. 이는 기존의 어떤 운영체제에서도 파일의 실행은 물론 대회에서 발견한 취약점과 exploit 모두 무미의함을 의미한다. 그리고 IPC (Inter-Process Communication) 도 무척 제한적이다. 공유 메모리를 지원하지 않으며, 단순한 양방향 통신만을 지원한다.

CyberGrandChallenge Github에 있는 walk-through 문서를 따라 VirtualBox와 vagrant를 설치하고 vbox를 추가한 후 다음과 같이 5개의 VM을 차례로 부팅할 수 있다.

바이너리브릿지, 실시간 배송서비스 ‘핑퐁’ 런칭

인공지능 기술 기반의 물류 자동화 , 최적화 서비스를 개발하는 ‘ 바이너리브릿지 ( 대표 임은선 )’ 은 최적화된 경로로 보다 정확한 실시간 배송이 가능한 ‘ 핑퐁 ’ 서비스를 전격 런칭한다고 밝혔다 .

바이너리브릿지는 2017 년 딜리버리히어로코리아에 인수된 ‘ 푸드플라이 ‘ 를 창업하고 운영한 4 명의 경영진들이 다시 모여 작년에 설립한 기술 물류 스타트업이다 . 이미 성공적인 엑싯을 경험한 창업팀에 더해 우버 , 아마존 , 딜리버리히어로 등 물류 체인의 (Last-mile Logistics) 최전선에서 산업에 대한 높은 이해와 경험을 쌓은 구성원들이 합류했다 .

바이너리브릿지는 이륜차 배송 서비스에 인공지능을 결합해 예측가능 하고 효율적인 실시간 배송의 일상화를 목표로 한다 . 오는 18 일에 베타서비스를 시작하는 ‘ 핑퐁 ’ 서비스는 누구나 언제 어디서든 물건을 쉽게 보내고 바로 받을 수 있는 생활물류서비스를 제공한다 .

스타트업 , 테크 , 물류에서 풍부한 경험이 있는 팀과 스마트한 생활물류 서비스 일상화라는 미션을 담은 바이너리브릿지는 지난 6 월 , 본엔젤스와 패스트벤처스로부터 시드 투자를 성공리에 유치했다 .

또한 , 세계시장을 선도할 기술아이템을 보유한 창업팀을 민간주도로 선발하여 미래유망 창업기업을 집중 육성하는 프로그램인 중소기업벤처부 자동화 된 바이너리 주관의 ‘ 팁스 (TIPS)’ 프로그램에도 선정되며 , 기술력과 성장가능성을 인정받았다 .

자사가 개발한 ‘ 핑퐁 ’ 서비스는 △ 최적화된 경로는 물론 , △ 주문묶음 생성 △ 자동배차 △ 정확한 배송시간예측 △ 실시간 배송현황 분석을 주요 특징으로 한다 . 이를 통해 고객은 상황에 맞춰 ‘ 급송 ‘ 에서 ‘ 오늘배송 ‘ 에 이르는 다양한 배송 옵션을 저렴한 가격에 이용하고 막연한 기다림 없이 정확한 예상시간에 물품을 주고받을 수 있다 .

또한 배송원은 비효율적이고 불투명한 기존의 경쟁 배차 방식에서 벗어나 고객과 안전에만 집중하며 안정적 수익을 확보할 수 있다 .

시드 투자에 참여한 패스트벤처스 측은 “ 앞으로 물류 서비스 지역 , 배송수단 및 취급물품 확대하고 기술 고도화를 통해 기존 퀵서비스 및 택배를 대체 및 보완하는 새로운 실시간 배송 서비스로서 물류 패러다임 변화를 선도할 수 있는 기업으로 성장해 나갈 것 “ 이라며 바이너리브릿지의 성장 가능성을 밝혔다 .

바이너리브릿지 임은선 대표는 “ 기존 물류는 기술 부재에 따른 운영비효율이 높은 가격 , 예측 불가능한 배송 , 사고위험 등 다양한 형태로 고객과 배송원에게 전가되어 왔다 . 이번 투자를 기반으로 자동화・최적화 기술을 적용한 물류 플랫폼을 고도화하여 , 예측가능하고 편리한 실시간 배송 서비스 , 효율적이고 지속가능한 물류 환경을 만들어가겠다 “ 고 밝혔다 .

인사이너리, 바이너리 코드로 오픈소스 보안 취약점 검증하는 '클래리티' 발표

국내외 오픈소스 및 보안 전문가들이 올해 6월 설립한 오픈소스 솔루션 전문 벤처기업 인사이너리(Insignary)는 소스코드 없이 0과 1로만 표현되는 바이너리 코드만으로 보안 및 컴플라이언스(규제준수) 문제를 검증하는 소프트웨어 '클래리티(Clarity)'를 4일 발표했다.

인사이너리 클래리티는 공급망에서 바이너리 코드로 공급되는 소프트웨어에 포함된 오픈소스의 보안 취약점과 오픈소스 라이선스의 법적 리스크를 검증하고 확인하는 도구다. 현재 베타 프로그램으로 제공되며, 공식 판매용 제품은 2017년 1월 출시할 예정이다.

인사이너리 클래리티는 오픈소스 프레임워크인 바이너리 어낼리시스 툴(BAT)을 기반으로 개발됐다. 아마인 헤멜(사진) 인사이너리 최고기술책임자(CTO)가 10년 전 개발을 시작해 세계적으로 글로벌 IT 시장에서 6년 동안 바이너리 코드에 대한 오픈소스 라이선스 컴플라이언스 검증 도구로 사용돼왔다.

신제품은 BAT 엔진의 정확도를 향상시키고, 고도의 오픈소스 보안 취약점 정보와 그래픽 유저 인터페이스(GUI)를 추가 제공한다. 또 클라우드에서 동작하거나 서버에서 직접 동작할 수 있도록 옵션을 추가했다. 기업 단위의 대규모 사용이 가능하고, 상용 보안 데이터베이스(DB)를 사용, 자동화 된 바이너리 젠킨스(Jenkins)와 같은 자동화된 빌드 시스템을 지원한다.

안랩의 연구소장과 CTO를 역임하고 인사이너리 창업 멤버로 합류한 조시행 전무는 "모바일, 임베디드, 사물인터넷(IoT), 자동차 등에서 오픈소스 사용은 필수적이며, 이런 환경에서 오픈소스의 보안 취약점 점검은 그 어느 때보다 중요하다"며 "인사이너리 클래리티는 기업이 외부 코드를 더욱 안전하게 사용하도록 도와준다"고 말했다.

[특집]악성코드의 진화속도와 대등한 대응기술 마련해야 악성코드는 DDoS 공격, 대규모 스팸 발송 등 대부분의 사이버 공격에 사용되고 있다. 최근 인터넷을 통해 악성코드 전문 제작 툴(Malware Construction Kit)이 보급됨에 따라 누구나 지능화된 탐지 회피 기술이 적용된 자동화 된 바이너리 자동화 된 바이너리 악성코드를 제작할 수 있게 되었고 그로 인해 신종 악성코드의 수가 급격히 증가하고 있다. 특히 최근의 악성코드가 진화속도는 매우 빠른 반면, 그에 대응하는 기술의 발전은 그 속도에 뒤처지고 있는 것이 사실이다. 앞으로의 악성코드가 어떻게 진화할지 예의주시하여 진화속도와 나란히 하는 대응기술을 마련함으로써 악성코드로 인한 피해를 줄여야 할 것이다.

악성코드는 DDoS 공격, 대규모 스팸 발송 등 대부분의 사이버 공격에 사용되고 있다. 최근 인터넷을 통해 악성코드 전문 제작 툴(Malware Construction Kit)이 보급됨에 따라 누구나 지능화된 탐지 회피 기술이 적용된 악성코드를 제작할 수 있게 되었고 그로 인해 신종 악성코드의 수가 급격히 증가하고 있다. 본고에서는 신종/변종 악성코드의 증가, 악성코드들의 역할분담 등 최근의 두드러진 특징을 살펴보고 악성코드들이 주로 사용하는 지능형 분석/회피 기술에 대해서 설명한다. 분석/회피 기술로써 루트킷, Anti-VM/디버거, 실행 압축 등 다양한 기술들이 사용되어 왔으나 최근 이슈가 되고 있는 정상 프로세스에 바이너리 코드 삽입, 가짜 gif 헤더를 이용한 원격 명령/제어 등에 대해 중점적으로 다룬다.

신종/변종 악성코드의 급격한 증가 : 악성코드 제작 툴의 보급
최근 유명 해킹 포럼, 비공개 뉴스그룹 등을 통해 악성코드 전문 제작 툴이 널리 유포되고 있다. 이들 툴을 이용할 경우, 전문적인 지식이 없는 초급 해커들도 실행압축, Anti-VM등 최신 분석 방해 기술이 적용된 악성코드를 쉽게 제작할 수 있어 그 심각성이 점차 증대하고 있다.

그림 1은 2008년부터 인터넷을 통해 쉽게 다운로드 받을 수 있는 대표적인 악성코드 제작 툴이며 해당 툴은 단순한 버튼 클릭을 통해서 실행압축, 커널 루트킷 등 최신 분석 회피/지연 기능을 쉽게 추가할 수 있다. 그림 2는 2009년 7월 미국에서 자동화 된 바이너리 3백만대 이상의 PC를 감염시킨 Zeus 악성코드 관리 툴로서 악성코드 생성, 감염 호스트 정보 확인, 원격 명령 제어가 가능하다.
이러한 악성코드 제작 툴의 보급은 최근 신종/변종 악성코드 수의 급격한 증가의 원인으로 분석되고 있으며 2007년 1월부터 악성코드의 수가 급격히 증가하여 2008년 12월 한달 평균 75만개의 샘플(이 중 약 50만개가 중복 또는 변종으로 분류)이 수집되는 추이를 확인할 수 있다.

악성코드들의 역할 분담 : 다운로더, 루트킷, 스팸발송 등으로 구성된 악성코드 패밀리의 등장 자동화 된 바이너리
과거 대부분의 악성코드는 하나의 실행 파일에 확산, 실행 정보 은닉, 코드 난독화 등의 기술들을 모두 포함하기 때문에 파일 사이즈가 컸었다. 이러한 악성코드는 바이너리 코드내에 다수의 악성기능 패턴을 보유하고 있어 안티 바이러스 제품이 비정상 파일로 쉽게 분류가 가능했다. 그러나 최근 악성코드는 바이너리 업데이트, 스팸 발송, DDoS 등 각각의 기능을 전담하는 모듈들로 나뉘고 각 모듈들이 유기적으로 협력하는 하나의 악성코드 패밀리 형태를 보이고 있다.

또한 90% 이상의 악성코드가 바이너리 내의 악성기능 패턴 정보를 숨기기 위한 실행압축(packing)기술이 적용되어 있다. 2009년 FaceBook, Twitter 등 유명 커뮤니티사이트를 통해 전파된 Koobface의 경우, 그림 3에서 보는 것과 같이 다운로더, 감염 확산 등의 역할을 담당하는 파일들로 나누어져 있는 것을 확인할 수 있다. 또한 그림 4의 Cutwail 역시 5개 이상의 악성 파일들이 역할을 분담하는 것을 확인할 수 있다.

고도화된 자동화 된 바이너리 분석 회피 기술의 사용 : 실행 정보를 남기지 않기, 가짜 gif 헤더를 이용한 원격 명령/제어
악성코드는 안티바이러스 제품 등에 의한 탐지를 방해하기 위한 목적으로 루트킷(실행 정보를 은닉) 기능을 지속적으로 사용해 왔다. 루트킷의 대표적인 예로 악성코드 프로세스 정보를 조회하기 위한 Win 32 API 호출을 가로 챈 다음(Hooking), 호출 결과 값에서 악성 프로세스 정보를 삭제하는 기법과 커널레벨에서 직접 EPROCESS 구조체 값을 변경하여 프로세스 정보를 은닉하는 기법이 있다.

그러나 이와 같은 기법은 커널에서의 실행 프로세스 정보 저장 테이블(SSDT) 가상화, 커널 구조체 재생성 등의 기법을 이용하여 탐지가 가능하다. 그래서 최근에는 svchost.exe, winlogon.exe등의 윈도우 OS의 정상 프로세스에 악성 바이너리 코드를 삽입하여 동작하는 악성코드가 증가하고 있다. 대표적인 예로, 2009년 5월 전체 스팸 메일의 45.8%를 발송하고 있는 Cutwail은 윈도우 OS의 svchost.exe 프로세스에 실행 가능한 바이너리 코드(Executable Code)를 삽입하고 이를 통해 명령/제어 메시지 수신, 스팸 발송 등의 기능을 수행하였다.

또한 기존의 악성코드는 감염 호스트를 원격에서 제어하고 명령을 전달하기 위해 텍스트 기반의 명령어(Command) 전달 방식을 사용하였으나 최근 보안솔루션들이 응용 레벨의 프로토콜 파싱, 패턴 매칭 등의 기능을 제공함에 따라 명령 메시지들이 쉽게 차단 될 수 있다. 2009년 3월 Secureworks에 의해 보고된 Cimbot은 이러한 단점을 극복하기 위해 gif파일로 위장한 명령 메시지 사용한다.

그림 5와 같이 HTTP 응답 메시지의 Content-Type을 Image/gif로 설정하였기 때문에 대부분의 보안 장비에서 정상적인 메시지로 처리하게 되지만 실제로 자동화 된 바이너리 HTTP Body의 16 바이트부터 복호화하기 위한 키와 암호화된 명령/제어 메시지, 스팸 발송을 위한 템플릿이 내장되어 있는 것을 확인할 수 있다.

그럼 어떻게 분석하고 대응해야 하는가?
최근의 추세에 따른 대응 방법으로는 크게 두 가지 요소가 선결되어야 할 것으로 판단된다. 첫째로 급속히 증가하는 악성코드를 적시에 분석하기 위한 자동화, 두 번째로 악성코드 패밀리의 정확한 파악 및 각 역할 분석을 위한 행위분석 기술이 적용되어야 할 것이다.

-자동화된 악성코드 분석 시스템
급격히 증가하고 있는 신종/변종 악성코드에 대응하기 위해 다양한 경로로 전파되는 악성코드의 수집, 분석, 시그니처 생성, 분류 등 일련의 과정을 자동화하여 대량의 악성코드를 적시에 분석/대응할 수 있는 시스템이 필요하다. 일부 전문가의 수동 분석이 필요한 부분에 있어서는 자동화 시스템과 연계하여 운용할 수 있을 것이다.

-지능형 악성코드 행위 분석 시스템
패밀리 형태로 역할이 분담되거나 정상 프로세스에 바이너리 코드를 삽입하는 등 지능형 악성코드 분석은 초기 수집된 악성코드의 정적분석으로는 전체적인 파악이 어려울 수 있다. 따라서 악성코드가 어떠한 행위를 하는지 분석하는 행위 분석 기술이 적용되어야 한다. 예를 들어 악성코드를 실행하여 다운받는 실행파일을 추출하고 분석을 요청하고 메모리 쓰기 행위를 추적해서 정상 프로세스 영역에 메모리 쓰기 이벤트가 발생할 경우 정상 프로세스를 분석 대상으로 추가해서 행위를 분석할 수 있다.

최근의 악성코드가 진화속도는 매우 빠른 반면, 그에 대응하는 기술의 발전은 그 속도에 뒤처지고 있는 것이 사실이다. 앞으로의 악성코드가 어떻게 진화할지 예의주시하여 진화속도와 나란히 하는 대응기술을 마련함으로써 악성코드로 인한 피해를 줄여야 할 것이다.


0 개 댓글

답장을 남겨주세요