요약: 저는 가짜 Upwork 일자리에 두 번 당했고, 두 번 모두 백신은 아무 말도 하지 않았습니다. 출처들은 백신이 문제 삼을 것이 없었던 이유를 네 가지로 설명합니다. 제가 직접 코드를 실행했기 때문에 Mac의 검사가 비켜섰고, node, curl, bash 같은 신뢰받는 도구를 썼고, 변종이 새것이라 시그니처는 나중에 나왔으며, 훔친 로그인 세션은 2FA를 통과할 수 있습니다. 출처들이 가리키는 대책은 이렇습니다. 모든 설치를 코드 실행으로 여기고, 터미널 명령을 실행하라고 요청하는 사람을 경계하고, 코드가 처음 실행되기 전에 그 코드가 무엇을 하는지 확인하세요.
두 번의 침묵
이것은 제 이야기입니다. 두 번의 일은 가짜 Upwork 일자리 두 번, 감염된 Mac 한 대에 정리했습니다. 가장 마음에 걸렸던 부분은: "neither macOS's built-in XProtect nor traditional antivirus made a sound, either time."(두 번 모두 macOS 기본 XProtect도, 기존 백신도 아무 경고를 하지 않았습니다.)
그렇다고 백신이 쓸모없다는 뜻은 아닙니다. 아래 출처들은 백신이 늦고 우회당한다고 말할 뿐, 가치가 없다고 말하지 않습니다.
1. 제가 직접 실행했다
Microsoft 위협 인텔리전스는 북한 행위자 Sapphire Sleet의 macOS 캠페인을 설명하며, 이 캠페인이 "that relies on social engineering rather than software vulnerabilities."(소프트웨어 취약점이 아니라 사회공학에 의존한다)고 말합니다.
Microsoft의 표현으로는: "By persuading users to manually execute AppleScript or Terminal‑based commands, Sapphire Sleet shifts execution into a user‑initiated context, allowing the activity to proceed outside of macOS protections such as Transparency, Consent, and Control (TCC), Gatekeeper, quarantine enforcement, and notarization checks."(사용자를 설득해 AppleScript나 터미널 기반 명령을 직접 실행하게 함으로써, Sapphire Sleet는 실행을 사용자가 시작한 맥락으로 옮기고, 그 결과 활동이 투명성, 동의 및 제어(TCC), Gatekeeper, 격리 적용, 공증 검사 같은 macOS 보호 장치 바깥에서 진행된다.)
2. 신뢰받는 도구
다시 Microsoft: "This activity demonstrates how threat actors continue to rely on user interaction and trusted system utilities to bypass macOS platform security protections, rather than exploiting traditional software vulnerabilities."(이 활동은 위협 행위자들이 전통적인 소프트웨어 취약점을 악용하기보다, 사용자 상호작용과 신뢰받는 시스템 유틸리티에 계속 의존해 macOS 플랫폼 보안 보호 장치를 우회한다는 것을 보여 준다.)
제가 본 것과 일치합니다: "These attacks come in new packaging every time and use the most ordinary tools there are, like node, curl and bash, so traditional antivirus has no reason to find them suspicious."(이런 공격은 매번 새로운 포장으로 나타나고, node, curl, bash처럼 가장 평범한 도구를 쓰기 때문에 기존 백신이 수상하게 볼 이유가 없습니다.)
3. 새것이라 시그니처가 없다
캠페인이 알려지면 시그니처는 나옵니다. Microsoft는 이렇게 적었습니다: "Apple has also deployed XProtect signatures to detect and block the malware families associated with this campaign—macOS devices receive these signature updates automatically."(Apple도 이 캠페인과 관련된 악성코드 계열을 탐지하고 차단하는 XProtect 시그니처를 배포했다. macOS 기기는 이 시그니처 업데이트를 자동으로 받는다.)
하지만 새 변종은 발견되는 시점에 놓칠 수 있습니다. SentinelOne은 2025년 초 "newly discovered samples that we have labelled 'FlexibleFerret' and which remain undetected by XProtect at the time of writing."(우리가 'FlexibleFerret'이라고 이름 붙인 새로 발견된 샘플로, 이 글을 쓰는 시점에 XProtect에 탐지되지 않는다)을 보고했습니다.
패키지를 내린다고 끝나지도 않습니다. Socket: "Since our July 14, 2025 update, we have identified and analyzed more than 338 malicious packages with over 50,000 cumulative downloads."(2025년 7월 14일 업데이트 이후, 우리는 누적 다운로드 5만 회가 넘는 악성 패키지 338개 이상을 찾아 분석했다.) 그리고: "We continue to see weekly upload bursts, rapid re-uploads after takedowns, and iterative changes to loaders and postinstall scripts."(매주 몰아서 올라오는 업로드, 삭제 후 빠른 재업로드, 로더와 postinstall 스크립트의 반복적인 변경이 계속 보인다.)
4. 훔친 세션은 2FA를 건너뛴다
Microsoft는 2022년 피싱에 관해 이렇게 썼습니다: "Once the attacker obtains the session cookie, they can inject it into their browser to skip the authentication process, even if the target's MFA is enabled."(공격자는 세션 쿠키를 손에 넣으면, 대상의 MFA가 켜져 있더라도 그 쿠키를 자기 브라우저에 주입해 인증 절차를 건너뛸 수 있다.)
FBI에 따르면 Bybit 건에서 "North Korea was responsible for the theft of approximately $1.5 billion USD in virtual assets from cryptocurrency exchange, Bybit"(북한은 암호화폐 거래소 Bybit에서 약 15억 달러 상당의 가상 자산을 탈취한 책임이 있다). The Hacker News가 인용한 Safe{Wallet}의 말: "The attack involved the compromise of a Safe{Wallet} developer's laptop ('Developer1') and the hijacking of AWS session tokens to bypass multi-factor authentication ('MFA') controls."(이 공격에는 Safe{Wallet} 개발자의 노트북('Developer1') 침해와, 다중 인증('MFA') 통제를 우회하기 위한 AWS 세션 토큰 탈취가 포함됐다.)
전문가도 당한다
FBI: "Given the scale and persistence of this malicious activity, even those well versed in cybersecurity practices can be vulnerable to North Korea's determination to compromise networks connected to cryptocurrency assets."(이 악성 활동의 규모와 끈질김을 고려하면, 사이버 보안 관행에 정통한 사람조차 암호화폐 자산과 연결된 네트워크를 침해하려는 북한의 집요함에 취약할 수 있다.)
대책
- 코드가 처음 실행되기 전에 무엇을 하는지 확인하기. 이름이 아니라 동작을 보세요. 두 번의 일을 겪고 제가 얻은 교훈입니다.
- 모든 설치는 코드다. Socket: "Treat every
npm installas code execution and block risky behavior before it reaches developer machines or pipelines."(모든npm install을 코드 실행으로 취급하고, 위험한 동작이 개발자 기기나 파이프라인에 닿기 전에 차단하라.) - 모르는 사람의 명령어는 절대 붙여 넣지 않기. Microsoft의 권고: "Educate users about social engineering threats originating from social media and external platforms, particularly unsolicited outreach requesting software downloads, virtual meeting tool installations, or execution of terminal commands."(소셜 미디어와 외부 플랫폼에서 시작되는 사회공학 위협, 특히 소프트웨어 다운로드, 화상 회의 도구 설치, 터미널 명령 실행을 요청하는 원치 않는 연락에 대해 사용자를 교육하라.)
두 번의 일을 겪은 뒤 저는 Tsuba를 만들었습니다. 아이디어 하나에서 출발한 무료 Mac 앱입니다: "before unfamiliar code runs for the first time, it takes a look for you."(낯선 코드가 처음 실행되기 전에 대신 한번 살펴봅니다.)
출처
- Oliver Zhang, 가짜 Upwork 일자리 두 번, 감염된 Mac 한 대, 2026년 10월 28일
- Microsoft Threat Intelligence, Dissecting Sapphire Sleet's macOS intrusion from lure to compromise, 2026년 4월 16일
- SentinelOne, macOS FlexibleFerret: Further Variants of DPRK Malware Family Unearthed, 2025년 9월 2일 업데이트
- Socket, North Korea's Contagious Interview Campaign Escalates: 338 Malicious npm Packages, 50,000 Downloads, 2025년 10월 10일
- Microsoft, From cookie theft to BEC: Attackers use AiTM phishing sites as entry point to further financial fraud, 2022년 7월 12일
- The Hacker News, Safe{Wallet} Confirms North Korean TraderTraitor Hackers Stole $1.5 Billion in Bybit Heist, 2025년 3월 7일
- FBI, PSA 250226(Bybit), 2025년 2월 26일
- FBI, PSA 240903: North Korea Aggressively Targeting Crypto Industry with Well-Disguised Social Engineering Attacks, 2024년 9월 3일
영상은 코드로 애니메이션을 만들었고, 대본은 AI의 도움을 받아 썼습니다. 위의 모든 인용은 출처와 대조해 확인했습니다. 설명을 위한 연출: "위협 없음" 방패, 옆으로 열리는 관문, 스캐너와 그 X선 화면, 시그니처 타임라인, 세션 쿠키. 이 글은 위험과 대책을 설명할 뿐, 악성코드가 어떻게 작동하는지 설명하지 않습니다. 영상은 영어로 되어 있습니다. 영상은 Shotloop으로 만들었습니다. 코드로 설명 영상을 만들고 한 샷씩 고칠 수 있는 제가 만든 무료 Mac 앱입니다.
