Prueba de base de datos: seguridad

Las pruebas de seguridad de la base de datos se realizan para encontrar lagunas en los mecanismos de seguridad y también para encontrar las vulnerabilidades o debilidades del sistema de la base de datos.

El principal objetivo de las pruebas de seguridad de la base de datos es descubrir las vulnerabilidades de un sistema y determinar si sus datos y recursos están protegidos de posibles intrusos. Las pruebas de seguridad definen una forma de identificar las vulnerabilidades potenciales de manera efectiva, cuando se realizan con regularidad.

A continuación se muestran los objetivos principales de realizar pruebas de seguridad de bases de datos:

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

Tipos de amenazas en un sistema de base de datos

Inyección SQL

Este es el tipo de ataque más común en un sistema de base de datos donde se insertan sentencias SQL maliciosas en el sistema de base de datos y se ejecutan para obtener información crítica del sistema de base de datos. Este ataque aprovecha las lagunas en la implementación de aplicaciones de usuario. Para evitar esto, los campos de entrada del usuario deben manejarse con cuidado.

Elevación de privilegios en la base de datos

En este ataque, un usuario ya tiene algún acceso en el sistema de la base de datos y solo intenta elevar este nivel de acceso más alto para que pueda realizar algunas actividades no autorizadas en el sistema de la base de datos.

Negación de servicio

En este tipo de ataque, un atacante hace que un sistema de base de datos o un recurso de aplicación no esté disponible para sus usuarios legítimos. Las aplicaciones también pueden ser atacadas de manera que la aplicación y, a veces, toda la máquina, quede inutilizable.

Acceso no autorizado a los datos

Otro tipo de ataque es obtener acceso no autorizado a datos dentro de una aplicación o sistema de base de datos. El acceso no autorizado incluye:

  • Acceso no autorizado a los datos a través de aplicaciones basadas en el usuario
  • Acceso no autorizado a monitoreando el acceso de otros
  • Acceso no autorizado a información de autenticación de cliente reutilizable

Suplantación de identidad

En Identity Spoofing, un pirata informático utiliza las credenciales de un usuario o dispositivo para lanzar ataques contra hosts de red, robar datos o evitar los controles de acceso al sistema de la base de datos. La prevención de este ataque requiere mitigaciones a nivel de red y de infraestructura de TI.

Manipulación de datos

En un ataque de manipulación de datos, un pirata informático cambia los datos para obtener alguna ventaja o para dañar la imagen de los propietarios de la base de datos.

Técnicas de prueba de seguridad de bases de datos

Pruebas de penetración

Una prueba de penetración es un ataque a un sistema informático con la intención de encontrar lagunas de seguridad, y potencialmente obtener acceso a él, su funcionalidad y sus datos.

Hallazgo de riesgo

La búsqueda de riesgos es un proceso de evaluación y decisión sobre el riesgo involucrado con el tipo de pérdida y la posibilidad de que ocurra una vulnerabilidad. Esto se determina dentro de la organización mediante diversas entrevistas, discusiones y análisis.

Prueba de inyección SQL

Implica verificar las entradas del usuario en los campos de la aplicación. Por ejemplo, ingresando un carácter especial como ',' o ';' en cualquier cuadro de texto en una aplicación de usuario no debe permitirse. Cuando ocurre un error en la base de datos, significa que la entrada del usuario se inserta en alguna consulta, que luego es ejecutada por la aplicación. En tal caso, la aplicación es vulnerable a la inyección de SQL.

Estos ataques son una gran amenaza para los datos, ya que los atacantes pueden acceder a información importante de la base de datos del servidor. Para verificar los puntos de entrada de inyección de SQL en su aplicación web, busque el código de su base de código donde se ejecutan las consultas directas de MySQL en la base de datos aceptando algunas entradas de usuario.

Las pruebas de inyección SQL se pueden realizar para corchetes, comas y comillas.

Craqueo de contraseña

Esta es la verificación más importante al realizar las pruebas del sistema de base de datos. Para acceder a información crítica, los piratas informáticos pueden utilizar una herramienta para descifrar contraseñas o adivinar un nombre de usuario / contraseña común. Estas contraseñas comunes están fácilmente disponibles en Internet y también existen herramientas para descifrar contraseñas libremente.

Por lo tanto, es necesario verificar en el momento de la prueba si la política de contraseñas se mantiene en el sistema. En el caso de aplicaciones bancarias y financieras, es necesario establecer una política estricta de contraseñas en todos los sistemas de bases de datos de información crítica.

Auditoría de seguridad del sistema de base de datos

Una auditoría de seguridad es un proceso de evaluación de las políticas de seguridad de la empresa en un intervalo de tiempo regular para determinar si se siguen o no los estándares necesarios. Se pueden seguir varios estándares de seguridad según los requisitos comerciales para definir la política de seguridad y luego se puede realizar la evaluación de las políticas establecidas en relación con esos estándares.

Ejemplos de los estándares de seguridad más comunes son ISO 27001, BS15999, etc.

Herramientas de prueba de seguridad de bases de datos

Hay varias herramientas de prueba del sistema disponibles en el mercado, que se pueden utilizar para probar el sistema operativo y la verificación de aplicaciones. Algunas de las herramientas más comunes se describen a continuación.

Proxy de ataque Zed

Es una herramienta de prueba de penetración para encontrar vulnerabilidades en aplicaciones web. Está diseñado para ser utilizado por personas con una amplia gama de experiencia en seguridad y, como tal, es ideal para desarrolladores y evaluadores funcionales que son nuevos en las pruebas de penetración. Se usa comúnmente para Windows, Linux, Mac OS.

Paros

Todos los datos HTTP y HTTPS entre el servidor y el cliente, incluidas las cookies y los campos de formulario, se pueden interceptar y modificar mediante estos escáneres. Se utiliza para multiplataforma, Java JRE / JDK 1.4.2 o superior.

Kit de herramientas para ingenieros sociales

Es una herramienta de código abierto y los elementos humanos son atacados en lugar del elemento del sistema. Le permite enviar correos electrónicos, applets de Java, etc. que contienen el código de ataque. Se prefiere para Linux, Apple Mac OS X y Microsoft Windows.

Skipfish

Esta herramienta se utiliza para escanear sus sitios en busca de vulnerabilidades. Los informes generados por la herramienta están destinados a servir como base para evaluaciones profesionales de seguridad de aplicaciones web. Se prefiere para Linux, FreeBSD, MacOS X y Windows.

Vega

Es una herramienta de seguridad web multiplataforma de código abierto que se utiliza para encontrar instancias de inyección SQL, secuencias de comandos entre sitios (XSS) y otras vulnerabilidades en aplicaciones web. Se prefiere para Java, Linux y Windows.

Wapiti

Wapiti es una herramienta de código abierto y basada en web que escanea las páginas web de la aplicación web y busca scripts y formularios donde pueda inyectar datos. Está construido con Python y puede detectar errores de manejo de archivos, bases de datos, XSS, inyecciones LDAP y CRLF, detección de ejecución de comandos.

Escarabajo web

Está escrito en Java y se utiliza para analizar las aplicaciones que se comunican a través de los protocolos HTTP / HTTPS. Esta herramienta está diseñada principalmente para desarrolladores que pueden escribir código por sí mismos. Esta herramienta no depende del sistema operativo.