"입사 제안드립니다" 채용 메일 사칭 피싱 주의
2024년 11월 29일, 개발자 커뮤니티 ‘Dev.to’에서 채용 공고 메일을 가장한 악성코드 유포 사례가 발견됐다. 공격자는 프로젝트 파일이 포함된 비트버킷(BitBucket) 링크를 전달했고, 이를 확인한 피해자는 프로젝트 내부에 악성코드가 숨겨진 것을 알아차리고 이를 커뮤니티에 공유했다. 프로젝트 내부에는 ‘tailwind.config.js’라는 이름으로 존재하는 비버테일(BeaverTail) 악성코드와 함께 ‘car.dll’이라는 이름의 다운로더 악성코드가 포함돼 있었다. 해당 사례를 좀 더 자세히 살펴보자.
[그림 1] 개발자 커뮤니티에서 공개된 공격 사례
현재 링크에서 다운로드는 불가하지만 바이러스토탈(VirusTotal)에서는 “car.dll” 다운로더와 비버테일을 포함하는 압축 파일들이 존재했다. 이들을 기반으로 분석을 수행한 결과, “car.dll”의 실행 로그와 비버테일의 실행 정황이 국내에서도 확인됐다. 비버테일은 해외에서 북한 기반의 공격자들이 사용하는 것으로 알려진 악성코드로, 정보 탈취 및 추가 페이로드를 다운로드하는 기능을 담당한다.
“car.dll” 다운로더는 백도어를 다운로드하는데 윈도우 명령어들을 내부에 구현한 것이 특징이다. 이 방식은 과거 ESET 보고서에서 공개한 라자루스(Lazarus) 그룹의 LightlessCan 악성코드와 유사하다.
1. 공격 정황
바이러스토탈에서 확보한 프로젝트 파일 내부에는 다음과 같이 다운로더 악성코드인 “car.dll”과 비버테일 악성코드이자 다운로더를 실행하는 기능을 담당하는 “tailwind.confg.js” 파일이 존재한다. 참고로 또 다른 압축 파일에는 유사한 비버테일과 함께 동일한 다운로더가 확인됐는데, 이는 “img_layer_generate.dll”라는 이름으로 유포됐다.
[그림 2] 프로젝트 파일 내부
비버테일은 주로 해외에서 링크드인과 같은 채용을 위장한 피싱 공격 사례에서 유포되는 것으로 알려져 있으며, 국내에서도 연관 사례가 확인됐다. 위 사례 또한 해외 사례이지만, 국내에서도 연관 로그가 확인된다. 설치 경로도 해당 포스팅에서 언급한 것과 유사하게 “autopart” 키워드가 포함된 “%SystemDrive%\0_***workfile\_work\autosquare\autopart\car.dll”인 것을 보면 동일 사례로 추정된다.
[그림 3] 다운로더 악성코드 실행 로그
이 외에도 다운로더가 설치된 시스템에서 다음과 같이 몇 분 후 비버테일로 추정되는 로그가 확인되기도 했다. Curl을 이용해 다운로드한다는 점과 다운로드되는 파일의 이름인 ‘p.zi’와 ‘p2.zip’은 비버테일의 알려진 행위이다. 또한, 다운로드 주소도 2024년 11월, 지스케일러(Zscaler)가 공개한 비버테일 관련 보고서에서 언급된 주소와 동일하다.
2. 비버테일
“tailwind.config.js”라는 이름의 자바스크립트(JavaScript) 악성코드는 난독화된 루틴과 동일 경로에 위치한 “car.dll”을 실행하는 루틴이 함께 포함돼 있다.
[그림 4] 난독화 루틴 및 car.dll 실행 루틴
난독화된 루틴은 인포스틸러 및 다운로더 기능을 수행하는 비버테일 악성코드로, 웹 브라우저를 대상으로 자격 증명 정보 및 암호 화폐 지갑 데이터를 탈취하며 InvisibleFerret과 같은 추가 악성코드를 다운로드하는 것으로 알려져 있다.
[그림 5] 탈취한 정보 업로드 후 추가 페이로드 다운로드
3. 트로피도어(Tropidoor)
다운로더를 통해 메모리 상에서 동작하는 악성코드는 백도어이다. 백도어가 실행되면 4개의 C&C 서버 주소를 복호화해 접속을 시도하며, 성공한 이후에는 시스템의 기본적인 정보들을 수집한다. 이후 임의의 0x20 바이트 크기의 키를 생성한 후 RSA 공개키로 암호화해 전송한다. RSA 공개키는 베이스64(Base64)로 암호화돼 존재하며, 랜덤하게 생성된 0x20 바이트 크기의 키는 C&C 통신 시 패킷 암호화에 사용된다.
[그림 6] 복호화된 RSA 공개키와 암호화 루틴
C&C 서버와의 첫 번째 통신에서는 위에서 구한 시스템 정보와 RSA 공개키로 암호화된 랜덤한 키를 베이스64로 인코딩해 각각 ‘tropi2p’, ‘gumi’ 파라미터를 통해 전송한다. 그리고 5 바이트 크기의 랜덤한 문자열을 생성하는데, 해당 문자열은 다른 통신 과정에서도 ‘s_width’ 파라미터와 함께 사용되는 것을 보면 Session ID로 추정된다.
[표 1] C&C 통신 시 URL 포맷
이후에는 ‘letter’ 파라미터에 ‘400BadRequest’를 넣고 C&C 서버에 전송하는데, 이를 통해 C&C 서버로부터 명령을 수신 받을 수 있다. 전달받은 명령을 수행한 이후에는 동일하게 그 결과를 인코딩해 ‘letter’파라미터를 통해 전송한다.
C&C 서버로부터 전달받아 수행 가능한 명령들은 다음과 같다. 대부분 일반적인 백도어 유형들과 유사하지만 34번 명령이 조금 차별화되는 특징이다.
[표 2] C&C 명령 번호
[그림 7] 내부에 구현된 윈도우 명령어들
4. 결론
이처럼 최근 북한을 배후로 둔 것으로 추정되는 사이버 공격들이 지속적으로 발견되고 있다. 특히 해외를 주요 표적으로 삼는 비버테일 악성코드의 공격 정황이 국내에서도 확인됐으며, 함께 사용된 악성코드 역시 과거 공격 사례들과의 연관성이 드러났다. 사용자들은 메일에 첨부된 파일은 물론, 출처가 불분명한 실행 파일에 대해 각별한 주의가 필요하다. 아울러, V3 등 보안 솔루션을 최신 버전으로 업데이트해 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.
출처 : AhnLab