| Kriptópolis alojado en |
| Zilos-Veloxia Network |
| Tu mejor defensa: |
| Bufet Almeida |
Si te importa tu seguridad, mejor abierto
Por José Manuel Gómez
Después de nuestra "Primera Campaña por la implantación del software abierto en la Administración" (una iniciativa que ahora puede parecer antediluviana, pero que en 2001 era tan necesaria que fue enseguida apoyada por la Asociación de Internautas), no pensaba a estas alturas tener que escribir una sola palabra más sobre esto, pero en los últimos tiempos leo algunas opiniones en contrario que no son rebatidas, y me ha parecido que existe cierto riesgo de que una mentira mil veces repetida se acabe tomando como verdad.
Podemos clasificar las vulnerabilidades del software de mil formas distintas, pero una clasificación tan válida como las demás sería distinguir entre vulnerabilidades involuntarias y voluntarias...
Puesto que errar es humano, no existe ningún software totalmente libre de bugs involuntarios. Errores en el diseño o la implementación pueden dar al traste con las mejores intenciones del equipo de desarrollo, y manifestarse más o menos pronto en forma de desbordamientos de búfer, errores de validación de entradas, etc. Si bien estos errores son -por definición- involuntarios, la revisión del código por miles de ojos puede minimizar su número e importancia, en mucha mayor medida que cuando la revisión se limita al propio equipo de desarrollo. Una interesante experiencia en la captación y reparación de este tipo de errores, que a mi modo de ver confirma lo antedicho, ha sido el reciente trabajo realizado por Coverity con el patrocinio del gobierno norteamericano, que condujo a la solución de 900 bugs en diferentes aplicaciones de código libre en tan sólo dos semanas.
Pero si ya parece claro que la exposición pública del código facilita la detección y corrección de errores de programación involuntarios, es en el campo de los errores voluntarios (es decir, malintencionados o malware) donde esa realidad se hace totalmente evidente. De hecho, si existe desconfianza sobre el software de Microsoft no es por la sospecha absurda de que Bill Gates sea El Anticristo (bueno algunos sí ;), sino porque nadie (ni siquiera muchos de quienes trabajan en Microsoft) sabe lo que pueden hacer los 40 millones de líneas de código de Windows. Si se desconfía de Skype es por idéntica razón, y si muchos preferimos Firefox a Opera ahí tienen también el motivo.
El código oculto, cerrado, genera desconfianza. A diferencia del código abierto, el código cerrado puede contener casi cualquier cosa y realizar casi cualquier acción. La ocultación del código es fuente segura de beneficios, pero el coste es la desconfianza.
Esto no lo digo sólo yo, sino que lo reconocen las propias compañías de software. ¿Qué hizo Microsoft para vencer las reticencias de los gobiernos a utilizar su software? Enseñar parte del código a sus respectivos organismos de seguridad e inteligencia. Mostrar el código elimina desconfianzas en la misma medida en que ocultarlo las genera y Microsoft lo sabe perfectamente.
¿Quieren un ejemplo más reciente? Como se informó hace poco en Kriptópolis, Panda Software detectó spyware (es decir, un tipo de software malintencionado que daña la seguridad y privacidad del usuario a propósito) en el navegador Browsezilla. ¿Cuál fue la reacción instantánea de Browsezilla ante una acusación tan grave? Mostrar parte de su código. Es cierto que ni siquiera así han logrado recuperar la confianza de los usuarios informados, pero su actitud instintiva confirma de nuevo la ecuación: Cerrado=Desconfianza, Abierto=Tranquilidad.
Señores: si el código puede ser examinado por cualquiera, 1) aumenta exponencialmente la posibilidad de que se descubran y reparen los errores involuntarios (mil ojos ven más que dos) y 2) disminuye en igual medida la posibilidad de que el software ejecute acciones maliciosas o indeseadas.
Por tanto (en mi opinión, que he tratado de argumentar), el código abierto sí es más seguro que el código cerrado.
Algunos pensamos -además- que el código libre es mucho mejor que el propietario (aunque sólo fuera desde el punto de vista de su utilidad social), pero ése es sin duda otro debate... ¿O no?



Cuidadito, el software abierto no es la panacea.
Si el código puede ser examinado por cualquiera también aumenta exponencialmente la posibilidad de que los hacker encuentren agujeros de seguridad lo que facilitaría que los ataques fuesen más efectivos.
No es sencillo que un mismo software funcione bien en dos distribuciones de Linux distintas. Por curiosidad, ¿conocemos a alguna persona que de dedique a depurar un kernel de Linux en sus ratos libres?
También hay mucho software libre que no alcanza el nivel del software propietario, por ejemplo en bases de datos empresariales (datawarehouse) o programas de sonido (QBase, Logic, etc...). Otro ejemplo más claro, ¿utilizaríamos un antivirus que no estuviese respaldado por una compañía por muy software libre que fuese (susceptible, por tanto, de ser más fácilmente atacado)?
Todo tiene sus pro y sus contras, pero que no nos ciegue la pasión. En la Administración Pública donde -digamos- el 70% del trabajo es procesador de textos, hoja de cáculo, base de datos y correo electrónico el software libre sería un gran ahorro.
Nota al margen: Bien por Panda por detectar un spyware en un software ajeno. Pero me gustaría más que su antivirus detectase los troyanos con la misma efectividad (hay algún falsos positivos y muchos falsos negativos -y lo digo por experiencia propia-).
_______________
Nada aquí, nada
del otro lado.
Nada.
_______________
Con lo que hay que tener cuidao es con Windows
Me parece una idea equivocada. El código de cualquier software abierto que "merezca" ser atacado habrá sido examinado por cientos o miles de programadores. La posibilidad de que alguien sea más listo que todos ellos es mucho menor que en el caso de un software cerrado, donde sólo lo habrá examinado el personal involucrado en el proyecto, quien muchas veces a su vez desconoce el código de otras aplicaciones con las que ese software interactúa. Por otro lado el fuzzing es una buena muestra de por dónde van los ataques hoy en día.
No personalmente, pero me consta que existen cientos. Lo que sí conozco es gente que encuentra agujeros enormes en Internet Explorer sin conocer una sola línea de su código.
Correcto.... siempre que no nos ciegue en ningún sentido. Y me temo que la pasión ciega -y mucho- el entendimiento de quienes critican el software libre porque no lo comprenden. En cualquier caso yo me he limitado a defender mi opinión sobre por qué pienso que es más seguro el código abierto.
Yo lo hago. Ahora mismo uso ClamAV y me sobra, porque en Linux no existe toda la porquería que inutiliza a los Windows con el paso del tiempo. También uso Windows, pero sin conexión a Internet.
José Manuel Gómez
Editor - KRIPTOPOLIS
Exponencialmente, esa es la palabra justa.
¡Por supuesto! Cuando todo el mundo puede revisar el código, tal como dices, la probabilidad de que un hacker (un especialista informático para los que no conocen bien la jerga) localice los agujeros de seguridad. En lo que te equivocas es en que eso facilita que los ataques sean más efectivos. Al contrario, eso facilita que los errores se descubran corrijan.
Veamos dos maneras diferentes de reaccionar ante el descubrimiento de un problema de seguridad:
Pero casi todo lo que dijiste es cierto: cuánto más a la vista esté el código, más rápido será encontrar agujeros de seguridad. Es algo bien sabido (http://es.wikipedia.org/wiki/La_ley_de_Linus). Te faltó agregar que cuanto más rápido se encuentren los problemas, más rápido se solucionan. Siempre y cuando la licencia permita hacer modificaciones si necesidad de esperar a que el propietario del copyright tenga tiempo o deseos de repararlo.
Y esto último no es una opinión, sino una observación de lo que ha ocurrido desde que existe el software libre.
Alejandro Nestor Vargas
¿QBase?
Se asume que te refieres a Cubase.
Tanto Cubase como Logic comenzaron a ser desarrollados en tiempos del Commodore 64. Es decir, que en este caso la discusión no es abierto contra cerrado, sino veinte años de desarrollo contra menos de cinco (desde que ALSA y JACK están disponible en Linux, en particular.)
Hoy en día son muchos los usuarios de Ardour que lo consideran superior a Pro Tools para muchas tareas de edición de audio. Que para cuando Ardour lleve veinte años de desarrollo será monumentalmente superior a sus maestros comerciales es algo de lo que no puede caber duda. Siempre existirán plug-ins de algoritmo cerrado que no tendrán parangón en el mundo libre, pero sólo a grandes estudios profesionales les rentará adquirirlos.
De acuerdo y en desacuerdo
El software libre da más seguridad pero no tiene porqué ser más seguro, mil ojos no tienen porque ver más que dos (que no son dos, una empresa grande de software tiene más de un empleado ;P), eso es como decir que por decir mil personas que una pared es negra, tienen más razón que yo, que digo que es blanca.
Además lo que se hizo con Linux, gcc etc lo puede hacer cualquier empresa de software, se llama auditar software y no hace falta que sea software libre, pagas y ellos te lo revisan, ni más ni menos, y para eso ningún loco se va a mirar el código entero, vamos el que se crea que de verdad se han mirado todo el código fuente vive en el mundo de yupi. Lo que se utiliza es la regla 80-20 (o 20-80 da igual), que viene a decir que el 80% de los fallos se concentran en el 20% de los módulos, y eso es lo que miran, el 20% del código, obviamente siguiendo ciertos criterios para seleccionar los módulos más propensos a errores.
Lo de que da más seguridad, más confianza, es indiscutible, pero que por eso sea más seguro es perfectamente discutible. También es verdad que al ser abierto es más fácil encontrar los bugs, para bien y para mal (no todos son buenos samaritanos que informan inmediatamente del bug al equipo de desarrolladores o directamente proporcionan un parche, habrá quien se lo calle y se dedique a explotarlo) como dice UnAlien. Si se encuentran más bugs en IExplorer es porque compensa más dedicarle esfuerzo pues tiene más cuota de mercado, igual que a Window$. Aunque no dudo que de disponer del código podría ser terrible.
JMG, no te engañes, esos cientos de programadores si ven el código es porque trabajan en alguna parte de él, sino olvidate, te puedo asegurar que si algo odia un programador es revisar y probar código, hacerlo sin que te paguen molesta, pero es que tener que ver código de otro eso ya es un castigo. Por eso, entre otras cosas, se intentan seguir metodologías de forma extricta, porque si esperas que un programador lo haga por gusto vas bueno.
Asociar calidad o seguridad con software libre es totalmente incorrecto, el software es bueno si se hace bien, y auditar software lo puede hacer cualquiera, lo que da el software libre es libertad, unas licencias que otorgan muchos derechos y pocas restricciones y por supuesto la confiabilidad de poder ver el código (lo cual no implica que sea más seguro, no mezclemos). Además como muchas veces es gratis puede implicar un gran ahorro.
Y esto no es que lo diga yo, es que también he asistido a una conferencia larguilla de Stallman, y he leido algunas entrevistas y articulos suyos y JAMÁS dice que el software libre sea mejor o más seguro que el privativo, simplemente que es "mejor para el usuario" en el sentido de que es libre, que te dá libertad, y es lo normal, ese tio sabe de informática y afirmar que tiene mayor calidad simplemente por licenciarlo bajo GPL, BSD etc sería mentirse a sí mismo, una licencia es una licencia, ¡nada más! Esto ya parece una religión, demasiada fé ciega.
el saber nos hace libres
Apaga y vámonos
Buf, menudo retruécano.
Vale; entonces apaga y vámonos.
Sí, y no me digas más: los talibanes con el software libre ¿a que sí?
(Por cierto, mezclas ambos conceptos -abierto y libre- con demasiada alegría)
José Manuel Gómez
Editor - KRIPTOPOLIS
Habrá que apagar
1) Dar más seguridad no significa que sea más seguro, da más seguridad en el sentido de que permite inspeccionarlo, eso da seguridad, entendiendo seguridad como confianza, pero no significa que sea más seguro, no tiene nada que ver, no confundas "dar seguridad" ("dar confianza") con "ser seguro" porque son conceptos totalmente diferentes. ¿Es lo mismo que 10000 pruebas no detecten errores a que no haya errores? Las 10000 pruebas dan seguridad, pero no significa que el software sea seguro. Me baso en una conocida frase de Dijkstra y en lo que aprendí de pruebas de software, ¿en qué te basas tú?.
2) Pues apaga, porque medio mundo decia que la Tierra era plana mientras unos pocos decían que era redonda y los quemaban en la hoguera, lo que importa no es la cantidad, sino la calidad, ;).
3) Los talibanes no, pero a veces hay personas que hablan sin conocer bien de lo que están hablando, no es que sea malo (ojalá fuera verdad que el S.L. es siempre mejor) pero tampoco va a ser verdad porque se diga mil veces.
4) Voy a releer pero me parece que no es con tanta alegría. Gracias de todas formas.
el saber nos hace libres
Ya me he fijado
y en mi último post (al que me respondiste) sólo digo "abierto" en lugar de "libre" en una ocasión, y considero que lo hago correctamente, ya me dirás a que te referías.
el saber nos hace libres
Las cosas en su sitio.
¿De verdad que hay cientos o miles de programadores revisando el código de los miles de paquetes de una distribución Debian, por decir una de las que más incluye? ¿Cómo es posible entonces que se detecten tal número de errores en las aplicaciones como dice el Coverity? ¿No será que una empresa aplicó técnicas y herramientas de ingeniería del software para detectarlos?
Hablando de técnicas de detección de errores, ¿cuáles utiliza esa legión de programadores? ¿De verdad se realizan pruebas de regresión o alguna otra o simplemente leen el código al albur como en los años 70 esperando ser noticia en los telediarios?
¿Y cuántos millones de líneas de código tiene un kernel y quién tiene narices de probarlo sin herramientas especializadas y sin el uso de técnicas formales? No se trata por tanto de quién es más listo, sino de quién dispone de los recursos necesarios para llevar a cabo esa momunental tarea. Y este problema se agrava cuando los desarrolladores están dispersos.
Hace años no había virus en Linux y ahora sí. Me pregunto si esto no tendrá que ver, entre otras cosas, con el porcentaje de uso en la población. Si tienes un antivirus con código abierto es tu problema: yo desde luego no estoy dispuesto a que cualquiera pueda revisar las reglas de detección y las heurísticas que usa un antivirus para facilitar la creación de un malware indetectable.
No utilizo Explorer sino Firefox. Pero ya que sale el tema: hay una pléyade impresentables intentando buscar fallos en todas las aplicaciones de Microsoft (el 666 empresarial) para, una vez más, cubrirse de gloria cibernética. Se revisa con lupa todo lo de Microsoft, por tanto pongamos las cosas en su sitio.
Tengo instalado en mi PC WinXP, Fedora, Suse y Mandriva (con Debian tuve bastante problemas con drivers y desistí), por tanto no me ciega la pasión. Conozco el software libre porque lo uso y lo estudié. Y por eso mismo critico aspectos que considero deficientes con la misma honradez que pueda hacerlo otra persona en sentido contrario. No me gustan los fundamentalismos pero veo bastante de eso entre los defensores a ultranza del SW libre y entre los evangelistas de Microsoft (como hace años lo había con los Macs de Apple)
Con respecto a "Qbase" (Cubase) creo que queda patente que hace años que ya no lo utilizo de ahí mi lapsus. Estoy de acuerdo que dentro de unos años cubrirá las expectativas de un usuario doméstico (si no lo hace ya); pero a nivel profesional siempre estará al menos un escalón por debajo.
_______________
Nada aquí, nada
del otro lado.
Nada.
_______________
Si tienes un antivirus con
Pues lamento decirte que no me supone problema alguno. El problema me lo suponían los antivirus caros y malos que tenía que usar por obligación para "proteger" mi Windows, cuando ése era mi sistema preferente.
José Manuel Gómez
Editor - KRIPTOPOLIS
Opinar