Não sei se essa pergunta deve ser feita aqui ou não. Em quase todos os idiomas, existe malware. O mesmo também se aplica a vimscript
?
Suponha que vim
esteja sendo executado com altos privilégios do sistema. Existe alguma possibilidade de um novo vim
usuário arruinar seu sistema usando um plug-in ou um vimrc
arquivo de boa aparência (isto é, os chamados scripts maliciosos em outras linguagens de script)?
Quais são as medidas que um novo usuário pode tomar antes de executar arquivos de script desconhecidos? Eu sei que desativar scripts é uma solução óbvia para isso. Mas há um número realmente bom de plugins que são bastante úteis, mesmo para os novos alunos.
Novamente, essa pergunta pode não se encaixar aqui, mas acredito que a segurança também é parte muito importante de todo o cenário.
Apontar alguns recursos ou informações sobre isso seria muito útil para novos vim
usuários como eu.
fonte
$EDITOR
está definido comovim
, basta usar$ sudo -e filename
./root/.vimrc
. Normalmente, apenas ative o destaque de sintaxe. Quanto mais sofisticada a configuração normal do usuário vim, mais óbvio será que você está executando como root.Respostas:
Bem, o Vim pode executar comandos arbitrários com
:!
. Pode definir variáveis de ambiente. Os scripts de malware que são scripts de shell podem, portanto, ser executados no Vimscript.Pode fazer uso de programas complexos Perl, Python, Ruby ou Lua. Portanto, malwares escritos em qualquer um deles que utilize apenas bibliotecas padrão podem ser incorporados no Vim.
Mesmo que nenhuma dessas fosse verdade, o Vim é um editor. Se executado como root, poderíamos editar facilmente seus arquivos
/etc/passwd
e/etc/shadow
para criar um novo usuário e/etc/sudoers
concedersudo
privilégios completos , alémcronjob
de executar scripts shell para configurar esse usuário.Assim como na execução de scripts aleatórios na Internet, não há maneira fácil de se proteger. No Linux, você pode executar em uma VM com uma sobreposição para informar quais arquivos um determinado vimrc modifica. Depende de quanto risco você percebe.
fonte
unknown
oulesser known
scripts de ...Estendendo a resposta do muru, você pode inspecionar o código, especialmente porque o código do plug-in é geralmente muito curto (as exceções são alguns plug-ins populares, mas por serem populares eles são mais seguros - você pode esperar que muitos outros tenham revisado a fonte).
Você não precisa entender completamente o código; basta procurar comandos "perigosos":
:!
esystem()
: permite a execução de comandos do shell, podendo alterar seu sistema:perldo
,:python
,:lua
,:tcl
, E:ruby
: executar comandos em diferentes idiomas, que pode conter chamadas de sistemas embarcados:execute
: este comando executa uma string como um comando, para que possa ser usado para ocultar um dos comandos anteriores (por exemplo: para dificultar a identificaçãocall system('malware')
ouperldo malware
alguém pode concatenar a string em uma variável)function("MyFunc")
: chamar referências de função - aceita uma variável como parâmetro, permitindo ocultarsystem()
Você também pode tentar executar algumas funções de plug-in usando
'secure'
ousandbox
para detectar shell e idiomas externos (perl, python, etc.).fonte