¿Es posible tener un software de seguridad de código abierto?

El temor sobre OSS es que el código abierto podría leerse y comprometerse. Pero en la práctica, las personas que realmente rompen el software no tienen necesidad de mirar el código fuente. Ambos tipos de código de código abierto o cerrado podrían traer amenazas de seguridad a un producto de acuerdo con la cantidad de errores de los desarrolladores.

Hay algunos tipos de errores que causan amenazas:

  • sin tener en cuenta las pautas de seguridad;
  • falta de procesos de validación de datos;
  • usando contraseñas fáciles;
  • configuración incorrecta del software;
  • ausencia de técnicas de encriptación de datos.

Si el proyecto de código abierto tiene éxito, puede ser rentable para el equipo que lo respalda. Los desarrolladores de la comunidad OSS están interesados ​​en proporcionar un producto de alta calidad sin errores ni fallas.

Con los equipos de OSS puedes: participar en la revisión del código; seguir con la versión anterior; lanzar su propio parche; deshabilitar ciertas funciones bajo sospecha.
Cada parte del software (propietario y de código abierto) es única, y debe considerar su seguridad individualmente. También descubra las herramientas utilizadas en la industria; Por ejemplo, Airbnb y 500px utilizan Ruby on Rails, lo que indica la confiabilidad del marco.

Puede encontrar más información sobre los mitos de seguridad de código abierto en el artículo https://rubygarage.org/blog/open… en el blog de RubyGarage.

El consenso durante unos veinte años ha sido que no solo es posible, sino que es realmente necesario. Si el software es de código cerrado, no hay forma de verificar que haga lo que dice.

De hecho, historia rápida. Uno de mis primeros trabajos fue con el software de informe de problemas y se creó sobre una base de datos bastante oscura que ya no está en circulación. Uno de nuestros clientes tuvo una falla catastrófica, pero cuando intentaron restaurar sus copias de seguridad diligentes, el software arrojó un montón de errores de varios tipos.

Revisamos nuestro código y descubrimos que esto sucedería en todas partes y que estaba sucediendo en el nivel de restauración de la base de datos. Entonces, llamamos a su gente de apoyo.

Ese tipo se queja de necesitar pruebas, así que le doy un ejemplo. Él pasa por culpar a todo lo demás antes de finalmente decidir que este es un problema de seguridad. ¿Seguridad? Bien, como sea, ¿cuál es la solución? Nos dice que entrará en la cola y escucharemos algo en unos meses cuando planeen la próxima versión.

Obviamente, eso era inaceptable, así que le pregunto (en un teléfono con altavoz, en mi propia computadora) qué puede decirnos sobre los formatos de archivo. Quiero decir, si no van a hacer nada al respecto, tal vez podamos hacerlo. Nos da algunas líneas sobre no divulgar información porque los “piratas informáticos” podrían usarla para … No sé, tal vez estropee la capacidad de alguna empresa para restaurar desde una copia de seguridad. Mientras está pasando por esto, estoy mirando el directorio de la copia de seguridad y verifico los formatos de archivo manualmente (el comando de file , si eres una persona de UNIX o Linux), y todos surgen de algún tipo de “archivo de cinta”.

Mientras uno de los otros muchachos está tratando de impulsar esto, hago la conexión y me digo sobre todo a mí mismo: “¡Vaya, todo esto es solo un archivo tar de & ^% $!”.

En ese momento, la línea se cortó por un par de segundos, y nuestro tipo de apoyo regresa, lo juro, preguntando temblorosamente, “¿quién te dijo eso?”

Cuando alguien oculta cómo manejan la seguridad, confían, al menos en parte, en que los atacantes (o las personas que intentan arreglar las cosas) son demasiado vagos para investigar. La mayoría de los sistemas de ese tipo se desmoronan tan pronto como lo hace. Debido a eso, incluso las organizaciones más reservadas generalmente le dirán al menos los algoritmos que están utilizando y a menudo apuntarán a una implementación de referencia que usaron como punto de partida.

Sí. Muchos dirían que también es una gran idea. Tener muchos ojos en un proyecto es bueno para la calidad.

La seguridad de un producto no debe provenir de su oscuridad / propiedad. Debe provenir de un buen modelo de seguridad y algoritmos seguros. Por ejemplo, el cifrado que requiere mantener el algoritmo en secreto no dura mucho tiempo contra los criptoanalistas, pero los algoritmos fuertes con claves fuertes sí lo hacen.

Agregando a lo que dijo Victor Chaves. No solo es posible tener un software de seguridad de código abierto, sino que lo más probable es que lo esté utilizando e interactuando con él. OpenSSL es un buen ejemplo, los otros son la pila de seguridad de Java (ya que Java es de código abierto), posiblemente incluso con Android también.

Otros buenos ejemplos son las bibliotecas de bouncycastle en Java y, por último, pero no menos importante Let’s Encrypt: certificados SSL / TLS gratuitos para certificados SSL / TLS gratuitos y herramientas para administrarlos.

Gracias por el A2A, pero parece que muchos ya han respondido su pregunta aquí.

Creo que es posible y, como otros han señalado, ya hay algunos disponibles. La verdadera pregunta aquí puede ser cómo evitar que alguien diseñe una puerta trasera para su propia agenda de spam o malware y distribuya esta versión de falsa seguridad a usuarios desprevenidos, o, en general, ¿alguno de nosotros es realmente seguro? Si existe un protocolo de seguridad que no puede ser finalmente derrotado o burlado, creo que los gobiernos mundiales estarían especialmente interesados ​​en esa tecnología, y dudo que sea de código abierto. Hace poco leí un artículo en el que una agencia gubernamental ha desarrollado un algoritmo para descifrar prácticamente cualquier protocolo de cifrado: la NSA puede superar casi cualquier tipo de cifrado

Si considera OpenSSL como software de seguridad, entonces sí, es posible tener proyectos de seguridad de código abierto.

Espero que ayude 🙂

¡Sí, e incluso si lo haces desde un punto de vista comercial con propiedad intelectual!

Sí e incluso si lo haces desde cualquier punto con un lugar espiritual.