보안 사고 · macOS 정보 탈취 악성코드
Atomic macOS Stealer: Mac에서 하는 일과 Kilobat이 표시하거나 차단했을 내용
Atomic macOS Stealer(AMOS)는 범죄자에게 대여되는 악성코드로, 가짜 다운로드 페이지와 검색 광고를 통해 유포됩니다. 실행하면 암호를 요구하고 키체인 항목, 브라우저 데이터, 암호화폐 지갑 및 파일을 수집해 서버로 전송합니다. 이때 IP 주소로 암호화되지 않은 HTTP를 통해 전송하는 경우가 많습니다.
요약
- 보호: 제한적
당일 위협 목록에 있는 유인 사이트, 페이로드 호스트 및 서버 주소를 차단합니다. 공격 캠페인은 호스트를 자주 바꾸며 새 호스트는 아직 목록에 없습니다.
- 새 앱 확인: 제한적
묻기 모드에서는 서명되지 않은 앱이나
/tmp의 바이너리가 처음 연결할 때 서명자, 경로 및 목적지를 보여 주며 대기합니다. Apple 소프트웨어 허용이 켜져 있으면 Apple 자체 curl과 osascript는 통과합니다. - 앱 트래픽: 표시 가능
앱 목록에는 정보 탈취 프로세스가 경로와 함께 표시되며 암호화되지 않은 HTTP로 IP 주소에 업로드하는 모습도 나타납니다.
- 에이전트 보호: 도움이 되지 않음
AMOS 캠페인은 에이전트가 아니라 사람을 노립니다. 에이전트 보호는 AI 에이전트가 시작한 항목에만 적용됩니다.
발생한 일
Cyble은 2023년 4월 웹 패널과 디스크 이미지 설치 프로그램을 포함해 월 1,000달러에 판매되는 AMOS 광고를 Telegram 채널에서 발견했습니다. SentinelOne은 유포 방식이 대여자에게 맡겨진다고 지적했습니다. 가짜 설치 프로그램, 불법 복제 소프트웨어, 검색 광고처럼 유인 방식이 매우 다양한 이유입니다. 키체인을 읽기 위해 시스템 프롬프트처럼 꾸민 AppleScript 대화상자로 사용자 암호를 요청합니다.
Jamf Threat Labs는 2024년 Arc 브라우저 검색 광고가 모방 사이트로 연결되고 이 사이트가 Gatekeeper 경고를 넘기 위해 오른쪽 클릭 후 열도록 안내하는 임시 서명 디스크 이미지를 제공했다고 설명했습니다. 2025년 1월 Homebrew 검색 광고는 실제 주소를 표시했지만 한 글자가 다른 brewe[.]sh로 연결되었습니다. Moonlock은 Homebrew GitHub 저장소가 아닌 다른 도메인에서 AMOS를 가져오는 설치 명령어를 기록했습니다. Homebrew 프로젝트 책임자는 해당 광고가 며칠 안에 내려갔지만 이런 광고가 계속 다시 등장한다고 말했습니다.
후속 캠페인은 다운로드 단계를 생략합니다. Unit 42는 2026년 가짜 “macOS toolkit” 페이지를 조사했습니다. 빠른 설정으로 터미널에 붙여넣을 명령어를 제시했고, 이 명령어는 스크립트를 가져왔습니다. 스크립트는 /tmp/helper로 저장되는 바이너리를 가져와 암호를 요구하고 지갑, Telegram 데이터, 브라우저 데이터, zsh_history 및 aws, gcloud, docker 폴더를 수집했습니다. Microsoft는 2026년 1월 AMOS가 가짜 앱 다운로드로 도착해 LaunchDaemon을 설치하고 서버에 명령을 주기적으로 요청했다고 설명했습니다. Moonlock은 2026년 3월 “Clearly AI”라는 AI 에이전트 도구로 위장한 캠페인을 보고했습니다.
타임라인
- 2023년 4월
AMOS가 Telegram에서 월 1,000달러에 판매됩니다(Cyble, SentinelOne).
- 2023년 5월
SentinelOne이 두 번째 변종을 기록하고 Google Ads를 유포 경로로 지목합니다.
- 2024년 4월
Jamf가 가짜 다운로드 사이트로 연결되는 Arc 브라우저 검색 광고를 설명합니다.
- 2025년 1월 17~20일
Homebrew 검색 광고가 설치 명령어로 AMOS를 가져오는 모방 사이트로 연결됩니다(Moonlock).
- 2026년 1월
Microsoft가 LaunchDaemon과 명령 루프를 갖춘 가짜 앱으로 전달된 AMOS를 관찰합니다.
- 2026년 3월
AMOS가 Mac용 AI 에이전트 도구로 위장합니다(Moonlock이 인용한 Intel 471 및 CYFIRMA).
- 2026년 7~8월
Unit 42가 터미널 붙여넣기 페이지에서 두 번 감염을 실행했으며 각각 서버 주소가 달랐습니다.
네트워크에서 보인 모습
첫 연결은 일반적인 웹 탐색입니다. 광고를 클릭한 다음 모방 페이지로 이동합니다. 붙여넣기 변종에서는 다음 단계가 터미널에서 시작됩니다. curl가 두 번째 도메인에서 스크립트를 가져오고, 흔히 메모리에서 디코딩하며(Microsoft는 curl … | base64 -d | gunzip를 설명), 이 스크립트가 바이너리를 가져옵니다. 디스크 이미지 변종에서는 변조된 앱이 직접 외부에 연결합니다.
수집은 로컬에서 조용히 이루어집니다. 데이터는 /tmp 아래에 임시 저장되고 macOS 자체 ditto으로 압축되어 out.zip가 된 뒤 HTTP POST로 전송됩니다. Jamf는 요청 본문에 base64로 인코딩된 zip을 확인했습니다. Microsoft는 빌드와 사용자 이름을 담은 헤더와 함께 IP 주소의 /log에 보내는 POST를 확인했습니다. Unit 42는 URL이 stage=credentials, stage=browsers, stage=wallets 등으로 끝나는 POST가 IP 주소로 연속 전송되는 것을 확인했습니다. 이후 LaunchDaemon 변종은 /api/v1/bot/actions/<id>에 명령을 주기적으로 요청합니다.
관련 프로세스는 대부분 터미널이나 가짜 앱에서 실행된 macOS 자체 curl, osascript, ditto와 정보 탈취 바이너리입니다. Unit 42는 도메인, 주소 및 파일 이름이 자주 바뀐다고 강조합니다.
침해 지표
출처에 기록된 그대로입니다. 도메인은 링크가 아닌 텍스트이며 출처가 무해화한 경우 그대로 무해화했습니다([.]). 이 인프라는 대부분 오래전에 사라졌습니다. 지표는 현재 캠페인을 차단하기보다 오래된 로그, 파일 및 계정을 확인하는 데 도움이 됩니다.
| 지표 | 유형 | 표시 위치 | 참고 |
|---|---|---|---|
brewe[.]sh | 도메인 | 브라우저 | 2025년 1월 검색 광고 뒤에 있던 Homebrew 모방 사이트(Moonlock). |
hxxps://norikosumiya[.]com/brew/update | URL | 터미널(curl) | 해당 사이트의 설치 명령어가 AMOS를 가져온 위치(Moonlock). |
aricl[.]net, airci[.]net | 도메인 | 브라우저 | 2024년 가짜 Arc 브라우저 다운로드 사이트(Jamf). |
alliai[.]com, alli-ai[.]pro, ai[.]foqguzz[.]com, day[.]foqguzz[.]com | 도메인 | 브라우저, 가짜 앱 | 2026년 1월 리디렉션, AlliAi.dmg 다운로드 및 첫 연결(Microsoft). |
hxxp://217.119.139[.]117/log | IP 주소의 URL | 내 Mac | 암호화되지 않은 HTTP를 통한 다음 단계 다운로드(/d/…)와 유출(Microsoft). |
getmacouscloud[.]com, ferncore13[.]com, grove-89[.]com | 도메인 | 브라우저, 터미널(curl) | 2026년 가짜 도구 페이지, 스크립트와 바이너리의 호스트, Unit 42가 명시한 세 번째 호스트. |
161.35.146[.]120, 188.166.78[.]138 | IP 주소 | 내 Mac | 2026년 8월 5일과 7월 31일 stage=… 업로드를 처리한 서버(Unit 42). |
clearl[.]co | 도메인 | 브라우저 | 2026년 3월 가짜 AI 에이전트 도구 Cleal_AI.dmg(Moonlock). |
/tmp/helper, /tmp/starter, /tmp/out.zip, /Library/LaunchDaemons/com.<random>.plist | 파일 | 내 Mac | 바이너리, plist, 임시 저장 데이터 및 2026년 1월 변종의 지속성(Unit 42, Microsoft). |
Kilobat이 표시하거나 차단했을 내용
- 보호. Kilobat은 브라우저, 터미널, curl을 포함한 모든 앱의 연결을 HaGeZi Threat Intelligence Feeds(도메인 및 IP 주소), HaGeZi Fake 및 URLhaus와 대조하고 목록에 있는 연결을 앱 이름과 함께 거부합니다. 당일 목록에 있던 호스트나 주소는 페이지, 페이로드 또는 서버에 관계없이 차단되었을 것입니다. 2026년 11월 1일 확인 당시 위 표의 호스트와 주소는 더 이상 목록에 없었습니다. 목록은 사라진 인프라를 제거하며 각 항목이 실제 사용 중일 때 목록에 있었는지는 지금 확인할 수 없습니다.
- 새 앱 확인. 여행 또는 업무 프로필에서 새 앱 확인이 켜져 있으면 규칙이 없는 앱의 첫 연결을 보류하고 서명자, 경로 및 목적지를 표시합니다. 디스크 이미지에서 실행된 서명되지 않았거나 임시 서명된 앱 또는
/tmp에서 실행되는 바이너리는 사용자 응답을 기다립니다. Apple 소프트웨어 허용이 켜져 있으면 Apple의curl및osascript은 통과합니다. - 앱 트래픽. Kilobat의 앱 목록은 macOS에 포함되지 않은 명령줄 도구를 경로로 표시하므로 데이터를 보내는
/tmp/helper가 업로드량 및 목적지와 함께 눈에 띕니다. IP 주소로 연결하면 그 주소가 표시됩니다.
Kilobat이 도움이 되지 않았을 경우
- Kilobat은 백신이 아닙니다. 명령어를 붙여넣거나 디스크 이미지를 열거나 가짜 대화상자에 암호를 입력하는 행위는 막지 못합니다. XProtect와 Gatekeeper를 켜 두세요.
- 대부분의 정보 탈취는 연결이 이루어지기 전에 발생합니다. 키체인, 브라우저 프로필 및 지갑 읽기는 로컬에서 이루어지며 마지막 업로드만 네트워크를 거칩니다.
- 새로운 유인 사이트와 서버는 아직 어떤 목록에도 없습니다. Moonlock은 가짜 AI 도구 사이트가 운영 중일 때 VirusTotal의 모든 엔진에서 탐지되지 않았다고 밝혔습니다.
- 탈취된 정보는 공격자의 컴퓨터에서 사용자 쿠키와 암호와 함께 사용되므로 Mac에는 더 이상 아무것도 표시되지 않습니다.
- 에이전트 보호와 에이전트 네트워크 로그는 사용자가 터미널이나 Finder에서 직접 시작한 프로그램에는 적용되지 않습니다.
지금 Mac 확인하기
알아보지 못하는 실행 항목을 찾으세요. AMOS는
com.뒤에 무작위 문자가 붙은 이름을 사용한 적이 있습니다.ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgentsUnit 42가 발견한 숨겨진 폴더를 찾으세요. 이름은 Apple 폴더처럼 보이지만 보통 존재하지 않습니다.
ls -la ~/Library/Application\ Support/.com.apple.accountsd ~/Library/Application\ Support/.com.apple.metadata.mds임시 저장 파일을 찾으세요. macOS는 재시동할 때
/tmp를 지우므로 아무것도 찾지 못해도 감염되지 않았다는 증거는 아닙니다.ls -la /tmp/helper /tmp/starter /tmp/out.zip웹 페이지에서 복사해 무언가를 다운로드하고 실행한 명령어가 있는지 셸 기록을 살펴보세요.
grep -nE "curl .*\| *(ba|z)?sh|base64 -(d|D)" ~/.zsh_historyHomebrew는
raw.githubusercontent.com/Homebrew/install/HEAD/install.sh를 가져오는brew.sh의 명령어로만 설치하세요. 설치 명령어를 실행하기 전에 다운로드하는 호스트를 확인하세요.kilobat protect check example-download-host.comApple 소프트웨어는 허용한 상태로 새 앱 확인을 켜서 새 프로그램이 사용자 응답을 기다리도록 하세요. 새 앱 승인 받기를 참고하세요.
kilobat settings new-apps askAMOS의 흔적을 발견하면 저장된 암호, 브라우저 세션, 키체인 및 지갑이 노출되었다고 가정하세요. 다른 기기에서 암호를 바꾸고 다른 세션에서 로그아웃하고 암호화폐를 새 지갑으로 옮긴 다음, 정리 작업을 신뢰하기보다 macOS를 지우고 다시 설치하세요.
질문
Gatekeeper가 AMOS를 막나요?
사람이 경고를 무시하도록 유도되면 막지 못합니다. Jamf는 사용자가 앱을 오른쪽 클릭해 열도록 지시하는 디스크 이미지를 확인했으며, 터미널 붙여넣기 변종은 앱을 Gatekeeper에 제출하지도 않습니다. 그래도 여러 위협을 막으므로 켜 두세요.
Kilobat이 가짜 Homebrew 사이트를 차단했을까요?
2025년 1월 약 3일간 광고가 게재될 때 brewe[.]sh 또는 페이로드 도메인이 위협 목록에 있었던 경우에만 가능합니다. 사후에 확인할 수 없으며 지금은 목록에 없습니다.
출처
- Cyble: Telegram에서 새 Atomic macOS(AMOS) 정보 탈취 악성코드를 판매하는 공격자
- SentinelOne: Telegram에서 판매되는 macOS 악성코드 Atomic Stealer의 두 번째 변종
- Jamf Threat Labs: macOS 사용자에게 계속 위협이 되는 정보 탈취 악성코드
- Moonlock: 가짜 Homebrew 광고를 통해 유포되는 위험한 macOS 악성코드
- Microsoft Defender Experts: 정보 탈취 악성코드 추적, macOS 위협
- Moonlock: Mac용 AI 에이전트 도구를 모방하는 Atomic macOS stealer
- Unit 42: Atomic macOS(AMOS) stealer 활동
2026년 11월 1일에 확인했습니다.
에이전트와 앱이 어디에 연결하는지 확인하세요
Kilobat은 모든 연결 뒤에 있는 앱, 프로세스 및 에이전트의 이름을 표시하고 알려진 악성 호스트를 차단하며 각 에이전트 세션이 연결한 대상을 기록하는 Mac 메뉴 막대 앱입니다.
brew install seifip/kilobat/kilobat