
연구원들은 일련의 영리한 기술을 결합하여 은밀하게 맞춤 개발된 자격 증명 도용 코드로 Mac을 감염시키는 이전에 볼 수 없었던 macOS 악성 코드를 발견했습니다.
악성코드는 두 단계로 전달됩니다. 첫 번째는 Mac용 클립보드 관리자인 Maccy로 가장하는 디스크 이미지로 배포됩니다. 두 번째 단계를 전달하는 방식으로 주목할만한 AppleScript로 컴파일되었습니다. Rust로 작성된 infostealer는 macOS에 내장된 플러그형 인증 모듈 인터페이스를 사용하여 공격자가 제어하는 서버로 보내기 전에 대상의 로그인 비밀번호를 검증하기 때문에 이 악성 코드의 이름은 PamStealer입니다.
더 조용한 실행 체인
Mac용 악성 코드에서는 디스크 이미지와 AppleScript를 모두 사용하는 것이 일반적입니다. 더 특이한 점은 PamStealer가 이들을 결합하여 스텔스를 얻는 방식입니다. AppleScript를 두 번 클릭하면 악성 기능이 파일 내에 깊이 묻혀 있는 macOS 스크립트 편집기에서 열립니다.
macOS 사용자를 위한 보안 회사인 Jamf의 연구원은 “AppleScript는 컬이나 zsh와 같은 셸 명령에 의존하는 대신 기본 Objective-C API를 사용하여 페이로드를 검색하고 준비하는 자체 포함된 JXA(JavaScript for Automation) 다운로더를 실행합니다.”라고 썼습니다. “PAM을 통해 로컬에서 자격 증명을 검증하는 Rust 기반 두 번째 단계와 비밀번호 캡처 워크플로가 결합되어 결과적으로 상용 macOS 스틸러에서 일반적으로 관찰되는 것보다 더 조용한 실행 체인이 탄생했습니다.”
신뢰할 수 있는 클립보드 관리자를 설치하려는 사용자가 디스크 이미지를 발견하면 이를 두 번 클릭한 후 즉시 Command-R을 누르라는 메시지가 표시됩니다. 이 명령은 AppleScript 내부의 악성 코드를 직접 실행합니다. 또한 인터넷에서 실행 파일을 다운로드할 때 경고 및 제한 사항을 제공하는 macOS 속성인 com.apple.quarantine을 우회하여 실행할 수 있습니다.
Jamf는 다음과 같이 설명했습니다.
PamStealer는 최근에 등장한 전달 표면과 덜 친숙한 페이로드를 결합합니다. 클릭 가능한 .scpt 및 스크립트 편집기는 이미 macOS 위협 환경에서 채택되고 있는 기술을 기반으로 구축되었지만, 악성 코드는 자체 포함된 JXA 드로퍼, Rust 기반 2단계 및 자격 증명을 수집하기 전에 PAM을 통해 로컬에서 검증하는 암호 캡처 워크플로를 통해 차별화됩니다. 두 번째 단계에서는 Finder로 가장하여 명령 및 제어 트래픽을 암호화하고 전체 디스크 액세스 요청과 같은 프롬프트를 최대 40분 동안 보류하여 활동이 실행과 일치하지 않도록 숨기는 데 상당한 노력을 기울입니다. 이러한 동작은 상용 macOS 스틸러가 표준 macOS 기능과의 호환성을 유지하면서 기존 탐지 기회를 줄이는 더 조용한 실행 체인과 기본 구현을 채택하여 어떻게 계속 진화하는지 보여줍니다.
첫 번째 단계에서는 macOS에 내장된 실제 구성 요소를 가장하는 앱 번들 내부에 페이로드를 넣습니다. 구성 요소는 악성 코드의 샘플에서 샘플로 변경됩니다. com.apple.finder.core 또는 com.apple.finder.monitor 아래의 Finder.app과 com.apple.security.daemon 아래의 Software Update.app이 두 가지 예입니다. 두 경우 모두 숨겨진 상태로 실행됩니다. 또한 macOS의 정품 Finder.icns를 아이콘으로 표시합니다.
관련 정보는 아래 링크에서 확인하세요