Je ne sais pas si cette question doit être posée ici ou non. Dans presque toutes les langues, des logiciels malveillants existent. Est-ce la même chose pour vimscript
?
Supposons qu'il vim
fonctionne avec des privilèges système élevés. Y a-t-il une possibilité qu'un nouvel vim
utilisateur puisse ruiner son système en utilisant un plugin ou un joli vimrc
fichier (c'est-à-dire des scripts dits malveillants dans d'autres langages de script)?
Quelles sont les mesures qu'un nouvel utilisateur peut prendre en charge avant d'exécuter des fichiers de script inconnus? Je sais que la désactivation des scripts est une solution évidente à cela. Mais il existe un très bon nombre de plugins qui sont très utiles, même pour les nouveaux apprenants.
Encore une fois, cette question ne convient peut-être pas ici, mais je pense que la sécurité est également une partie très importante du tableau d'ensemble.
Le fait de pointer vers certaines ressources ou informations à ce sujet serait très utile pour les nouveaux vim
utilisateurs comme moi.
la source
$EDITOR
est défini survim
, utilisez simplement$ sudo -e filename
./root/.vimrc
. En général, j'active simplement la coloration syntaxique. Plus votre configuration utilisateur virtuelle est sophistiquée, plus il est évident que vous exécutez en tant que root.Réponses:
Eh bien, Vim peut exécuter des commandes arbitraires avec
:!
. Il peut définir des variables d'environnement. Les scripts malveillants qui sont des scripts shell peuvent donc être exécutés à partir de Vimscript.Il peut utiliser des programmes complexes Perl, Python, Ruby ou Lua. Ainsi, les logiciels malveillants écrits dans l'un de ceux-ci et utilisant uniquement des bibliothèques standard pourraient être intégrés dans Vim.
Même si aucune de ces affirmations n'était vraie, Vim est un éditeur. S'il est exécuté en tant que root, nous pourrions facilement modifier vos fichiers
/etc/passwd
et/etc/shadow
pour créer un nouvel utilisateur et/etc/sudoers
leur accorder dessudo
privilèges complets , ainsi qu'uncronjob
pour exécuter des scripts shell pour configurer cet utilisateur.Comme pour l'exécution de scripts aléatoires sur Internet, il n'y a pas de moyen simple d'être en sécurité. Sous Linux, vous pouvez exécuter dans une machine virtuelle avec une superposition peut vous dire quels fichiers un vimrc donné modifie. Cela dépend du niveau de risque que vous percevez.
la source
unknown
ou leslesser known
scripts ...S'étendant sur la réponse de muru, vous pouvez inspecter le code, d'autant plus que le code du plugin est généralement très court (les exceptions sont certains plugins populaires, mais en étant populaires, ils sont plus sûrs - vous pouvez vous attendre à ce que beaucoup d'autres aient examiné la source).
Vous n'avez pas besoin de bien comprendre le code; il suffirait de rechercher des commandes "dangereuses":
:!
etsystem()
: permet l'exécution de commandes shell, pourrait donc changer votre système:perldo
,:python
,:lua
,:tcl
Et:ruby
: exécuter des commandes sur les langues différentes, qui peuvent contenir des appels de systèmes embarqués:execute
: cette commande exécute une chaîne en tant que commande, elle peut donc être utilisée pour masquer l'une des commandes précédentes (par exemple: afin de la rendre plus difficile à repérercall system('malware')
ouperldo malware
, quelqu'un pourrait concaténer la chaîne en une variable)function("MyFunc")
: appeler les références de fonction - accepte une variable comme paramètre, permettant ainsi de masquersystem()
Vous pouvez également essayer d'exécuter certaines fonctions de plugin en utilisant
'secure'
ousandbox
pour détecter le shell et les langages externes (perl, python, etc.).la source