Вы находитесь на странице: 1из 9

Informe: Amenazas a las bases de datos

Alumno:

WILDER JEFRY GOMEZ RIVERA

Profesor:

JAVIER PÉREZ CAMPO

SERVICIO NACIONAL DE APRENDIZAJE

SISTEMAS DE INFORMACIÓN

GESTIÓN DE LA SEGURIDAD INFORMÁTICA

BOGOTÁ D.C.

2019
Tabla de Contenido

Ítem
Introducción ............................................................................................................. 3
Definición de Amenazas .......................................................................................... 4
1. Inyección SQL ................................................................................................ 4
2. Negación o denegación de servicios .............................................................. 5
Soluciones o controles de amenazas informáticas con el fin de disminuir múltiples
riesgos ..................................................................................................................... 6
1. Inyección SQL ................................................................................................ 6
2. Negación o denegación de servicios .............................................................. 8
Introducción

Las bases de datos son el “corazón” del negocio. Es el activo más importante:

Almacenan registros de los clientes de la empresa y datos financieros


confidenciales. Por lo tanto, constituyen uno de los objetivos más codiciados para
los hackers o para cualquier intruso.

¿Por qué son tan vulnerables las bases de datos? Las empresas no invierten en la
protección de éstas. Los piratas informáticos acceden a datos sensibles y pueden
extraer valores, causar daños o afectar las operaciones comerciales causando
pérdidas financieras.

En el año 2015, la OTA (Online Trust Alliance) menciona que más del 97% de
estos ataques podrían haberse evitado si se aplicaban medidas simples, siguiendo
“mejores prácticas” y controles internos.

La OTA menciona un top 10 de principales amenazas a las bases de datos (ver la


siguiente tabla):

Ranking Amenaza
1 Privilegios excesivos y privilegios no utilizados
2 Abuso de privilegios legítimos
3 Inyección SQL
4 Malware
5 Proceso de auditoría débil
6 Exposición de los medios de almacenamiento
Explotación de vulnerabilidades y bases de datos mal
7
configuradas
8 Datos sensibles no administrados
9 Negación o denegación de servicios
10 Educación y experiencia limitada en seguridad

Usted como representante de la organización, debe dar a conocer al menos dos


de las amenazas que se muestran en la tabla y sus posibles controles o la
disminución de estos riesgos.

 Elabore un documento en Word donde defina cada una de las amenazas


que seleccionó.

De acuerdo a la tabla de Amenazas en las bases de datos, se seleccionaron los


siguientes Ranking:

Definición de Amenazas

1. Inyección SQL

Consiste en la inserción de código SQL por medio de los datos de entrada desde
la parte del cliente hacia la aplicación. Es decir, por medio de la inserción de este
código el atacante puede modificar las consultar originales que debe realizar la
aplicación y ejecutar otras totalmente distintas con la intención de acceder a la
herramienta, obtener información de alguna de las tablas o borrar los datos
almacenados, entre otras muchas cosas.

Como consecuencias de estos ataques y dependiendo de los privilegios que tenga


el usuario de la base de datos bajo el que se ejecutan las consultas, se podría
acceder no sólo a las tablas relacionadas con la aplicación, sino también a otras
tablas pertenecientes a otras bases de datos alojadas en ese mismo servidor.

Lo comentado anteriormente es posible gracias a que el uso de ciertos caracteres


en los campos de entrada de información por parte del usuario, ya sea mediante el
uso de los campos de los formularios que son enviados al servidor mediante
POST o bien por medio de los datos enviados mediante GET en las urls de las
páginas web, posibilitan coordinar varias consultas SQL o ignorar el resto de la
consulta, permitiendo al hacker ejecutar la consulta que elija, de ahí que sea
necesario realizar un filtrado de esos datos enviados para evitar problemas.

2. Negación o denegación de servicios

Un ataque de denegación de servicio, tiene como objetivo inhabilitar el uso de un


sistema, una aplicación o una máquina, con el fin de bloquear el servicio para el
que está destinado. Este ataque puede afectar, tanto a la fuente que ofrece la
información como puede ser una aplicación o el canal de transmisión, como a la
red informática.

Los servidores web poseen la capacidad de resolver un número determinado de


peticiones o conexiones de usuarios de forma simultánea, en caso de superar ese
número, el servidor comienza a ralentizarse o incluso puede llegar a no ofrecer
respuesta a las peticiones o directamente bloquearse y desconectarse de la red.

Existen dos técnicas de este tipo de ataques: la denegación de servicio o DoS (por
sus siglas en inglés Denial of Service) y la denegación de servicio distribuido o
DDoS (por sus siglas en inglés Destributed Denial of Service). La diferencia entre
ambos es el número de ordenadores o IP´s que realizan el ataque.

En los ataques DoS se generan una cantidad masiva de peticiones al servicio


desde una misma máquina o dirección IP, consumiendo así los recursos que
ofrece el servicio hasta que llega un momento en que no tiene capacidad de
respuesta y comienza a rechazar peticiones, esto es cuando se materializa la
denegación del servicio.

En el caso de los ataques DDoS, se realizan peticiones o conexiones empleando


un gran número de ordenadores o direcciones IP. Estas peticiones se realizan
todas al mismo tiempo y hacia el mismo servicio objeto del ataque. Un ataque
DDoS es más difícil de detectar, ya que el número de peticiones proviene desde
diferentes IP´s y el administrador no puede bloquear la IP que está realizando las
peticiones, como sí ocurre en el ataque DoS.

Los ordenadores que realizan el ataque DDoS son reclutados mediante la


infección de un malware, convirtiéndose así en bots o zombis, capaces de ser
controlados de forma remota por un ciberdelincuente. Un conjunto de bots, es
decir, de ordenadores infectados por el mismo malware, forman una botnet o
también conocida como red zombi. Obviamente, esta red tiene mayor capacidad
para derribar servidores que un ataque realizado por sólo una máquina.

 ¿Cómo le daría solución a estas amenazas? ¿Qué controles implementaría


para disminuir los riesgos ocasionados por las posibles amenazas? Puede
apoyarse con imágenes para justificar su respuesta.

Soluciones o controles de amenazas informáticas con el fin de disminuir


múltiples riesgos

1. Inyección SQL

a) Escapar los caracteres especiales utilizados en las consultas SQL

Al hablar de “escapar caracteres” estamos haciendo referencia a añadir la barra


invertida “\” delante de las cadenas utilizadas en las consultas SQL para evitar que
estas corrompan la consulta. Algunos de estos caracteres especiales que es
aconsejable escapar son las comillas dobles (“), las comillas simples (‘) o los
caracteres \x00 o \x1a ya que son considerados como peligrosos pues pueden ser
utilizados durante los ataques.

Los distintos lenguajes de programación ofrecen mecanismos para lograr escapar


estos caracteres. En el caso de PHP podemos optar por la función
mysql_real_scape_string(), que toma como parámetro una cadena y la modifica
evitando todos los caracteres especiales, devolviéndola totalmente segura para
ser ejecutada dentro de la instrucción SQL.
b) Delimitar los valores de las consultas

Aunque el valor de la consulta sea un entero, es aconsejable delimitarlo siempre


entre comillas simples. Una instrucción SQL del tipo:

- SELECT nombre FROM usuarios WHERE id_user = $id

Será mucho más fácilmente inyectable que:

- SELECT nombre FROM usuarios WHERE id_user = ‘$id’

Donde $id es un número entero.

c) Verificar siempre los datos que introduce el usuario

Si en una consulta estamos a la espera de recibir un entero, no confiemos en que


sea así, sino que es aconsejable tomar medidas de seguridad y realizar la
comprobación de que realmente se trata del tipo de dato que estamos esperando.
Para realizar esto, los lenguajes de programación ofrecen funciones que realizan
esta acción, como pueden ser ctype_digit() para saber si es un número o
ctype_alpha () para saber si se trata de una cadena de texto en el caso del
lenguaje PHP.

También es aconsejable comprobar la longitud de los datos para descartar


posibles técnicas de inyección SQL, ya que si por ejemplo estamos esperando un
nombre, una cadena extremadamente larga puede suponer que estén intentando
atacarnos por este método. En el caso de PHP, podemos utilizar la función strlen()
para ver el tamaño de la cadena.

d) Asignar mínimos privilegios al usuario que conectará con la base de


datos
El usuario que utilicemos para conectarnos a la base de datos desde nuestro
código debe tener los privilegios justos para realizar las acciones que
necesitemos. No utilizar nunca un usuario root con acceso a todas las bases de
datos ya que de esta forma estaremos dando facilidades a los hackers para que
puedan acceder a toda la información.

e) Programar en modo seguridad

Aunque pueda parecer una tontería, no hay mejor medida para evitar este tipo de
ataques que realizar una buena programación, poniendo en práctica las
necesidades básicas y el interés para desarrollar una aplicación totalmente
segura.

Además de las medidas que podemos tomar a la hora de implementar el código,


siempre podemos acudir a auditorías de código para asegurarnos de que no
hemos dejado ningún tipo de puertas abiertas, aunque suelen ser procesos caros
realizados por terceras empresas.

2. Negación o denegación de servicios

- Las organizaciones TI deberían invertir en evaluar e implementar productos


y servicios apropiados. Por ejemplo, algunos firewalls de próxima
generación ponen de relieve las contramedidas de prevención y detección
de intrusiones contra ataques DDoS conocidos, que pueden ser
actualizados automáticamente con nuevas firmas.

- De forma ideal, los departamentos de TI necesitarán un firewall para


analizar en profundidad tanto el tráfico de entrada como el de salida –
incluyendo visibilidad en las aplicaciones – y monitorizar y alertar en caso
de diseños sospechosos. Las TI deberían asegurar que la solución de
firewall remedie los ataques DDoS bloqueando, filtrando o re direccionando
el tráfico basado en diseños, volúmenes o características identificadas.

- Para una inteligencia de tráfico mejorada, los departamentos TI deben


además considerar la implementación de un software que analice el flujo de
tráfico que pueda examinar el uso de datos por aplicación o usuarios, mirar
los datos sobre diferentes periodos de tiempo y los datos del tráfico
correlativo desde múltiples fuentes como NetFlow e IPFIX.

- Evitar trabajar con los puertos conocidos, 1434 para MS SQL Server; esto
no evitará el ataque pero si generará confusión en el atacante al no
encontrar el servicio ejecutándose en el puerto por omisión.

- Si el proveedor de servicios de internet, ISP, cuenta con medidas que


ayudan a mitigar el exceso de tráfico dirigido a la red propia, hacer uso de
estas

Вам также может понравиться