F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … ·...

24
46 INTERNET & SECURITY FOCUS October 2014 ** 한국인터넷진흥원 취약점분석팀 주임연구원([email protected]) ** 한국인터넷진흥원 취약점분석팀 선임연구원([email protected]) GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안 FOCUS 4 민재원*, 손기종** 최근 리눅스 계열 OS에서 주로 사용하는 GNU Bash에서 공격자가 원격에서 악의적인 시 스템 명령을 실행할 수 있는 취약점이 발견되었다. 이 취약점은 쉘쇼크(ShellShock)로 명명 되었으며 취약점 정보와 공격 프로그램이 인터넷에 공개된 이후 다양한 사이버 공격이 발생하고 있다. 이에 본고에서는 GNU Bash의 취약점을 통해 발생하고 있는 사이버 공격 활동들에 대 한 분석을 통해 이번 취약점이 국내에 미칠 수 있는 영향과 앞으로 예상되는 위협 추세 들에 대해 살펴보고 기업 및 기관에서 취약점을 대응할 수 있는 방안에 대해 서술한다. . 서론 . Gnu Bash 취약점 분석 1. 취약점 발생원인 분석 2. 취약한 프로그램 3. 공격 유형 4. 공격 가능 시나리오 . 공격 동향 분석을 통한 보안 위협 예측 1. 공격 동향 분석 2. 국내 공격 동향 3. 공격 프로그램 분석 4. 악성코드 분석 5. 보안 위협 예측 . 취약점 대응 방안 1. Gnu Bash 업데이트 방법 2. 사용하지 않는 CGI 페이지 삭제 또는 관련 서비스 중지 3. 네트워트 탐지룰 설정 . 결론

Transcript of F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … ·...

Page 1: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

46 INTERNET & SECURITY FOCUS October 2014

** 한국인터넷진흥원 취약점분석팀 주임연구원([email protected])

** 한국인터넷진흥원 취약점분석팀 선임연구원([email protected])

GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FO

CU

S

4

민재원*, 손기종**

최근 리눅스 계열 OS에서 주로 사용하는 GNU Bash에서 공격자가 원격에서 악의적인 시

스템 명령을 실행할 수 있는 취약점이 발견되었다. 이 취약점은 쉘쇼크(ShellShock)로 명명

되었으며 취약점 정보와 공격 프로그램이 인터넷에 공개된 이후 다양한 사이버 공격이 발생하고

있다. 이에 본고에서는 GNU Bash의 취약점을 통해 발생하고 있는 사이버 공격 활동들에 대

한 분석을 통해 이번 취약점이 국내에 미칠 수 있는 영향과 앞으로 예상되는 위협 추세

들에 대해 살펴보고 기업 및 기관에서 취약점을 대응할 수 있는 방안에 대해 서술한다.

Ⅰ. 서론

Ⅱ. Gnu Bash 취약점 분석

1. 취약점 발생원인 분석

2. 취약한 프로그램

3. 공격 유형

4. 공격 가능 시나리오

Ⅲ. 공격 동향 분석을 통한 보안 위협 예측

1. 공격 동향 분석

2. 국내 공격 동향

3. 공격 프로그램 분석

4. 악성코드 분석

5. 보안 위협 예측

Ⅳ. 취약점 대응 방안

1. Gnu Bash 업데이트 방법

2. 사용하지 않는 CGI 페이지 삭제 또는

관련 서비스 중지

3. 네트워트 탐지룰 설정

Ⅳ. 결론

Page 2: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

47

Ⅰ. 서론

최근 계속해서 오픈소스 소프트웨어들의 보안 이슈가 발생하고 있다. 대표적인 예로 지난

2014년 4월 인터넷 통신을 암호화하기 위해 사용하는 오픈소스 라이브러리인 OpenSSL에서

하트블리드(HeartBleed) 취약점이 발견되어 전 세계적으로 큰 이슈가 되었으며 이 때문에

수많은 서버들이 업데이트를 해야 했다. 오픈소스 소프트웨어의 장점은 소스코드가 공개되

어 있기 때문에 누구나 접근할 수 있어 널리 사용하고 있다는 것이다. 따라서 소스코드가 비

공개된 소프트웨어들보다 많은 소스코드 오디터(auditor)들에 의해 분석되어 더 안전할 것이

라고 예상했으나, 수십 년 동안 존재했던 코드들에 취약점들이 계속 발견되면서 오픈소스 소

프트웨어의 보안성에 대한 신뢰가 떨어지고 있다. GNU 프로젝트1의 Bash2 또한 개발이 된

지 매우 오래된 오픈소스 프로젝트이다. 아카마이(Akamai)의 IT 매니저인 스테판 챠젤라스

(Stephane Chazelas)에 의해 취약점(CVE-2014-6271)이 발견되기 전에는 보안연구원들이

Bash에 대한 관심을 크게 가지지 않았으나, 취약점이 공개된 이후 지속적으로 관심을 가지

며 추가적인 보안 취약점이 계속 발견되는 상황이 발생하였다.

취약점을 최초 발견한 스테판 챠젤라스는 영국에서 IT 매니저로 근무하는 프랑스인으로,

Bash의 소스코드를 분석하던 중 원격명령을 실행할 수 있는 취약점을 2014년 9월 12일 발견

하여 Bash 개발 담당자에게 신고하였다. 취약점이 존재하는 코드는 1993년도 이전부터 최

근에 발견되기 전까지 20년 동안 존재했으며, OpenSSL 하트블리드 취약점 이후로 취약점

에 이름을 짓는 유행에 따라 이 취약점은 쉘쇼크(Shellshock)라고 명명되었다. 또한 앞서 언

급했듯이 보안연구원들이 Bash의 보안성에 관심을 가지기 시작해 토드 사빈(Todd Sabin),

플로리안 웨이머(Florian Weimer), 미첼 잘루스키(Michal Zalewski)에 의해 추가적인 취약

점들이 발견되었다.

이번 쉘쇼크(ShellShock) 취약점에 의해 영향을 받는 프로그램들 중 가장 대표적인 것은

CGI(Common Gateway Interface)이며 취약점 정보와 공격 도구가 공개된 즉시 인터넷 트

래픽에서 이를 악용하는 공격들이 급격히 증가하기 시작했다. 그리고 CGI3 웹서버만을 대상

1 GNU프로젝트:유닉스계열컴퓨터운영체제를개발하기위한프로젝트

2 Bash:운영체제의명령어실행인터페이스

3 CGI:웹서버에요청된페이지를응용프로그램에전달하고처리하기위한인터페이스

Page 3: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

48 INTERNET & SECURITY FOCUS October 2014

으로 하는 공격자의 활동이 점점 NAS(Network Attached Storage)4 장비 등 여러 환경으

로 공격이 확산 되고 있다. 본고에서는 쉘쇼크 취약점 분석 및 이를 악용할 수 있는 시나리오

를 구성하고 실제 발생하고 있는 사이버 공격 활동에 대한 분석을 통해 이번 취약점이 국내

에 미칠 수 있는 영향과 앞으로 예상되는 보안 위협 추세들에 대해 살펴본다. 그리고 마지막

으로 기업이 취약점에 대응할 수 있는 방안들에 대해 서술한다.

Ⅱ. GNU Bash 취약점 분석

GNU Bash에서 발견된 이번 쉘쇼크 취약점이 공개된 이후 악용될 경우의 파장 때문에 큰 이

슈가 되었고 인터넷을 통해 간단한 명령만으로 시스템을 장악할 수 있는 심각성 때문에 미국

국립표준기술연구소(NIST)는 쉘쇼크 취약점(CVE-2014-6271)의 취약점 등급(CVSS)5을

2014년 4월에 발표된 하트블리드 취약점(5점)보다 높은 최고 점수인 10점으로 산정하여 발

표하였다.

4 NAS:네트워크를통해데이터를주고받는저장장치

5 CVSS(CommonVulnerabilityScoringSystem):취약점의심각성정도를점수화한평가체계

[그림 1] NIST(미국 국립표준기술연구소)에서 발표한 쉘쇼크 취약점 위험 수준

Page 4: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 49

Ⅱ장에서는 이번 Bash 취약점들이 발생하게 된 원인 분석과 현재까지 취약하다고 알려진

프로그램들은 무엇인지 설명한다. 또한 이를 바탕으로 공격자가 어떻게 취약점을 악용할 수

있는지에 대해 여러 가지 관점에서 시나리오를 구성했다.

1. 취약점 발생원인 분석

현재까지 보고된 GNU Bash 취약점은 총 6종이다. 최초 취약점(CVE-2014-6271)이 공

개된 이후로 추가적인 취약점들이 발견되었으며 이들 취약점들을 요약하면 다음과 같다.

<표 1> GNU Bash 취약점 요약

CVE 번호 취약점 내용

CVE-2014-6271 원격명령실행

CVE-2014-7169 함수선언문파싱에러

CVE-2014-7186 잘못된메모리접근

CVE-2014-7187 잘못된메모리접근

CVE-2014-6277 함수선언문파싱에러

CVE-2014-6278 원격명령실행

취약점이 발생한 부분은 Bash 쉘이 제공하는 함수 선언기능이다. “() {”로 시작하는 문자

열을 시스템 환경변수에 저장하면 동일한 이름을 가진 함수로 선언된다. 하지만 함수 선언문

끝에 임의의 명령어를 추가로 삽입할 경우, Bash가 함수문에서 처리를 멈추지 않고 추가로

삽입한 명령어를 계속 실행시키기 때문에 문제가 발생한다. [그림 2]와 같이 환경변수에 함

수와 명령어를 함께 새로운 Bash 프로세스에 주입시킬 경우 해당 프로세스가 입력 값을 시

스템의 환경변수로 등록하는 과정에서 리눅스 명령어까지 자동으로 실행한다.

[그림 2] CVE-2014-6271 취약점 공격 방법

환경변수 함수 선언 삽입된 명령어어

VAR= () { return; }; /bin/id

Page 5: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

50 INTERNET & SECURITY FOCUS October 2014

Bash의 소스코드를 분석해보면, evalstring.c 파일 내에 정의되어 있는 parse_and_

execute() 함수에서 Bash에 전달된 명령어를 처리하여 실행한다. 이때 명령어 문자열을 처

리하는 과정에서 반복문(while)을 사용하는데, 함수 선언문 뒤에 명령어가 삽입된 것을 확인

하고 반복문을 종료시키는 코드가 없다. 따라서 함수 선언문의 끝까지 처리한 뒤에도 반복문

이 계속 실행되어 뒤에 삽입된 명령어가 실행된다.

<표 2> GNU Bash 취약점 요약

int

parse_and_execute(string,from_file,flags)

{

...

while(*(bash_input.location.string))

{

...

<표 3>을 보면, 현재 처리하려는 명령어가 함수 선언문 뒤에 삽입되어 있는지 확인하는 조

건문이 없이 다른 명령어들과 동일하게 처리하는 것을 확인할 수가 있다. 취약점을 해결한

패치에서는 parse_and_execute() 함수를 호출할 때 특정 플래그 값을 주어 함수선언문을

처리할 경우 다른 추가적인 명령어를 처리하지 않도록 수정되었다.

<표 3> 입력 값 검증 미흡

if(parse_command()==0)

{

if((flags&SEVAL_PARSEONLY)||(interactive_shell==0&&read_but_dont_execute))

{

last_result=EXECUTION_SUCCESS;

dispose_command(global_command);

global_command=(COMMAND*)NULL;

}

elseif(command=global_command)

{

//함수선언명령어인지확인하지않음

structfd_bitmap*bitmap;

...

Page 6: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 51

만약 외부로부터 환경변수를 전달받아 Bash 쉘을 통해 명령어를 실행하는 서버가 존재하

면, 공격자는 함수 선언문 뒤에 임의의 명령어를 삽입시켜 해당 프로세스의 권한으로 실행

시킬 수 있다. 직접적으로 명령어 주입이 가능한 취약점이기 때문에 ASLR(Address Space

Layout Randomization)6 등의 운영체제 보호 매커니즘에 전혀 영향을 받지 않아 공격 성공

률이 높은 매우 심각한 취약점이다.

각 OS 개발사에서는 이에 대한 보안 패치를 신속하게 발표했으나 구글의 보안 연구원인

타비스 오르만디(Tavis Ormandy)는 자신의 트위터를 통해 CVE-2014-6271를 해결한 패

치를 적용해도 함수 선언문 처리 과정에 여전히 문제점(CVE-2014-7169)이 있다고 밝혀 다

시 이슈화가 되었다.

이후 Bash에 대한 해커들의 관심이 높아지면서 추가적인 취약점 발견으로 이어졌다. 레드

햇의 연구원인 토드 사빈(Todd Sabin), 플로리안 웨이머(Florian Weimer)는 Bash가 10개

이상의 리다이렉트 명령문을 처리하거나 특수한 반복문을 처리하는 과정에서 잘못된 메모

리 접근을 유발할 수 있다는 보고와 함께 추가적인 취약점(CVE-2014-7186, CVE-2014-

7187)을 공개하였으며 구글의 미첼 잘루스키(Michal Zalewski)는 자신의 블로그를 통해

Bash의 함수 처리 부분을 퍼징(Fuzzing)7하는 동안 두 가지 취약점을 추가적으로 발견했다

고 밝혔다.

6 ASLR(AdressSpaceLayoutRandomization):프로그램이실행될때마다메모리주소를랜덤하게배치

7 퍼징(Fuzzing):소프트웨어에임의의데이터를무작위로입력하여보안상의취약점을찾아내는기술

[그림 3] 보안 패치 우회를 제시한 트위터 내용

Page 7: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

52 INTERNET & SECURITY FOCUS October 2014

그 중 CVE-2014-6277는 할당되지 않은 메모리에 접근하는 취약점이며, 공격자가 원하

는 메모리 주소를 읽거나 그 주소에 데이터를 쓰도록 제어할 수 있다. 추가로 발견된 취약점

(CVE-2014-6278)은 첫 번째 쉘쇼크 취약점과 유사하게 직접적으로 명령어를 삽입할 수 있

는 취약점이지만, CVE-2014-6271를 해결한 첫 보안 패치를 설치했을 경우에만 취약한 제

한 사항이 있다. 따라서 CVE-2014-6271 취약점이 공개된 이후 최초로 공개된 보안 패치를

설치한 서버는 최신 패치로 신속하게 업데이트를 해야 한다.

2. 취약한 프로그램

쉘쇼크 취약점은 시스템에 GNU Bash가 설치되어있다고 해서 무조건 공격에 영향을 받는

것은 아니며 앞서 언급한 바와 같이 환경변수를 통해 Bash를 호출할 수 있는 프로그램 또는

스크립트가 시스템 내에 존재할 경우 취약점에 영향을 받는 특성을 가지고 있다. <표 4>는

현재까지 쉘쇼크 취약점을 이용하여 일부 제한된 환경에서 공격이 가능하다고 알려진 프로

그램들의 목록이며, 해당 프로그램이 설치되어있다고 해서 무조건 취약한 것은 아니다. 하지

만 국내뿐만 아니라 전 세계적으로 많이 사용하는 서버 기반의 소프트웨어들이 다수 포함되

어있어 이번 취약점의 파급력이 크다는 것을 파악할 수 있다.

<표 4> Bash 취약점에 취약하다고 알려진 프로그램들

CGI Apachemod_cgi,mod_cgid

NAS(QNAP) VOIPSIPServer

OpenVPN QMail

DHCP SSH

VMWARE suPHP

PureFTPd Postfix

Inetd gopher

stunnel Nginx

Exim procmail

보고서에 언급한 프로그램들 외에도 외부 데이터를 환경변수로 설정하여 Bash를 실행시

키는 방식으로 동작하는 프로그램이 있다면 마찬가지로 취약점에 영향 받을 수 있다. 특히

Apache를 통해 인터넷에 CGI 페이지를 서비스하고 있는 경우 공격에 별다른 제약 조건이

Page 8: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 53

없어 공격자들이 가장 선호하는 공격 대상으로 분석되었다. 넷크래프트(NetCraft)의 조사에

따르면 Apache가 웹서버 중 가장 높은 비중을 차지하고 있는 것으로 나타났다.

아래 [그림5]은 실제로 쉘쇼크 취약점에 영향 받는 CGI 웹서버에 테스트를 수행한 결과 화

면이다. HTTP의 헤더 영역에 함수와 명령어를 넣어 취약한 CGI 서버로 전송하면 응답 패킷

의 헤더 부분에 삽입한 명령어를 실행한 결과가 저장되거나 500번 에러 메시지가 회신되어

대상 서버의 취약 여부를 판별 할 수 있다. 만약 전송한 명령어가 서버의 데이터를 삭제하는

것이었다면 공격자가 획득한 권한 여부에 따라 해당 서버를 파괴하는 동작도 가능하다.

Web Server developers: Market share of active sites

80% Apache

Microsoft

Sun

nginx

Google

Other

60%

40%

20%

0%

6월 2000

4월 2001

2월 2002

12월 2002

10월 2003

8월 2004

6월 2005

4월 2006

2월 2007

12월 2007

10월 2008

8월 2009

6월 20104월 2011

2월 2012

12월 2012

10월 2013

8월 2014

※출처:넷크래프트

[그림 4] 웹서버 소프트웨어 점유율

[그림 5] Bash 취약점에 노출된 화면

Page 9: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

54 INTERNET & SECURITY FOCUS October 2014

3. 공격 유형

현재 GNU Bash 취약점을 악용한 다양한 공격들이 네트워크에서 탐지되고 있다. 주요 공

격 유형들은 아래와 같다.

- 공격자의 서버에 포트를 열어놓고 피해자의 서버에서 공격자 서버로 접속하도록 유도

- 악성코드 유포지 서버에서 악성코드를 다운로드하여 실행

- 공격자가 ping을 통해 대상 서버가 취약한지 체크

- 대상 시스템의 계정 정보(/etc/passswd)를 탈취

[그림6] 리버스쉘 연결

[그림7] 악성코드 다운로드

[그림8] 시스템 상태 확인

[그림9] 패스워드 파일 탈취

Page 10: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 55

- 웹 디렉토리에 웹셀(악성 스크립트) 생성

- 시스템을 강제로 재시작하여 서비스 거부 발생

- 시스템의 파일 중 .php 확장자로 된 파일을 삭제하여 웹 서비스 방해

- 디렉토리 전체 파일을 삭제하여 시스템 파괴

- 공격자 메일로 메일을 발송하여 대상 시스템의 취약 여부 확인

- sleep 함수를 통해 대상 시스템의 응답 시간을 체크하여 취약 여부 확인

[그림11] 시스템 강제 재시작

[그림12] 파일 삭제

[그림13] 디렉토리 삭제

[그림14] 메일 발송

[그림10] 웹쉘 생성

[그림15] 시스템 슬립

Page 11: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

56 INTERNET & SECURITY FOCUS October 2014

4. 공격 가능 시나리오

현재 악용 가능성이 제일 높은 것은 CGI 페이지에 대한 공격이다. CGI는 HTTP 패킷의

헤더의 데이터를 환경변수로 설정하여 쉘을 실행시킨다. 따라서 헤더 부분에 취약점을 공격

하는 페이로드를 삽입하면 CGI 페이지를 운영 중인 서버에 임의의 명령어를 실행시킬 수 있

다. CGI 페이지를 이용한 악성 시나리오는 아래와 같다.

QMAIL 또한 Bash를 사용하여 명령어를 실행시키는 프로그램의 일종이다. QMAIL은 유

닉스용 오픈소스 메일 전송 에이전트이며, 센드메일의 보다 더 안전한 보안성을 제공하고자

개발되었다. QMAIL을 통해 메일을 전달할 때, 확장자가 .qmail인 파일에 메일 수신자에게

전달할 프로그램의 목록을 저장한다. 메일을 실제 수신자에게 전달할 때 .qmail 파일을 파싱

하여 실행하는데, 이때 Bash를 사용한다. 실행할 때 SENDER라는 환경변수를 정의하는데,

SENDER 값에 공격자가 명령어를 삽입하면 QMAIL이 .qmail 파일을 처리하는 과정에서 악

의적인 명령어가 실행될 수 있다.

공격자

HTTP 패킷

악성 명령어

Bash 실행

CGI 페이지

환경변수에 저장

웹 서버

악성코드 유포

내부 서버 침투및 파괴 내부 서버

DB 서버

개인정보 유출

[그림 16] CGI 공격 시나리오

Page 12: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 57

Ⅲ. 공격 동향 분석을 통한 보안 위협 예측

1. 공격 동향 분석

쉘쇼크(ShellShock) 취약점이 2014년 9월 24일(현지시간) 공개된 이후 취약점을 악용하

는 다양한 사이버 공격이 전 세계적으로 발생하고 있다. 현재까지 관측된 공격자의 주요 활

동으로는 취약점 스캔, 악성코드 유포, DDoS 공격을 위한 봇넷 구성 등이며, 이들 중 불특정

다수를 대상으로 취약한 시스템을 검색하는 스캔 공격이 가장 빈번하게 일어나는 것으로 나

타났다.

9월 26일에는 쉘쇼크의 취약점을 이용하는 최초 봇넷 악성코드로 알려진 “wopbot“이 등

장하였으며, 악성코드의 주요 행위는 미 국방성 IP 주소 범위(215.0.0.0/8)를 대상으로 한

스캔 공격과 컨텐츠 전송 네트워크(CDN)서비스를 제공하는 회사인 아카마이(Akamai)에 대

한 DDoS 공격을 수행하는 것으로 이탈리아 연구원 에마누엘레 젠틸리(Emanuele Gentili)

에 의해 확인 되었다.

공격자

SMTP

환경변수에 저장

QMAIL 서버 .qmail 파일처리

Bash 실행메일정보 유출

악성명령어

[그림 17] QMAIL 공격 시나리오

Page 13: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

58 INTERNET & SECURITY FOCUS October 2014

※자체수집한공격IP및AndrewHay보안연구원에의해공개된공격IP8

현재 국내·외에서 수집한 공격 IP 1160개를 분석한 결과, 주요 공격 IP의 소재지는 미국

(30%), 영국(13%), 중국(9%)으로 파악됐으며, 탐지한 IP중 절반 이상(52%)의 수치가 이들

국가의 IP로부터 발생한 것으로 확인되었다. 그 외 영국, 러시아, 프랑스, 독일 등 다국적으

로 공격 IP가 탐지되고 있어 쉘쇼크에 대한 공격자들의 활동이 활발하게 진행되고 있는 것으

로 분석되었다.

전 세계적으로 광범위하게 쉘쇼크 취약점을 이용한 공격이 발생하는 이유는 원격에서 아

무런 제약 없이 시스템에 침투할 수 있어 공격 성공률이 높으며 기업이나 기관에서 보안 패

치를 하기 전에 많은 수의 시스템을 감염시키려고 하기 때문이다. 공격자들의 이러한 활동은

향후 대규모 DDoS 공격 등의 사이버 공격에 활용하기 위한 봇넷을 구축하는 사전 작업으로

예측할 수 있다. 시스코 보안 연구원 마틴 리(Martin Lee)의 조사에 따르면, 시스코 장비에

의해 탐지된 공격 IP중 가장 활발한 공격 시도가 있었던 IP 소재지로 61.160.224.130(중국)

가 확인되었으며 이것은 공격자가 다수의 감염 시스템을 확보하려는 한 예시로 볼 수 있다.

8 https://gist.github.com/andrewsmhay/de1cdc63d04c2bbf8c12

United states30%

United Kingdom13%

China9%

Netherlands4%

France4%

Germany4%

Italy4%

Japan3%

Russia2%

Other27%

United states

United Kingdom

China

Netherlands

France

Germany

Italy

Japan

Russia

Other

[그림 18] 공격 IP 소재지 통계

Page 14: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 59

2. 국내 공격 동향

국내에서도 취약점 발표 이후 다수의 공격 시도가 탐지되고 있으며 대부분의 공격이 다른

곳과 마찬가지로 CGI를 기반으로 하는 웹서버를 타겟으로 하고 있으며 웹 관리용 프로그램

인 webmin(10000/TCP) 서비스에서도 공격시도가 탐지되고 있다.

국내를 대상으로 한 국가별 공격 탐지 건수는 프랑스 IP가 4,480건으로 가장 많았으며,

일자별 탐지 건수로는 9월 30일에 공격 시도가 가장 많았던 것으로 분석되었다. 또한 아래의

그림[21]에서 볼 수 있듯이 일일 평균 100회 이상의 공격이 탐지되고 있어 패치를 하지 않았

을 경우 공격으로 인한 피해를 받을 수 있다.

2500

61.160.224.130

82.221.105.197

118.192.48.6

54.251.83.67

89.207.135.125

70.42.149.72

198.20.69.74

173.45.100.18

209.126.230.72

94.21.192.222

other

2000

Count

IP Address

1500

1000

500

0

※출처:시스코

[그림 19] IP별 공격 시도 횟수

Country

4,480

904 179 159 154 86 20 19 17 14 10 99 9 8 7 7 6 4 4 4 3 3 2 2 1 1

공격 탐지건수

탐지건수

프랑스

러시아

미국

캐나다

싱가포르

스위스

이탈리아

영국

중국

네달란드

타이완

베트남

이스라엘

코스타리카

우르과이

대만

스페인

몰도바

독일

우크라이나

한국

폴란드

호주

루마니아

벨로루시

세르비아

싱가폴

[그림 20] 국가별 공격 시도 탐지 건수(14.09.26 ~ 14.10.01)

Page 15: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

60 INTERNET & SECURITY FOCUS October 2014

국내의 쉘쇼크 취약점에 대한 공격 영향도를 파악하기 위해 CGI 웹서버를 사용하는 곳을 구

글 검색 엔진과 쇼단(shodan)9을 통해 검색해 본 결과 상당수의 웹서버가 쉘쇼크 취약점에

취약할 가능성이 높은 CGI를 사용하고 있는 것으로 확인되었다.

9 쇼단(shodan):인터넷에연결된기기를검색하는서비스(https://www.shodan.io)

탐지일자

’14.09.26 ’14.09.27 ’14.09.28 ’14.09.29 ’14.09.30 ’14.10.01

178 109 117 1,142

4,486

89

공격 탐지건수탐지건수

[그림 21] 일자별 공격 시도 탐지 건수(14.09.26 ~ 14.10.01)

[그림 22] 구글링을 통해 국내에서 CGI를 사용하는 페이지 검색 결과(41만 5천건)

[그림 23] html:.cgi country:kr 검색 결과(38만 4천건)

Page 16: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 61

3. 공격 프로그램 분석

또한 그림 [24,25]와 같이 Bash 취약점을 악용할 수 있는 다양한 공격 도구가 SNS, 해커

커뮤니티 및 pastebin.com10 사이트 등을 통해 공개되었다.

10pastebin.com:개발자가자신이개발한소스코드를저장하기위한사이트로공격자들이공격도구를공개하는사이트로

도사용되고있음

[그림 24] pastebin.com에 공개된 쉘쇼크 공격 도구

[그림 25] 트위터에 공개된 쉘쇼크 POC 도구

Page 17: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

62 INTERNET & SECURITY FOCUS October 2014

이들 공격 도구의 특징을 살펴보면 대부분의 공격은 아래의 CGI 웹 디렉터리를 주요 타겟

으로 하고 있는 것으로 분석됐다.

보안 회사에서는 기업이나 기관에서 자체 점검을 할 수 있도록 점검도구를 공개하였다. 점

검 사이트 및 도구 목록은 아래와 같으며, 점검 시 특정 문자열을 기록하여 실제 공격 도구와

구별할 수 있도록 하였다.

<표 5> 쉘쇼크 취약점 점검도구의 특징

점검 도구 특징 비고

에라타시큐리티

(ShellShockscan)User-agent에“shellshock-scan”문자열이기록됨 원격점검용

CrowdStrike

(ShellShockScanner)

User-Agent에“CrowdStrikeShellShockScanner/1.0”

문자열이기록됨원격점검용

CVE-2014-7shellshocker.net

(shellshock_test.sh)186

CVE-2014-6271(originalshellshock):VULNERABLE

문자열이기록됨로컬점검용

4. 악성코드 분석

그리고 쉘쇼크 취약점을 이용하여 악성코드를 유포하는 사례가 여러 바이러스 백신 회사

와 보안 회사로부터 탐지되었다. 악성코드 종류로는 DDoS 공격을 위한 봇넷 구성, 추가 악

성코드 다운로드, 리버스 연결을 통한 권한 획득 악성코드로 구분되었으며, 이중 대부분의

악성코드가 DDoS 공격을 수행하는 것으로 나타났다. 알려진 악성코드 중 “wopbot”은

Akamai 회사에 대한 DDoS 공격 사례이다.

공격 도구의 주요 공격 대상

/ /cgi-bin/test-cgi

/cgi-bin/count.cgi /cgi-bin/help.cgi

/cgi-sys/defaultwebpage.cgi /cgi-sys/entropysearch.cgi

/cgi-bin/hi /cgi-sys/defaultwebpage.cgi

/cgi-bin/test.sh /cgi-mod/index.cgi

/test /cgi-bin/test.cgi

/cgi-bin/test.cgi /cgi-bin-sdb/printenv

[그림 26] 공격 도구의 주요 타겟 웹 URL 주소

Page 18: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 63

<표 6> 악성코드 유포지 목록과 행위

악성코드 유포지 목록 악성코드 행위

http://74.xxx.85.69/ec.z DDoS공격기능을가진IRCBOT

http://82.xxx.38.36/user DDoS공격기능을가진IRCBOT

http://198.xxx.76.152/wow1 DDoS공격기능을가진IRCBOT

http://xxx.com/legend.txt DDoS공격기능을가진IRCBOT

http://213.5.xxx.223/jur DDoS공격기능을가진IRCBOT

http://xxx/.c DDoS공격기능을가진IRCBOT

http://xxx/shock/cgi DDoS공격기능을가진IRCBOT

http://104.192.xxx.6/bosh DDoS공격기능을가진IRCBOT

http://37.187.xxx.119/conf.txt DDoS공격

http://xxx/bots/regular.bot 악성코드드랍퍼

http://xxx/.a 악성코드드랍퍼

http://xxx/fu4k 리버스연결(27.19.159.xxx:4545연결시도)

http://xxx/auth 리버스연결(46.246.34.xxx:1992연결시도)

http://82.118.242.xxx:5487/v 리버스연결

악성코드에 이용된 C&C서버는 주로 미국, 영국, 네덜란드 등에 위치하고 있었으며 미국

(US)이 가장 많은 비율을 차지하는 것으로 확인되었다. 공격자는 IRC 채팅 방을 주로 C&C

서버로 이용하였다. <표 7>에 주요 악성코드 C&C 서버들의 IP 주소와 위치를 정리했다.

<표 7> 악성코드 C&C 정보

악성코드 C&C IP 위치

89.238.150.xxx UnitedKingdom

108.162.197.xxx UnitedStates

162.253.66.xxx UnitedStates

162.253.66.xxx UnitedStates

213.5.67.xxx Netherlands

68.235.41.xxx UnitedStates

162.220.10.xxx UnitedStates

198.98.112.xxx UnitedStates

Page 19: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

64 INTERNET & SECURITY FOCUS October 2014

5. 보안 위협 예측

몇몇 보안 연구원들은 이번 쉘쇼크 취약점이 악성코드를 스스로 전파시킬수 있는 웜 바이

러스 형태로 발전할 수 있다고 예측하고 있다.

인터넷에 연결된 많은 수의 리눅스 시스템을 대상으로 쉘쇼크 취약점을 이용하여 특정 시

스템을 감염시키고 감염된 시스템이 다음 감염시킬 대상을 스스로 찾아가는 웜 바이러스가

나올 경우 훨씬 많은 수의 시스템을 감염시킬 수 있어 지난 2003년 1월 25일 발생한 SQL 슬

래머 웜이 원격코드실행 취약점을 이용했듯이 공격자들이 쉘쇼크 취약점을 웜의 형태로 발

전시킬 수 있다. SQL 슬래머 웜은 우리나라를 비롯해 전세계적으로 인터넷 전산망에 막대한

피해(약 10억$)를 주었다.

이렇게 쉘쇼크 취약점이 발견된 후 다양한 공격 활동 및 여러 가지 예측을 분석해 보면 앞

으로도 이 취약점을 이용한 공격이 더 진보하고 확산될 가능성이 높다. 국내 IT인프라에도

다양한 기기에서 리눅스 운영체제를 사용하고 있기 때문에 단순 웹서버만 공격을 시도하는

것이 아니라 사물인터넷 기기, 스카다 등의 국가 기반 시설 시스템으로 공격을 시도할 잠재

적인 가능성을 배제할 수 없다.

국내에서 데이터 저장 장치인 NAS장비(QNAP)에 대한 공격 시도가 탐지된 것이 이를 뒷

받침해주는 근거이다. 보안 회사 Fireeye에 의해 공격 시도가 탐지되었으며 불특정 다수를

공격하는 일반적인 쉘쇼크 스캔 공격과는 다르게 한국과 일본에서 주로 공격활동이 발견되

고 있다고 밝혔다. 공격자는 NAS장비를 공격하여 스토리지에 저장된 기밀 연구자료, 개인

소장 자료 등의 중요 데이터에 접근하기 위한 목적으로 공격을 이용한 것으로 보인다.

이번 쉘쇼크 취약점은 산업제어 시스템인 스카다 시스템으로의 공격이 일어날수도 있다는

점을 고려해야 한다. 일반적으로 중요 산업 제어 시스템(SCADA)의 경우 인터넷에 연결되지

않아 상대적으로 안전한 것으로 볼 수 있으나, 만약 Bash 취약점에 노출된 시스템이 스카다

시스템에 연결되어 있다면 위협은 존재할 수 있다. 따라서 인터넷에 공개된 시스템의 경우

우선적인 보안 조치가 필요하며 이번 쉘쇼크 취약점을 제거하기 위해 지속적인 노력이 필요

한 것을 인지해야 한다.

Page 20: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 65

Ⅳ. 취약점 대응 방안

쉘쇼크 취약점에 영향 받는 시스템을 운영하고 있는 기업에서는 빠른 시일 내에 취약점에

대한 조치를 해야 한다. 본 장에서는 기업 측면에서 조치를 할 수 있는 몇 가지 방법에 대해

설명한다.

1. Bash 업데이트

가장 근본적인 방법은 취약한 Bash 버전을 가장 최신 버전으로 업데이트하는 것이다. 사

용하는 운영체제의 제조사 홈페이지를 방문하면 취약점이 해결된 최신 Bash 버전을 설치하

는 방법을 안내받을 수 있다. 아래 표는 주요 운영체제 제조사의 업데이트 페이지이다.

<표 8> 제조사별 업데이트 링크

CentOS http://centosnow.blogspot.kr/2014/09/critical-bash-updates-for-centos-5.html

Redhat https:/rhn.redhat.com/errata/RHSA-2014-1306.html

Ubuntu http://www.ubuntu.com/usn/usn-2364-1/

Fedora http://fedoramagazine.org/updated-bash-packages-now-available-via-fedora-updates/

Solaris https://support.oracle.com/rs?type=doc&id=1930090.1

Suse http://lists.opensuse.org/opensuse-security-announce/2014-09/msg00042.html

Arch https://lists.archlinux.org/pipermail/arch-security/2014-September/000099.html

MacOSX

http://support.apple.com/kb/DL1769

http://support.apple.com/kb/DL1768

http://support.apple.com/kb/DL1767

Page 21: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

66 INTERNET & SECURITY FOCUS October 2014

보통 운영체제 제조사는 소프트웨어 업데이트를 패키지 형태로 제공하는데, 각 운영체제

별 패키지 업데이트 방법은 아래와 같다.

<표 9> 제조사별 패키지 업데이트 방법

OS 종류 업데이트 방법

CentOS

yumcleanall&&yumupdatebash

※RHN업데이트문제로해결이되지않을경우

cd/etc/yum.repos.d

virhel-debuginfo.repo를통해아래와같은내용으로대체

name=CentOS-$releasever-Updates

baseurl=http://mirror.centos.org/centos/5/updates/$basearch/

gpgcheck=1

Redhat

<rhel-debuginfo.repo파일내용변경>

대체후,사용할버전맞게명령어입력

rpm—importhttp://mirror.centos.org/centos/(버전에따라입력)

(ex : rpm—import http://mirror.centos.org/centos/5/os/x86_64/RPM-GPG-KEY-

CentOS-5)

yumupdatebash

Ubuntusudoapt-getupdate

sudoapt-getinstall--only-upgradebash

Fedora

(1)페도라21알파

su-c“yum-yinstallkoji”

kojidownload-build--arch=$(uname-m)bash-4.3.25-2.fc21

su-c“yumlocalinstallbash-4.3.25-2.fc21.$(uname–m).rpm”

(2)페도라20su-c“yum-yinstallkoji”

kojidownload-build--arch=$(uname-m)bash-4.2.48-2.fc20

su-c“yumlocalinstallbash-4.2.48-2.fc20.$(uname-m).rpm”

(3)페도라19

su-c“yum-yinstallkoji”

kojidownload-build--arch=$(uname-m)bash-4.2.48-2.fc19

su-c“yumlocalinstallbash-4.2.48-2.fc19.$(uname-m).rpm”

Page 22: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 67

OS 종류 업데이트 방법

debian

(1)Debian6(Squeeze)

sudoapt-getupdate

sudoapt-getinstallbash

(2)Debian7(Wheezy)

sudovim/etc/apt/sources.list를통해아래와같은내용작성

debhttp://http.debian.net/debian/squeezemaincontribnon-free

deb-srchttp://http.debian.net/debian/squeezemaincontribnon-free

debhttp://security.debian.org/squeeze/updatesmaincontribnon-free

deb-srchttp://security.debian.org/squeeze/updatesmaincontribnon-free

debhttp://http.debian.net/debiansqueeze-ltsmaincontribnon-free

deb-srchttp://http.debian.net/debiansqueeze-ltsmaincontribnon-free

<sources.list파일내용변경>

sudoapt-getupdate

sudoapt-getinstallbash

Solaris

패치파일다운로드

(https://support.oracle.com/rs?type=doc&id=1930090.1)

patchadd<패치경로>

SUSE

(1)EnterpriseSoftwareDevelopmentKit11SP3

zypperin-tpatchsdksp3-bash-9780

(2)EnterpriseServer11SP3forVMware

zypperin-tpatchslessp3-bash-9780

(3)EnterpriseServer11SP3

zypperin-tpatchslessp3-bash-9780

(4)EnterpriseServer11SP2LTSS

zypperin-tpatchslessp2-bash-9781

(5)EnterpriseServer11SP1LTSS

zypperin-tpatchslessp1-bash-9782

(6)EnterpriseDesktop11SP3

zypperin-tpatchsledsp3-bash-9780

Arch pacman–Syu

Page 23: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

68 INTERNET & SECURITY FOCUS October 2014

OS 종류 업데이트 방법

MacOSX

http://support.apple.com/kb/DL1769

http://support.apple.com/kb/DL1768

http://support.apple.com/kb/DL1767

운영체제버전에알맞은DMG파일을다운받아설치

2. 사용하지 않는 CGI 페이지 삭제 또는 관련 서비스 중지

CGI 서비스의 사용유무를 확인하여 해당 서비스를 사용하지 않을 경우에는 CGI 관련 서

비스를 중지시키거나 CGI 페이지를 삭제해야 한다. 기업 운영에 불필요한 서비스를 계속 유

지하는 것은 잠재적인 보안 구멍을 계속 노출시키는 것이다.

3 네트워크 탐지룰 설정

현재 네트워크에서 쉘쇼크 취약점을 공격하는 시도가 계속 탐지되는 가운데, 네트워크 보

안 장비(IPS/IDS/웹방화벽 등) 단에서 공격 시그니처를 등록하여 차단을 할 수 있다.

SNORT 탐지룰의 경우, https://www.snort.org/download 에서 최신 룰을 다운로드 받을

수 있다.

alerttcp$EXTERNAL_NETany->$HOME_NET$HTTP_PORTS(msg:”Volex–PossibleCVE-2014-6271bash

VulnerabilityRequested (header) “; flow:established,to_server;content:”() {“;http_header; threshold:type limit,

trackby_src,count1,seconds120;sid:2014092401;)

※출처:http://www.volexity.com/blog/?p=19

Page 24: F O C U S 4 이슈 분석 및 대응방안 GNU Bash 원격코드실행 취약점 - … · 2014-11-17 · FOCUS FOCUS 4 GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

FOC

US

FOCUS 4 GNUBash원격코드실행취약점이슈분석및대응방안 69

Ⅴ. 결론

쉘쇼크 취약점은 악용이 쉽고 영향 받는 시스템 또한 많기 때문에 실제 공격들이 다수 발

생하고 있다. 취약점에 노출된 시스템은 침해사고로 직결될 수 있기 때문에 기업이나 기관의

적극적인 보안 조치가 필요하다. 특히 보안 담당자 시야에서 벗어나 있는 시스템들이 공격

대상이 될 확률이 높아 이에 대해 조사할 필요가 있으며, 패치를 적용할 때 외부망에 노출된

시스템을 우선적으로 패치하는 것이 중요하다. 또한 공격 추세가 일반 서버에서 오픈소스의

리눅스 서버 등 다른 컴퓨팅 환경으로 확산될 가능성이 존재하니 이에 대한 인식과 주의가

요구된다.

참고문헌

GossamerThreads (2014), http://www.gossamer-threads.com/lists/qmail/users/138578.

itnews (2014), http://www.itnews.com.au/News/396197,first-shellshock-botnet-attacks-

akamai-us-dod-networks.aspx.

lcamtuf’s blog (2014), http://lcamtuf.blogspot.kr/2014/10/bash-bug-how-we-finally-

cracked.html.

Netcraft (2014), http://news.netcraft.com/archives/2014/06/06/june-2014-web-server-

survey.html.

OpenDNS (2014), http://labs.opendns.com/2014/10/02/opendns-and-bash/.

Openwall (2014), http://www.openwall.com/lists/oss-security/2014/09/25/13.

Wikipedia (2014), http://en.wikipedia.org/wiki/Shellshock_(software_bug).