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:
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.