Aplicaciones seguras con PHP

Segunda parte

servidores red redes seguridad datosEn la última entrega había escrito sobre ciberseguridad y el ataque a los sitios Web utilizando la fuerza bruta o “Brute Force”. En esta entrega os traigo otro tema de la ciberseguridad. Este tipo de ataque es peligroso y muy difundido entre los cibercriminales y Hackers de turno.

Secuestro de sesión (session Hijacking)

Un atacante adivina la signatura de un valor de sesión  y usa este conocimiento  para robar la sesión de otro usuario. Este tipo de ataque permite al intruso tener el acceso a todas las informaciones que el usuario atacado. Este tipo de ataque es más probable en páginas que no usan el protocolo https y los valores de sesión no son tratados ni validados correctamente.

Como siempre nuestro atacante lo primero que hace es recolectar toda la información necesaria sobre nuestra aplicación. Esto lo logra observando nuestra aplicación y midiendo nuestras respuestas. También es probable que sepa e investigue que tipo de aplicación hemos instalado, si hemos comprado alguna o hemos bajado algún paquete open source de los que se consiguen gratis en la red.

Como protegerse?

seguridad informática redesNo es tan sencillo prevenir este tipo de ataques, ya que se necesita casi siempre una variable de sesión para la mayoría de las aplicaciones modernas hechas en PHP. Un punto importante para cualquier programador o quien desee tener una aplicación profesional en su servidor es determinar si necesita una sesión o no. El sistema de sesión de PHP trabaja de una manera muy simple:

Al llamar función session_start() se crea una llave con el cual podemos guardar mucha información usando la variable de sesión “_SESSION”. Esta llave es transmitida al servidor para ser guardada como cookie y para su posterior utilización. Se pueden acceder a los datos directamente teniendo esta llave y llamando en el navegador la página indicada. Muchos atacantes generan llaves  con el algoritmo conocido standard de PHP que al ser utilizadas (enviadas en los headers) pueden “robar” la sesión del usuario. Sobretodo páginas que no cierran la sesión o que permiten acceder a la página con solamente tener el cookie, están más amenazadas por este tipo de ataques.

Una de las formas de protegerse ante este tipo de ataque son:

  • Generar la llave de sesión con un algoritmo no conocido (propio)
  • Asegurar la autenticidad de la llave de sesión a través de otros métodos. Por ejemplo el envío de parámetros aleatorios conocidos solo para la aplicación
  • Cambiar la llave de sesión en cada request
  • Usar https y Cookie de sesiones seguro para protegerse de ataques de “man in the middle”
  • Cifrar los datos de sesión con un algoritmo propio si se usan Webservices que proveen datos. La aplicación destinataria debe conocer el metodo para descifrar los datos, pero un atacante no puede utilizar los datos cifrados

En la próxima entrega: Ejemplos de Código utilizados en la vida real para los tipos de ataques (ejemplos)

#ciberseguridad #informatica #simplynetworks #PHP5 #PHP #aplicaciones #web

About the author: Carlos Medina

Leave a Reply

Your email address will not be published.Email address is required.