|
Hoje escrevo para comentar sobre uma baita falha de segurança, já antiga, mas ainda muito presente em redes Linux "descuidadas". Dependendo da forma de como o administrador delega funções para outras pessoas no âmbito administrativo (um webmaster que precise reiniciar o Apache, por exemplo), uma grande falha de segurança que envolve o vi pode expor todo o seu ambiente. Mas não se assuste, além de tecnicamente não ser uma falha nem do sudo, nem do vi, é fácil de corrigir.
Imagine uma situação onde você, administrador de um sistema Linux, precisa delegar algumas permissões para o webmaster da empresa. Este pode editar as configurações do Apache 2 (diretório /etc/apache2) e gerenciar o serviço do Apache (parar, reiniciar, etc). Então você edita seu arquivo /etc/sudoers e permite que o usuário "webmaster" rode os programas kill e vi. Além disso, você dá as permissões necessários no diretório do Apache, assim como em /var/www, onde pode estar armazenado o site e assim por diante. Assim sendo, o webmaster pode rodar:
webmaster@server:~$ sudo vi /etc/apache2/apache2.conf webmaster@server:~$ sudo killall apache2
Até então nada de mais. O problema está em o webmaster poder rodar o vi como root (usando o sudo). Para quem não sabe (ou não lembra), o vi pode rodar comandos do shell facilmente e inclusive há formas de escapar para o shell. Se o vi é rodado como root (via sudo), não se engane, qualquer comando pode ser dado como root também. Basta comandar :! <comando> e pronto. O vi pausará sua execução, rodará o comando e voltará à tela de edição. Veja o exemplo abaixo:
webmaster@server:~$ sudo vi ~ VIM - Vi IMproved
Agora experimente comandar :! whoami e veja o resultado:
fernando@homer:~$ sudo vi
O comando whoami foi executado como root, porque o vi também foi (você deu a permissão de executar o vi como sudo para o webmaster, lembra?). Isso significa que ele pode rodar qualquer comando como root, o que conseqüentemente pode trazer problemas. Para piorar as coisas, ele também pode fazer o seguinte no vi:
:! /bin/bash
E o resultado é:
webmaster@server:~$ sudo vi
Bem, ficou claro o problema: o usuário caiu no BASH, logado como root. Há várias formas de se corrigir isso. A mais fácil é rodar o rvim ao invés do vi. Este é um vi "quase" completo, pois tem restrições principalmente no quesito segurança. Pelo rvim o usuário não pode rodar um comando do shell e não conseguirá escapar para um root shell. Por padrão o rvim é instalado em várias distribuições. Portanto, use a permissão para o rvim no sudoers e restrinja ao máximo o uso do sudo, este ilustre aliado pode se tornar um problema quando mal utilizado.
/bin/echo "Até o próximo artigo!!!" |
Últimos artigos
- Serviços Google via linha de comando (267 hits)
- Monitoração de serviços com o Zabbix (1085 hits)
- Recuperando mensagens do Outlook Express com Linux (245 hits)
- Flash Player 10 nativo para Linux 64-bits (346 hits)
- D-Link DWA-125 no Ubuntu 10.04 (Lucid Lynx) (1113 hits)
- Opera Web Browser - o seu próximo navegador (874 hits)
- Como remover vírus de pen drive (2914 hits)
- Go - A linguagem de programação do Google (922 hits)
- Como usar cartuchos recarregados na HP C5180 (1120 hits)
- Expressões regulares no Mediation (776 hits)
Artigos mais lidos
- Sniffing com o Wireshark (14726 hits)
- Controle de dispositivos com a porta paralela (9493 hits)
- Mascarando o endereço MAC da placa de rede (8142 hits)
- Remoção manual de vírus (6308 hits)
- Ghost pela rede (5981 hits)
- Tudo sobre o GRUB (5433 hits)
- Criando um layout para seu website (4080 hits)
- Extensões perigosas no Windows (3654 hits)
- Entendendo um ataque man-in-the-middle (3360 hits)
- BackTrack - uma distribuição hacker (3276 hits)





