서문
In August 2024, a novel macOS malware named "BANSHEE Stealer" emerged, catching the attention of the cybersecurity community. Reportedly developed by Russian threat actors, BANSHEE Stealer was introduced on an underground forum and is designed to function across both macOS x86_64 and ARM64 architectures.
이 멀웨어는 중요한 시스템 정보, 브라우저 데이터 및 암호화폐 지갑을 표적으로 삼아 macOS 사용자에게 심각한 위험을 초래합니다.
월 구독료가 3,000달러에 달하는 BANSHEE Stealer는 특히 AgentTesla와 같은 유명한 스틸러와 비교했을 때 시장에서 눈에 띄는 서비스입니다.
맥OS가 점점 더 사이버 범죄자들의 주요 표적이 되고 있는 가운데, 반시 스틸러는 맥OS 전용 멀웨어가 증가하고 있음을 강조합니다. 이 분석에서는 커뮤니티가 밴시 스틸러의 영향을 이해하고 새로운 위협에 대한 최신 정보를 얻을 수 있도록 돕기 위해 밴시 스틸러의 기술적 세부 사항을 살펴봅니다.
핵심 사항
- 밴시 스틸러는 맥OS가 사이버 위협의 더 매력적인 표적이 되면서 맥OS 멀웨어 샘플의 수가 증가하고 있다고 강조합니다.
- 밴시 스틸러의 월 3,000달러 가격은 윈도우 기반 스틸러에 비해 상당히 높은 편입니다.
- 밴시 스틸러는 광범위한 브라우저, 암호화폐 지갑 및 약 100 브라우저 확장 프로그램을 표적으로 삼기 때문에 매우 다양하고 위험한 위협입니다.
Malware 분석
이번 연구에서 분석한 멀웨어에는 아래 그림과 같이 모든 C++ 심볼이 포함되어 있는데, 이러한 소스 코드 파일 이름을 알면 프로젝트의 코드 구조를 추측할 수 있다는 점이 흥미롭습니다. C++로 생성된 전역 변수 초기화 함수를 살펴보면 원격 IP, 암호화 키, 빌드 ID 등과 같이 빌드 프로세스 중에 사용자가 자동/수동으로 설정한 값을 찾을 수 있습니다.
다음 표는 유출된 .cpp
파일 이름을 바이너리의 기호를 통해 요약한 것입니다.
파일 이름 | 설명 |
---|---|
Controller.cpp | 디버깅 방지 조치, 언어 검사, 데이터 수집 및 유출을 포함한 핵심 실행 작업을 관리합니다. |
Browsers.cpp | 다양한 웹 브라우저에서 데이터 수집을 처리합니다. |
System.cpp | Apple스크립트를 실행하여 시스템 정보를 수집하고 비밀번호 피싱을 수행합니다. |
Tools.cpp | 암호화, 디렉토리 생성, 압축 등을 위한 유틸리티 기능을 제공합니다. |
Wallets.cpp | 암호화폐 지갑에서 데이터를 수집하는 일을 담당합니다. |
디버거, VM 탐지 및 언어 검사
밴시 스틸러는 탐지를 피하기 위해 기본적인 기술을 사용합니다. sysctl API를 활용하여 디버깅을 감지합니다.
가상화 감지의 경우 system_profiler SPHardwareDataType | grep 'Model Identifier'
명령을 실행하여 하드웨어 모델 식별자에 Virtual
문자열이 나타나는지 확인하여 가상 머신을 암시합니다. 이러한 방법은 비교적 간단하며 고급 샌드박스 및 멀웨어 분석가들이 쉽게 우회할 수 있습니다.
또한 CFLocaleCopyPreferredLanguages API에서 반환된 사용자 선호 표준화 언어를 구문 분석하고 ru
문자열을 찾습니다. 이 전략은 멀웨어가 러시아어가 기본 언어인 시스템을 감염시키지 않도록 도와줍니다.
시스템 정보 수집
사용자 비밀번호
이 멀웨어는 애플리케이션을 시작하려면 시스템 설정을 업데이트해야 한다는 대화 상자와 함께 오사스크립트 암호 프롬프트를 생성합니다. 비밀번호를 입력하세요.
사용자가 비밀번호를 입력하면 dscl 명령을 실행하여 비밀번호의 유효성을 검사합니다. dscl Local/Default -authonly <username> <password>
유효한 경우 비밀번호는 다음 파일에 기록됩니다 /Users/<username>/password-entered
.
이러한 자격 증명을 활용하여 시스템에 저장된 키체인 데이터를 해독하여 저장된 모든 비밀번호에 대한 액세스 권한을 부여할 수 있습니다.
파일, 소프트웨어 및 하드웨어 정보 수집
System::collectSystemInfo
함수는 시스템 정보를 수집하여 JSON 객체로 직렬화합니다. 시스템의 소프트웨어 및 하드웨어에 대한 세부 정보를 제공하는 system_profiler SPSoftware DataType SPHardwareDataType
명령을 실행합니다. 기본 제공 macOS cURL
명령을 통해 freeipapi.com
에서 요청하여 컴퓨터의 공인 IP를 가져옵니다.
JSON 파일은 아래에 저장됩니다. <temporary_path>/system_info.json
BANSHEE 스틸러는 AppleScripts를 실행하는데, 흥미롭게도 같은 파일 /tmp/tempAppleScript
에 AppleScripts를 기록합니다.
첫 번째로 실행되는 스크립트는 osascript -e 'set volume with output muted'
명령으로 시스템 사운드를 음소거합니다. 그런 다음 시스템에서 아래와 같은 다양한 파일을 수집합니다:
- Safari 쿠키
- 노트 데이터베이스
- 데스크톱 및 문서 폴더의 확장자가
.txt
,.docx
,.rtf
,.doc
,.wallet
,.keys
또는.key
인 파일.
키체인 비밀번호 덤프
시스템의 키 체인을 /Library/Keychains/login.keychain-db
으로 복사합니다. <temporary_path>/Passwords
브라우저 컬렉션
BANSHEE는 현재 브라우저 기록, 쿠키, 로그인 등을 포함하여 9 에서 다양한 브라우저의 데이터를 수집합니다:
- Chrome
- Firefox
- Brave
- Edge
- Vivaldi
- Yandex
- 오페라
- OperaGX
Safari의 경우 현재 버전의 AppleScript 스크립트에 의해 쿠키만 수집됩니다.
또한 약 100 브라우저 플러그인에서 데이터가 수집됩니다. 이러한 확장 ID 목록은 블로그 게시물 마지막에 나와 있습니다.
수집된 파일은 <temporary_path>/Browsers
에 저장됩니다.
지갑 컬렉션
- Exodus
- Electrum
- Coinomi
- Guarda
- 와사비 지갑
- Atomic
- 원장
수집된 지갑은 <temporary_path>/Wallets
에 저장됩니다.
침투
멀웨어가 데이터 수집을 완료하면 먼저 ditto
명령을 사용하여 임시 폴더를 압축합니다. 그런 다음 zip 파일을 XOR 암호화하고 base64로 인코딩한 후 기본 제공 cURL 명령을 사용하여 http://45.142.122[.]92/send/
URL로 게시 요청을 통해 전송합니다.
행동 감지
- 서명되지 않거나 신뢰할 수 없는 바이너리를 통한 암호화폐 지갑 파일 액세스
- 서명되지 않거나 신뢰할 수 없는 프로세스에서 액세스한 웹 브라우저 자격 증명 데이터
- 오사스크립트 페이로드 드롭 및 실행
- 오사스크립트를 통한 잠재적 자격증명 피싱 가능성
YARA 규칙
Elastic Security는 이 활동을 식별하기 위해 YARA 규칙을 만들었습니다. 다음은 BANSHEE 멀웨어를 식별하는 YARA 규칙입니다:
rule Macos_Infostealer_Banshee {
meta:
author = "Elastic Security"
creation_date = "2024-08-13"
last_modified = "2024-08-13"
os = "MacOS"
arch = "x86, arm64"
category_type = "Infostealer"
family = "Banshee"
threat_name = "Macos.Infostealer.Banshee"
license = "Elastic License v2"
strings:
$str_0 = "No debugging, VM, or Russian language detected." ascii fullword
$str_1 = "Remote IP: " ascii fullword
$str_2 = "Russian language detected!" ascii fullword
$str_3 = " is empty or does not exist, skipping." ascii fullword
$str_4 = "Data posted successfully" ascii fullword
$binary_0 = { 8B 55 BC 0F BE 08 31 D1 88 08 48 8B 45 D8 48 83 C0 01 48 89 45 D8 E9 }
$binary_1 = { 48 83 EC 60 48 89 7D C8 48 89 F8 48 89 45 D0 48 89 7D F8 48 89 75 F0 48 89 55 E8 C6 45 E7 00 }
condition:
all of ($str_*) or all of ($binary_*)
}
결론
밴시 스틸러는 시스템, 브라우저, 암호화폐 지갑 및 수많은 브라우저 확장 프로그램에서 광범위한 데이터를 수집할 수 있는 macOS 기반 멀웨어입니다. 잠재적으로 위험한 기능에도 불구하고 멀웨어는 정교한 난독화가 되어 있지 않고 디버그 정보가 있기 때문에 분석가들이 쉽게 분석하고 이해할 수 있습니다. 밴시 스틸러는 설계가 지나치게 복잡하지는 않지만, macOS 시스템에 초점을 맞추고 수집하는 데이터가 광범위하기 때문에 사이버 보안 커뮤니티의 주의가 필요한 심각한 위협입니다.
Observables
모든 관측값은 결합된 압축 파일 번들로 ECS 및 STIX 형식으로도 다운로드할 수 있습니다.
이 연구에서는 다음과 같은 관찰 가능성에 대해 논의했습니다.
Observable | 유형 | 이름 | 참조 |
---|---|---|---|
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782 | SHA-256 | 밴시 스틸러 | |
45.142.122[.]92 | IPv4-addr | 밴시 스틸러 C2 |