Está en la página 1de 4

José Pacheco Santo / Aporte a coro colaborativo_ Guía # 6

1. Un hacker ético, es un profesional


informático, que contribuye a identificar
vulnerabilidades en un sistema informático,
a través de pruebas de intrusión o
penetración, que verifican y evalúan la
seguridad de los sistemas de información,
canales de comunicación y servidores, antes de que puedan ser explotados de
manera maliciosa. Por tanto, su objetivo es realizar una acción preventiva,
identificar las fallas y reportarlas a la organización que lo contrata, para que
esta tome las medidas del caso.

2. En Colombia, en los últimos


años se han presentado
situaciones serias
relacionadas con el Hacking;
actualmente contamos con
uno de los hackers más jóvenes del país, se llama José Pino de Tumaco
Nariño, es un hacker ético que ha contribuido para compañías como Microsoft,
PayPal y Yayo!; sin embargo, a Colombia se le conoce más por los Black Hat,
por ejemplo, Andrés Fernando Sepúlveda, quien obtuvo información
confidencial de dirigentes políticos, guerrilleros de las FARC y funcionarios del
Gobierno relacionados con los Diálogos de paz entre el gobierno Santos y las
FARC.
Lo interesante de estos hackers mencionados, es que ninguno tiene estudios
universitarios, lo que habla muy bien de sus habilidades para este tipo de
actividad.
También hay profesionales académicos como Mario Simbaqueba Bonilla,
Ingeniero de sistemas graduado de la Javeriana, quien logró vulnerar la
seguridad del pentágono de los estados unidos, robó más de 600 identidades
y al menos 1.4 millones de dólares, lo cual pagó con precio de cárcel, al igual que
Andres Sepúlveda y no es para menos.
Considero que las capacidades del ser humano deben estar al servicio de
hacer el bien común, por encima de los intereses personales, que son los que
conllevan a que este tipo de persona se desvíe. En nuestro país, falta mucha

Especialización tecnológica _ Gestión y seguridad de Bases de Datos


José Pacheco Santo / Aporte a coro colaborativo_ Guía # 6

inversión en las TIC y en los campos de formación en lo referente a la


informática avanzada, sin embargo, exista o no crecimiento en este sector,
siempre existirá el White y Black Hat, no todos usamos nuestras capacidades
para hacer lo correcto.

3. El SQL-Injection, es un ataque contra un sitio o


aplicación web en el que se añade código de lenguaje
de consulta estructurado (SQL) a un campo de entrada
de un formulario web con el objetivo de acceder a una
cuenta o modificar los datos.
Una consulta SQL es una petición de algún tipo de acción sobre una base de
datos, la más habitual es la petición de un nombre de usuario y una contraseña
en una página web. Dado que muchos sitios web solo supervisan la
introducción de nombres de usuario y contraseñas, un hacker puede utilizar los
cuadros de introducción de datos para enviar sus propias peticiones, es decir,
inyectar SQL en la base de datos. De esta forma, los hackers pueden crear,
leer, actualizar, modificar o eliminar los datos guardados en la base de datos
back-end, normalmente para acceder a información confidencial, como los
números de la seguridad social, los datos de las tarjetas de crédito u otra
información financiera.

4. Para evitar la inyección SQL, existen


mecanismos que pueden establecerse para
prevenirla, como son:
✓ Escapar caracteres especiales, con 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 (“) y simples (‘), ya que son considerados sensibles, para un
ataque.
Lo normal es que cuando estemos creando una página web capturemos datos
del usuario. Cuando el usuario introduce datos tiene la capacidad, a introducir
cualquier carácter especial, los cuales en un posterior tratamiento del texto nos
pueden generar problemas.

Especialización tecnológica _ Gestión y seguridad de Bases de Datos


José Pacheco Santo / Aporte a coro colaborativo_ Guía # 6

Por lo tanto, estos caracteres tienes que aparecer escapados mediante la barra
invertida.
Así la cadena ‘Hola Mundo’ se representará como \’Hola Mundo\’.
var cadena = " \'Hola Mundo\' ";
Lo ideal entonces es crear una función que nos reemplace los caracteres no
deseados.
✓ Delimitar los valores de las consultas, aunque sea un entero, es aconsejable
delimitarlo siempre entre comillas simples.
Por ejemplo, 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.
✓ Verificar siempre los datos que introduce el usuario, si en una consulta se
espera recibir un entero, desconfiemos y tomemos las medidas de seguridad
al realizar la comprobación de que realmente se trata del tipo de dato que
estamos esperando.
También es aconsejable comprobar la longitud de los datos para descartar
posibles técnicas de inyección, pues si estamos esperando un nombre, una
cadena extremadamente larga puede alertarnos que están intentando atacar
por este método.
✓ Asignar privilegios mínimos al usuario que conectará con la base de datos,
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.
✓ Realizar una buena programación del código, poniendo en práctica las reglas
básicas de seguridad y pensar como pensaría el atacante, de tal manera que
podamos crear una aplicación robusta y confiable.
Por tanto, es necesario realizar auditorías al código para asegurarnos de que
no hemos dejado ningún tipo de puertas abiertas.

Especialización tecnológica _ Gestión y seguridad de Bases de Datos


José Pacheco Santo / Aporte a coro colaborativo_ Guía # 6

✓ Otra técnica es la de asignar los permisos correctos al usuario que manejará


la base de datos en Internet, nunca asignarle permiso de eliminación a un
usuario que solo debe hacer consultas.

La inyección SQL, no solo está vigente en formularios, también las URL pasan
parámetros para se consulte la base de datos, ¿por lo que «default.asp?id=1»
podría convertirse en el objetivo de ataque.

Especialización tecnológica _ Gestión y seguridad de Bases de Datos