Para garantizar la calidad y la seguridad de un sistema, un lenguaje o una aplicación, a veces conviene pensar de forma diferente. Pensar más en “cómo podría fallar” y no tanto en “cómo podría funcionar”. Esta es la interesante tesis de este post sobre desarrollo ágil, surgido a partir de una reflexión de Bruce Schneier:
Los ingenieros de seguridad ven el mundo de una forma muy diferente al resto de ingenieros. En vez de centrarse en cómo funcionan los sistemas, se centran en cómo esos sistemas fallan; no sólo eso, también tienen que pensar en cómo otros pueden hacer que esos sistemas fallen y, por supuesto, en cómo impedirlo. Y es que la práctica totalidad de las “vulnerabilidades” de software ni siquiera aparecen en las operaciones más comunes. Sólo surgen cuando un “atacante” las aprovecha. Así que los ingenieros de seguridad necesitan pensar como los atacantes.
En ocasiones, la gente sin esta mentalidad cree que puede diseñar productos de seguridad, cuando en realidad no está capacitada. Y los resultados de esta ineficacia se pueden ver en muchos ámbitos: sistemas de encriptación fraudulentos, programas de software, protocolos de Internet, sistemas de votación, tarjetas, sistemas de pago, etc. Muchos de estos sistemas cuentan con un responsable de la seguridad, sí, pero ese responsable simplemente no es capaz de pensar como un “atacante”.