La gran mayoría de los datos sensibles del mundo están almacenados en
sistemas gestores de bases de datos comerciales tales como Oracle,
Microsoft SQL Server entre otros, y atacar una bases de datos es uno de
los objetivos favoritos para los criminales.
Esto puede explicar por qué los ataques externos, tales como
inyección de SQL, subieron 345% en 2009, “Esta tendencia es prueba
adicional de que los agresores tienen éxito en hospedar páginas Web
maliciosas, y de que las vulnerabilidades y explotación en relación a
los navegadores Web están conformando un beneficio importante para
ellos”. Para empeorar las cosas, según un estudio publicado en febrero de
2009 The Independent Oracle Users Group (IOUG), casi la mitad de todos
los usuarios de Oracle tienen al menos dos parches sin aplicar en sus
manejadores de bases de datos.
Mientras que la atención generalmente se ha centrado en asegurar los
perímetros de las redes por medio de, firewalls, IDS / IPS y antivirus,
cada vez más las organizaciones se están enfocando en la seguridad de
las bases de datos con datos críticos, protegiéndolos de intrusiones y
cambios no autorizados.
En las siguientes secciones daremos las siete recomendaciones para proteger una base de datos en instalaciones tradicionales.
Principios básicos de seguridad de bases de datos
En esta sección daremos siete
recomendaciones sobre seguridad en bases de datos, instaladas en
servidores propios de la organización.
- Identifique su sensibilidad
No se puede asegurar lo que no se conoce.
Confeccione un buen catálogo de tablas o datos sensibles de sus
instancias de base de datos. Además, automatice el proceso de
identificación, ya que estos datos y su correspondiente ubicación pueden
estar en constante cambio debido a nuevas aplicaciones o cambios
producto de fusiones y adquisiciones.
Desarrolle o adquiera herramientas de identificación, asegurando
éstas contra el malware, colocado en su base de datos el resultado
de los ataques de inyección SQL; pues aparte de exponer información
confidencial debido a vulnerabilidades, como la inyección SQL, también
facilita a los atacantes incorporar otros ataques en el interior de la
base de datos.
- Evaluación de la vulnerabilidad y la configuración
Evalúe su configuración de bases de datos, para asegurarse que no tiene huecos de seguridad.
Evalúe su configuración de bases de datos, para asegurarse que no tiene huecos de seguridad.
Esto incluye la verificación de la forma en que se instaló la base de
datos y su sistema operativo (por ejemplo, la comprobación privilegios
de grupos de archivo -lectura, escritura y ejecución- de base de datos y
bitácoras de transacciones).
Asimismo con archivos con parámetros de configuración y programas ejecutables.
Además, es necesario verificar que no se está ejecutando la base de
datos con versiones que incluyen vulnerabilidades conocidas; así como
impedir consultas SQL desde las aplicaciones o capa de usuarios. Para
ello se pueden considerar (como administrador):
- Limitar el acceso a los procedimientos a ciertos usuarios.
- Delimitar el acceso a los datos para ciertos usuarios, procedimientos y/o datos.
- Declinar la coincidencia de horarios entre usuarios que coincidan.
- Endurecimiento
Como resultado de una evaluación de la vulnerabilidad a menudo se dan
una serie de recomendaciones específicas. Este es el primer paso en el
endurecimiento de la base de datos. Otros elementos de endurecimiento
implican la eliminación de todas las funciones y opciones que se no
utilicen. Aplique una política estricta sobre que se puede y que no se
puede hacer, pero asegúrese de desactivar lo que no necesita.
- Audite
Una vez que haya creado una configuración y controles de
endurecimiento, realice auto evaluaciones y seguimiento a las
recomendaciones de auditoría para asegurar que no se desvíe de su
objetivo (la seguridad).
Automatice el control de la configuración de tal forma que se
registre cualquier cambio en la misma. Implemente alertas sobre cambios
en la configuración. Cada vez que un cambio se realice, este podría
afectar a la seguridad de la base de datos.
- Monitoreo
Monitoreo en tiempo real de la actividad de base de datos es clave
para limitar su exposición, aplique o adquiera agentes inteligentes
de monitoreo, detección de intrusiones y uso indebido.
Por ejemplo, alertas sobre patrones inusuales de acceso, que podrían
indicar la presencia de un ataque de inyección SQL, cambios no
autorizados a los datos, cambios en privilegios de las cuentas, y los
cambios de configuración que se ejecutan a mediante de comandos de SQL.
Recuerde que el monitoreo usuarios privilegiados, es requisito para
la gobernabilidad de datos y cumplimiento de regulaciones como SOX
y regulaciones de privacidad. También, ayuda a detectar intrusiones, ya
que muchos de los ataques más comunes se hacen con privilegios de
usuario de alto nivel.
El monitoreo dinámico es también un elemento esencial de la
evaluación de vulnerabilidad, le permite ir más allá de evaluaciones
estáticas o forenses. Un ejemplo clásico lo vemos cuando múltiples
usuarios comparten credenciales con privilegios o un número excesivo de
inicios de sesión de base de datos.
- Pistas de Auditoría
Aplique pistas de auditoría y genere trazabilidad de las actividades
que afectan la integridad de los datos, o la visualización los datos
sensibles.
Recuerde que es un requisito de auditoría, y también es importante para las investigaciones forenses.
La mayoría de las organizaciones en la actualidad emplean alguna
forma de manual de auditoría de transacciones o aplicaciones nativas de
los sistemas gestores de bases de datos. Sin embargo, estas
aplicaciones son a menudo desactivadas, debido a:
- su complejidad
- altos costos operativos
- problemas de rendimiento
- la falta de segregación de funciones y
- la necesidad mayor capacidad de almacenamiento.
Afortunadamente, se han desarrollado soluciones con un mínimo de impacto en el rendimiento y poco costo operativo, basado en tecnologías de agente inteligente.
- Autenticación, control de acceso, y Gestión de derechos
No todos los datos y no todos los usuarios son creados iguales. Usted
debe autenticar a los usuarios, garantizar la rendición de cuentas por
usuario, y administrar los privilegios para de limitar el acceso a los
datos.
Implemente y revise periódicamente los informes sobre de derechos de usuarios, como parte de un proceso de formal de auditoría.
Utilice el cifrado para hacer ilegibles los datos confidenciales,
complique el trabajo a los atacantes, esto incluye el cifrado de los
datos en tránsito, de modo que un atacante no puede escuchar en la capa
de red y tener acceso a los datos cuando se envía al cliente de base de
datos.
No hay comentarios:
Publicar un comentario