Na semana passada, pesquisadores da ESET notaram que Eltima, fabricante do reprodutor Emedia Player, estava distribuindo uma versão de aplicativo que estava trojanizado com o malware OSX/Proton, disponível para ser baixado através do site oficial.

A ESET imediatamente entrou em contato com a empresa Eltima, que foi bastante receptiva e manteve uma excelente comunicação durante toda a pesquisa sobre o incidente.

Esta é a linha do tempo sobre o ocorrido:

19/10/2017: Confirmação de um pacote trojanizado

19/10/2017, 11:35 GMT-3: A empresa Eltima é informada sobre o caso por email

19/10/2017, 15:25 GMT-3: Eltima reconhece o problema e inicia ações para resolver a situação

19/10/2017, 16:10 GMT-3: Eltima confirma que excluiu a ameaça de sua infraestrutura e que já está oferecendo o aplicativo legítimo novamente

Observação: Ainda estamos pesquisando, por isso estas informações são preliminares e iremos atualizar este post após as novas descobertas.

Como posso saber se fui afetado?

Todas as pessoas que baixaram o software Elmedia Player recentemente devem verificar se o sistema está comprometido, buscando rastros de qualquer um destes arquivos ou unidades:

  • /tmp/Updater.app/
  • /Library/LaunchAgents/com.Eltima.UpdaterAgent.plist
  • /Library/.rand/
  • /Library/.rand/updateragent.app/

Se algum deles estiver presente no equipamento, significa que a versão trojanizada do Elmedia Player foi executada e que o OSX/Proton provavelmente está ativo.

Se você baixou este software no último dia 19 de outubro antes das 16h15 (GMT-3) e o executou, provavelmente esteja infectado. No entanto, até onde sabemos, apenas a versão baixada do site oficial contém o aplicativo alterado - o mecanismo de atualização integrado não parece ter sido afetado.

O que esta ameaça faz no sistema comprometido?

O OSX/Proton é um backdoor com amplas capacidades de roubo de dados. Por isso, além de obter persistência no sistema, também consegue roubar:

  • Detalhes do sistema operacional: número de série do hardware (IOPlatformSerialNumber), nome completo do usuário atual, nome do host, estado da funcionalidade System Integrity Protection (csrutil status), informação do gateway (route -n get default | awk '/gateway/ { print $2 }'), hora e fuso horário atual.
  • Informações do navegador obtidas por meio do Chrome, Safari, Opera e Firefox: histórico, cookies, marcadores, credenciais, etc.
  • Carteiras de criptomoedas:
    • Electrum: ~/.electrum/wallets
    • Bitcoin Core: ~/Library/Application Support/Bitcoin/wallet.dat
    • Armory: ~/Library/Application Support/Armory
  • Informações privadas do SSH (todo o conteúdo .ssh)
  • Informações do keychain do macOS usando uma versão modificada do chainbreaker
  • Configuração da VPN Tunnelblick (~/Library/Application Support/Tunnelblick/Configurations)
  • Informações do GnuPG (~/.gnupg)
  • Informações do 1Password (~/Library/Application Support/1Password 4 y ~/Library/Application Support/1Password 3.9)
  • Lista de todos os aplicativos instalados

Como posso limpar o meu sistema?

Como acontece sempre que a infecção ocorre em uma conta de administrador, uma reinstalação completa do sistema operacional é a única forma de se livrar deste malware. Quem se depara com a infecção deve reconhecer que toda a informação listada na seção anterior foi comprometida e está nas mãos do cibercriminoso. Portanto, é importante tomar todas as medidas necessárias para invalidar o incidente.

Outro ataques a cadeia de suprimentos no macOS

No ano passado, o cliente do BitTorrent para macOS Transmission foi explorado duas vezes para propagar malware: primeiro foi o ransomware OSX/KeRanger e, em seguida, o ladrão de senha OSX/Keydnap. Neste ano, o aplicativo Handbrake, um popular transcoder multiplataforma, foi substituído no servidor original por uma versão que incluía o malware OSX/Proton.

Na semana passada, a ESET descobriu que o Elmedia Player era o novo integrante da lista de software popular entre os usuários do macOS que estava sendo usado para propagar o OSX/Proton. Este reprodutor atingiu a marca de um milhão de usuários em agosto:

 <blockquote class= " width="613" height="692" />

Fuente: " target="_blank" rel="noopener">Twitter de Elmedia Player

Análise técnica

O OSX/Proton é um RAT comercializado como um kit em fóruns underground. A empresa Sixgill já o havia registrado anteriormente e, em seguida, foi analisado com mais profundidade por Thomas Reed do MalwareBytes, Amit Serper do CyberReason e Patrick Wardle do Objective-See.

Neste novo caso do software trojanizado da Eltima, o cibercriminoso construiu uma embalagem (wrapper) assinada em torno da versão legítima do Elmedia Player e do Proton. De fato, observamos o que parece ser a reembalagem e a assinatura em tempo real das embalagens, tudo com o mesmo ID de desenvolvedor da Apple válido.

A Eltima e a ESET estão trabalhando com a Apple para invalidar a ID do desenvolvedor utilizada para assinar o aplicativo malicioso - a Apple revogou o certificado. Veja o histórico de amostras atualmente conhecidas a seguir (as marcas de tempo estão todas no fuso horário EDT):

Aplicativo limpo:

Timestamp ID do desenvolvedor SHA-1 (arquivo dmg)
Timestamp=Oct 19, 2017, 8:00:05 AM Authority=Developer ID Application: Clifton Grimm (9H35WM5TA5) e9dcdae1406ab1132dc9d507fd63503e5c4d41d9
Timestamp=Oct 19, 2017, 12:22:24 PM Authority=Developer ID Application: Clifton Grimm (9H35WM5TA5) 8cfa551d15320f0157ece3bdf30b1c62765a93a5
Timestamp=Oct 19, 2017, 2:00:38 PM Authority=Developer ID Application: Clifton Grimm (9H35WM5TA5) 0400b35d703d872adc64aa7ef914a260903998ca

Aplicativo trojanizado:

archive Arquivar usando zip
copy Copiar arquivo localmente
create Criar diretório do arquivo localmente
delete Apagar arquivo localmente
download Baixar arquivo através de uma URL
file_search Buscar arquivos (executa find / -iname \"%@\" 2> /dev/null)
force_update Auto-atualização com validação de assinatura digital
phonehome
remote_execute Executar o arquivo binário dentro de um arquivo .zip ou um comando do shell
tunnel Criar túnel SSH usando a porta 22 ou 5900
upload Carregar arquivo para o servidor do C&C

Inicialmente, o wrapper executa o verdadeiro Elmedia Player, armazenado na pasta Resources do aplicativo:

Por último, extrai e executa o OSX/Proton:

Como vimos em casos anteriores, o OSX/Proton apresenta uma janela falsa de autorização para obter os privilégios de root:

Persistência

O OSX/Proton se torna persistente através da inclusão de um agente responsável por executá-lo em todos os usuários do sistema quando o administrador insere as senhas. Além disso, cria os seguintes arquivos:

  • /Library/LaunchAgents/com.Eltima.UpdaterAgent.plist
  • /Library/.rand/updateragent.app
$ plutil -p /Library/LaunchAgents/com.Eltima.UpdaterAgent.plist

{

  "ProgramArguments" => [

    0 => "/Library/.rand/updateragent.app/Contents/MacOS/updateragent"

  ]

  "KeepAlive" => 1

  "RunAtLoad" => 1

  "Label" => "com.Eltima.UpdaterAgent"

}

Comandos do backdoor

Como mencionamos anteriormente, o OSX/Proton é um backdoor com muitas capacidades para roubar informações. O componente que observamos interpreta os seguintes comandos:

Domínio legítimo Domínio do C2 do Proton
Eltima eltima.com eltima[.]in
Handbrake handbrake.fr handbrakestore[.]com
handbrake[.]cc

Servidor do C&C

O Proton usa um domínio do C&C que se passa pelo domínio legítimo da Eltima, o mesmo que ocorreu no caso do Handbrake:

/Applications/Elmedia Player.app/Contents/Resources/.pl.zip 9E5378165BB20E9A7F74A7FCC73B528F7B231A75 multiple threats ZIP archive with the Proton malware + python scripts
/Applications/Elmedia Player.app/Contents/MacOS/Elmedia Player C9472D791C076A10DCE5FF0D3AB6E7706524B741 OSX/Proton.D trojan The launcher (or wrapper),
/tmp/Updater.app/Contents/MacOS/Updater 3EF34E2581937BABD2B7CE63AB1D92CD9440181A OSX/Proton.C trojan Proton malware, not signed
Elmedia Player.app 30d77908ac9d37c4c14d32ea3e0b8df4c7e75464 OSX/Proton.D Wrapper, Signed
Elmedia Player.app e9dcdae1406ab1132dc9d507fd63503e5c4d41d9 OSX/Proton.D Wrapper,Signed

IOCs

A URL que distribuía o aplicativo trojanizado no momento da nossa descoberta era: hxxps://mac[.]eltima[.]com/download/elmediaplayer.dmg

Servidores do C&C:

eltima[.]in / 5.196.42.123 (domínio registado em 15/10/2017).

Hashes

Rota SHA-1 Detecção da ESET Descrição
Elmedia Player.app/Contents/Resources/.pl.zip 9E5378165BB20E9A7F74A7FCC73B528F7B231A75 Diversas ameaças Arquivo ZIP com o malware Proton e scripts em Python
10A09C09FD5DD76202E308718A357ABC7DE291B5 Diversas ameaças Arquivo ZIP com o malware Proton e scripts no Python
Elmedia Player.app/Contents/MacOS/Elmedia Player C9472D791C076A10DCE5FF0D3AB6E7706524B741 OSX/Proton.D Launcher (ou empacotador)
795B8BCADCAAF56DAC7CFDDF44F97A32AAAA4987 OSX/Proton.D Launcher (ou empacotador)
30D77908AC9D37C4C14D32EA3E0B8DF4C7E75464 OSX/Proton.D Launcher (ou empacotador)
Updater.app/Contents/MacOS/Updater 3EF34E2581937BABD2B7CE63AB1D92CD9440181A OSX/Proton.C Malware Proton, sem assinatura
EF5A11A1BB5B2423554309688AA7947F4AFA5388 OSX/Proton.C Malware Proton, sem assinatura

Um reconhecimento especial para Michal Malik, Anton Cherepanov, Marc-Étienne M. Léveillé, Thomas Dupuy e Alexis Dorais-Joncas pelo trabalho realizado na pesquisa.