Proteger a las Bases de Datos visibles en Internet

9 comentarios

En ocasiones necesitas que tu Base de Datos pueda ser accedida desde Internet, generalmente a los usuarios les gusta tener esa opción: poder conectarse usando su notebook, su tableta, su teléfono celular o estando en un cybercafé es muy atractivo a simple vista.

Sin embargo como profesional informático debes saber que cualquier Base de Datos que no esté lo suficientemente protegida está en grave riesgo y puede ser atacada por los hackers. Una IP pública sin protección es una invitación para que cualquier malhechor intente el acceso.

cyberattack

Dos computadoras que se encuentran en Internet generalmente no tienen un comunicación directa entre ellas sino que la comunicación va pasando de servidor a servidor hasta llegar a su destino. A esas computadoras intermedias se las llama “nodos” y en algunos casos podría haber decenas de nodos entre ambas. Como se ve en el gráfico superior, para ir desde “A” hasta “B” se requiere pasar por varios nodos. ¿Y cuál es el problema? que cualquiera de esos nodos puede interceptar los datos que pasan por él y enterarse de todo.

Los hackers utilizan programas que les permiten revisar en cuestión de minutos todas las IP que se encuentran en un rango. Por ejemplo, podrían buscar todas las IP públicas que se encuentren activas entre 200.120.60.0 y 200.120.90.255 y eso solamente les tomará unos cuantos minutos. Anotan los números de las que están activas e intentan realizar la conexión. Para eso también tienen programas que les facilitan la tarea.

Y si la IP donde se encuentra tu Base de Datos está dentro del rango en el cual algún hacker está buscando, estás corriendo un riesgo gravísimo. Y no te olvides que en el mundo hay cientos de miles de hackers y muchísimos de ellos están “trabajando” en este mismo momento.

Para que tu conexión sea segura y sin riesgos (o con un riesgo pequeñisimo) lo que necesitas es un túnel privado de conexión.

¿Qué es un túnel privado?

Es una comunicación que se realiza entre dos computadoras. La computadora que envía los datos los encripta y los comprime, la computadora que recibe los datos los descomprime y los desencripta.

VPN

Esto se realiza a través de una VPN (Virtual Private Network) o red privada virtual. Se le dice virtual porque usa la misma conexión de Internet, no una conexión propia con cables propios sino un programa que se encarga de realizar la tarea. Y se le dice privada porque solamente quienes conozcan las contraseñas podrán conectarse a esta red y la información siempre viajará encriptada, por lo cual aunque sea interceptada no hay riesgo de que sea fácilmente leída.

Dos programas que se usan mucho para crear y usar los túneles son ZebeDee y OpenVPN, cuyos enlaces son:

http://www.winton.org.uk/zebedee/

http://openvpn.net/

Como los datos viajan encriptados:

  • el riesgo de ser leídos por personas no autorizadas disminuye muchísimo
  • el viaje es más rápido porque la cantidad de datos que viajan es menor

Conclusión:

Si tu Base de Datos será accedida desde Internet debes protegerla con una VPN (red privada virtual) o de lo contrario estará muy expuesta a ser atacada por los hackers. Y aunque tú creas que no hay en ella nada importante los hackers podrían destruirla y corromperla o llenarla de basura con todos los perjuicios que dichas acciones causarían (podrían hacer eso sólo por maldad, porque quieren y pueden hacerlo). Usando una VPN obtendrás dos beneficios: que el riesgo de ser atacada disminuya muchísimo y que las velocidades de las operaciones aumenten mucho.

La gran mayoría de los hackers desiste de atacar las computadoras o bases de datos que están muy protegidas, salvo que crean que obtener éxito les resultará de mucho provecho. Por lo tanto, cuanto más protejas a tus bases de datos, mucho mejor.

Artículos relacionados:

Usando Zebedee con Firebird

Usando Zebedee con Firebird. Parte 2

El índice del blog Firebird21

Aumentando la seguridad con ALIASES.CONF

14 comentarios

En la carpeta donde instalaste el Firebird (por ejemplo en C:\ARCHIVOS DE PROGRAMA\FIREBIRD\FIREBIRD_2_5) encontrarás un archivo cuyo nombre es ALIASES.CONF

¿Para qué sirve el archivo ALIASES.CONF?

Para que les des un nombre abreviado a tus bases de datos y con eso conseguirás dos cosas:

  • Escribir menos cuando quieras conectarte a una Base de Datos
  • Aumentar la seguridad

¿Cómo especifico cuál será el alias de mi Base de Datos?

Abres el archivo ALIASES.CONF y escribes el nombre del alias, un símbolo igual y la ruta y el nombre completos de tu Base de Datos, por ejemplo:

CONTA=C:\MisBasesDatos\Contabilidad.fdb

Escribir menos cuando quieras conectarte a una Base de Datos

Como tu Base de Datos tiene un alias (es decir: un apodo, un sobrenombre, un nombre alternativo) entonces el Firebird puede usar ese alias para la conexión, por ejemplo:

CONNECT CONTA USER SYSDBA PASSWORD masterkey;

En cambio, si no usas un alias tendrías que escribir:

CONNECT C:\MisBasesDatos\Contabilidad.fdb USER SYSDBA PASSWORD masterkey;

Como puedes ver, se escribió mucho menos al usar un alias y además es más fácil recordar una sola palabra (en este caso: CONTA) que toda la ruta y el nombre de la Base de Datos (en este caso: C:\MisBasesDatos\Contabilidad.fdb)

Aumentar la seguridad

Al usar un alias también aumentas la seguridad de los datos, sobre todo si lo combinas con la entrada DatabaseAccess, tal como puedes leer en este artículo:

https://firebird21.wordpress.com/2013/04/25/restringiendo-el-acceso-a-las-bases-de-datos/

Si alguien quiere atacar tu Base de Datos y lo único que sabe de ella es que se llama CONTA (por ejemplo, claro) pero no tiene la menor idea de donde se encuentra le resultará mucho más difícil que si sabe que se llama Contabilidad.fdb y que se encuentra en la carpeta C:\MisBasesDatos\

Al usar un alias (CONTA, en este ejemplo) le das muy poca información y le complicas la vida al atacante. Y muchísimo más se la complicarías si en lugar de llamar a tu alias CONTA lo llamaras de forma mucho menos informativa como por ejemplo: XDFDRT

(Encontrar algo así le puede dar un ataque cerebral a cualquier atacante)

Conclusión

Que tus bases de datos tengan alias es muy bueno porque te permite escribir menos y aumentar la seguridad. El Firebird te da esa posibilidad, por algo está allí, deberías usarla.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

Restringiendo el acceso a las Bases de Datos

4 comentarios

Cuando se instala el Servidor del Firebird por defecto permite que las bases de datos se encuentren en cualquier carpeta de cualquier disco que esté conectado a esa computadora.

Aunque esto les facilita la tarea a los programadores (porque pueden crear o copiar sus bases de datos en cualquier carpeta que deseen) tiene un potencial y grave riesgo de seguridad: ese mismo Servidor podría estar siendo usado para conectarse a otras bases de datos de esa computadora.

Afortunadamente, nosotros podemos restringir a cuales carpetas o a cuales bases de datos el Servidor permitirá que los usuarios se conecten.

En el archivo FIREBIRD.CONF que se encuentra en la carpeta donde instalaste el Firebird (por ejemplo en: C:\ARCHIVOS DE PROGRAMA\FIREBIRD\FIREBIRD_2_5) hay una entrada denominada DatabaseAccess

DatabaseAccess puede ser:

  • None
  • Restrict
  • Full

Si es None entonces el Servidor solamente permitirá la conexión a las bases de datos listadas en el archivo ALIASES.CONF (que también se encuentra en la misma carpeta donde instalaste el Firebird)

Si es Restrict entonces el Servidor solamente permitirá conectarse a las bases de datos que se encuentren en la/s carpeta/s listada/s a continuación (separadas por punto y coma si hay más de una)

Si es Full entonces el Servidor permitirá conectarse a cualquier base de datos que se encuentre en cualquier carpeta de cualquier disco duro de esa computadora

Ejemplos:

DatabaseAccess = None

DatabaseAccess = Restrict C:\MisBasesDatos

DatabaseAccess = Restrict C:\MisBasesDatos;D:\MisBackups

DatabaseAccess = Full

En el primer ejemplo, como el acceso es None el Servidor solamente permitirá que los usuarios se conecten a las bases de datos listadas en el archivo ALIASES.CONF

En el segundo ejemplo, como el acceso es Restrict el Servidor solamente permitirá conectarse a las bases de datos que se encuentren en la carpeta C:\MisBasesDatos

En el tercer ejemplo, como el acceso es Restrict el Servidor solamente permitirá conectarse a las bases de datos que se encuentren en las carpetas C:\MisBasesDatos o D:\MisBackups (los nombres de las carpetas fueron separados con un punto y coma)

En el cuarto ejemplo, como el acceso es Full el Servidor permitirá conectarse a cualquier base de datos que se encuentre en cualquier carpeta de cualquier disco duro de la computadora

NOTA: Fíjate que se quitó el símbolo de numeral (#) que se encontraba delante de la palabra DatabaseAccess, eso es porque el símbolo de numeral (#) le indica al Firebird que lo que está a continuación es un comentario.

Conclusión

Para tener mayor seguridad y disminuir la probabilidad de ataques maliciosos debemos restringir el acceso a las bases de datos. Lo recomendable es que el valor de la entrada DatabaseAccess sea None lo cual nos asegurará que solamente a las bases de datos listadas en el archivo ALIASES.CONF los usuarios puedan conectarse. Si por algún motivo eso no es admisible entonces el acceso debería ser Restrict pero nunca deberíamos dejarlo en Full.

NOTA: Cualquier cambio que realices en el archivo FIREBIRD.CONF solamente tendrá efecto después que reinicies el Servidor del Firebird o reinicies la computadora donde se encuentra el Servidor del Firebird.

Newer Entries