REVISTA .SEGURIDAD | 1 251 478, 1 251 477 | REVISTA BIMESTRAL

Firewall de bases de datos

Importancia de la información

La mayoría de las aplicaciones, tanto web como de escritorio, interactúan con usuarios que proporcionan información para su almacenamiento y procesamiento. Generalmente, esta información se resguarda en una base de datos y puede ser información personal, registros médicos, información financiera, entre otros.

Consideremos el ejemplo de un banco que tiene una página de Internet en donde es posible realizar transacciones en línea:

El banco posee información sensible de cada uno de los usuarios que tiene. Los datos pueden ser personales (nombre, apellidos, beneficiarios de la cuenta), datos de contacto (dirección, teléfono) y, adicionalmente, los datos de la cuenta bancaria (saldo, movimientos, depósitos, retiros, cancelaciones).

En la mayoría de los casos, toda esta información se almacena en una base de datos que es operada por un Sistema Manejador de Bases de Datos (SMBD). Así, cuando navegamos en el sitio en línea del banco para consultar nuestro saldo, la aplicación web envía nuestra petición al SMBD, el cual nos proporciona acceso a la información contenida en la base de datos.

Para entender mejor lo anterior, en la siguiente imagen se ilustra la interacción del usuario con la aplicación web que, a su vez, realiza las peticiones necesarias a la base de datos:

Imagen 1. Flujo de comunicación entre el usuario, la aplicación y la base de datos.

Si las aplicaciones web no cuentan con la seguridad necesaria (la cual comienza a implementarse desde que se lleva a cabo el diseño), la información de los usuarios, información de configuraciones, entre otras, podrían quedar expuestas, o bien, algún usuario malicioso podría intentar extraerla para obtener algún tipo de beneficio.

Un tipo de consultas provenientes de usuarios maliciosos hacia un manejador de base de datos es conocida como SQL Injection, que consiste en la “inyección” de consultas SQL al emplear las entradas proporcionadas por la aplicación web para modificar u obtener información de la base de datos[1].

Por ejemplo, en un formulario de registro de usuarios, si el campo que solicita el nombre no es validado correctamente, entonces no se filtrará el conjunto de caracteres recibidos como entrada. En una situación como esta puede suceder una inyección de SQL.

Es por ello que, en el ámbito de la seguridad informática, es necesario contar con las herramientas adecuadas para combatir a los usuarios maliciosos que buscan tener acceso a la información almacenada en una base de datos.

Por lo anterior, es conveniente pensar en la seguridad informática como un conjunto de técnicas, conocimientos, hardware y software colocado estratégicamente en capas, para proteger el elemento más importante: la información.

Firewall para filtrar peticiones SQL maliciosas

Una de las diferentes opciones que existen actualmente para proteger la información almacenada consiste en la implementación de un firewall de bases de datos.

El firewall de bases de datos es una aplicación de software que permite filtrar, mediante un conjunto de reglas preestablecidas, las peticiones que llegan al manejador de bases de datos.

Adicionalmente, al instalar una solución orientada para proteger la base de datos, no solo se bloquean las peticiones maliciosas, si no que se puede llevar a cabo el monitoreo de las actividades, generando bitácoras y explotando la información que se almacena en ellas.

Este punto es muy importante, ya que permite identificar de qué lugar provienen los atacantes (que pueden ser reincidentes, o bien, buscar datos específicos), el horario en que se registra mayor actividad y los ataques más frecuentes que se presentan. De esta manera se pueden generar estadísticas que permitan visualizar el posible comportamiento de los atacantes y tomar las medidas de seguridad necesarias.

El firewall de bases de datos se coloca entre la aplicación web (que es visible para los usuarios) y el manejador de bases de datos (que interactúa con la base de datos para guardar, modificar u obtener información) como se puede ver en la siguiente imagen:

Figura 2. Flujo de comunicación entre el usuario, la aplicación, el firewall de bases de datos y la base de datos.

Cuando algún usuario malicioso intenta obtener acceso a la información almacenada, se cuenta con una capa adicional de protección proporcionada por el firewall de bases de datos que le impedirá poder consultarla. El firewall solo permitirá el paso a los usuarios o a consultas y accesos autorizados con anterioridad.

A continuación, se mencionan algunas de las soluciones existentes, así como sus características más representativas.

GreenSQL

Es un software que se instala para fungir como un firewall de base de datos entre la aplicación y el SMBD. Puede instalarse en varios sistemas operativos y configurarse de manera personalizada. Adicionalmente, intenta apegarse al Estándar de Seguridad de la Industria de las Tarjetas de Crédito (PCI DSS).

Algunos de los manejadores de bases de datos que puede proteger son: MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Amazon RDS y la estructura de las bases de datos de Drupal.

Las funcionalidades con las que cuenta son:

  • Instalación en varias modalidades.
  • Modo de aprendizaje[2].
  • Separación de tareas.
  • Funcionamiento como IPS[3]/IDS[4].
  • Envío de notificaciones por correo en tiempo real.
  • Generación de reportes.
  • Ayuda a optimizar el funcionamiento del manejador de bases de datos.

Oracle Database Firewall

Es un firewall que opera sobre bases de datos que se encuentran en Oracle, así como IBM DB2, Sybase, Microsoft SQL Server y MySQL.

Busca apegarse a las siguientes legislaciones: Acta Sarbanes-Oxley (SOX), Estándar de Seguridad de la Industria de las Tarjetas de Crédito (PCI DSS) y al Acta de la Ley de Portabilidad y Responsabilidad del Seguro Médico (HIPAA).

Las funcionalidades con las que cuenta son:

  • Auditoría del manejador de bases de datos, sistema operativo, directorios y otros servicios.
  • Instalación en varias modalidades.
  • Generación de bitácoras para su posterior análisis.
  • Arquitectura escalable.
  • Personalización de los reportes.
  • Funcionar en modo bloqueo o monitoreo.
  • Permite configuraciones para alta disponibilidad.

ModSecurity

Es un módulo del servidor de aplicaciones web Apache, cuyo funcionamiento principal se orienta a la protección de aplicaciones web mediante su funcionamiento como firewall[5]. Sin embargo, también cuenta con una serie de reglas que pueden emplearse para proteger las peticiones realizadas al manejador de bases de datos.

Adicionalmente, se puede integrar con otros servidores de aplicaciones web como Nginx, IIS y Java.

Siempre es importante considerar la seguridad de las aplicaciones web. Una forma sencilla de hacerlo es pensar la seguridad en capas.

La implementación de un firewall de bases de datos permite agregar una capa adicional de seguridad, sin embargo, es importante notar que es una medida adicional de seguridad, la cual debe iniciar desde el diseño e implementación de la base de datos.

Asimismo, antes de implementar un firewall de bases de datos, es necesario profundizar un poco más en el tema y tener presente que habrá una etapa de adecuación antes del funcionamiento óptimo.

Finalmente, antes de instalar y comenzar a configurar, es recomendable hacerlo en un entorno de pruebas, para su posterior implementación en un ambiente real. Primero hay que conocer su comportamiento para ver si es una herramienta que asegura nuestra base de datos.

Referencias

Sitio de GreenSQL:  http://www.greensql.com

Sitio de Oracle Database Firewall: http://www.oracle.com/us/products/database/security/audit-vault-database-firewall/overview/index.html

Referencia técnica sobre Oracle Database Firewall: http://www.oracle.com/technetwork/products/database-firewall/database-firewall-ds-161826.pdf

Sitio de ModSecurity: http://www.modsecurity.org/

 


[2] Etapa de “calibración” del firewall para evitar bloquear una petición auténtica por parte de la aplicación.

[3] IPS. Sistema de Prevención de Intrusos.

[4] IDS. Sistema de Detección de Intrusos.

UNAM

[ CONTACTO ]

Se prohíbe la reproducción total o parcial
de los artículos sin la autorización por escrito de los autores

 

Hecho en México, Universidad Nacional Autónoma de México (UNAM) © Todos los derechos reservados 2018.