¿Cómo es que Linux no es propenso a virus, malware y ese tipo de cosas?

71

¿Cómo se protege Linux contra virus?


Esta pregunta fue una pregunta de superusuario de la semana .
Lea la entrada del blog para más detalles o contribuya al blog usted mismo

ykombinator
fuente
2
Ver también superuser.com/questions/11969/…
Robert Munteanu
1
Creo que te refieres a la galleta. Ver: cs.utah.edu/~elb/folklore/afs-paper/node9.html Hacker es un término no específico.
jnewman
1
Para Linux, muchos softwares son de código abierto, por lo que si el creador de virus usa código abierto, la comunidad ayudará a reparar esta hermosa mente. Y si el escritor desea elegir la forma patentada de fuente cercana, entonces debe etiquetar el programa como "software malicioso patentado".
kaykay
Creo que tiene algo que ver con la estructura de archivos en Windows y similares que hacen que los virus sean susceptibles ya que la mayoría de los virus atacan la estructura de un archivo y el registro y similares. sin embargo, en Linux, el sistema de archivo y la estructura en conjunto son mucho más estables y no se pueden manipular tan fácilmente. Una vez escuché de un virus troyano simplemente sentado en un escritorio de Linux sin hacer nada, ya que no podía atacar ningún archivo ...
ThunderToes

Respuestas:

104

Bueno, en realidad no lo es ... está menos sujeto a que los hackers desarrollen virus que se dirigen a los sistemas Linux. Las computadoras de grado de consumo generalmente se ejecutan en Windows y, por lo tanto, cuando se dirigen a un público amplio, Windows es el camino a seguir.

No malinterpretes Linux y los virus, definitivamente HAY virus de Linux.

Algunas distribuciones tienen capas de protección adicionales como SELinux (ver aquí ) en Ubuntu, por ejemplo. Luego está el firewall predeterminado y el hecho de que los archivos alienígenas no tienen automáticamente permiso para ejecutarse. Debe otorgarse un permiso de ejecución específico antes de que sea posible la ejecución. (Ver aquí )

Luego, hay varios otros factores que hacen que Linux sea un lugar difícil para los virus, por lo general, los usuarios no root en los sistemas Linux tienen a su disposición pocos archivos ejecutables que permitirían que los virus permanezcan sin ser detectados y se propaguen. Algunos programas solo requieren que inicie sesión como root (o mediante el uso de sudo) antes de que se ejecuten o para acceder / modificar directorios que no sean su hogar. Es mucho más difícil desarrollar un virus viable que se propague tan bien como en Windows.

ACTUALIZAR:

Como se menciona a continuación, la mayoría de las máquinas que ejecutan Linux son servidores que son ejecutados por personas que saben una o dos cosas sobre lo que están haciendo. Las personas que ejecutan Linux para uso de escritorio generalmente eligen y también saben lo que están haciendo. Casi todas las computadoras analfabetas ejecutan Windows y, por lo tanto, es mucho más fácil infectar esas computadoras. " Hey, esta máquina me dice que tengo virus y tengo que comprar este programa antivirus llamado 'FAKETrojanHunter' para deshacerme de él ... ¡Bien, hagámoslo! "

Debido a que ninguna distribución / instalación de Linux es igual per se, es más difícil desarrollar malware que los infecte a todos de la manera más eficiente posible. Además, casi todo el software que se ejecuta en Linux es de código abierto, lo que hace que el malware sea mucho más fácilmente detectable ya que su fuente está abierta al público.

BloodPhilia
fuente
47
+1 parathere definitely ARE Linux viruses
Sathyajith Bhat
13
Recuerde que la mayoría (bueno, muchos ...) de los servidores ejecutan Linux, por lo que hay una gran base de instalación que vale la pena atacar. La mayoría de estos servidores no funcionan con antivirus y no tienen problemas. Hay vulnerabilidades en los paquetes, pero generalmente no permiten la ejecución arbitraria de código remoto.
Rich Bradshaw
55
En realidad, Linux no es más seguro contra ataques de virus que Windows para la gran mayoría de las vulnerabilidades. En algunas clases, Linux mejora (por ejemplo, los archivos ejecutables enviados por correo electrónico son más difíciles de infectar a los usuarios ... pero no imposible). Los mismos vectores de ataque funcionan para Linux (desbordamientos de búfer en programas que acceden a Internet principalmente). Y estúpido ... er, quiero decir, los usuarios inexpertos tienen las mismas probabilidades de seguir los pasos adicionales para hacer que un archivo adjunto de correo electrónico sea ejecutable si es algo que quieren (imágenes nudie, protector de pantalla lindo, etc.)
Erik Funkenbusch
44
@ Rich: Claro. También hay muchos servidores de Windows. Sin embargo, los servidores suelen ser ejecutados por personas con una idea sobre las computadoras y la seguridad y, por lo tanto, son mucho más difíciles de atacar. Hay muchas computadoras mantenidas por personas que no entienden las computadoras. La gran mayoría de ellos son Microsoft Windows, el resto es principalmente Mac OSX, y Linux casi no está allí, ya que casi todos los usuarios personales de Linux lo ejecutan porque entienden las computadoras y han elegido Linux.
David Thornley
44
@ Jase21: No entiendo cómo se puede decir que Linux tiene "mejores prácticas de codificación" a menos que haya trabajado en ambas plataformas y haya visto el código fuente de ambas plataformas. @BloodPhilia: +1 para la respuesta aquí que apunta más directamente a la raíz del problema en lugar de las trompetas del FUD.
Billy ONeal
37

Una de las razones son los privilegios del usuario.

Los sistemas GNU / Linux son sistemas similares a Unix y eso significa que están diseñados para ser sistemas multiusuario desde cero. Eso significa que existe una fuerte separación de responsabilidades entre los usuarios. Como resultado, un usuario normal no puede dañar el sistema porque no tiene los privilegios necesarios. Si bien ahora también hay cuentas limitadas disponibles en los sistemas Windows, en los sistemas GNU / Linux se espera naturalmente que el usuario use una cuenta limitada para el uso diario y mantenga la cuenta raíz solo para cambiar la configuración (algunas distribuciones por defecto ni siquiera permitirán usuarios para iniciar sesión como root porque hay otros mecanismos más seguros para usar la cuenta root para modificar la configuración).

Por otro lado, muchos usuarios de Windows se criaron en la era de Windows 9x o esa era tuvo una gran influencia en ellos. En aquel entonces, solo la cuenta de usuario era administrador y todo estaba permitido para ese usuario. Incluso hoy en los sistemas Windows que descienden de Windows NT multiusuario, a menudo se requiere (o al menos se espera) que el usuario use una cuenta con privilegios administrativos y el uso de cuentas limitadas es bastante bajo entre los usuarios domésticos.

AndrejaKo
fuente
44
+1 por mencionar permisos: sudo es mi amigo.
Thomas O
66
Puede obtener la misma protección en Windows si se ejecuta como un usuario limitado y se eleva a través de UAC cuando sea necesario. Solo digo. :)
badp
2
UAC es molesto y, que yo sepa, muchos usuarios lo apagan. Por otra parte, uso Ubuntu, así que tal vez soy parcial.
Thomas O
@Thomas O A eso era a lo que apuntaba cuando escribí mi respuesta. En Windows UAC es molesto y a menudo se requieren privilegios elevados. En GNU / Linux no se requieren privilegios elevados con tanta frecuencia. Además, en muchas distribuciones, cambiar la configuración del usuario es más fácil porque "recordarán" la contraseña durante algún tiempo, mientras que el aviso de UAC se mostrará para cada acción.
AndrejaKo
55
@Thomas: lo que dice Hello71 es que UAC funciona en un escritorio protegido y no puede interactuar con el escritorio de los usuarios interactivos, por lo que cualquier aplicación que se ejecute allí no puede "mover el mouse" y hacer clic en él. Parece que UAC a menudo es mal entendido de esta manera por personas que no saben nada al respecto.
Erik Funkenbusch
22

Una ventaja que tiene Linux sobre Windows es que para que el archivo sea ejecutable, debe establecer específicamente sus permisos.

Esto significa que el truco de la doble extensión (por ejemplo, " brittany_spears_naked.jpg.exe ") no funcionará porque el usuario tendrá que hacerlo ejecutable antes de infectarlos, y esperamos que piense que es extraño que una imagen necesite ser ejecutable

Ricardo
fuente
14
Linux no usa extensiones de nombre de archivo en absoluto.
AndrejaKo
9
Técnicamente no lo hace, pero gnome y kde los usarán para determinar si algo es, por ejemplo, una imagen o un archivo de música y pasarlo al programa apropiado.
Richard
66
De hecho, pero ni GNOME ni KDE ni ningún otro entorno de escritorio supondrá que un archivo está bien para ejecutarse en función de una extensión de archivo.
Ryan Thompson, el
Un archivo no se puede ejecutar sin los permisos. Eso significaría que su administrador de archivos tendría que cambiar los permisos para incluso intentar ejecutarlo.
Thomas O
1
En realidad, me refería a que los entornos de escritorio Linux no pondrá en marcha un archivo de escritorio a menos que el archivo de escritorio en sí está marcado ejecutable. Por lo tanto, no puede simplemente descargar un archivo .desktop que lo contiene Exec=rm -rf /y ejecutarlo accidentalmente sin marcar primero el archivo de escritorio como ejecutable.
Ryan Thompson, el
19

Linux está protegido, pero no es invulnerable.

Contrastar Linux / Unix con Windows a un alto nivel, desde un punto de vista de seguridad:

  • El kernel de Linux (donde se examinan y aplican los permisos del sistema) es mucho más pequeño que el equivalente de Windows. Más pequeño significa más simple; más simple significa más fácil de examinar, con menos interacciones inesperadas del sistema. "Más pequeño" y "más simple" son cosas buenas en el análisis de seguridad. El kernel de Windows sigue creciendo a un ritmo elevado.

  • Los usuarios de Linux tienden a ejecutarse en niveles de permisos más bajos que Windows, lo que hace que sea más difícil afectar a todo el sistema.

  • Linux comenzó con un modelo de seguridad simple, flexible. Windows comenzó con requisitos de compatibilidad con sistemas que no tenían modelo de seguridad.

  • Linux siempre ha tenido funciones (por ejemplo, chroot(2)) para facilitar las tareas de los programadores conscientes de la seguridad.

Nada de esto hace que Linux sea invulnerable al malware. Significa que atacar un host Linux configurado correctamente es aún más difícil que atacar un host Windows configurado correctamente.

mpez0
fuente
11
1. En realidad, Windows NT comenzó como competencia para OS / 2. Todo se ejecuta sobre el modelo de seguridad DACL, que es más flexible que los permisos POSIX. 2. La mayoría de los argumentos aquí se aplican a la era Win9x de los sistemas operativos, no a Windows NT. 3. En realidad, la línea principal de Linux ha crecido mucho más rápidamente que el núcleo de Windows. La única cosa adicional que hace el núcleo NT es proporcionar el subsistema de ventanas, que de todos modos no está cerca del código de seguridad. 4. La afirmación de que el tamaño tiene un efecto sobre la seguridad solo se aplica al código de seguridad. Agregar btrfsa Linux no lo hace menos seguro.
Billy ONeal
13

La respuesta a su pregunta depende de lo que considere un "virus".

Si usa la definición correcta de un virus, es decir, un código que modifica un ejecutable existente, entonces la razón por la que Linux no es propenso a virus es porque no es un mecanismo viable para difundir código malicioso en Linux. La razón es que los ejecutables de Linux rara vez se transfieren directamente de una computadora a otra. En cambio, los programas se transfieren utilizando software de administración de paquetes o distribuyendo el código fuente. El hecho de que la mayoría del software de Linux esté disponible de forma gratuita desde la fuente significa que las personas casi no tienen ningún uso intensivo para copiar programas de una computadora a otra.

Si por "virus" te refieres a "gusano", un programa que se replica a sí mismo a través de Internet, entonces Linux no es en absoluto inmune a ese ataque. De hecho, el gusano original de Internet, el " Morris Worm ", se replicó usando Sendmail, un programa que todavía viene preinstalado en muchos sistemas Linux. Casi todos los ataques exitosos contra máquinas Linux apuntan a aplicaciones vulnerables que se enfrentan a Internet, como un servidor de correo o una aplicación web.

Finalmente, si se refiere al código malicioso en general, generalmente un "Caballo de Troya", entonces lo que protege a Linux es principalmente la cultura. Linux es un sistema operativo poco utilizado, que ya limita su valor como objetivo. Pero cuando se agrega a eso el hecho de que los usuarios de Linux a menudo son excepcionalmente inteligentes y conscientes de la seguridad, disminuye aún más la probabilidad de un ataque exitoso. Si, por ejemplo, su plan de ataque se basa en convencer a un usuario para que descargue y ejecute un programa para infectarse, es mucho menos probable que convenza a su usuario promedio de Linux de hacerlo que a su usuario promedio de Windows. Por lo tanto, los autores de malware al elegir una plataforma para apuntar, van con el objetivo obviamente más fructífero.

tylerl
fuente
12

Linux tiene una comunidad geek altamente dedicada que trabaja para él. Incluso si se escribe algún malware, siempre hay una solución para ello.

ykombinator
fuente
55
Si las compañías antivirus ponen sus ojos en esta plataforma, entonces se puede emplear el mismo conjunto de geeks para trabajar en el desarrollo de virus. Después de todo, la industria de virus y antivirus es movida por dinero y no por verdaderos crackers / hackers.
Mahesh
@Mahesh Ahh, sabía que habría una teoría de conspiración aquí. (No digo que no sea cierto, solo llamándolo como es.)
jnewman
1
@ Josh, jaja. Tal vez te sientas así como la teoría de la conspiración, pero las personas que trabajan para catcom, ePC y muchas otras compañías de antivirus te darán una mejor idea. ;)
Mahesh
12

Hay muchos aspectos que contribuyen a esto:

  1. Ambiente heterogéneo
    • Hay muchos sabores diferentes y muchas configuraciones diferentes;
    • Incluso en la misma distribución, el rango de diferentes posibilidades es enorme;
    • Cada distribución proporciona múltiples núcleos, admite parches adicionales;
    • Cada gran empresa generalmente despliega su propio sabor del grano.
  2. Enfoque para los usuarios e historial de una fuerte aplicación de los derechos
    • Linux está naturalmente por delante en esta área debido a la larga historia de desarrollo orientado al servidor.
  3. Los virus son ineficaces
    • Linux es el sistema más instalado en todo el mundo, pero no hay muchas PC / computadoras de escritorio con Linux;
    • los ataques a servidores son mucho más eficientes cuando se dirigen;
    • Los ataques a sistemas integrados (enrutadores, televisores, etc.) generalmente no valen la pena debido a la funcionalidad limitada del sistema.
  4. El enfoque actual de los creadores de virus no coincide con el ecosistema de Linux
    • Los creadores van por lo que es más fácil.
  5. Los virus son mucho más difíciles de ocultar en Linux
    • Linux es un sistema abierto que expone toda la información, no es tan fácil ocultar algo.
  6. Fuente abierta
    • Aunque Microsoft podría afirmar lo contrario, tener miles de revisores para cada línea de código e incluso más personas capaces de reparar una falla de seguridad en varios segundos definitivamente afecta positivamente la calidad y la seguridad del código.
Déjame ser
fuente
3
¿"Linux es el sistema más instalado en todo el mundo"?
GeneQ
@GeneQ Por supuesto, ¿qué otro sistema sería? OK, para ser justos, no estoy considerando esos sistemas de SO súper específicos que se usan para chips embebidos producidos en masa (sí, algunos vienen con un SO real).
Let_Me_Be
2
Eso es de hecho incorrecto. La mayoría de los chips integrados no ejecutan ningún tipo de sistema operativo. Los sistemas operativos POSIX son comunes para servidores y para algunos tipos de teléfonos celulares, pero no para cosas como automóviles y televisores, que es de donde provienen las asombrosas estadísticas de que las computadoras pequeñas son mucho más comunes que las computadoras de escritorio.
Billy ONeal
5

Creo que el hecho de que Linux ejecuta principalmente software de código abierto es una gran ventaja aquí. Es mucho más difícil para alguien hacer cosas maliciosas en su sistema cuando alguien puede leer el código.

Si solo instala software desde los repositorios de paquetes oficiales de sus distribuciones de Linux, entonces es probable que esté mucho más seguro que en Windows, donde debe descargar ejecutables e instaladores aleatorios de la web para obtener su software.

Por supuesto, hay otras formas en que las personas pueden obtener código malicioso para ejecutar en su sistema, pero creo que vale la pena mencionar este punto de todos modos.

Jacob Stanley
fuente
2
El hecho de que el software sea de código abierto no lo hace inherentemente seguro. El código abierto puede ayudar a determinar si un diseño es seguro o no, pero el código abierto no hace nada para causar seguridad por sí mismo.
Billy ONeal
+1 Sí, por supuesto, el software no puede ser seguro simplemente porque es de código abierto, pero tener mucha gente capaz de analizar el código ciertamente ayuda. Por otro lado, diría que el software propietario es inherentemente inseguro porque es fácil para un desarrollador incluir malware en su software sin el conocimiento del usuario.
Jacob Stanley
5

La razón principal es que los geeks de Linux no son objetivos ricos.

El crimen organizado apunta a las personas que compran un sistema más simple con un escritorio y todas sus aplicaciones ya instaladas y conocidas. Y actualmente la gran mayoría de esas personas están utilizando Windows, lo que hace que Windows sea un objetivo mucho más rentable.

Si hubiera tanto dinero para ganar persiguiendo Linux, estoy seguro de que el esfuerzo masivo que hoy genera miles de nuevas variantes de virus y sitios web ficticios por día pronto también habría arrojado a Linux de rodillas. Y dado que Linux es de código abierto, los piratas informáticos ni siquiera tendrían que descompilar nada.

Para cada programador inteligente hay uno más inteligente, solo que ese es un pirata ...

harrymc
fuente
3
Estoy en desacuerdo con este. En los años 90, Windows tenía una gran diferencia en la cantidad de virus sobre Mac, pero todavía no se podía ganar dinero con los virus. Esto puede existir, pero como razón principal , no es válido.
Rich Homolka
@Rich Homolka: Según las estadísticas, Windows no tiene hoy más vulnerabilidades conocidas que otros sistemas operativos. La única diferencia que queda lógicamente es el hecho de que los hackers no se están concentrando en ello.
harrymc
2
Veo tu punto, Harry, pero no estoy de acuerdo con tu conclusión. Lo aterrador de los virus (tempranos) de Outlook es que Outlook funcionó exactamente como Microsoft lo había diseñado. No había "vulnerabilidad" en el sentido normal de ese término. El diseño fue simplemente un eficiente propagador de virus.
Rich Homolka
1
@ Rich Homolka: Tiene razón sobre el pasado y también puede enumerar ActiveX, BHO, Web DAV y otras estupideces de Microsoft. Sin embargo, un esfuerzo de varios años ha mejorado mucho la situación actual hasta el punto de que la seguridad es comparable con Linux. La mayoría de los ataques de hoy están orientados al navegador y requieren parches en todos los principales navegadores. Los nuevos ataques a los enrutadores son en realidad exploits de Linux.
harrymc
5
  • Sistema operativo multiusuario y multitarea
  • construido para vivir en el mundo de la red (no hay puertos RFC abiertos para mayor comodidad)
  • no hay tal cosa como ActiveX (buen vector para la contaminación)
  • También hay una buena separación del código de los datos de los archivos de configuración
  • Todas las aplicaciones y programas del sistema operativo están actualizados gracias a un repositorio central
  • no hay incentivo para visitar sitios desconocidos y descargar software desde allí
  • las actualizaciones ocurren cuando hay un problema para parchear, no "jueves negro"
  • la extensión de archivo no significa nada para el sistema operativo
  • Sin desorden oculto, como el registro
  • gracias a las separaciones de privilegios, incluso si obtiene "algo", es muy difícil sobrevivir a un reinicio (según las definiciones de un Virus)
chorro
fuente
Es trivial hacer que una aplicación, maliciosa o no, "sobreviva un reinicio" en Linux. Si obtiene root, puede insertar módulos, modificar el núcleo y agregar o modificar un script de inicio. Demonios, incluso si alguien solo compromete su cuenta de usuario, simplemente puede agregar algo a ~ / .bashrc que se ejecutaría cada vez que inicie sesión.
es trivial, pero dijiste "si", ¿verdad? Y buena suerte con eso
jet
Dijiste 'incluso si obtienes "algo", (sic) es muy difícil sobrevivir a un reinicio ", lo que implica que ya lo tienes. Entonces ya estás jodido. Juego terminado.
Sí, por ejemplo, el complemento flash secuestrado (Adobe cualquiera) y sí, el juego no termina a menos que navegue como root
jet
3

Hay un número creciente de personas que no saben mucho sobre computadoras (o que migraron desde Windows) a distribuciones modernas como Ubuntu, LinuxMint o Fedora.

Leerán cualquier guía o procedimientos y felizmente descargarán cualquier script o programa y lo ejecutarán como root o sudo. Estos pueden ser objetivos fáciles de troyanos. En efecto, creo que la seguridad del escritorio es difícil a menos que restrinja lo que los usuarios pueden hacer con sus computadoras.

Xolve
fuente
2

Los escritores de malware quieren un mercado objetivo más grande. Mucha más gente ejecuta Mac o Windows que Linux. Es como construir un sitio web: desea asegurarse de que funcione en los principales navegadores antes de ir a los menos populares.

Joshua
fuente
Creo que @BloodPhilia también tiene un punto excelente con respecto a las diferentes distribuciones de Linux. Sería muy difícil / lento desarrollar malware que pudiera adaptarse y extenderse efectivamente a través de las diferentes distribuciones de Linux.
Joshua
Linux es Linux. El mismo núcleo, las mismas bibliotecas centrales. El código malicioso es independiente de la distribución. Encontrar una manera de difundirlo realmente puede ser más difícil porque si un proyecto se ve comprometido y se agrega código malicioso a un paquete que se envía a los usuarios finales, solo afecta esa distribución. Algo tan simple como una bomba tenedor derribará la mayoría de las distribuciones de Linux. perl -e 'while(1){fork();}'
2

Una cosa que creo que la gente siempre ignora con las comparaciones de Linux / Windows es los usuarios, quiénes son y cómo piensan, actúan y reaccionan. Puede encontrar interesantes los Folk Models en papel de Computer Security .

Linux (casi) nunca está preinstalado. Como corolario, significa que (casi) todas las instalaciones se instalan por elección, por alguien que pensó lo suficiente como para elegir Linux sobre otra cosa, y por alguien que al menos sabe lo suficiente como para usar el instalador. Es útil tener un filtro de conocimientos informáticos mínimos antes de usar la computadora.

Por el contrario, Windows es la instalación predeterminada en la mayoría de las computadoras compradas. Puede tener cero habilidades y comprar una computadora con Windows y conectarla a Internet sin saber nada sobre virus, gusanos, troyanos, etc., y convertirse en un zombi muy rápidamente.

También me gustaría decir que no estoy "culpando a la víctima". Las computadoras son complicadas máquinas de estado infinito. La seguridad es dura. Pero el diseño también importa. Mac OS X realmente no tiene características de seguridad convincentes que lo hagan más seguro que Windows. También está preinstalado en los sistemas, lo que significa que cualquiera que pueda comprar una Mac lo hará funcionar sin importar su nivel de habilidad. Pero fue diseñado como un sistema, con una idea de cómo piensa el usuario e interactuará con el sistema. Esto reduce no los agujeros de seguridad, sino la probabilidad de que un usuario permita que sean explotados.

Rich Homolka
fuente