No sé si esta pregunta debería hacerse aquí o no. En casi todos los idiomas, existe malware. ¿Es lo mismo aplicable también vimscript
?
Supongamos que vim
se ejecuta con altos privilegios del sistema. ¿Existe alguna posibilidad de que un nuevo vim
usuario pueda arruinar su sistema utilizando un complemento o un vimrc
archivo de aspecto agradable (es decir, los llamados scripts maliciosos en otros lenguajes de scripting)?
¿Cuáles son las medidas que puede tomar un nuevo usuario antes de ejecutar archivos de script desconocidos? Sé que deshabilitar los scripts es una solución obvia para eso. Pero hay una gran cantidad de complementos que son bastante útiles, incluso para los nuevos alumnos.
De nuevo para decir, esta pregunta podría no encajar aquí, pero creo que la seguridad también es una parte muy importante de toda la imagen.
Señalar algunos recursos o información sobre esto sería muy útil para los nuevos vim
usuarios como yo.
fuente
$EDITOR
se establezca envim
, simplemente use$ sudo -e filename
./root/.vimrc
. Por lo general, solo activo el resaltado de sintaxis. Cuanto más elegante sea su configuración vim de usuario normal, más obvio será que se está ejecutando como root.Respuestas:
Bueno, Vim puede ejecutar comandos arbitrarios con
:!
. Puede establecer variables de entorno. Los scripts de malware que son scripts de shell pueden, por lo tanto, ejecutarse desde Vimscript.Puede utilizar programas complejos de Perl, Python, Ruby o Lua. Por lo tanto, el malware escrito en cualquiera de estos que utiliza solo bibliotecas estándar podría integrarse en Vim.
Incluso si ninguno de estos fuera cierto, Vim es un editor. Si se ejecuta como root, podríamos editar fácilmente sus archivos
/etc/passwd
y/etc/shadow
para crear un nuevo usuario y/etc/sudoers
otorgarlessudo
privilegios completos ycronjob
ejecutar scripts de shell para configurar este usuario.Al igual que con la ejecución de scripts aleatorios fuera de Internet, no hay una manera fácil de estar a salvo. En Linux, podría ejecutarse en una máquina virtual con una superposición que podría indicarle qué archivos modifica un vimrc determinado. Depende de cuánto riesgo perciba.
fuente
unknown
olesser known
scripts ...Extendiendo la respuesta de muru, puede inspeccionar el código, especialmente porque el código del complemento generalmente es muy corto (las excepciones son algunos complementos populares, pero al ser populares son más seguros, puede esperar que muchos otros hayan revisado la fuente).
No tiene que entender completamente el código; bastaría con buscar comandos "peligrosos":
:!
ysystem()
: permite la ejecución de comandos de shell, por lo que podría cambiar su sistema:perldo
,:python
,:lua
,:tcl
, Y:ruby
: ejecutar comandos en los diferentes idiomas, que puede contener llamadas de sistemas embebidos:execute
: este comando ejecuta una cadena como un comando, por lo que se puede usar para ocultar uno de los comandos anteriores (por ejemplo: para dificultar la deteccióncall system('malware')
operldo malware
alguien podría concatenar la cadena en una variable)function("MyFunc")
: llama a referencias de funciones: acepta una variable como parámetro, lo que permite ocultarsystem()
También puede intentar ejecutar algunas funciones de complemento utilizando
'secure'
osandbox
para detectar shell y lenguajes externos (perl, python, etc.).fuente