You are on page 1of 7

¿Qué es el hacking ético?

Para atrapar a un intruso, hay que pensar como un intruso, bajo esta premisa se puede dar una base
al concepto de hacking ético, el conocimiento del enemigo es una tarea vital, puesto que, con el
veloz desarrollo de la tecnología, también aumenta el número de hackers y el número de
vulnerabilidades de los sistemas que pueden ser explotadas por ellos. A medida que pasa el tiempo,
la infraestructura, los sistemas de información y las aplicaciones se vuelven susceptibles de ser
atacadas, es así que proteger estos activos de los hackers se vuelve crítico.

Los hackers atacan las malas prácticas en materia de seguridad y vulnerabilidades de día cero. Los
firewalls, la criptografía y el uso de contraseñas pueden crear una falsa sensación de seguridad,
estas herramientas normalmente no cubren todos los frentes necesarios para tener realmente un
nivel de seguridad aceptable. Atacar la infraestructura y los sistemas de información propios de la
organización para descubrir debilidades ayuda a mejorar la seguridad.

Se puede decir y sin temor a equivocaciones que el hacking ético o ethical hacking es en gran medida
el único método probado de aseguramiento de los sistemas de información contra los ataques, si
no se identifican las vulnerabilidades, es solo cuestión de tiempo que estas sean explotadas. En
resumen, el ethical hacking permite a las organizaciones conocer las debilidades en su
infraestructura y sistemas de información de modo que puedan ser tratadas para disminuir el riesgo
de pérdidas. [1]
Protocolo HTTP

El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un sencillo protocolo


cliente-servidor que articula los intercambios de información entre los clientes web y los servidores
HTTP.

HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con
un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje
similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden
adjuntar un objeto o recurso sobre el que actúan; cada objeto web es identificado por su URL. [2]

Algunas de las características dentro de este protocolo:

 Toda la comunicación entre los clientes y servidores se realiza a partir de caracteres US-
ASCII de 7 bits.
 Permite la transferencia de objetos multimedia, codificando los archivos binarios en
cadenas de caracteres. El contenido de cada objeto intercambiado está identificado por su
clasificación MIME.

 Existen ocho verbos que permiten que un cliente pueda dialogar con el servidor. Los tres
más utilizados son: GET, para recoger un objeto, POST, para enviar información al servidor
y HEAD, para solicitar las características de un objeto (por ejemplo, la fecha de modificación
de un documento HTML).

 Cada operación HTTP implica una conexión con el servidor, que es liberada al término de la
misma. Es decir, en una operación se puede recoger un único objeto. Con la versión HTTP
1.1 se ha mejorado este procedimiento, permitiendo que una misma conexión se mantenga
activa durante un cierto periodo de tiempo, de forma que sea utilizada en sucesivas
transacciones. Este mecanismo, denominado HTTP Keep Alive, es empleado por la mayoría
de los clientes y servidores modernos.

 No mantiene estado. Cada petición de un cliente a un servidor no es influida por las


transacciones anteriores. El servidor trata cada petición como una operación totalmente
independiente del resto.

 Cada objeto al que se aplican los verbos del protocolo está identificado a través de un
localizador uniforme de recurso (URL) único.
Funcionamiento:

Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos:

Paso 1. Un usuario accede a una URL, seleccionando un enlace de un documento HTML o


introduciéndola directamente en el navegador.

Paso 2. El cliente web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo
de acceso, la dirección DNS o IP del servidor, el puerto (de carácter opcional; el valor por defecto es
80) y el objeto requerido del servidor.

Paso 3. Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente.

Paso 4. Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD,…), la
dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la
versión del protocolo HTTP empleada y un conjunto variable de información, que incluye datos
sobre las capacidades del navegador, datos opcionales para el servidor, etc.

Paso 5. El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato
MIME de la información de retorno, seguido de la propia información.

Paso 6. Se cierra la conexión TCP. Si no se utiliza el modo HTTP Keep Alive, este proceso se repite
para cada acceso al servidor HTTP.

El diálogo con los servidores HTTP se establece a través de mensajes formados por líneas de texto,
cada una de las cuales contiene los diferentes comandos y opciones del protocolo. Solo existen dos
tipos de mensajes, uno para realizar peticiones y otro para devolver la correspondiente respuesta.
¿Qué es TLS y por qué es necesario?
TLS (Transport Layer Security) es un protocolo de comunicación, en el cual, se establece
una conexión segura entre cliente y servidor por medio de un canal cifrado. Este ha
evolucionado de su antecesor SSL (Secure Sockets Layer) ambos creados por Netscape1.
[3]
El intercambio de información con TLS/SSL se realiza en un entorno seguro y libre de
ataques. La última propuesta de estándar está documentada en la referencia RFC 2246.
TLS/SSL son ampliamente necesarios en el tránsito de información debido:
 Prevenir escuchas (eavesdropping).
 Evitar la falsificación de la identidad del remitente Mantener la integridad del
mensaje en una aplicación cliente-servidor.
 Establecer una conexión segura entre dos partes.
 Aplicaciones distintas deben poder intercambiar parámetros criptográficos sin
necesidad de que ninguna de las dos conozca el código de la otra.
 Permitir la incorporación de nuevos algoritmos criptográficos.
 Los algoritmos criptográficos son costosos computacionalmente, por lo que el
protocolo incluye un esquema de cache de sesiones para reducir el número de
sesiones que deben inicializarse desde cero.
Autenticación web

Se analizan las vulnerabilidades que pueden darse en las aplicaciones a la hora de


identificar sus usuarios y los permisos que estos poseen. Recogiendo una serie de
recomendaciones para el desarrollo de aplicaciones, que tenidas en cuenta, ayuden a
mitigar los riesgos de producirse situaciones como el escalado de privilegios o la
suplantación de identidad.

Hay dos procesos distintos que intervienen cuando se trata de permitir a un usuario
acceder a páginas específicas de un sitio web:

La autenticación es el proceso de identificación de un individuo sobre la base de sus


credenciales (normalmente nombre de usuario y contraseña)

El objetivo de la autenticación es decidir si "alguien es quien dice ser". Hay tres formas
de reconocer a un usuario, que se conocen como factores:
 Algo que saben, como una contraseña o PIN

 Algo que tienen, tal como una licencia de conducir o tarjeta de crédito

 Algo que son, como las huellas digitales o la inserción de los patrones

El control de acceso es el proceso de decidir si el usuario tiene permiso para ejecutar


algo o no.

También llamado autorización, se refiere a la gestión del acceso a los recursos


protegidos y al proceso de determinar si un usuario está autorizado a acceder a un
recurso particular. Por ejemplo, muchas aplicaciones web cuentan con recursos que
sólo están disponibles para los usuarios autenticados, recursos que sólo están
disponibles para los administradores, y los recursos que están disponibles para todos.
Así, al establecer privilegios de acceso a los usuarios podemos asegurar la
confidencialidad y disponibilidad de la información; pero, además, podemos:
Que sólo las personas autorizadas podrán acceder a ciertos recursos (sistemas,
equipos, programas, aplicaciones, bases de datos, redes, etc…) por sus funciones
laborales.
Nos permiten identificar y auditar los accesos realizados, estableciendo controles de
seguridad internos.
Documentar los procedimientos de acceso a las diferentes aplicaciones que tratan
datos personales.
En definitiva, controlar los accesos desde diferentes vertientes: red, sistemas y
aplicaciones.
Hoy en día es muy común la escalada de privilegios, que no es más que la obtención de
los privilegios del administrador. Por ello, debe existir una política o normativa
específica que establezca el uso de mecanismos para impedir intentos de escalado de
privilegios en nuestras aplicaciones web. Se considera que un sistema aplica políticas
para evitar el escalado de privilegios cuando: No es posible acceder a información del
sistema que pueda ser utilizada para la escalada de privilegios, no es posible ejecutar
acciones haciéndose pasar por otro usuario, etc. [4]
Referencias:

[1] (2014, Junio) Revista semana. [Online]. http://www.semana.com/tecnologia/novedades

/articulo/los-peores-ataques-informaticos-de- 2014/391376-3

[2] Protocolo HTTP: informatica.uv.es/iiguia/IST/Tema2.pdf

[3] http://deic.uab.es/material/26118-ssl.pdf. Protección de nivel de transporte: SSL/TLS/WTLS

[4] http://www.juntadeandalucia.es/servicios/madeja/contenido/subsistemas/desarrollo/control-
acceso-y-autenticacion