¿Cómo puedo confiar en los programas de código abierto?

Oct 17 2020

Tengo una pregunta sobre los programas de código abierto. ¿Cómo puedo estar seguro de que un programa de código abierto es seguro y no me está espiando? Por ejemplo, instalé Firefox en Linux y ¿cómo puedo estar seguro de que este programa es seguro? Es cierto que Firefox es de código abierto, ¡pero quién puede leer un millón de líneas de código !. Los usuarios que usan software de código abierto y confían en ellos porque son de código abierto y todas las personas pueden leer y examinar códigos, pero nadie lo hace. Supongo que algunas empresas y programadores abusan de esta mentalidad de los usuarios y pueden hacer cualquier cosa. Los programas de código cerrado no tienen ninguna confianza y creo que también es cierto para los grandes programas de código abierto.

Respuestas

7 MadHatter Oct 17 2020 at 03:49

Es cierto que el desarrollador de la aplicación original puede ser malintencionado: el famoso (y seminal, y también muy legible) artículo de Ken Thompson " Reflexiones sobre la confianza en la confianza " deja en claro cuán profundo puede llegar ese agujero de conejo. La seguridad absoluta es muy difícil de lograr y el software libre no es un remedio perfecto para esto. Pero entre la seguridad absoluta y la ausencia de seguridad hay un gran abismo, y no todas las ubicaciones en ese abismo son equivalentes.

Hay otras personas que podrían ser malintencionadas, contra las cuales el software libre puede ayudarlo a defenderse. Los desarrolladores comerciales pueden, y con frecuencia lo hacen, escribir software que sea, al menos parcialmente, contrario a los intereses de sus usuarios. No tiene forma de saber qué está haciendo ese software, ciertamente nada tan fácil como examinar el código fuente, por todo lo que es difícil.

Hay muchas otras personas, además del desarrollador, involucradas en el empaquetado y la cadena de distribución de software que podrían desearle mal, y aquí también el software gratuito puede ayudar. El movimiento Reproducible Builds tiene como objetivo permitir que las personas independientes de los distribuidores creen software a partir de las fuentes proporcionadas; A continuación, puede comparar las sumas de comprobación de sus binarios con las que producen, para tener una mayor confianza de que el software que está ejecutando es de hecho una representación fiel del código fuente al que tiene derecho.

Entonces no, el software libre no es perfecto. Pero es mucho mejor que ejecutar un binario aleatorio que viene en un CD-R con la extraña cámara web que acaba de comprar en Internet.

1 peterh Oct 17 2020 at 02:59

Usted no puede ser.

La única diferencia es que con un software de código abierto, existe al menos alguna posibilidad de que se revele una puerta trasera. En el caso de código cerrado, la probabilidad es cercana a cero (tal vez si el productor más honrado comete un error ).

Tenga en cuenta que, en realidad, buscar agujeros de seguridad en un software es una habilidad diferente a desarrollarlo, por lo que la complejidad del código no lo defiende contra una auditoría de seguridad con tanta fuerza como pensaríamos con los ojos de un profano. Hay muchos trucos para usar, por ejemplo, verificando siempre las diferencias del código o usando varias herramientas de software para verificar posibles vulnerabilidades y luego analizarlas con el cerebro humano.

Lo que podría funcionar, si usa una combinación de software de código abierto donde romper su sistema, es necesario romper ambos. Por ejemplo, al usar una aplicación de código abierto en una máquina virtual, para descifrar su máquina host, es necesario descifrar tanto la máquina virtual como la aplicación.