A criação do “hack” FOCUS 11 para Apple iPad
Transcrição
A criação do “hack” FOCUS 11 para Apple iPad
White paper A criação do “hack” FOCUS 11 para Apple iPad Por Gabriel Acevedo e Michael Price McAfee® Labs™ Sumário Motivação 3 Pesquisa 4 A vulnerabilidade de implementação de iOS SSL 4 A vulnerabilidade “JailbreakMe” 5 O “hack” Hardware 5 Software e ferramentas 6 Cenário 7 Ataque 8 Resultados 2 5 10 Conclusões 11 Agradecimentos 12 Sobre os autores 12 A criação do “hack” FOCUS 11 para Apple iPad Em outubro do ano passado, a McAfee realizou sua conferência FOCUS 2011. O McAfee Labs ofereceu aos clientes várias palestras sobre malware e outras ameaças, bem como sobre uma variedade de tópicos de segurança. Um dos eventos mais populares foi a palestra “Hacking Exposed”, que reuniu mais de 2.000 pessoas. A maioria dos presentes desligou seus laptops, telefones, Apple iPads e outros dispositivos quando Stuart McClure, CTO da McAfee, anunciou que sua equipe faria “hacks” ao vivo durante a sessão. Observamos muita agitação no Twitter e em outras redes sociais, em antecipação ao “hack” que todos na conferência estavam comentando. Alguns céticos afirmaram que não seria uma demonstração ao vivo, mas momentos após o início, as pessoas confirmaram que o hotspot Wi-Fi falso da FOCUS estava mesmo no ar. Apontamos nossa câmera de TV para a tela de nosso iPad de demonstração, que em breve seria “hackeado”, para que os presentes pudessem acompanhar. Enquanto McClure carregava o Gmail através de uma conexão SSL (Secure Sockets Layer), podíamos ver o esquema URI HTTPS e o ícone de cadeado no Safari. Por trás dos panos, uma exploração era carregada e instalava um servidor SSH (Secure Shell). Alguns segundos depois, a plateia aplaudia entusiasmada enquanto a tela do iPad aparecia em nosso cliente de controle remoto VNC. O iPad foi comprometido. Tivemos acesso root através do Terminal e também acesso gráfico através do VNC, o que nos permitiu ver o que McClure estava fazendo e interagir com o seu dispositivo. Um usuário típico de iPad, nessa situação, não teria a menor ideia de que tínhamos um controle tão amplo do sistema. A vítima não estava visitando um site malicioso, mas simplesmente verificando seu e-mail através de uma conexão segura. Como esse “hack” foi possível? Neste relatório responderemos essa pergunta, além de explicar nossa pesquisa, os problemas que enfrentamos e as ferramentas que criamos. (Nós explicamos as técnicas que utilizamos neste relatório somente para fins educativos e para conscientização quanto aos fatos e princípios de segurança envolvidos com essas técnicas. A McAfee não utiliza e não apoia o uso dessas técnicas para violar as leis aplicáveis ou os limites do comportamento ético.) Motivação Em julho de 2011, uma vulnerabilidade em um erro básico de validação de restrição na cadeia de validação de certificados iOS SSL foi descoberta pelo SpiderLabs da TrustWave.1 Seus pesquisadores descobriram que era possível gerar um certificado falso utilizando um outro certificado que, embora válido, não poderia ser utilizado para gerar certificados para outros sites. No entanto, o SpiderLabs não deu muitos detalhes. O quão complicado foi reproduzir a vulnerabilidade? Que usos os invasores poderiam fazer dessa vulnerabilidade, além de “farejar” dados supostamente privados? Já faz algum tempo que as vulnerabilidades utilizadas por jailbreakme.com (conhecido coletivamente como JailbreakMe ou JBME) foram divulgadas. Até agora, o único uso público que vimos para elas restringiu-se ao jailbreakme.com. O “jailbreaking” de um dispositivo Apple (ou seja, “abri-lo”) é desejável para muitas pessoas. No entanto, o que muitas pessoas podem não perceber é que a técnica JBME explora vulnerabilidades para obter controle sobre o dispositivo e, como muitas outras vulnerabilidades, esses pontos fracos podem ser utilizados para fins maliciosos. O que aconteceria se combinássemos essas duas vulnerabilidades? É possível utilizá-las em um ataque sofisticado, discreto e eficaz? Observe que a vulnerabilidade SSL não era necessária para realizar o “hack”, mas queríamos provar que mesmo quando as vítimas pensam que é seguro, ainda é possível comprometer o dispositivo. Portanto, nossa ideia era explorar o sistema enquanto a vítima visitava um site de banco, verificava seu e-mail ou fazia um pagamento on-line — tudo através de uma conexão SSL. Ambas essas vulnerabilidades tinham sido corrigidas em versões recentes do iOS da Apple. No entanto, muitos usuários não tinham feito a atualização por vários motivos — desde simples desconhecimento até o fato de que queriam “abrir” seus dispositivos e instalar aplicativos não disponíveis na Apple App Store. Quantos desses usuários ainda estão vulneráveis? Acabamos de fazer várias indagações. Nas seções a seguir, vamos respondê-las. A criação do “hack” FOCUS 11 para Apple iPad 3 Pesquisa A vulnerabilidade de implementação de iOS SSL Em julho de 2011, Paul Kehrer e Gregor Kopf divulgaram uma vulnerabilidade de erro de validação de entrada (CVE-2011-0228) no Apple iOS. O sistema operacional móvel falhou ao validar a cadeia de certificados X.509, possibilitando que um invasor capturasse ou modificasse dados protegidos por SSL/TLS e realizasse ataques de interceptação MITM (“man in the middle”). A vulnerabilidade afetou as versões 4.3.4 e anteriores do iOS para dispositivos de rede GSM e as versões 4.2.9 e anteriores para dispositivos de rede CDMA. Os pesquisadores notificaram a Apple, que lançou as atualizações de segurança HT4824 e HT4825 para dispositivos CDMA.2,3 Posteriormente, durante a DEFCON 19, Kehrer revelou mais detalhes, acrescentando que o iOS ignorava a extensão de restrições básicas X.509 v3.4 Certificados emitidos para entidades root e intermediárias precisam incluir a extensão de restrições básicas com o campo CA definido como TRUE (verdadeiro).5 Por exemplo: Extensões X509v3: 1.3.6.1.4.1.311.20.2: ...C.A Uso de chaves X509v3: Assinatura digital, Assinatura de certificado, Assinatura CRL Restrições básicas X509v3: crítico CA:TRUE No entanto, para certificados de usuário, o parâmetro CA podia ser definido como FALSE (falso). Por exemplo: Extensões X509v3: Restrições básicas X509v3: CA:FALSE A falha nessas versões do iOS permite que um invasor utilize um certificado não CA (CA:FALSE) legítimo para assinar certificados subsequentes para qualquer domínio e fazer os dispositivos aceitarem-nos sem aviso algum, exatamente como a um certificado X.509 regular, assinado por uma entidade válida. Por exemplo, a cadeia de certificados seguinte funciona no iOS versão 4.3.4, mas não em versões corrigidas (como a versão 4.3.5): Certificado root Certificado Intermediário (CA:TRUE) Certificado de Usuário Final (CA:FALSE) Algum Certificado de Domínio Arbitrário — Confiável A extensão de restrições básicas também possui um parâmetro opcional: pathlen. Esse parâmetro indica o número máximo de certificados que podem aparecer abaixo deste na cadeia. Então, considerando o exemplo acima, se o Certificado Intermediário tem o parâmetro pathlen definido como zero, o dispositivo iOS não confiará em Algum Certificado de Domínio Arbitrário gerado pelo Certificado de Usuário Final. A cadeia de certificados seguinte não funcionará, nem mesmo no iOS 4.3.4. Certificado root Certificado Intermediário (CA:TRUE,pathlen:0) Certificado de Usuário Final (CA:FALSE) Algum Certificado de Domínio Arbitrário — Não confiável 4 A criação do “hack” FOCUS 11 para Apple iPad Chegamos a essa conclusão ao tentar reproduzir essa vulnerabilidade. O comunicado original dizia que o iOS falha em reconhecer todas as restrições básicas, mas concluímos que as versões vulneráveis ignorariam somente o valor CA. Portanto, para gerar um certificado X.509 falso para explorar a vulnerabilidade CVE-2011-0228, o certificado da cadeia imediatamente anterior ao certificado que gera o certificado falso não deve incluir o parâmetro pathlen — ou deve conter um valor de pathlen suficientemente grande. A vulnerabilidade “JailbreakMe” JBME é um site que contém uma coletânea de “jailbreaks” para diversas versões do iOS. Os “jailbreaks” foram desenvolvidos por comex e aproveitam falhas no Safari e no kernel. A primeira versão foi lançada em 2007 e funcionava com o firmware 1.1.1 do iPhone e do Apple iPod Touch. Uma segunda versão foi lançada em agosto de 2010 para o iOS 4.0.1, e a versão mais recente foi lançada em julho de 2011. Ela funciona para o iOS 4.3.3. A Apple corrigiu as vulnerabilidades utilizadas pelo JBME no iOS versão 4.3.4. A versão de julho de 2011 do JBME — também conhecida como Saffron — explora uma vulnerabilidade (CVE-2011-0226) no componente analisador de FreeType do Mobile Safari utilizando um arquivo PDF desenvolvido especialmente. A rotina do PDF constrói e carrega na pilha uma carga viral de programação orientada a retorno e explora uma vulnerabilidade de kernel na interface IOMobileFrameBuffer IOKit (CVE-2011-0227). A rotina utiliza, então, uma outra carga viral para modificar algumas funções do kernel para desativar o cumprimento da assinatura do código e obter privilégios de root. Uma vez concluída a exploração, um invasor pode instalar aplicativos não assinados, como o Cydia e todos os aplicativos fornecidos através desse sistema.6 Milhares de pessoas utilizam o JBME para “abrir” seus dispositivos, acessar aplicativos não disponíveis na Apple App Store ou modificar configurações restritas para usuários normais. Porém, o que as pessoas às vezes não entendem é que seus dispositivos estão sendo explorados para que o “jailbreaking” seja bem-sucedido. O “hack” Hardware Não precisamos de muita coisa: utilizamos um laptop Apple MacBook Air e um dongle sem fio. Utilizamos o dongle para fazer “roaming” e encontrar diversos pontos a partir dos quais lançar nosso ataque de demonstração. O MacBook Air é muito conveniente para conferências, cafés ou saguões de aeroportos. Um Mac é necessário para reconstruir o PDF malicioso. Para o restante, não importa qual computador laptop ou desktop você use, mas o sistema operacional deve ser semelhante ao Unix, como o Mac OS X, o Linux ou o FreeBSD. Estes tornam mais fácil encaminhar tráfego utilizando um firewall de kernel, como ipfw ou iptables. Você também precisará de algumas ferramentas que vêm instaladas por padrão em tais sistemas operacionais. A criação do “hack” FOCUS 11 para Apple iPad 5 Software e ferramentas Utilizamos alguns aplicativos úteis para realizar o “hack”. Alguns foram scripts simples, outros foram software sofisticado, como o Apache HTTP Server, ferramentas incluídas por padrão com o sistema operacional e alguns aplicativos personalizados. Para gerar o PDF, precisamos do star_ de comex. Ele contém todos os arquivos necessários para gerar o PDF malicioso, o qual requer a ferramenta xpwn de posixninja.7 Nesse projeto você também encontrará a exploração do kernel. Você também precisará de um firmware de iPad descriptografado ou gerará o seu próprio utilizando o xpwn (as chaves de descriptografia nem sempre estão incluídas).8 Utilizando as ferramentas e instruções de comex, geramos os seguintes arquivos: • PDF: assume o controle inicial sobre o sistema • freeze.tar.xz: pacote que contém os arquivos e aplicativos (como VNC) a serem instalados • install-3.dylib: biblioteca dinâmica utilizada durante a exploração • saffron-jailbreak.deb: pacote que contém uma série de binários para interceptar o processo de instalação Para servir a exploração e os aplicativos para o iPad, utilizamos o Apache HTTP Server, conhecido como componente Web Sharing, incluído no Mac OS X. O servidor Web teve de servir conteúdo utilizando SSL, portanto, foi necessário criar um certificado SSL para ele. Fizemos isso utilizando a ferramenta OpenSSL incluída por padrão no OS X. Utilizamos o tcpdump (incluído por padrão no OS X) para verificar se a exploração foi requisitada com êxito pelo iPad. Configuramos a carga viral freeze.tar.xz para colocar um arquivo em /var/mobile/Media/post-jailbreak, executado pela exploração star (caso esteja presente). Nesse arquivo incluímos um comando ping para nosso sistema, para que soubéssemos quando o SSH estivesse no ar. Utilizamos o tcpdump para verificar se o iPad estava “pingando” nosso laptop. Precisamos da ferramenta ipfw do BSD para definir algumas regras de firewall no laptop, para redirecionar o tráfego do iPad para nossa ferramenta MITM, iSniff. O iSniff foi escrito por hubert3 e inspirado pela ferramenta sslsniff de Moxie.9 A ferramenta de hubert3 “fareja” o tráfego SSL enviando para a vítima certificados falsos gerados na hora. Editamos o códigofonte do iSniff para poder modificar os dados que a vítima enviava para o servidor e vice-versa. (O iSniff foi desenvolvido para ser executado em Debian GNU/Linux, portanto, nós o modificamos para funcionar em OS X.) 6 A criação do “hack” FOCUS 11 para Apple iPad Cenário Utilizamos a interface sem fio USB de nosso MacBook para conectar o hotspot Wi-Fi FOCUS e a interface sem fio interna Airport para criar um hotspot com um nome SSID semelhante ao nome da rede legítima. Assemelhando-se ao nome autêntico, nosso nome de hotspot pode fazer com que a vítima se conecte à nossa rede. Um truque simples é pegar um nome SSID comum e criar um outro com um espaço antes do nome. Isso faz com que o nome da imitação de hotspot vá para o topo da lista de redes. Os invasores normalmente deixam o hotspot aberto (sem exigir senha). Nesse caso, porém, acrescentamos uma senha para que os participantes de nossa sessão não fossem “hackeados” involuntariamente. A criação do “hack” FOCUS 11 para Apple iPad 7 Ataque Conectamos o laptop à Internet utilizando o dongle sem fio, iniciamos o servidor Web e compartilhamos a conexão à Internet através do Airport para fazer as vítimas acreditarem que éramos um hotspot Wi-Fi gratuito. Abrimos algumas guias no aplicativo Terminal do Mac. Na primeira, iniciamos o tcpdump e o fizemos “escutar” na interface de rede compartilhada. Na segunda guia do Terminal, criamos algumas regras de firewall utilizando o ipfw. Uma regra foi particularmente útil: sudo ipfw add 1013 fwd 127.0.0.1,2000 tcp from any to any 443 recv en1 Nessa regra, 1013 é o número da regra, 127.0.0.1,2000 indica onde o proxy MITM está escutando, 443 indica que queremos interceptar conexões através da porta padrão para SSL, e en1 é a interface de rede através da qual estamos compartilhando a conexão à Internet. Em seguida, iniciamos o servidor proxy MITM (iSniff). Ele é configurado para escutar na porta 2000. Observamos nossa vítima visitar https://mail.google.com no iPad. O proxy intercepta a conexão da vítima, gera um certificado para o nome de domínio que a vítima está tentando acessar (mail.google.com), envia o certificado para a vítima estabelecer uma conexão “segura” com o dispositivo e, finalmente, faz-se passar pela vítima para estabelecer uma conexão com o destino final. Como a versão do iOS vulnerável não pôde verificar a cadeia de certificados SSL, ela confiou no certificado que geramos e não acionou nenhum alarme, e nem retornou erro algum. Nesse cenário, vimos todo o tráfego de entrada e saída e também pudemos modificá-lo. 8 A criação do “hack” FOCUS 11 para Apple iPad A ferramenta MITM modificou a requisição HTTP da vítima e solicitou ao servidor uma página não compactada, tornando mais fácil processarmos e modificarmos a página Web retornada para inserir um elemento HTML iframe imediatamente antes da marca de fechamento </body> do HTML. O iframe continha uma página Web com um link para carregar um PDF malicioso. Conseguimos reduzir o tamanho do iframe para torná-lo quase imperceptível para o usuário. Também pudemos inseri-lo bem no final da página. Em nosso “hack”, mantivemos o tamanho grande para que a plateia pudesse visualizá-lo na tela. O arquivo PDF continha uma fonte FreeType Type 1 criada especialmente para explorar o navegador Web Mobile Safari e executar um código especial para fazer download de uma carga viral no dispositivo. O iPad fez download de todos esses arquivos (pacote saffron.deb, freeze.tar.xz, install.dylib) de nosso servidor HTTP local. Como geramos para o domínio um certificado SSL que apontava para nossa máquina local, a conexão permaneceu sob SSL durante o download do PDF, fazendo o Safari mostrar o ícone de cadeado o tempo todo e fazendo com que a vítima se sentisse segura. Ao explorar o iPad da vítima, fizemos download de uma carga viral que instalou o servidor SSH, o VNC e algumas dependências de nosso servidor HTTP. A essa altura, o JBME instalaria o Cydia, mas não queríamos dar indícios de um ataque, por isso modificamos o código JBME star_ para não criar um ícone no desktop e não instalar o Cydia. Utilizamos o script pós-instalação para remover algumas de nossas impressões digitais, como o ícone VNC e configurações do menu System Settings do iOS. O script pósinstalação veiculou, então, um comando ping para nos informar que o dispositivo estava pronto e aceitando conexões na porta 22. Detectamos o ping com o tcpdump executado no Terminal. A criação do “hack” FOCUS 11 para Apple iPad 9 Resultados Em seguida, utilizamos SSH para acessar o dispositivo como root e poder fazer o que quiséssemos: ler mensagens privadas, fazer download de fotos privadas, pegar a lista de contatos, instalar mais aplicativos (um “keylogger”, por exemplo) e muito mais. Recarregamos a interface do iPad para fazer com que o servidor VNC respondesse corretamente a nossas conexões. Em seguida, iniciamos nosso cliente VNC favorito e nos conectamos ao dispositivo. Vimos tudo o que a vítima fez no iPad e até interagimos com isso. 10 A criação do “hack” FOCUS 11 para Apple iPad Enquanto trabalhávamos ocultamente, a vítima continuava a navegar pelo Gmail e a visitar sites, sem saber que tínhamos invadido o sistema e comprometido todos os seus dados privados. Assim que a “springboard” (tela inicial) do iPad apareceu na tela, nossa plateia na FOCUS começou a aplaudir. Alguns nos abordaram para fazer perguntas e, em alguns casos, para se certificarem de que não tínhamos “hackeado” alguém durante a conferência. Claro que não fizemos isso. Nós apenas demonstramos do que são capazes pessoas mal-intencionadas. Conclusões O Apple iOS é mais seguro que qualquer outro sistema operacional, mas não é impenetrável. Ocasionalmente são descobertas vulnerabilidades nesse sistema operacional e em seus aplicativos. Apesar dos esforços de marketing da Apple em dizer o contrário, não podemos contar unicamente com o fornecedor para proteger nossos dispositivos móveis. No momento em que pensamos que estamos seguros, já estamos vulneráveis. Para esse “hack”, não importava se a vítima estava utilizando SSL. Tudo o que precisávamos era de uma vítima incauta ou despreocupada. Temos a tendência de achar que a segurança de nossos sistemas — e a segurança de nossos dados, nosso dinheiro e nossa identidade on-line — pode se basear apenas em uma senha forte, um firewall grande e caro (ou qualquer outro appliance) ou um bom programa antimalware. Na realidade, nossa segurança depende de uma combinação de todos os três. No entanto, a coisa mais importante de que precisamos para nos proteger on-line é a conscientização. Precisamos ter consciência de que há malfeitores on-line, de que existem vulnerabilidades e de que precisamos corrigi-las ou inviabilizar seu uso. A criação do “hack” FOCUS 11 para Apple iPad 11 Às vezes, uma vulnerabilidade simples parece inofensiva. Se você examinar cada uma separadamente, pode achar impossível que alguém consiga utilizar a falha para invadir o seu dispositivo. No entanto, se você juntar duas vulnerabilidades, elas podem se tornar um risco grave. Além disso, tenha em mente que muitas coisas boas podem ser desvirtuadas e transformadas em coisas más. Boas ferramentas nas mãos erradas podem se tornar armas para invadir nossos sistemas. As vulnerabilidades estão presentes na maior parte do software. Temos de ficar alertas para as recomendações dos fornecedores e instalar correções ou adotar contramedidas para evitar sermos comprometidos. Também podemos nos beneficiar de ferramentas de segurança que nos alertam sobre software vulnerável em nossas redes. Agradecimentos Agradecemos a Stuart McClure por seu incentivo constante e a Raul Collantes por sua ajuda com ideias e análises. Sobre os autores Gabriel Acevedo é um pesquisador de segurança da filial do McAfee Labs em Santiago, no Chile. Ele pesquisa vulnerabilidades novas e existentes nas plataformas Microsoft Windows e Unix, appliances de segurança e outros sistemas. Acevedo faz parte da equipe McAfee Vulnerability Management Content (anteriormente chamada de McAfee Foundstone®), uma equipe global responsável pela implementação de verificações de software para detectar a presença de vulnerabilidades em sistemas de computadores remotos. Ele também lidera o Mobile Security Working Group, que é parte do McAfee Labs, fazendo pesquisa de segurança colaborativa sobre dispositivos móveis e incorporados. Michael Price é ex-gerente sênior de operações do McAfee Labs na filial de Santiago. Na McAfee, ele trabalhou com entidades externas no Chile e na América Latina e promoveu excelência técnica e inovação. Price é atualmente arquiteto-chefe de iOS na Appthority, onde pesquisa iOS e segurança de aplicativos. Kehrer, Paul. “Trustwave’s SpiderLabs Security Advisory TWSL2011-007” (Recomendação de segurança do SpiderLabs da Trustwave), julho de 2011. https://www.trustwave.com/spiderlabs/advisories/TWSL2011-007.txt Apple. “Sobre o conteúdo de segurança da Atualização de Software do iOS 4.3.5 para iPhone”, julho de 2011. http://support.apple.com/kb/HT4824?viewlocale=pt_BR 3 Apple. “About the security content of iOS 4.2.10 Software Update for iPhone” (Sobre o conteúdo de segurança da atualização de software do iOS 4.2.10 para iPhone), julho de 2011. http://support.apple.com/kb/HT4825 4 Percoco, Nicholas e Paul Kehrer. “Getting SSLizzard”, agosto de 2011. http://defcon.org/html/defcon-19/dc-19-speakers.html#Percoco 5 Para mais informações sobre certificados e autoridades de certificação, consulte http://mcaf.ee/2mjdv 6 Bédrune, Jean-Baptiste. “Analysis of the jailbreakme v3 font exploit” (Análise da exploração de fonte do jailbreakme v3), julho de 2011. http://esec-lab.sogeti.com/post/Analysis-of-the-jailbreakme-v3-font-exploit 7 https://github.com/comex/star_ 8 https://github.com/posixninja/xpwn 9 https://github.com/hubert3/iSniff 1 2 As informações deste documento são fornecidas somente para fins educacionais e para conveniência dos clientes da McAfee. As informações aqui contidas estão sujeitas a alterações sem aviso prévio, sendo fornecidas “no estado”, sem garantia de qualquer espécie quanto à exatidão e aplicabilidade das informações a qualquer circunstância ou situação específica. McAfee do Brasil Comércio de Software Ltda. Av. das Nações Unidas, 8.501 - 16° andar CEP 05425-070 - São Paulo - SP - Brasil Telefone: +55 (11) 3711-8200 Fax: +55 (11) 3711-8286 www.mcafee.com/br McAfee, o logotipo da McAfee, McAfee Labs e McAfee Foundstone são marcas comerciais ou marcas registradas da McAfee, Inc. ou suas afiliadas nos EUA e em outros países. Outros nomes e marcas podem ser propriedade de terceiros. Os planos, especificações e descrições de produtos aqui contidos são fornecidos apenas para fins informativos, estão sujeitos a alterações sem notificação prévia e são fornecidos sem garantia de qualquer espécie, expressa ou implícita. Copyright © 2012 McAfee, Inc. 41724wp_ipad-hack_0212_fnl_ETMG