Na sexta-feira, a Apple lançou sem alarde o iOS 7.0.6, explicando rapidamente que ele corrige um bug no qual “um invasor com uma posição privilegiada de rede pode capturar ou modificar dados em sessões protegidas por SSL/TLS”. O que isso significa? Que você precisa atualizar seu iPhone agora mesmo.
Ah, e o OS X tem o mesmo problema… só que ainda não há uma correção. A Apple diz à Reuters que isto virá “em breve”.
Se você entendeu por completo a explicação da Apple, provavelmente você já atualizou o iOS. Se o texto lhe parece incompreensível, eis o que isso significa para dispositivos da Apple.
O que é SSL?
O SSL ajuda a garantir que a comunicação entre o navegador e servidores de seus sites favoritos permaneçam privadas e seguras. O TLS, por sua vez, é um protocolo mais recente que faz basicamente a mesma coisa. Em resumo, o SSL/TLS é uma chave de criptografia que permite a um navegador e um servidor saber que eles são quem dizem que são: é como um aperto de mão digital e secreto, que mantém seguras suas informações financeiras quando você faz um pagamento online, ou entra no site do seu banco.
Isso tudo acontece em segundo plano: sua única interação direta com o SSL/TLS é quando você percebe o ícone do cadeado na barra de endereços. Isso significa que você tem uma linha direta, privada e segura.
O bug da Apple significa que o Safari – ou um dos aplicativos afetados – não sabe se está falando com os servidores certos. Isso deixa você, e tudo o que você transmite através da web, vulnerável a um ataque man-in-the-middle.
O que é um ataque man-in-the-middle?
Um ataque man-in-the-middle, que chamaremos de MitM daqui em diante, é basicamente uma forma de espionagem. Neste caso, um intruso MitM em uma rede compartilhada intercepta a comunicação entre o navegador e um site – monitorando, gravando e vendo tudo o que acontece entre vocês.
Gmail, Facebook, transações financeiras – tudo isso visto, em tempo real, por um completo estranho. Eis um gráfico simples, via Wikipédia, que explica isto:
Normalmente, ataques como este são frustrados pela tecnologia SSL/TLS, ou pelo menos ficam tão impraticáveis que não valem a pena – é difícil interceptar um aperto de mão criptografado. Mas o bug torna isto dolorosamente fácil.
Na verdade, a “posição privilegiada de rede” mencionada acima pela Apple pode ser qualquer rede Wi-Fi pública. Basta o intruso estar no mesmo Starbucks que você. E isso vem acontecendo desde setembro… de 2012.
Qual a gravidade da situação?
É grave. Eis a maneira mais simples de explicar isso: desenvolvedores que entendem profundamente do assunto não querem nem falar sobre isso abertamente, por medo de dar aos hackers mais munição do que eles já têm:
Dear everyone: do *not* use Safari until Apple patches their SSL code in Mac OS X. Man-in-the-middle exploits are already in the wild.
— Nick Sullivan (@grittygrease) 22 fevereiro 2014
Ok, yes, the iOS/OS X bug does break SSL completely. Like @matthew_d_green I’m going to keep quiet. Patch quickly.
— Adam Langley (@agl__) 22 fevereiro 2014
I’m not going to talk details about the Apple bug except to say the following. It is seriously exploitable and not yet under control.
— Matthew Green (@matthew_d_green) 21 fevereiro 2014
Matthew Green, professor de criptografia na Universidade Johns Hopkins, explica à Reuters que isso é “tão ruim quanto você possa imaginar, e isso é tudo que posso dizer”.
Claro, sua rede Wi-Fi protegida por senha é segura; obviamente não há um hacker à espreita em cada Wi-Fi público; e sua informação pessoal nem sempre é interessante para os outros. E se você já atualizou o seu iPhone ou iPad para o iOS 7.0.6, você está seguro.
Mas é bizarro e preocupante saber que isso vem acontecendo há um ano e meio. E sabendo que isto foi amplamente divulgado – e ainda não foi corrigido no OS X – significa que vale a pena tomar algumas medidas extras de precaução.
Como isso aconteceu?
Ninguém sabe, e a Apple não diz. Mas as teorias vão desde algo plausível a algo conspiratório. Vamos começar com o que provavelmente aconteceu e avançar a partir daí.
Adam Langley, do Google, detalhou as especificidades do bug em seu blog pessoal. Basicamente, trata-se de uma simples linha extra de código. Como aponta a ZDNet, um “goto fail;” duplicado faz a verificação SSL passar em quase todos os casos, mesmo quando não deve.
Langley tem o argumento mais plausível: isso poderia ter acontecido com qualquer um.
Este tipo de erro sutil enterrado no código é um pesadelo. Eu acredito que isso é apenas um erro e lamento que alguém possa ter errado no editor e criado isto.
Porém, não é necessário muito esforço de imaginação para ligar esse bug à espionagem americana. John Gruber, devoto da Apple, falou exatamente isso: o comando “goto fail;” entrou no iOS 6.0, lançado um mês antes de a Apple supostamente ser adicionada ao programa PRISM. No mínimo, é inteiramente possível que a NSA descobriu este bug antes da Apple, e o vem usando secretamente para seus propósitos de espionagem.
Como posso evitar isso?
Se você estiver em um dispositivo iOS, baixe a versão 7.0.6 imediatamente. Se você tem um iPhone 3GS ou iPod touch antigo, baixe o iOS 6.1.6, que também corrige o bug. Sim, a Apple lançou uma atualização para aparelhos que não recebem mais versões novas do iOS – é um sinal de que ela está enfim levando este bug a sério.
Mas, por enquanto, o OS X está vulnerável; e agora que o erro foi amplamente divulgado, há quem esteja disposto a aproveitá-lo enquanto puder. Por isso, evite usar os programas a seguir em redes Wi-Fi públicas, que Ashkan Soltani confirma estarem vulneráveis:
- Atualização de Software
- Calendário
- Facetime
- iBooks
- Keynote
Sua melhor opção é usar o Chrome ou o Firefox, que não são afetados pelo bug no OS X. Além disso, use apenas redes Wi-Fi seguras; se você tiver mesmo que usar uma rede compartilhada, evite lidar com informações financeiras, transações ou dados pessoais. Essa é uma boa regra em geral, mas especialmente neste caso.
Só espero que a solução “muito em breve” chegue em dias, não em semanas.
Imagem inicial via Twitter