¿Cómo puede Linux estar seguro si permite contribuciones de código abierto del público?

4

Desde mi breve comprensión de Linux, los desarrolladores de todo el mundo envían un código para incluirlo en una actualización de Linux. Luego es revisado por los administradores de seguridad. Una vez aprobado, se pasa a Linus, el fundador de Linux para su aprobación final.

Con todo este código enviado por desarrolladores desconocidos en todo el mundo, ¿cómo pueden los administradores de seguridad asegurarse de que no se agreguen scripts de puerta trasera al sistema operativo? ¿No hay como 15 millones de líneas de código? ¿Los administradores del sistema operativo realmente entienden cada línea de código y saben con certeza que las personas no han enviado algo que pueda dañar el sistema, como malware, puertas traseras o software espía?

    
pregunta Michael d 12.05.2018 - 17:55
fuente

2 respuestas

12

No está entendiendo cómo funciona el desarrollo de software de código abierto. No solo cualquiera puede modificar el kernel, por lo que ningún "desarrollador desconocido de todo el mundo" está enviando misteriosas líneas de código. Para realizar cambios directamente, debe ser contratado por la Fundación Linux u otra organización que tenga acceso para cometer privilegios, no solo pasar una breve comprobación. Todos los demás solo pueden sugerir mejoras (a menudo en forma de un parche) en las listas de correo públicas, y esperar que los desarrolladores oficiales acepten sus sugerencias y realicen los cambios en su nombre. La revisión de los parches es bastante intensa y los parches a menudo tienen que pasar por muchas revisiones antes de ser aceptados, a veces con cada línea siendo criticada (a menudo por las cosas más triviales).

Esto no es tan diferente del desarrollo de código cerrado. Podría argumentar que cualquiera puede hacer modificaciones a Microsoft Windows simplemente buscando un trabajo en Microsoft. La única diferencia es que el software de código abierto es más transparente sobre su proceso de desarrollo.

  

Con todo este código enviado por desarrolladores desconocidos en todo el mundo, ¿cómo pueden los administradores de seguridad asegurarse de que no se agreguen scripts de puerta trasera al sistema operativo?

Todo lo agregado es revisado. La única forma de obtener una puerta trasera sería proporcionar un parche que se vea bien, pero que tenga un error explotable que usted sepa. Esto es posible, pero bastante improbable. ¡Los desarrolladores no necesitan ser maliciosos para introducir errores a tasas asombrosas!

  

¿No hay como 15 millones de líneas de código?

Más, en realidad. Sin embargo, una gran parte de esto es para controladores de dispositivos que nunca usarás. El kernel de Linux es monolítico, lo que significa que el código relacionado con el hardware se coloca en el kernel. El núcleo del núcleo en sí no es realmente tan grande. Solo se ve grande cuando cuenta el hecho de que también incluye código de controladores de micrófono de karaoke poco conocidos que ni siquiera están presentes en su núcleo.

  

¿Los administradores del sistema operativo realmente entienden cada línea de código y saben con certeza que las personas no han enviado algo que pueda dañar el sistema, como malware, puertas traseras o software espía?

No, aunque algunos administradores de sistemas particularmente conocedores tienen un buen conocimiento de cómo funciona el kernel internamente. Hay bastantes ojos en el código en el kernel de Linux en busca de errores. Es difícil para ellos todos ocultarse. Sí, es posible que se haya introducido un error de forma secreta (después de todo, se intentó y se eliminó una vez), pero la verdad dolorosa es que tales errores intencionales serían una gota en el agua en comparación con todos los errores que existen de forma natural que encuentran su camino. en una base de código tan enorme.

    
respondido por el forest 13.05.2018 - 00:56
fuente
7

TLDR : confías en las personas, sus credenciales y los intereses de las empresas para proteger sus infraestructuras.

Como vería en varios proyectos cerrados de código abierto, el proyecto se divide en partes más pequeñas que son manejadas por diferentes personas. A partir del último informe del kernel de Linux tiene alrededor de 1600+ desarrolladores y 24 millones de líneas. de codigo Por supuesto, no puedes esperar que todos los desarrolladores sepan todo. Pero puede elegir a las personas adecuadas para administrar, digamos su pila de red o su pila USB, etc. Eso es lo que hace Linux (puede leer más sobre eso en el informe).

Usted elige a las personas adecuadas para el trabajo y luego confía en ellas para que las hagan con prudencia. Si no lo hacen, existe otra línea de defensa en cuanto al número de personas y empresas que usan estos productos y tienen intereses creados en asegurar que su infraestructura o soluciones empaquetadas sean seguras. Así es como el software de código abierto a menudo obtiene sus parches. Las personas que lo usan encuentran errores y solo lo reportan o lo reportan y lo arreglan.

Es la naturaleza de código abierto de Linux la que proporciona tantas formas de proteger un sistema. Si fuera producido por una sola empresa, estaría colocando todos sus huevos en una canasta.

    
respondido por el Limit 12.05.2018 - 20:04
fuente

Lea otras preguntas en las etiquetas