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 STUXNET
Essa 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 !