CrashStealer: 충돌 리포터로 위장하는 macOS 정보탈취 악성코드
Detection stack
- AIDR
- Alert
- ETL
- Query
개요
CrashStealer는 민감한 사용자 데이터를 수집하기 위해 애플의 크래시 리포팅 프레임워크로 위장한 macOS용 네이티브 C++ 정보 탈취기입니다. 이 프로그램은 브라우저 자격 증명, 암호화폐 지갑 및 키체인 정보를 대상으로 하며 AES-GCM 암호화를 사용하여 도난 데이터를 로컬에 저장합니다. 악성 코드는 정품 소프트웨어 설치 프로그램으로 위장한 서명 및 공증된 드로퍼를 통해 배포됩니다.
조사
Jamf Threat Labs는 2026년 5월에 VirusTotal에 의심스러운 macOS 샘플이 등장한 후 이 위협을 발견했습니다. 그들의 조사는 공증된 드로퍼인 Werkbit Setup와 탐지 회피용 임시 서명(payload)을 사용하는 정교한 다단계 감염 체인을 밝혀냈습니다. 분석가들은 또한 악성 코드가 보안 도구를 프로파일링하고 감염된 호스트로부터 광범위한 사용자 데이터를 수집하는 것을 관찰했습니다.
완화 방안
조직은 숨겨진 경로에서 실행된 의심스러운 애플리케이션의 실행을 모니터링해야 합니다 /private/tmp/와 같은 명령어의 실행에 대한 탐지 규칙을 만들어야 합니다 dscl -authonly and xattr -cr 이상한 맥락에서 나타날 경우. 알려진 악성 도메인을 차단하고 ~/.cache/ 에 특이한 명명 패턴을 가진 대량의 암호화된 ZIP 아카이브를 주시하는 것도 데이터 유출을 방해하는 데 도움이 될 수 있습니다.
대응
CrashStealer가 탐지된 경우 즉시 영향을 받은 macOS 엔드포인트를 격리하여 추가 데이터 도난을 방지하십시오. 도난 정보의 범위를 평가하기 위해 ~/.cache/com.apple.crashreporter/ 디렉토리에 대한 포렌식 분석을 수행하십시오. 조사자는 사용자 자격 증명, 특히 키체인 콘텐츠 및 브라우저에 저장된 비밀번호를 완전히 위협된 것으로 취급해야 합니다.
공격 흐름
탐지
Base64 인코딩 문자열 조작 가능 [MacOS] (cmdline 통해)
보기
수정된 애플리케이션 번들의 강제 코드 서명 (cmdline 통해)
보기
수동 키체인 잠금 해제 시도 가능 (cmdline 통해)
보기
Dscl Authonly를 통한 MacOS 자격 증명 유효성 검사 (cmdline 통해)
보기
CrashStealer의 알려진 C2 및 GitHub 저장소를 통한 데이터 유출 [Windows 네트워크 연결]
보기
macOS에서의 CrashStealer 활동 탐지 [Linux 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.
합리화: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적의 기술적 기법(TTP)의 정확한 실행을 자세히 설명합니다. 명령어 및 내러티브는 식별된 TTP를 직접 반영하고 탐지 논리에서 기대하는 정확한 텔레메트리를 생성하려고 합니다. 추상적이거나 관련 없는 예는 오진을 초래할 것입니다.
-
공격 내러티브 및 명령어: 적은 macOS 기반 정보 탈취기(CrashStealer)를 배포하려고 합니다. 초기 탐지를 피하고 환경을 준비하기 위해 공격자는 먼저 격리를 피하기 위해 악성 코드에서 확장 속성을 제거합니다 (
xattr -cr). 그런 다음 로컬 사용자 자격 증명을 확인하여 적절한 권한을 가지고 있는지 확인하려고 합니다dscl를 사용합니다 (dscl -authonly). 지속성과 시스템 통합을 보장하기 위해 Launch Services에 악의적인 서비스를 등록합니다 (lsregister -f). 마지막으로, 사용자 인터페이스에서 숨겨진 상태로 유지하기 위해 백그라운드에서 페이로드를 실행합니다 (open -g -n). 이 일련의 작업은 악의적인 작업을 수행하면서 정당한 시스템 관리처럼 보이도록 설계되었습니다. -
회귀 테스트 스크립트:
#!/bin/bash # CrashStealer 시뮬레이션 스크립트 # 이 스크립트는 탐지 규칙에 정의된 특정 명령어 패턴을 실행합니다. echo "[+] CrashStealer 시뮬레이션 시작..." # 1. 확장 속성 제거 (T1027.005) echo "[+] 1단계: 확장 속성 제거..." xattr -cr /tmp/dummy_malware_file 2>/dev/null || echo "[!] xattr 실패 (파일이 존재하지 않을 시 예상됨)" # 2. 자격 증명 유효성 검사 (T1556.002) echo "[+] 2단계: dscl을 통한 자격 증명 유효성 검사..." dscl -authonly /Users/$(whoami) || echo "[!] dscl 실패 (유효한 문맥 필요)" # 3. Launch Services에 등록 (T1546.015) echo "[+] 3단계: 서비스 등록..." lsregister -f /tmp/dummy_app.app 2>/dev/null || echo "[!] lsregister 실패" # 4. 백그라운드에서 프로세스 시작 (T1056) echo "[+] 4단계: 백그라운드에서 프로세스 시작..." open -g -n /Applications/Calculator.app 2>/dev/null || echo "[!] open 실패" echo "[+] 시뮬레이션 완료." -
정리 명령어:
# 시뮬레이션 중 생성된 더미 파일 제거 rm -f /tmp/dummy_malware_file rm -f /tmp/dummy_app.app echo "[+] 정리 완료."