NimDoor 악성코드
사이버 보안 전문가들이 NimDoor라는 새롭고 은밀한 macOS 악성코드군을 발견했습니다. NimDoor는 고도화된 지속성 기술, 은밀한 데이터 유출 메커니즘, 그리고 정교한 회피 기능으로 심각한 위협을 초래합니다. 이 악성 캠페인은 웹 3.0과 암호화폐 분야를 표적으로 삼는 북한 연계 위협 세력의 소행으로 추정됩니다.
목차
북한 해커들, Nim과 macOS로 전환
북한과 연계된 것으로 의심되는 위협 행위자들이 이제 악성코드에 Nim 프로그래밍 언어를 활용하고 있습니다. 이는 그들의 툴킷이 지속적으로 진화하고 있음을 보여주는데, 이전 공격에서는 Go나 Rust와 같은 언어를 사용했습니다. Nim의 새로운 활용은 특히 탐지 및 분석이 어려운 크로스 플랫폼 위협을 구축하는 데 있어 혁신을 이루고자 하는 의지를 보여줍니다.
이 캠페인에서 공격자는 특히 Web3와 암호화폐 중심 조직을 노리고 있으며, 디지털 금융 인프라를 방해하거나 침투하는 데 관심이 있는 금전적 동기의 작전을 수행하고 있는 것으로 보입니다.
매우 특이한 macOS 기술
NimDoor가 특히 우려스러운 점은 macOS 감염에 대한 독특한 접근 방식입니다. 특히 다음과 같은 특징이 있습니다.
- 프로세스 주입은 macOS 맬웨어에 사용되는 희귀한 기술로, 합법적인 프로세스를 하이재킹하고 조작할 수 있는 위협을 허용합니다.
- 암호화된 C2 상호작용을 위한 WSS(WebSocket Secure) 통신 채널.
- SIGINT 및 SIGTERM 신호 핸들러를 활용하는 새로운 지속성 방법으로, 맬웨어가 종료되거나 시스템이 재부팅될 때 스스로를 다시 설치할 수 있습니다.
이러한 기능을 통해 눈에 띄지 않게 행동하고 일반 사용자나 시스템에서 발생하는 중단에 대해 회복력을 유지할 수 있습니다.
사회 공학을 이용한 공격 체인
공격은 사회 공학 전략으로 시작됩니다.
- 피해자들은 Telegram과 같은 플랫폼을 통해 연락을 받고 Calendly를 사용하여 Zoom 회의 일정을 잡도록 유도됩니다.
- 이들은 화상회의 소프트웨어와의 호환성을 보장한다는 명목으로 Zoom SDK 업데이트 스크립트가 담긴 가짜 이메일을 받습니다.
이로 인해 악성 AppleScript가 실행되어, 사용자를 합법적인 Zoom 링크로 리디렉션하는 동시에 원격 서버에서 2단계 스크립트를 다운로드합니다. 2단계 스크립트는 다음 내용이 포함된 ZIP 파일을 추출합니다.
- 지속성을 확립하기 위한 바이너리
- 시스템 데이터를 훔치기 위한 Bash 스크립트
InjectWithDyldArm64의 역할
감염 프로세스의 핵심은 InjectWithDyldArm64 또는 간단히 InjectWithDyld라고 하는 C++ 로더입니다. 이 구성 요소는 악성코드를 효과적이고 은밀하게 배포하는 데 필수적입니다. 먼저 'Target'과 'trojan1_arm64'라는 이름의 두 개의 내장 바이너리를 복호화합니다. 복호화 후, Target 프로세스를 일시 중지 상태로 실행합니다. 프로세스가 일시 중지된 상태에서 로더는 trojan1_arm64 바이너리를 삽입한 후 실행을 재개합니다. 이 방법을 통해 악성 페이로드가 매우 은밀하게 전달되고 활성화되어 표준 시스템 방어 체계를 우회하고 탐지 가능성을 최소화합니다.
자격 증명 도용 및 시스템 감시
악성코드는 활성화되면 원격 명령제어(C2) 서버와 연결하여 여러 가지 악성 작업을 수행할 수 있습니다. 여기에는 자세한 시스템 정보 수집, 원격으로 실행된 임의 명령 실행, 여러 디렉터리 탐색, 그리고 이러한 작업의 결과를 공격자에게 전송하는 것이 포함됩니다.
위협은 trojan1_arm64 구성 요소의 개입으로 더욱 심화되는데, 이 구성 요소는 C2 인프라에서 두 개의 페이로드를 추가로 수집하여 공격을 강화합니다. 이 페이로드는 민감한 정보를 수집하기 위해 특별히 제작되었습니다. 주요 목표는 Arc, Brave, Chrome, Edge, Firefox 등 널리 사용되는 웹 브라우저에 저장된 로그인 자격 증명과 Telegram 메시징 애플리케이션의 사용자 데이터입니다.
지속성 메커니즘
이 악성코드는 주요 구성 요소 외에도 Nim 기반 실행 파일을 배포하여 CoreKitAgent라는 모듈을 활성화합니다. 이 모듈은 악성코드의 작동을 종료하려는 모든 시도를 모니터링하여 악성코드의 복원력을 보장하는 데 중요한 역할을 합니다. 악성코드는 존재를 유지하기 위해 SIGINT 및 SIGTERM에 대한 사용자 지정 신호 처리기를 설치하여 사용자 또는 보안 도구가 악성코드를 종료하려고 할 경우 자동으로 재시작되도록 합니다. 이러한 기본 제공 메커니즘은 악성코드의 지속성을 크게 강화합니다.
공격자는 AppleScript를 광범위하게 사용하여 초기 감염 단계뿐만 아니라 악성코드 작동 전반에 걸쳐 지속적인 모니터링 및 제어를 수행합니다. 이러한 스크립팅 기능을 통해 악성코드는 30초마다 하드코딩된 C2 서버로 주기적인 비콘을 전송하고, 현재 실행 중인 프로세스에 대한 세부 정보를 유출하며, 원격 공격자가 내린 새로운 명령을 실행합니다.
Nim이 맬웨어를 더 위험하게 만드는 이유
Nim 프로그래밍 언어를 사용하면 공격자에게 상당한 이점을 제공합니다. Nim은 컴파일 타임에 함수를 실행할 수 있으므로 다음과 같은 작업을 수행할 수 있습니다.
- 감지하기 어려운 복잡한 논리를 내장합니다.
- 바이너리 내에서 제어 흐름을 난독화합니다.
- 개발자 코드와 런타임 코드를 섞어서 분석이 훨씬 더 어려워졌습니다.
이로 인해 기존 맬웨어 감지 엔진에 대한 가시성이 낮아지고 컴팩트하고 고성능 바이너리가 생성됩니다.
NimDoor는 macOS가 더 이상 지능형 지속 위협으로부터 자유롭지 않다는 사실을 여실히 보여줍니다. 북한 해커들이 진화하는 기술과 덜 알려진 프로그래밍 언어를 사용하여 macOS 플랫폼을 공격하고 있는 지금, 최신 정보를 파악하고 경계하는 것이 그 어느 때보다 중요합니다.