Diseño Seguro

| Sin comentarios | Sin trackbacks

Bruce Schneier, escribe sobre la necesidad de diseñar el software pensando en la seguridad desde el principio.

El ejemplo planteado por Schneier es interesante, se trata de djbns, un servidor DNS que no sufre de la grave vulnerabilidad que está atacando a otros servidores DNS, porque fue diseñado desde el principio pensando en que podría ser objeto de toda una clase de ataques, de los cuales el "Ataque Kaminsky" sería un caso particular.
Daniel J. Bernstein, el autor de djbns, estudió la seguridad del DNS, y con eso pudo diseñar su software en forma segura.

Pero, como hemos discutido muchas veces, el software evoluciona, y es por eso que surgen bugs y problemas de seguridad, tal como el caso de la vulnerabilidad DNS detectada por Kaminsky.

Schneier tiene razón, parchar a gran escala no funciona bien, es caro, ineficiente, y toma mucho tiempo, a pesar de todos los empeños. Si usaramos un "diseño inteligente"1, consideraríamos los aspectos de seguridad desde el principio.

bug.jpg

Nos encantaría que todos los desarrolladores de software, siguieran los consejos de Schneier. Pero el software debe adaptarse a su entorno, para poder sobrevivir. Estas adaptaciones incluyen las modificaciones por "las necesidades del negocio", la presión por terminar en plazos ajustados, con presupuestos insuficientes, o se le exige al software ser flexible, al grado de se llega a exigir la capacidad de nuevas características casi todos los días. También ocurre, que entender como funciona el software es algo que toma tiempo, incluso para los mismos que lo hemos diseñado.

Esa es la paradoja, nos gustaría creer que existe un diseño inteligente, porque sería más facil entender la vida, pero no es así, por más que queramos, la vida sigue las reglas invisibles de la evolución. Del mismo modo, en el diseño del software, aunque tenemos más libertad, y somos como pequeños dioses que podemos dictar la arquitectura completa de nuestro software, este sigue las reglas invisibles de la evolución del software, similares a las que dictan la evolución de la vida.

Por supuesto que no todo es "azar y necesidad", y el ejemplo del trabajo de Bernstein es algo que debemos estudiar, e incorporar en nuestros diseños.

No, el diseño inteligente tampoco existe en software, pero al menos podemos aspirar a un diseño más seguro.

[1] Esta nota estuvo a punto de titularse "diseño inteligente", pero me rehuso a darle la más mínima ayuda a los que promueven la ignorancia .

Sin trackbacks

URL de TrackBack: http://www.lnds.net/cgi-bin/mt-tb.cgi/2125

Escribir un comentario

Sobre esta entrada

Esta página contiene una sola entrada realizada por Eduardo Diaz y publicada el 29 de Julio 2008 11:43 PM.

Ironía es la entrada anterior en este blog.

Linux Una Historia "Real" es la entrada siguiente en este blog.

Encontrará los contenidos recientes en la página principal. Consulte los archivos para ver todos los contenidos.

BloGalaxia website stats