Try Attack/Malware Analysis[basic]

[논문요약] 악성코드 정적탐지를 위한 PE의 Rich헤더 활용방법

D4tai1 2019. 9. 4.

악성코드를 정적으로 탐지하는 방법을

연구하는 과정에서

 

https://www.zdnet.co.kr/view/?no=20180309104954

 

"평창올림픽 해킹, 러시아-북한 소행 아니다"

평창동계올림픽 개막 직후 러시아와 북한 해커들이 IT 시스템 해킹을 시도했다는 소식 때문에 한바탕 소동이 벌어졌다.​하지만 당시 올림픽 시스템 해킹을 시도한 것은 이들이 아닌 것으로 드러났다.Ȁ...

www.zdnet.co.kr

위와 같은 기사를 보았고 

Rich헤더가 조작되었다고 말했습니다.

 

모든 기사를 100%신뢰할 수는 없지만

연구하는데 있어서 Rich헤더를 변조하면

다른사람으로 위장할 수 있다는 내용이 담겨 있네요.

 


 

그렇다면 Rich헤더는 무엇일까요?

 

Rich헤더란?

(리치헤더란?)

비정형 데이터구조를 가지고 있으며 프로그램을 빌드한 컴파일러에 대한 정보실행파일이 생성된 환경에 대한 정보를 말합니다.

 

여기서 비정형데이터는 json, xml 같은 것을 말하는 것이 아니고,

비정형데이터를 말하기 전에

 

여러분들은 

마이크로소프트에서 발표한 API말고

Undocumentation 한 API를 아시나요?

 

MSDN에 공개된 API가 아닌 내부에서 사용하는

API가 따로 있다는 말입니다.

 

즉, 공개적으로 문서화하지 않았다는 말이고

이 부분은 문서화되지 않아서 알기 힘들다는 내용이지

사용할 수가 없다는 말은 아닙니다.

 

Rich헤더도 이와 같습니다.

 

정형화 된 문서에 따라서 확인을 할 수 없다는 말이

비정형화 된 데이터라는 말이라고 보이네요.

 

제 능력으로는 Rich헤더정보만 가지고

확인하는 방법을 모르니

논문을 참고해보려고 합니다.

 

참고한 논문은 맨 아래 적어놓겠습니다.

 

용어

설명

Rich헤더

Rich 헤더는 비정형데이터구조를 가지고 있으며 프로그램을 빌드한 컴파일러에 대한 정보 및 실행파일이 생성된 환경에 대한 정보를 제공

 

제목

설명

주제

악성코드를 정적으로 탐지하기 위한 PERich헤더 활용방법

제시 내용

Rich헤더에 숨겨진 세부정보는 분석가들에게 가치있는 내용을 제공하기 때문에 이를 추출하려고 함

목표

Rich헤더의 세부정보 추출

악성코드와 정상파일의 분류

조건

Windows 실행 파일을 빌드

 

1. rich 헤더 분석

1) rich헤더는 컴파일된 중간코드를 하나의 실행파일로 결합하는 링커가 생성합니다.

2) rich헤더는 MZ파일헤더와 DOS stub의 바로 뒤에 있습니다.

3) rich헤더는 오프셋 0x80부터 Rich문자열사이에 있습니다.(가변)

, 80 ?? ?? ?? .. ?? ?? ?? 52 69 63 68

4) 0x52696368rich헤더 섹션의 끝을 의미합니다.

5) Rich(0x52696368) 바로 뒤에는 32비트 체크섬 및 암호해독 키가 있습니다.

1) 에서 linker가 rich헤더를 생성한다고 되어있는데..

 

링커소스를 보면 rich헤더를 만드는 과정을

알 수 있지 않을까?

생각해 봅니다.

 

이 정보를 이용해서

 어디서 악성코드를 만든 것인지

프로파일링 할 수 있지요.

 

방법은..?

현재까지 발견된 악성코드의 

rich헤더를 싸그리 정리합니다.

 

악성코드 탐지 솔루션에서

샘플 악성코드의 rich헤더를 추출한 후

싸그리 정리했던 rich헤더 정보와 비교합니다.

 

그래서 같다면..

악성일 수도 있다는 결론을 내릴 수 있겠네요.

 

rich헤더는 변조될 수도 있기 때문에

이 영역 하나만으로 식별한다는 것은

말도 안되는 소리지만 

탐지모델의 정확도를 올리는데는

어느정도 기여를 할 수 있겠죠?

 

오늘은 일이 있어서 아래 내용은

추후에 적도록 하겠습니다.

'Try Attack > Malware Analysis[basic]' 카테고리의 다른 글

메모리 상에 있는 code영역을 수정하는 프로그램  (0) 2019.09.18
Anti-VM 기법  (0) 2019.09.13
악성코드 분석[4]  (0) 2019.09.01
악성코드 분석[3]  (0) 2019.08.30
악성코드 분석[2]  (0) 2019.08.28

댓글