본문 바로가기

security/document-type malicious code

[ OLE in hwp ]

OLE 파일 포맷

MS에서 윈도우와 MS office를 모두 만들었다.

윈도우 위에서 사용할 응용 소프트웨어로 MS office를 제작한 것이니, MS office가 윈도우의 특징을 갖고 있는 것이 매우 자연스럽다. 윈도우의 특징 중 하나인 OLE(Object Linking Embedding)는 개체 연결 포함 기능으로 프로그램 간에 개체의 교환을 가능하게 하는데,  MS office의 파일들이 OLE파일에 해당한다. 

 

와 세상에.. oledump.py로 한글파일과 word파일을 분석할 수 있던 이유가 ole파일구조로 되어있기 때문이었다...

 

아래와 같이 HWP(Hangul Word Procssor)파일 역시 oledump.py로 분석이 가능했다는 것은 한글 파일 역시 ole파일 포맷으로 구성되어있다는 것을 의미한다. 국내 워드 프로세스들이 자체 포맷을 고수하다가 호환성에서 큰 장점을 갖는 ole 파일 포맷으로 바꿨다고 하는데, 여기에 hwp파일도 포함될 것 같다고 예상된다.

 

 

아래는 ms 홈페이지에서 OLE 파일을 소개할 때 제시한 그림들이다. 운영체제 내에서의 파일 시스템과 OLE 파일의 구조가 동일한 것을 확인할 수 있다. 다만 OLE파일 내에서의 storage는 디렉토리에, stream은 파일에 해당한다고 볼 수 있다.

간단한 파일 시스템 계층구조(디렉토리와 파일로 구성)
OLE 파일의 계층구조(storage 개체와 objects 개체로 구성)

 

 

HWP 파일 내의 OLE 포맷

한글과 컴퓨터에서 공개한 파일의 전체 구조는 아래와 같다. OLE 파일 포맷에서 구체적으로 어떤 storage에 어떤 stream이 담기는지가 담겨있다. 그 중 BinData 스토리지에 첨부된 바이너리 데이터(그림, OLE 개체 등)가 각각의 스트림으로 저장된다. 

 

hwp 파일 내의 BinData 스토리지에 악성 기능의 스트림을 저장해서 북한의 한 해킹조직(김수키)이 공격을 수행했다. 

-2019년 4월 1일 김수키(Kimsuky)조직이 공격에 사용한 hwp파일(eps파일 관련 '취약점' 이용)

-2020년 11월 3일 김수키(Kimsuky)조직이 공격에 사용한 hwp파일(OLE '기능' 이용)

 

OLE 파일 포맷 (1) - 개요 및 기본 구조 - Kei Choi (hanul93.com)

 

OLE 파일 포맷 (1) - 개요 및 기본 구조 - Kei Choi

OLE 파일(또는 COM Structured Storage) 포맷은 MS 오피스인 워드, 엑셀, 파워포인트의 문서 포맷으로 사용되어 왔다. OLE 파일 포맷은 내부가 하나의 작은 하드 디스크와 같은 파일 시스템 구조를 가진다.

www.hanul93.com

 

'security > document-type malicious code' 카테고리의 다른 글

악성 소프트웨어  (0) 2021.03.22