Saturday, November 28, 2020

Meditaciones sobre seguridad de aplicaciones: explorando las bases

Hace poco tuve la oportunidad de asistir a una charla interesante sobre OAuth2, un mecanismo de autorización basado en un modelo de acceso por delegación. Más allá de cuan interesante fue la charla, lo que realmente me llamó la atención fue algo que dijo el expositor al principio:

La seguridad es a veces un tema complejo o árido de explicar.

Totalmente de acuerdo. Puede que esto sea una opinión rebatible, pero despertó mi curiosidad para explorar más sobre temas de seguridad de aplicaciones. Empecemos por las bases.

En mi trabajo como desarrollador, inevitablemente tengo lidiar con temas de seguridad: autenticación/autorización, hashing, encriptación, etc. Es decir, mis esfuerzos como desarrollador se orientan en implementar mecanismos para proteger datos y procesos computacionales de aplicaciones. Este me parece un buen inicio para seguir razonando sobre la seguridad.

No obstante, sé que mi visión de desarrollador sobre la seguridad puede ser acotada. Así que me gustaría dar un paso más explorando el concepto de la seguridad de la información según ISO 27001: 

La seguridad de la información consiste en la preservación de su confidencialidad, integridad y disponibilidad, así como de los sistemas implicados en su tratamiento, dentro de una organización.

ISO 27001:2013

En otras palabras, la información es segura o fiable cuando hay confidencialidad, integridad y disponibilidad. De esto se deduce que los ataques contra la seguridad de la información son ataques contra estos pilares.


¿Cómo proteger nuestra información contra los ataques? Existe un enfoque denominado defensa en profundidad el cual propone proteger la información a través de múltiples capas. 

Cada capa pone foco en las distintas áreas donde pueden ocurrir ataques. En cada una de estas se aplicarán diferentes controles de seguridad, tecnologías y funcionalidades. El conjunto de capas crea una protección profunda que complicará el trabajo del atacante para llegar a los procesos y datos.

Y para cerrar esta reflexión que va de lo particular a lo general, quisiera englobar todo lo anterior bajo el amplio concepto de Seguridad. Es interesante saber que existe la carrera en Ciencias de la Seguridad, la cual define la seguridad como:

Ciencia interdisciplinaria que está encargada de evaluar, estudiar y gestionar los riesgos que se encuentra sometido una persona, un bien o el ambiente.
Wikipedia

Una definición tan amplia como la vida misma. ¿Para qué evaluar, estudiar y gestionar los riesgos? Para reducirlos a niveles aceptables y así la persona, bien o ambiente pueda cumplir su misión.

Vaya, que amplio es todo esto. Creo que esta pequeña reflexión me sirvió para darme cuenta donde estoy parado respecto a la seguridad. Básicamente, mi trabajo se centra reducir los riesgos de que los atacantes hagan de las suyas rompiendo la integridad, confidencialidad y disponibilidad de datos y procesos de mis aplicaciones. Con esta conclusión creo que ya puedo cerrar este artículo y pensar en los próximos.

¡Gracias por llegar hasta aquí!






No comments:

Post a Comment

Cuando el código funciona, pero no tiene tests: ¿y ahora qué?

Seguramente te ha pasado alguna vez. Te dan acceso al repositorio de un nuevo proyecto. Lo abres con curiosidad, esperas encontrar una estru...