Es increíble pensar que hace apenas 20 años pensábamos en los dispositivos inteligentes como un sueño en el horizonte, y hoy, todo, desde los smartphones y los relojes hasta los frigoríficos e incluso las puertas, tienen CPU y comparten información a través de la red. Pero bueno, vivimos en el mundo del Internet de los objetos, así que más vale acostumbrarse.

Este nivel de interconectividad ha transformado nuestras vidas, en muchos aspectos para bien y en otros para mal. Uno de los nuevos retos del mundo digital es que la conectividad puede ser explotada y la información o los sistemas que deberían ser privados pueden ser secuestrados o robados. Se podría decir que por cada puerta de nuestra red hay una puerta trasera esperando a ser encontrada.

Para ser justos, la piratería informática no es particularmente nueva, y la gente que encuentra fallos que pueden ser explotados es una práctica tan antigua como el primer ordenador.

Pero es innegable que se ha producido un aumento de la delincuencia informática. Uno de los primeros estudios sobre el tema predijo que para el año 2025 la ciberdelincuencia supondría más de 10 billones de dólares en pérdidas en todo el mundo, y hasta ahora la predicción se ha acercado demasiado.

Además, con el aumento de la popularidad del trabajo a distancia, las empresas deben confiar en la conectividad para seguir siendo competitivas en el mercado actual. Por ello, es primordial que su información y sus sistemas estén protegidos contra las intrusiones, y ahí es donde entra en juego la seguridad por diseño.

Dos enfoques de la ciberseguridad

Imagina que alguien entra en tu casa y roba algunos objetos de valor en mitad de la noche. Al día siguiente te das cuenta de que alguien ha forzado la cerradura de tu puerta principal, así que decides contratar a un cerrajero para que la refuerce con una cerradura más fuerte.

En este caso, la conciencia de tu seguridad se dispara por el hecho de que alguien ha aprovechado una vulnerabilidad de tu sistema de seguridad. Hasta este momento, tu puerta ha sido perfectamente utilizable, por lo que no había razón para dudar de su eficacia.

Ahora, cambie su casa por uno de los sistemas de su empresa, la cerradura por un protocolo de seguridad y el cerrajero por un consultor de ciberseguridad y tendrá en sus manos lo que llamamos “ciberseguridad reactiva”.

Es reactiva en el sentido de que cualquier cambio que hagas en tu sistema se hace en respuesta a un ataque de un agente externo. Esto es lo que suele ocurrir cuando una empresa se da cuenta de que ha habido una fuga de datos porque encuentra pruebas de sus bases de datos publicadas en la web.

Por el contrario, la ciberseguridad proactiva es la filosofía de que la seguridad debe estar al frente y en el centro de su proceso de desarrollo, y que una parte importante de las pruebas de su proyecto es tratar de encontrar las vulnerabilidades y los exploits que podrían conducir a violaciones de la seguridad.

No importa lo minucioso que seas al crear el software, siempre existe la posibilidad de que se encuentre un exploit en el futuro. Puede ser cualquier cosa: una línea de código incorrecta, un desliz en la arquitectura, un error en una biblioteca importada o una puerta trasera en el código original, como lo que ocurrió con PHP.net.

En otras palabras, ninguna seguridad proactiva garantizará un producto a prueba de balas, pero es innegable que tener una buena metodología de seguridad minimizará los riesgos considerablemente.

Diseño para la seguridad

La seguridad por diseño es un enfoque del desarrollo de software que integra las mejores prácticas de ciberseguridad en todo el ciclo de vida del desarrollo. Se trata de una ciberseguridad proactiva en su máxima expresión, que adopta la idea de que el diseño y la actualización de los sistemas de seguridad es un proceso interminable.

En el centro de este enfoque está la idea del desarrollo continuo. Implica que con cada paso del proceso de desarrollo se implementan nuevos sistemas y se prueban continuamente los antiguos. Al igual que en el caso de Agile, se quiere fallar mucho y rápido. Cuanto antes se encuentre un exploit, más rápido se podrá parchear.

Si la idea es minimizar los fallos que comprometen la seguridad, se necesita un conjunto de directrices y prácticas que ayuden a los desarrolladores a evitar esos fallos y a encontrarlos cuando inevitablemente se les escape alguno. He aquí algunos ejemplos de cómo adoptar la seguridad por diseño:

Tecnología de confianza utilizada: es difícil resistirse a la tentación de utilizar la última tendencia para nuestro proceso de desarrollo, pero hay una razón por la que los bancos y los gobiernos son extremadamente lentos a la hora de actualizar sus sistemas: confían en tecnología de confianza que ha superado la prueba del tiempo.

“De confianza” no significa necesariamente que sea antigua. Cuanto más tiempo lleva algo en el mercado y más popular es, más probable es que atraiga la atención de los ciberdelincuentes. En este sentido, por confianza nos referimos a la tecnología que ha sido probada y verdadera, cuyos propietarios son abiertos acerca de sus prácticas de seguridad y que su equipo conoce al dedillo.

Forme a su equipo: Un equipo de desarrolladores que conozca las amenazas y los exploits encontrados en proyectos similares será más cuidadoso a la hora de crear software. Además, muchos desarrolladores que son creativos y tienen mucho talento carecen de conocimientos sobre prácticas de seguridad. Por ello, enseñarles estrategias como los principios OWASP SbD es un beneficio para ellos como profesionales y para su empresa.
Privacidad al frente y al centro: El GDPR cambió el panorama del desarrollo de software y ha traído un enfoque más consciente del manejo de los datos personales. Una de las mejores prácticas es partir de la idea de que los datos personales son privados y construir su seguridad en torno a esa noción.

Cree controles de seguridad para acceder y compartir los datos personales, asegúrese de que la base de datos esté lo más aislada posible y mantenga el acceso al mínimo.

IA y comprobaciones manuales: realiza comprobaciones rutinarias de tu código, comprobando las posibles vulnerabilidades. Existen excelentes herramientas que pueden comprobar el código en busca de errores y exploits. Otro enfoque es hacer que tanto los probadores internos como los consultores de seguridad revisen el proyecto para tratar de encontrar posibles riesgos de seguridad.
Buenas prácticas de diseño: el código espagueti, la tecnología heredada y la deuda técnica hacen que los proyectos sean más difíciles de mantener y parchear cuando se detecta un fallo de seguridad. Mantener el proyecto limpio y organizado ayuda a los desarrolladores a detectar posibles amenazas y a corregir las vulnerabilidades encontradas en el futuro.

¿Por qué necesita la seguridad por diseño?

Parchear un riesgo de seguridad es mucho más fácil y barato en condiciones controladas, cuando su equipo de desarrollo puede tomarse el tiempo necesario para probar diferentes soluciones y ajustarlas según sea necesario hasta que estén satisfechos. Se trata de un entorno muy diferente al que se da cuando el equipo tiene que arreglar apresuradamente una brecha que puede comprometer sus datos e incurrir en pérdidas.

También es más fácil implantar controles y protocolos de seguridad sobre la marcha que esperar hasta el final del desarrollo y luego tener que cambiar retroactivamente el código cuando se encuentra un riesgo. Al final, la seguridad por diseño conduce a tiempos de diseño más rápidos y a soluciones más robustas, que es una de las mejores maneras que tenemos para hacer frente a las ciberamenazas hoy en día.