| Artículos | 01 SEP 2006

Gestión de usuarios

Tags: Histórico
Curso de seguridad (I)
Gonzalo Alvarez.
En este curso de seguridad en bases de datos en cinco entregas se explicarán algunos de los conceptos más importantes para protegerse frente a los ataques más frecuentes y las amenazas más graves. Los usuarios constituyen el canal de acceso a la información almacenada dentro de la base de datos. Por consiguiente, su correcta gestión constituye una necesidad primordial de toda base de datos. En esta primera entrega se explican las diferentes posibilidades existentes en diversos productos de base de datos para configurar tanto la autenticación como la autorización.

Nivel de dificultad: Medio
Objetivo: Implantar mecanismos seguros de autenticación y autorización
Herramientas: Las propias herramientas que acompañan a la base de datos

Se dice que la información es poder. ¿Y dónde reside la información? En las bases de datos. En última instancia, la razón de existir de las redes de ordenadores y de las aplicaciones informáticas es el manejo de datos. Las bases de datos forman el back-end de la práctica totalidad de aplicaciones y sistemas con los que se relacionan los usuarios: bancarios, comerciales, telefónicos, universitarios, facturación, compras, o recursos humanos. Puede afirmarse con un margen de error muy pequeño que detrás de cada aplicación informática existe una base de datos. En otras palabras, toda información valiosa está almacenada en una base de datos.
Por consiguiente, resulta obvio que si la información que almacenan las bases de datos posee valor, deberá protegerse con un esfuerzo proporcional al mismo. Las bases de datos son cada vez más numerosas, guardan información más importante y resultan más accesibles, especialmente a través de frontales web. Estos factores contribuyen a aumentar el número de vulnerabilidades y amenazas. Por desgracia, suele suceder que la seguridad en las bases de datos no recibe toda la atención que se merece, amparándose en la creencia de que la gente de redes ya se encarga de configurar el cortafuegos mientras que la gente de desarrollo ya se cuida de la inyección de SQL. Este curso se concentra precisamente en la seguridad en las bases de datos.
Ahora bien, ¿qué se entiende por seguridad? A lo largo de este curso, se consideran como los objetivos de una base de datos segura la protección de: a) la confidencialidad: solamente el personal autorizado podrá ver la información, ya sea almacenada como durante su transporte; b) la integridad: los datos solamente pueden ser modificados por personal autorizado, tanto durante su transporte como su almacenamiento; y c) la disponibilidad: los datos siempre están disponibles cuando se necesitan y se podrán recuperar en caso de desastre. De similar importancia para alcanzar niveles razonables de seguridad es garantizar tres principios: a) autenticación: conocer la identidad de los usuarios que pueden acceder, típicamente mediante contraseñas, aunque se pueden implantar mecanismos más robustos; b) autorización: restringir lo que los usuarios pueden hacer, definiendo distintos privilegios, a menudo con un control de acceso granular fino; y c) auditoría: registrar las acciones de los usuarios.
Este curso no se centrará en ninguna base de datos en particular, sino que presentará conceptos generales, de aplicación en la mayoría de ellas, proporcionando ejemplos para algunas de las más populares, como Oracle, SQL Server y MySQL. A pesar de la controversia, no puede afirmarse categóricamente que exista una base de datos más segura que otra. Para un administrador, la más segura será aquella que conozca mejor.

Autenticación
Un requisito fundamental de toda aplicación es conocer a sus usuarios, es decir, poder identificarlos con un grado razonable de certeza, como paso previo para determinar qué pueden hacer (autorización) y qué han hecho (auditoría). Existe una gran diversidad de métodos de autenticación, con grados variables de robustez: usuarios internos de la base de datos; usuarios externos, bien del sistema operativo o del directorio; y métodos fuertes o autenticación multifactor. Todos ellos se explican a continuación.
El mecanismo más extendido, disponible en todos los productos, consiste en la creación de usuarios internos de la base de datos, independientes del sistema operativo, cuya autenticación es gestionada por la propia base de datos. En este caso, el usuario demuestra su identidad mediante el conocimiento de una contraseña.
Obviamente, se trata de la forma más débil de autenticar a los usuarios, a pesar de ser la más extendida debido a su facilidad y a su implantación universal. Con el fin de mejorar la seguridad de este tipo de autenticación, algunos productos como Oracle o SQL Server 2005, incluyen la posibilidad de añadir directivas de contraseñas, las cuales permiten definir distintas características: bloqueo de cuentas tras un número determinado de intentos fallidos de inicio de sesión; caducidad de las contraseñas; complejidad de las contraseñas, para configurar características como su longitud mínima, tipos de caracteres que deben estar presentes, palabras o combinaciones prohibidas. En SQL Server 2000 puede cambiarse el procedimiento almacenado responsable de la adición de nuevos usuarios, sp_addlogin, por otro, disponible en www.niiconsulting.com/tools/enforcepass.zip. que obliga a cumplir unas mínimas directivas de complejidad. A continuación se muestran una sentencia SQL de Oracle para crear una directiva que permite 4 intentos fallidos de inicio de sesión, bloquea la cuenta durante un día, la contraseña caduca a los 90 días, con un período de gracia de 3 días adicionales. Una vez definida la directiva, se le asigna al usuario scott.
CREATE PROFILE prof LIMIT
FAILED_LOGIN_ATTEMPTS 4
PASSWORD_LOCK_TIME 1
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 3;
ALTER USER scott PROFILE prof;
mientras que en SQL Server 2005 se puede enviar una sentencia SQL como la siguiente:
CREATE LOGIN gonzalo
WITH
PASSWORD = ‘Usar1Vez’ MUST_CHANGE,
CHECK_EXPIRATION = ON, CHECK_POLICY = ON
Este tipo de directivas resultan muy útiles para dificultar ataques de fuerza bruta o de diccionario, en los que se prueban de manera secuencial todas las posibles combinaciones de letras o se utiliza un diccionario para acelerar el proceso. Existen dos tipos de herramientas especializadas en este tipo de ataques: las que funcionan en modo remoto, como SQLdict (ntsecurity.nu/toolbox/sqldict), mostrada en la Figura 1, ForceSQL (www.niiconsulting.com/tools/forceSQL.zip), Sqlbf (www.cqure.net/wp/?page_id=16), todas ellas para SQL Server, o Checkpwd (www.red-database-security.com/software/checkpwd.html), para Oracle; y las que pueden utilizarse directamente sobre las tablas de los usuarios si se tiene acceso local a ellas, como por ejemplo la herramienta NGSSQLCrack (www.ngssoftware.com/products/database-security), que realiza los ataques sobre los hashes de las contraseñas almacenados en la tabla sysxlogins de SQL Server, a la que sólo se puede acceder con privilegios administrativos, o bien orabf (www.toolcrypt.org/index.html?orabf), Oracle Password Cracker (www.secguru.com/oracle_password_cracker) u Oracle PW Cracker (www.trantechnologies.com/pass_cracker.zip), para Oracle. Estas herramientas constituyen armas de doble filo. Pueden ayudar a un administrador a detectar contraseñas débiles o en blanco, ¡pero tambi

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información