Etiquetas
[Esta forma de pensar]… No es natural para los ingenieros. La buena ingeniería incluye pensar cómo hacer funcionar las cosas; la mentalidad de seguridad en cómo hacer que fallen.
Frase concisa y cierta del ensayo de Bruce Schneier The Security Mindset. No puedo estar más de acuerdo, conozco a unas pocas personas –algunas de ellas amigos míos– que piensan de esa forma tan «retorcida» desde mi punto de vista [de pobre ingeniero].
De esta lógica, que me parece razonable, se deduce: los buenos ingenieros/programadores harán programas valiosos, pero por su propia forma de pensar tendrán bugs de seguridad.
Moraleja: busca el consejo de unos cuantos amigos/programadores/empleados que tengan «mentalidad de seguridad», no vayas de chulo diciendo que tu software no tiene bugs hasta que lo hayan mirado y probado esos puñeteros retorcidos 🙂
Vaya, a mi que me decían que «le sacas fallos a todo», y ahora resulta que tengo «mentalidad de seguridad» :-p
No creo en la bipolaridad ingeniero/seguridad, creo que todos tenemos un cachito de cada.
¿Por qué en el título de la entrada pone «securidad»? ¿Un guiño al english? 🙂
#2, no, simple gilipollez del autor 😉 (gracias, corregido).
Muy cierto, yo fuiuno de esos, me obsecionaba tanto que mi programa fallará que tardaba mucho en ilberar la versión definitiva
¿Que no es natural esta forma de pensar en los ingenieros? Si puede dormir tranquilo entonces es que lo que dice no se lo cree ni él (centrales nucleares, por ejemplo). También puede decir que tampoco es natural para un matemático pensar en forma de ecuaciones diferenciales. ¿Pero para eso es estudia, no?
<>
Ufff. Pues no. Good engineering implica, al menos, tres cosas: reliability, security y safety. Él solo se conforma con reliability y además mezcla security con safety.
<>
Ah, bueno. Esto me recuerda mucho a los «gurús de la usabilidad» que vienen a decir que vaya mierda es la Informática porque para apagar el ordenador haya que dar a un botón de «Inicio».
La típica canción, ya escuchada miles de veces, que dice que es «arte y experiencia» lo que en realidad es ingeniería y rigor científico.
Pero bueno, de algo hay que comer, seas científico, ingeniero, o «gurú».
Para los que tengan interés en el tema: http://del.icio.us/asilvav/safety
Para los «gurús»: A seguir vendiendo el Monorrail de Springfield mientras podáis.
Perdón, perdón, perdón.
Primera cita:
«Good engineering involves thinking about how things can be made to work; the security mindset involves thinking about how things can be made to fail.»
Segunda cita:
«Described by The Economist as a «security guru»»
Faltaría apostillar, que aunque la tendencia del ingeniero sea hacer que algo funcione ya mismo, y eso provoque despistes en forma de bugs, eso no es excusa.
La cabra tira al monte sí, pero en cuanto hayh algo de tiempo, conviene mirar bien webs del estilo de https://www.securecoding.cert.org, y aprender a «no ser tan cabra».
No nos engañenos, los bugs son fallos, sean de funcionamiento, o sean de seguridad.
Muchas veces hay mucha prisa en hacer algo, y el diseño mismo permitirá fallos de seguridad. Cuando el tiempo aprieta, es inevitable. Pero los bugs insertados a la hora de programar, son fallos, son errores.
Tanto en la escuela de ingenieros como en la empresa, la consigna es: hazlo bien y rápido.
Hacerlo rápido y mal, chapuza.
Hacerlo despacio y bien, también es malo.
El ser humano comete errores, pero no por que tenga esa tendencia dejan de ser errores.
#7 Por supuesto que los errores de seguridad son errores, pero eso no significa que sean fáciles de evitar. De hecho cada vez es más difícil con las aplicaciones web y distribuidas (aunque los «frameworks» están ayudando mucho en evitarlas.
De todas formas hay que leer en ensayo, que tiene frases como:
«Teaching designers a security mindset will go a long way toward making future technological systems more secure.»
«If people can learn how to think outside their narrow focus and see a bigger picture, whether in technology or politics or their everyday lives, they’ll be more sophisticated consumers, more skeptical citizens, less gullible people.»
«If more people had a security mindset, services that compromise privacy wouldn’t have such a sizable market share»
«The security mindset is a valuable skill that everyone can benefit from, regardless of career path.»
Pingback: » Seguridad ante funcionalidad »
«Si un programa no tiene bugs, aún no es un programa»
Me gustó la frase que pusiste, la voy a anotar para tenerla en cuenta.
Aioz.-
¿Qué importa más, que hayan muchos ojos viendo el código, o que hayan muchos usuarios usando el programa?
Mmm… bueno yo tengo un profesor de una materia de programacion
en C y C++ que nos recomendo que luego de finalizar algun programa
hagamos un testing intentando hacer fallar al programa =/
Estudio ingenieria en informatica en el Instituto Universitario Aeronautico
(IUA) de Cordoba, Argentina.
Muy bueno su blog!
Saludos!
Pero hay errores de seguridad que con la práctica un buen ingeniero tiende a evitar, igual que prefiere algoritmos que ya sabe funcionan más rápido que otros (dependiendo del lenguaje). Por ejemplo en Python, concatenar cadenas de texto insertándolas en una lista y luego uniendola en vez de sumarlas directamente.
En la carrera se estudian muchas disciplinas, Ciencias de la Computación (es lo que verdaderamente a mi más me llamaba la atención, ufff, quizás por ahí (por la de ciencias aunque no de la computación) se daba la Trasformada de Fourier y si había poco tiempo para terminar la asignatura, la Transformada Rápida ;-)), Ingeniería Informática y en verdad no se estudia mucho sobre seguridad, aunque yo personalmente me haya interesado algo por el tema.
Cada disciplina pide un tipo de mentalidad y es evidente que no es lo mismo trabajar como Ingeniero en Informática en desarrollo que trabajar en seguridad. Pero no deja de ser algo anecdótico. Tampoco es lo mismo trabajar en la construcción del EuroFigter que trabajar en guerra electrónica o trabajar en el diseño de un avión de pasajeros.
Es ridículo sacar cuatro frases fuera de contexto. No entiendo tu aversión por los Ingenieros cuando te dedicas a dar clases en una facultad de Ingeniería, ¿quieres traer a todos tus compatriotas con un cursillo y homologarlos con una ingeniería española?. Porque no acabo por tener muy claro el objetivo de tu postura. Existen centros para formar a la gente en función a unas competencias, en unos centros se dan competencias técnicas, FPs, etc, en otros se dan competencias de Ingeniería Industrial, en otros de Ingeniería Informática, pero no acabo por entender tu postura y quién te ha colocado como profesor en esa facultad o qué es lo qué haces ahí si no apoyas la finalidad del centro en el que trabajas.
Pingback: Leído por ahí « Mundo Binario
Yo no entiendo ese afán de los ingenieros informáticos por cubrir todo el sector, de la cabeza a los pies.
A fin de cuentas, la seguridad informática es un campo tan amplio que formar a un buen auditor lleva años, prácticas, y muchas ganas. Es evidente que la carrera no puede durar 4 años dando solo seguridad, 4 años solo matemáticas, 4 años solo física…etc
Por ello, el nivel de matemáticas de un ingeniero informático, es mas bajo que el de un matemático, y de igual manera, el nivel de conocimientos en materia de seguridad, es mas bajo en un ingeniero que en un auditor de sistemas (independientemente de su titulación)
Lo peor de la historia es que la gente cree que existen pautas, trucos, o maneras de programar que te solucionan el tema de la seguridad de un plumazo, pero finalmente, la seguridad es una ciencia en continua y rápida evolución, donde lo que hoy es seguro, mañana no lo es, y solo se consigue la seguridad a través de un diseño seguro y de una forma de pensar proactiva.
Al final, pensar de forma retorcida no es tan fácil como mucha gente cree.
Ricardo, copié tu nota hacia mi blog.. 😉 Saludos y buen desarrollo..
http://www.erdm.com.ar/funciones/leer_nota.php?id=105
Pingback: Colega, let’s see the code « Ricardo Galli, de software libre