Investigadores da Jamf Threat Labs identificaram um novo infostealer para macOS batizado de PamStealer, que se distribui como uma versão falsa do Maccy — um popular gestor de área de transferência de código aberto — e combina várias técnicas de evasão pouco comuns na família de malware direcionado para Mac. O detalhe que lhe dá o nome é a forma como captura a password de sistema: ao contrário da maioria dos stealers, o PamStealer valida localmente a credencial antes de a exfiltrar, usando o módulo de autenticação nativo do macOS.
Um ataque em duas fases distribuído por um site falso
O ponto de entrada é um website fraudulento — maccyapp[.]com — concebido para imitar a aparência do site oficial do Maccy (maccy.app). Quem descarrega o ficheiro recebe uma imagem de disco que contém um AppleScript compilado (Maccy.scpt). Ao contrário de outros droppers baseados em AppleScript que invocam ferramentas de sistema como curl ou zsh, este primeiro estágio utiliza APIs nativas Objective-C — nomeadamente NSURLSession — para obter e preparar o segundo estágio, produzindo menos artefactos de processo visíveis para as ferramentas de deteção.
A execução do AppleScript no Script Editor do macOS exige que o utilizador pressione ⌘ + R ou clique em “Executar”. O código malicioso está escondido abaixo de um grande bloco de linhas vazias, fora do campo de visão imediato. Relevante: esta abordagem funciona mesmo que o ficheiro ainda carregue o atributo de quarentena com.apple.quarantine, tornando o Gatekeeper ineficaz como barreira.
O segundo estágio é um binário Mach-O escrito em Rust, compilado exclusivamente para arquitetura arm64 (Apple Silicon). Antes de avançar, o dropper da primeira fase gera uma chave de desencriptação derivada de um perfil do dispositivo — arquitetura do CPU, locale do sistema, disposição do teclado e fuso horário. Em Macs com CPU Intel, esta chave é diferente e a desencriptação falha, encerrando a execução. O mesmo mecanismo bloqueia a execução em sistemas cujo locale ou layout de teclado corresponda a países da Europa de Leste, incluindo Rússia, Bielorrússia, Cazaquistão e vários outros, apontando para uma seleção deliberada de alvos.
O que distingue o PamStealer: validação de password via PAM
O comportamento que dá nome ao malware é a forma como captura e verifica a password de login. Durante a execução, o PamStealer apresenta ao utilizador uma janela de diálogo nativa que imita um pedido de autorização do sistema — com o título “Maccy wants to make changes. Enter your password to allow this” e o nome da conta pré-preenchido. Após o utilizador introduzir a credencial, o malware verifica-a localmente através das APIs PAM do macOS (pam_start, pam_authenticate, pam_end). Se a password estiver incorreta, a janela reaparece em loop até ser fornecida a credencial válida.
Esta abordagem é invulgar: a grande maioria dos stealers para Mac simplesmente regista o que o utilizador escrever, sem confirmar se é correto. Ao validar localmente via PAM — sem invocar ferramentas externas como dscl, security ou osascript — o PamStealer mantém um perfil de atividade mais silencioso e garante que apenas passwords corretas são exfiltradas. Um detalhe adicional de evasão: o texto de engodo usa homóglifos (caracteres gregos e cirílicos visualmente idênticos aos latinos) na palavra “Maccy”, frustrando correspondências simples de strings por parte de ferramentas de análise.
Após capturar a password, o malware exibe uma mensagem de distração que imita o aviso real do Gatekeeper — “Maccy is damaged and can’t be opened. You should move it to the Trash” — levando o utilizador a crer que o ficheiro estava corrompido e a descartar o incidente.
Dados visados e mecanismos de persistência
O segundo estágio em Rust, ao executar, procede à recolha de um espectro alargado de dados:
- Cookies, histórico de navegação, credenciais guardadas e bases de dados SQLite dos browsers;
- Extensões de carteiras de criptomoedas;
- Conteúdo do iCloud Keychain;
- Conteúdo atual da área de transferência.
A informação recolhida é encriptada antes de ser enviada para a infraestrutura de comando e controlo do atacante (avenger-sync[.]live) via HTTP de saída. Para além do roubo de dados, o segundo estágio solicita ao utilizador a atribuição de Acesso Total ao Disco, fazendo-se passar pelo Finder — mas atrasa este pedido até 40 minutos após o lançamento, de forma a não coincidir com a janela de lançamento onde a atividade é mais scrutinada. A persistência é assegurada através de dois mecanismos, um moderno e um legado, que garantem o relançamento automático após cada início de sessão do utilizador.
Como se proteger
O desenvolvedor do Maccy, Alex Rodionov, adicionou um aviso no site oficial e no repositório GitHub: maccy.app é o único site oficial. Os domínios maccyapp[.]net e maccyapp[.]com são fraudulentos e distribuem malware. As medidas de proteção recomendadas são:
- Verificar sempre o URL antes de descarregar qualquer aplicação — uma letra ou sufixo diferente pode ser o sinal de um site de imitação;
- Preferir a Mac App Store ou os repositórios GitHub oficiais dos projetos de código aberto;
- Nunca aprovar prompts de password inesperados que apareçam durante a instalação de software descarregado fora das fontes habituais;
- Considerar uma solução de segurança endpoint dedicada para macOS, como complemento ao XProtect nativo da Apple.
Porque é que isto importa
O PamStealer é mais um sinal de que o ecossistema de ameaças para macOS está a amadurecer rapidamente. O recurso a Rust — ainda pouco comum neste tipo de malware, onde predominam Swift, Go e Objective-C — dificulta a engenharia inversa, uma vez que muitas cadeias e caminhos de execução só ficam visíveis em tempo de execução. A combinação de AppleScript, JXA, Rust e PAM numa única cadeia de ataque, capaz de contornar o Gatekeeper sem explorar vulnerabilidades, representa uma evolução técnica relevante.
Para utilizadores empresariais e profissionais em Portugal que utilizam Macs — cada vez mais comuns em ambientes corporativos — este tipo de ameaça reforça a necessidade de politicas de gestão de software, controlo de fontes de instalação e monitorização de endpoints, independentemente do sistema operativo.
Indicadores de comprometimento (IoC)
A Jamf Threat Labs disponibilizou publicamente os seguintes indicadores para uso por equipas de segurança e ferramentas de deteção:
- Domínios de distribuição (fraudulentos):
maccyapp[.]com,maccyapp[.]net - Servidor de comando e controlo (C2):
avenger-sync[.]live - Ficheiro lure:
Maccy.scptdentro de uma imagem de disco (.dmg) - Ficheiro marcador de infeção:
.Maccy(ficheiro oculto depositado junto ao bundle) - Disfarces do segundo estágio: Finder, System Settings (macOS)
- Arquitectura alvo: arm64 exclusivamente (Apple Silicon); falha silenciosamente em Intel
- Regiões excluídas pelo malware: Rússia, Bielorrússia, Cazaquistão, Arménia, Azerbaijão, Quirguistão, Moldávia, Tajiquistão, Usbequistão, Turquemenistão, Geórgia
Recomendações para equipas de segurança e gestores de TI
Para organizações com frotas de Mac geridas, a Jamf e outros especialistas recomendam as seguintes medidas adicionais às boas práticas gerais já referidas:
- Bloquear os domínios IoC acima nas soluções de filtragem DNS/proxy da organização;
- Restringir a instalação de software a fontes aprovadas (App Store gerida ou repositório interno) por política MDM — em particular, impedir a execução de ficheiros
.scpte.dmgde fontes não verificadas; - Monitorizar pedidos de Full Disk Access iniciados por processos não reconhecidos — o PamStealer atrasa este pedido até 40 minutos, pelo que alertas com delay são igualmente relevantes;
- Auditar as Login Items dos endpoints macOS para detetar entradas de persistência anómalas criadas por binários a fazer-se passar por processos de sistema;
- Considerar soluções EDR com cobertura macOS que inspecionem comportamento em runtime, dado que o payload Rust resolve strings e caminhos de execução em memória, escapando a análise estática.
Esta informação tem caráter noticioso e baseia-se em dados divulgados publicamente pela Jamf Threat Labs.
