O Stuxnet e as capivaras
Autor: Tony Rodrigues | Publicado: 2011-05-22T10:31:00-03:00

Em primeiro lugar, gostaria de dizer que o termo Capivara não foi criado por mim. Essa alcunha genial é fruto das mentes brilhantes dos nossos camaradas do dclabs Grinch, Crash e Alexos, hábeis observadores da natureza e da semelhança com atitudes de certos usuários.A pergunta que não quer calar é: Habitariam também as capivaras os ambientes high-tech, ou estariam confinadas apenas aos lugares mais comuns, onde o Office é o exemplo máximo de tecnologia ? Infelizmente, habitam.Vamos falar de alta tecnologia.O STUXNETEssa obra de arte da tecnologia não é mais novidade. O assunto já rola há algum tempo e foi alvo de pelo menos 3 comentários nas palestras do WebSecForum, incluindo a minha.O Stuxnet é um malware especificamente criado com fins de sabotagem. Ele pode ser desmembrado em algumas dlls e códigos que vão infectar máquinas Windows e controladores PLCs, de maneira bem especifica.Diferentemente dos PCs, cujo hardware é praticamente padronizado e o SO não varia tanto também (win, Linux, etc), a arquitetura que envolve controladores industriais é bem mais complexa e diferenciada.O caso do Stuxnet envolve código específico para centrifugas ligadas a projetos de energia atômica. Algumas pesquisas mostram que a grande maioria dos usuários do modelo vulnerável ao código do Stuxnet esta no IRÃ. Seria isso mera coincidência ?Em termos de arquitetura, um grupo de centrifugas está ligado por interfaces de controle a um concentrador, que por sua vez liga-se ao PLC (Programmable Logic Controller). Esse equipamento é quem recebe e roda programas em uma linguagem incomum chamada STL e que, através desses programas, controla as centrifugas. Esse controle envolve parametrizações mais simples e algumas mais criticas, como por exemplo, a velocidade de rotação do motor da centrifuga. Essa velocidade é muito especifica para o processo, não pode ser mais nem menos do que o estabelecido, e é exatamente isso que o Stuxnet faz, ora aumentando, ora diminuindo a velocidade de rotação, sabotando o processo.Para interfacear com o PLC, mandando os programas para ele, por exemplo, existe um PC rodando Windows e fica conectado ao PLC (na verdade, não precisam estar o tempo todo conectados). Em geral , esses computadores ficam apartados das redes TCP/IP, mas também podem estar ligados a uma (o que não parece ser uma boa pratica). No caso específico do PLC alvo do Stuxnet, da marca Siemens, há um software de controle que é executado nesse PC, o WinCC/Step7.Em termos de preparação e planejamento, o Stuxnet é o estado da arte. Esqueça mensagens com palavras escritas errado e adolescentes programando em uma mesa suja. Stuxnet foi desenvolvido por equipe grande e com skills bem variados. Ele usa complicados esquemas de injeção de código na memória e aplica rootkits para esconder-se tanto na máquina Windows quanto no PLC. O esquema de infecção é engenhoso, apoiando-se em varias vulnerabilidades, sendo que duas delas eram 0-day na época de seu lançamento. Além disso, busca infectar máquinas Windows com Step7 ligadas a rede TCP/IP ou não. Para as desconectadas usa uma estratégia bastante inteligente: a fim de manter as máquinas atualizadas, em geral os administradores baixam patches para pendrives e as atualizam off-line, plugando o pendrive em cada uma das máquinas que acessam PLCs. O Stuxnet tem um sub-sistema específico para explorar máquinas a partir de arquivos .lnk e com isso infectar máquinas onde pendrives contendo tais arquivos forem usados. Muito engenhoso !Vale a pena tirar um tempo e estudar mais profundamente a estratégia e os detalhes desse malware. Ele foi citado, inclusive, em uma das minhas previsões da minha palestra no WebSecForum e imagino que vá criar uma nova onda de ataques muito mais complexa e elaborada que as atuais.Onde estão as Capivaras ???O Stuxnet ataca por todos os lados. Uma das estratégias de infecção é buscar a máquina que está rodando o banco de dados do WinCC. Ele se conecta ao banco e usa algumas queries, acessa o SO, aciona OLE automation, enfim, faz a festa. Como ele faz isso ? Muito simples. A senha do database está hardcoded dentro do código do WinCC ...Sem comentários, não ? Ou melhor, comentem !!!Até o próximo post !