본문 바로가기
AhnLab 보안in

[ASEC리포트 7월호]오픈오피스 취약점

by 보안세상 2020. 4. 5.

2008.08.12

 

"OpenOffice.org"(이하 오픈 오피스)는 줄여서 OOo, OO.o 등으로도 불리며 http://www.openoffice.org에서 오픈 소스 프로젝트로 진행되는 오피스 프로그램이다. 현재 국내에서 오픈오피스가 마이크로소프트사의 MS오피스나 한글과컴퓨터사의 한글과컴퓨터 오피스에 비해 널리 사용되지는 않고 있지만 무료라는 점, 마이크로소프트 오피스 97-2003 포맷을 지원한다는 장점과 데이터 교환을 위해 고유 파일 포맷으로 ISO 표준인 오픈도큐먼트 포맷(ODF)를 지원 하는 등의 여러가지 이유로 조금씩 사용비중이 높아져 가고 있다. 이런 오픈오피스도 명성을 쫓는 악성코드 제작자들을 피해가기는 어려웠는지 2007년 5월 22일 보안업체와 외신을 통해 오픈오피스에서 활동하는 최초의 악성코드(배드버니-BadBunny)가 보고되었다. 이 글에서는 오픈오피스의 보안적인 측면과 배드버니에 대해 알아보겠다.

오픈오피스

오픈오피스는 1980년대 중반 독일의 스타오피스 슈트(StarOffice suite)로 시작되어 1999년 썬 마이크로시스템즈(Sun Microsystems, 이하 썬)에 합병되어 2000년 6월 스타오피스 5.2가 공개되었다. 2000년 10월 13일 스타오피스 6.0를 시작으로 오픈오피스 프로젝트에 사용되어 오픈오피스 1.0이 2002년 4월 30일 탄생한다. 현재는 썬에서 오픈 소스 프로젝트를 진행하고 있으며, 윈도우, 리눅스, 매킨토시 버전이 존재한다.

한국어 웹사이트도 존재하며(http://ko.openoffice.org) 테스트에 사용된 오픈오피스 버전 2.4.1은 설치 파일 크기는 113 메가바이트이다. 기본적인 테스트는 한글 윈도우 XP 서비스 팩 2 혹은 3에 오픈오피스 한글판 2.2와 2.4를 사용했다.

오픈오피스 문서 구조

오픈오피스 문서는 MS 오피스 2007과 마찬가지로 ZIP 형식의 압축 파일로 되어 있다. 실제 오픈오피스 문서를 ZIP 파일로 변경하면 압축 해제 프로그램에서 압축을 풀 수 있다. 이는 오픈도큐먼트(OpenDocument, ODF)에 따른 것으로 원래 오픈오피스에서 만들고 구현한 XML 파일 포맷을 바탕으로 OASIS(Organization for the Advancement of Structured Information Standards) 컨소시엄이 표준화한 것이라고 한다.

 

[그림 1] ZIP으로 묶여 있는 오픈오피스 문서 파일



이와 같이 XML 형태로 제작된 문서는 오피스간 파일 호환도 가능하지만 과거 오피스 문서 파일이 자체 파일 포맷을 사용함으로써 파일 포맷을 변경하여 악의적인 코드를 수행하게 하는 유형의 공격으로부터의 공격 가능성도 대폭 낮춰 보안성을 높일 수 있다.

오픈오피스 매크로

현재 오픈오피스는 MS 오피스의 VBA(Visual Basic for Application) 매크로와 호환되지 않아 MS 오피스에 포함된 매크로가 실행되지 않는다 . 오픈오피스는 VBA 대신 자체적인 매크로를 지원하고 있는데, 크게 오픈오피스 베이직(OpenOffice.org Basic), 자바스크립트(JavaScript), 빈쉘(BeanShell), 파이썬(Python)을 지원한다.

오픈오피스는 기본적으로 매크로의 기능을 막아두었기 때문에, 스크립트나 매크로를 포함한 문서를 열 경우 사용자에게 경고 메시지를 보인다.

 

[그림 2] 매크로 포함 문서를 열 때 발생하는 경고



2.4 버전에서는 매크로를 기본적으로 막아두었기 때문에 사용자가 매크로를 사용하려면 매크로 보안 기능을 '높음'에서 '중간'으로 낮춰야 한다. 보안 수준을 낮춘 후 문서를 열면 보안 경고 창이 뜬다. 이때 '매크로 활성화'를 선택하면 매크로를 실행 할 수 있다. 하지만, 매크로 실행을 위해서는 JRE(Java Runtime Environment)가 필요하다는 메시지가 뜨지만 무시해도 기본적인 매크로는 사용가능 하다.

매크로는 실행은 사용자가 '도구(T)' - '매크로(M)' - '매크로 실행(U)'을 선택해 매크로를 실행할 경우 실행된다.

오픈오피스 베이직은 '내 매크로'. '오픈오피스 매크로'와 현재 열린 문서의 매크로가 기본이 된다. 내 매크로는 C:\Documents and Settings\[사용자이름]\Application Data\OpenOffice.org2\user\basic\Standard 폴더에 저장된다. 기본 파일 이름은 Module1.xba 이다.

오픈오피스에서 매크로 기능을 사용하기 위해서는 설정할 사항이 많으므로 대다수 사용자는 매크로 사용을 하지 않고 매크로 기능이 필요한 사람만 선택적으로 사용할 것이다.

악성코드 제작 환경

오픈오피스 매크로는 기술적으로 악성코드에 필요한 다음 기능을 제공하고 있어 악성코드 제작이 가능하다.

 

 

  • - 파일 생성, 복사, 실행, 삭제 기능
  • - 오픈오피스의 매크로를 이용해 외부 실행 파일 실행


실제 간단히 파일 생성, 복사, 실행, 삭제를 테스트 해서 매크로를 실행할 수 있는 상황이면 적어도 트로이목마 류의 악성코드는 제작할 수 있다.

 

[그림 3] 매크로 기능을 이용한 파일 생성, 복사, 실행, 삭제 테스트



다행히 오픈오피스는 매크로 기능을 기본적으로 막아둬 매크로 기능을 잘 모르는 사용자는 악성코드 피해를 받을 가능성이 낮다. 하지만, 매크로가 수행 될 경우에는 악성코드 제작에 필요한 기능을 제공하고 있어 악성코드 제작 가능성은 존재한다.

배드버니 분석

오픈오피스 악성코드로는 오픈오피스 드로우(OpenOffice Draw)에서 제작된 악성코드가 2007년 5월 발견되었다. 일반에 퍼지지 않고 기술적으로 제작이 가능함을 증명하는 개념증명(Proof of concept) 악성코드이다.

감염된 문서를 열어볼 때 실제 매크로는 Basic\Standard의 badbunny.xml 파일이다.

 

[그림 4] 배드버니에 감염된 문서



소스코드를 보면 이 악성코드는 자신을 'Necronomikon'과 'Wargame'으로 부르는 사람들이 제작했음을 알 수 있다. 이들은 'DoomRiderz' 라는 독일의 바이러스 제작그룹 멤버였으며 2007년 12월 28일 그룹을 떠난 것으로 알려졌다.

오픈 오피스는 윈도우, 매킨토시, 리눅스 등 멀티플랫폼에서 실행되므로 현재 실행되는 환경을 알 수 있다. 악성 매크로가 실행되면 초기화를 하고 Startgame을 호출한다. Startgame 에서 현재 시스템의 버전을 얻어낸다. 1번이 Windows, 3 번 매킨토시, 4 번 리눅스이다.

 

  • 윈도우에서는 mIRC가 설치되어 있을 경우 mIRC 스크립트를 생성하고 c:\badbunny.js 파일을 생성하고 실행한다.
  • 리눅스에서는 badbunny.py라는 파이썬(Python) 스크립트를 생성하고 펄 스크립트 파일인 BadBunny.pl 파일을 생성한다.
  • 매킨토시에서는 난수를 발생해 발생하는 수에 따라 다른 파일을 생성한다.


제작자는 특정한 문자열과 그림을 문서에 추가하려 했지만 한글버전 2.2 에서는 오류가 발생한다. 또 윈도우 버전의 경우 [그림 5]와 같이 c:\badbunny.js를 실행할 때 오류가 발생했다.

 

[그림 5] 배드버니 실행시 발생하는 오류



원래 삽입하려는 이미지는 버니 복장의 남자와 여성의 포르노 사진이었다. 이후 메시지 창으로 사용자에게 메시지를 출력한다.

 

[그림 6] 사용자에게 보내는 메시지



그리고, 다음 보안 업체에 PING 명령을 보낸다.

- www.ikarus.at
- www.aladdin.com
- www.norman.no
- www.norman.com
- www.kaspersky.com
- www.kaspersky.ru
- www.kaspersky.pl
- www.grisoft.cz
- www.symantec.com
- www.proantivirus.com
- www.f-secure.com
- www.sophos.com
- www.arcabit.pl
- www.arcabit.com
- www.avira.com
- www.avira.de
- www.avira.ro
- www.avast.com
- www.virusbuster.hu
- www.trendmicro.com
- www.bitdefender.com
- www.pandasoftware.comm (comm은 오타로 보임)
- www.drweb.com
- www.drweb.ru
- www.viruslist.com



하지만, 테스트에 사용된 한글 오픈오피스에서는 종종 오류가 발생해 제대로 악성코드가 실행되지 않았다.

향후 오픈오피스 악성코드 전망

오픈오피스가 악성코드 제작자의 다음 목표가 될 거라는 전망은 예전부터 있었다. 하지만, 오픈오피스 사용자가 아직 다른 오피스에 비해 적고 악성코드 제작자들은 재미나 명성보다는 돈을 쫓는 경향이 강하기 때문에 오픈오피스에 관심을 가지는 악성코드 제작자는 명성을 쫓는 전통적인 바이러스 제작자나 제작 그룹에 한정될 것으로 보인다.

다행히 오픈오피스는 과거 수 많은 매크로 바이러스를 양산한 MS 오피스의 교훈을 거울삼아 매크로 기능을 기본적으로 사용할 수 없게 하고 사용자가 선택해야 실행할 수 있는 형태로 제작되어 악성코드에 감염될 가능성을 낮췄다. 또한 현재까지 제작된 악성코드 역시 개념증명 수준의 문제를 가지고 있다. 하지만, 멀티 플랫폼으로 제작된 오피스 제품의 특성상 하나의 악성코드로 다양한 환경에서 활동할 수 있는 악성코드 제작은 늘 가능하다. 오픈오피스 명성이 높아가고 사용자가 늘어날수록 악성코드의 검은 그림자도 따라 갈 수 있다.

참고자료
[1] 오픈오피스 (http://www.openoffice.org)
[2] 오픈오피스 한국어 버전 (http://ko.openoffice.org)
[3] 김정규, "오픈오피스와 오픈도큐먼트"
[4] Gooo (http://go-oo.org)