YARA rule - AgentTesla

2022. 2. 25. 01:50보안 연구/Reversing

반응형

본 티스토리 블로그는 PC환경에 최적화되어 있습니다.

 

안녕하세요, ICMP입니다!

저번 시간에 위장 문서 에이전트 테슬라를 간략하게나마 분석했는데, 이 녀석이 파일을 드롭하고 또 다른 공격을 감행하는 것으로 확인되었습니다.

 

엑셀 실행파일의 매개변수가 오염됐다는 크래시가 뜨기도 하고 특정 파일이 실행되기도 했는데 제작자는 MS 오피스 내부적인 취약점도 활용한 것으로 보입니다.

아마 발견 시점으로 봤을 때는 1day 일 가능성이 높지만 제가 생각했던 것보다 상당히 무서운 녀석이었습니다...

 

창이 있으면 반드시 방패가 있는 법!!!

 

오늘은 제가 간략하게 분석한 내용과 샌드박스 분석 결과를 활용하여 해당 악성코드를 탐지할 수 있는 yara 룰을 작성해 보도록 하겠습니다.단지, 테스트 용도이므로 참고만 하시길 바랍니다!!!

 

 

1. 분석결과 종합

일단 휴리스틱 분석이 아니고 시그니처 기반의 탐지 규칙을 만들어야 하므로 우리가 활용할 수 있는 부분은 바이너리 헥스 값, 내부의 String 정도겠네요.

(가장 중요한 것은 정상적인 파일과 악성코드를 구분하는 능력을 최대화 시켜주는 것이겠죠?)

 

이미 해외의 능력자들은 이 yara 룰을 자동으로 생성해 주는 generator를 만들었습니다!!!

 

아직 써보지 않아서 성능은 잘 모르겠지만 여러 가지 생성 방식이 존재할 겁니다.

 

간단하게 샌드박스에서 악성코드를 동작시키고 이들의 활동 내용과 바이너리의 코드값을 서로 매칭해 unique 한 부분이 존재하면 그걸 yara 룰에 반역하도록 할 수 있겠죠?

 

(물론 샌드박스의 성능에 따라 시간은 무진장 걸릴 가능성이 높습니다. 그래도 자동화가 어디예요!?)

 

흠... 서론이 너무 길어졌습니다.

이번 시간에는 자동화 솔루션 없이 분석 내용에 기반한 탐지룰을 작성해 보도록 하겠습니다.

 

 

1) 악성코드의 특징

- 야후 사이트로 ping을 날림

- 특정 아이피에 접속하여 dll 파일을 불러옴

- dll 내부의 특정 함수를 실행시킴.

 

 

2) 샌드박스 분석 정보

 

dll이 난독화되어 있어서 분석하기가 어려웠고 anyrun으로 돌려봐도 특별한 정보가 없었는데, 특정 프로그램이 실행되는 루틴을 찾아냈습니다.

저도 혹시나 해서 해당 프로그램을 찾아보니 있었습니다.(이미 상당한 감염이 진행되었던 것으로 보입니다.)

 

신기한 건, 이 과정에서 백신이 아무런 탐지를 못했다는 것입니다.

일단, 해당 파일을 디컴파일러에 넣으니 코드가 조금 익숙합니다...

 

 

알고 보니 깃허브에 똑같은 코드가 있는데, 이름이 SharpDllLoader라고 dll 파일에서 입력된 이름의 임의의 함수를 호출해 주는 코드라고 합니다...

 

일단, 현재 dll 파일 분석 진행이 불가능하므로 위장 파일로 공격을 감행하는 악성코드를 탐지하기 위한 룰을 작성해 보도록 하겠습니다.

 

 

 

2. Rule 작성 및 적용

rule AgentTesla
{
	meta:
		description = "This is just an TEST!!!"
	
	strings:
		$web_connectAddr = "35.77.84.215"
		$dll_funcName = "Lwteuia"
		// $net_Test = "/c ping yahoo.com" 이건 잠시 보류
		$mal_fileName = "86510343307xls.exe"
	
	condition:
		$web_connectAddr or $dll_funcName or $mal_fileName
}
 

여기서 ping 명령어는 네트워크 명령이나 다른 용도로도 충분히 사용될 수 있고 정상 파일을 악성코드로 오탐할 가능성이 있어서 일단 제외했습니다.

 

아래는 제가 작성한 룰을 직접 컴파일 하고 검사한 결과입니다.

이번 시간에는 간단하게 악성코드 탐지를 위한 룰을 작성해 보았습니다.

물론 상당히 불안정하기도 하고 이 정도 분석으로는 인젝션과 같은 공격 코드들을 탐지하기는 한참 부족합니다.

개인적으로 더 많은 연구가 필요할 것 같군요...

 

 

- 2022.03.08 추가

외국의 어떤 유저분이 dll 파일을 분석하고 해당 yara룰을 작성하여 공유하였습니다.

제가 작성한 규칙보다는 아래 깃허브 코드를 참고하시는게 좋을 것 같습니다.

 

 

GitHub - InQuest/yara-rules: A collection of YARA rules we wish to share with the world, most probably referenced from http://bl

A collection of YARA rules we wish to share with the world, most probably referenced from http://blog.inquest.net. - GitHub - InQuest/yara-rules: A collection of YARA rules we wish to share with th...

github.com

  

 

오늘은 여기까지입니다. 이상으로 글을 마치겠습니다, 감사합니다!!!

추가적으로 해당 작성룰은 아래 첨부파일로 올려놓겠습니다.

 

agenttesla.yar
0.00MB

 

 

 

 

반응형