sábado, 22 de julio de 2017

LA SEGURIDAD DE LA INFORMACION EN BASES DE DATOS PUBLICAS


Cuando nos referimos a la información que se encuentra en bases de datos públicas lo primero que pensamos es que podemos acceder sin mayores restricciones a toda la información que ésta contiene; o pensar también que porque un organismo es público toda la información de éste es de carácter público también; sin embargo, no necesariamente es así.

Los organismos dueños de información pública deben pasar por un proceso para determinar qué tipo de información es realmente pública y cuál no, cuáles van a ser los datos que estarán en bases de datos públicas y cuáles no, y cuáles serán los datos que deben ser asegurados y cuáles no, todo esto basado en una serie de análisis que involucrarán a las personas, a los procesos y por supuesto a la tecnología. 

Se debe trabajar en un análisis de riesgos que permita identificar primero cuáles son efectivamente estos datos que debemos asegurar; ya que los organismos, empresas, entidades como las quisiéramos denominar no sólo tienen datos que podrían ser públicos; sino que tienen información de todo tipo; es decir, información pública, información privada o información confidencial y con esta clasificación hemos contestado la primera y más importante pregunta: “¿Qué información dentro de mi organización, es realmente un dato público?”

La siguiente pregunta a responder sería “¿Dónde están mis datos públicos?”, podrían estar almacenados en medios físicos como, por ejemplo: documentos impresos, reportes, etc. o en medios informáticos como por ejemplo en archivos office (Word, Excel, PowerPoint, etc.) o en bases de datos de aplicaciones más complejas. Y junto con esto tendremos que definir el lugar donde mis datos públicos van a estar efectivamente expuestos para acceso público; es decir, debemos conocer o definir el medio de exposición; si es a través de la página web de la organización, o redes sociales, o quioscos de información, o la intranet de la organización, o simplemente una repisa a la entrada del edificio donde cualquiera que pasa puede tomar la información impresa.

Pero vamos a centrarnos en lo siguiente: ¿Qué hacer si mis datos públicos están en las bases de datos de los sistemas de aplicación de mi organización?, con lo que surge la siguiente pregunta que sería: ¿Estas bases de datos solo contienen información pública?  La respuesta a esta segunda pregunta es muy probablemente: “No, las bases de datos contienen la información de la organización, parte de la cual es efectivamente pública y el resto no”.

Aquí comienza el trabajo de definir “¿Cómo vamos a asegurar la información en mis bases de datos?”. La información que efectivamente es pública, “¿Tenemos que asegurarla de alguna manera?”  A lo que la respuesta a esta segunda pregunta sería: “Si, tenemos que asegurarla de alguna manera porque la seguridad de la información se basa en tres premisas que son: confidencialidad, integridad y disponibilidad, así que, si bien la información no es confidencial, tenemos que asegurarnos que la información pública sea íntegra o confiable y esté disponible cada vez que se lo requiera por quien la requiera.

Para responder el cómo existen varios niveles donde la seguridad de la información debe ser establecida y la primera gran clasificación sería la seguridad física y la seguridad lógica.

Al mencionar la seguridad física nos referimos a la seguridad de los equipos, el hardware, los equipos servidores en donde residen las bases de datos; hoy en día ya no necesitamos tener nuestro centro de cómputo en el mismo edificio donde trabajamos; tenemos el cloud computing o la nube, donde la seguridad de nuestros datos depende del tipo de nube y son tres.  “Nubes públicas”, todos los servicios están en servidores externos propiedad del proveedor o dueño de la nube, la información de muchas empresas está mezclada en los servidores, la seguridad de los datos recae totalmente en el proveedor o dueño de la nube. “Nubes privadas”, todos los servicios están en servidores propios dentro de las instalaciones y todo pertenece solo a la organización, la seguridad depende exclusivamente del personal de TI de la organización; por lo que se las considera las más seguras.  “Nubes híbridas”, combinan los dos modelos anteriores; la seguridad de los datos es compartida con el proveedor de la nube pública.  Aquí la seguridad de la información se basa en que sin importar donde físicamente se encuentren nuestras bases de datos, éstas deben estar siempre “disponibles” para lo cual se debe implementar procesos de respaldos de la información, creación de discos espejos, servidores alternos de backup, monitoreo continuo del performance de los equipos, entre otros.

Cuando nos referimos a seguridad lógica el espectro a considerar es mucho más amplio, ya que para implementar la seguridad de los datos en las bases de datos debemos tener en cuenta también la seguridad en el sistema operativo donde se encuentra instalada la base de datos y las seguridades en el sistema de aplicación al que pertenece la base de datos; con estas consideraciones la “integridad” o “confiabilidad” de los datos se verá resguardada.

Los puntos claves para establecer la seguridad en los sistemas operativos; sin importar si es un Windows, Unix, o cualquier otro, reside en la importancia que se les da a los usuarios administradores que vienen por default en el momento de instalar el sistema operativo o los que son creados para el personal de TI.  Buenas prácticas en este sentido son, por ejemplo: cambiar las claves que vienen por default en los usuarios “admin”, “administrador”, “root”, etc. de los sistemas operativos, asignar la responsabilidad de administrador a una sola persona del área de TI, no crear usuarios con permisos de administrador para usuarios que no son el administrador, cambiar periódicamente las claves por cada usuario, parametrización de complejidad de claves, definiciones de acceso remoto solo para el personal técnico autorizado, habilitar exclusivamente los puertos necesarios, entre las principales; mientras más usuarios existan a nivel de sistema operativo mayores parametrizaciones de seguridad se deben implementar.

Tenemos también que establecer la seguridad a nivel de la base de datos, existe una diversidad de bases de datos que se utilizan como por ejemplo Oracle, MS SQL, MySQL, Sybase, Hana, etc. que al igual que los sistemas operativos, en el momento de instalarla se crean por default usuarios administradores y no administradores que debemos parametrizar de forma correcta; es decir la administración de los usuarios en la base de datos es primordial.  Además, para garantizar la integridad y confiabilidad de los datos que van a residir en ella se deben considerar los permisos a los recursos compartidos que podrían existir y también, una buena práctica es el establecimiento del monitoreo a través de logs que deben ser revisados en forma periódica por personal independiente de los administradores; ya que ellos también deben formar parte de los usuarios a ser monitoreados.

Luego tenemos la seguridad a nivel del sistema de aplicación, donde establecer la seguridad a este nivel depende de algunas aristas como son: 

Accesos por usuario, cuya seguridad se define dependiendo del perfil del usuario o rol dentro de la aplicación de acuerdo a sus funciones dentro de la organización; con esto correctamente definido podemos decir que el personal podrá realizar en el sistema aplicativo solo lo que está autorizado hacer de acuerdo a sus funciones y así la información que ingresa, cambia o elimina será la que efectivamente debe administrar. 

Parametrización de contraseñas, las buenas prácticas a aplicar son muy parecidas a las que se aplican a nivel de sistema operativo y bases de datos.

Tipo de aplicación e interfaces, si la aplicación es centralizada, distribuida, en entorno web, en nube, mobile, si se integra o no con otras aplicaciones, según todo esto la definición de las seguridades para los datos se verá afectada también.

Un punto adicional es asegurarse contra ataques de inyección SQL ya que éstos lo que buscan es burlar las restricciones de acceso a las bases de datos en aplicaciones web; estos ataques se evitan a través del uso adecuado de sentencias sql en los lenguajes de programación que desarrollan aplicaciones web como por ejemplo: Java, C#, Php.

Y por último y no menos importante está la seguridad en la red donde reside la base de datos la misma que sin importar si es una red LAN, WAN, VLAN, o Wireless;  lo más importante son los permisos de accesos a los usuarios autorizados, los puertos que deben estar habilitados o no y el monitoreo continuo de éstos.

Como conclusiones podemos decir que una base de datos pública debe ser asegurada para minimizar el riesgo de sufrir incidentes como:  ataques externos (integridad), caídas o fallos sea de hardware o software (disponibilidad) y acceso por usuarios no autorizados (confidencialidad) estableciendo niveles de protección desde las capas más básicas del sistema que deben ser monitoreados en forma permanente.

Etiquetas: , ,