SlideShare una empresa de Scribd logo
Desarrollo de  Aplicaciones Web   Seguridad
Seguridad en aplicaciones Web Introducción En las redes hay datos e información sensible de los usuarios que puede encontrarse expuesta cuando es enviada entre clientes y servidores. Así, éstos datos y las aplicaciones web que los procesan pueden sufrir diversos ataques: Ataques pasivos: intercepción de mensajes o de la identidad de los usuarios por una tercera parte con fines maliciosos. Ataques activos: denegación de servicio e imposibilidad de acceso a los recursos utilizados por los usuarios. Para evitar éstos ataques, se deben implementar medidas de seguridad.
Seguridad en aplicaciones Web Servicios de seguridad Confidencialidad de los datos (que solamente puedan ser leídos por el destinatario). Integridad de los datos (que no hayan sido modificados durante el envío). Identificación de los usuarios (que un usuario sea quien dice ser). Autenticación de los usuarios (confirmar su identificación). Control de acceso (que sólo accedan a los servicios o recursos los usuarios autorizados). No repudio (prueba irrefutable de verificación).
Seguridad en aplicaciones Web Implementación de la confidencialidad La confidencialidad se puede lograr utilizando la criptograf í a y algoritmos de encriptaci ó n. La criptograf í a permite transformar un texto en otro, que es incomprensible para receptores no autorizados, a través de un proceso de encriptado.
Seguridad en aplicaciones Web Los tipos de encriptación pueden clasificarse en: Encriptación simétrica: el algoritmo utiliza una misma clave secreta para encriptar y desencriptar el mensaje. Ejemplos:  DES (Data Encryption Standard) ,  3DES,   IDEA (International Data Encryption Algorithm), RC2, RC4, RC5.   Encriptación asimétrica: el algoritmo utiliza una clave para encriptar el mensaje (clave pública) y otra para desencriptarlo (clave privada). Ejemplo: RSA. Tanto PHP como JavaScript soportan el uso de los algoritmos de encriptación. PHP incluye la librería Mcrypt.
Seguridad en aplicaciones Web Ejemplo: Encriptación del texto con JavaScript
Seguridad en aplicaciones Web Ejemplo: Desencriptación del texto con PHP
Seguridad en aplicaciones Web Implementación de la integridad La verificación de la integridad de los datos se puede lograr utilizando una función hash, la cual se aplica sobre el mensaje y devuelve un resumen único de éste:
Seguridad en aplicaciones Web Algunas características de las funciones hash son: No produce colisiones: no se obtiene el mismo resumen para dos documentos diferentes. Es imposible de invertir: no se puede determinar el mensaje a partir de su resumen. Produce muchos cambios en el resumen: si el documento cambia, el resumen también. Ejemplos de funciones hash: MD5 (Message Digest Algorithm), RIPEMD, SHA y SHA1. Tanto PHP como JavaScript soportan el uso de  funciones hash. PHP incorpora las funciones MD5 y MD5_file, que permiten obtener el resumen de una cadena o un archivo respectivamente.
Seguridad en aplicaciones Web Ejemplo: Resumen MD5 en PHP
Seguridad en aplicaciones Web Implementación de la identificación y la autenticación La forma básica de identificación de usuarios es con algún dato característico (nombre de usuario, documento, correo electrónico, etcétera) y una contraseña asociada. Otra forma más segura es utilizando la firma digital. La firma digital se implementa utilizando el algoritmo RSA: el usuario encripta el mensaje con la clave privada y el destinatario la desencripta con la pública. La autenticación se logra cuando una tercera parte (autoridad certificante) asegura la identidad de una entidad mediante el uso de certificados.
Seguridad en aplicaciones Web Algunas políticas de seguridad para el envío de passwords ¿Qué opciones tiene un usuario para recuperar un password olvidado?
Seguridad en aplicaciones Web Ataques a las aplicaciones web Además de implementar los servicios de seguridad, una aplicación web debe estar preparada para otros ataques: SQL Injection Cross-Site Scripting Phising Session Hijacking
Seguridad en aplicaciones Web SQL Injection Los datos ingresados en los formularios a veces son utilizados para realizar consultas a la base de datos. Esto puede ser peligroso si no se validan las entradas de datos sensibles.  Así, se puede producir un error en ejecución que se mostrará en el navegador, y puede divulgar la estructura de la base de datos al atacante. O también, un usuario podría pasar el control de identificación, o ingresar una sentencia SQL que permitiría borrar tablas o la base de datos.
Ejemplos Seguridad en aplicaciones Web Consulta en el script $consulta = “SELECT id FROM usuarios WHERE usuario = ‘”.$_POST[‘usuario’].“ ’ AND pass = ‘ ”.$_POST[‘clave’].“  ’  ”; Valores ingresados usuario= juan – pass = ‘OR ‘1  Consulta a ejecutar $consulta = “SELECT id FROM usuarios WHERE usuario = ‘juan’ AND pass = ‘’ OR ‘1’”; Consulta en el script  $consulta = “SELECT titulo FROM libros WHERE codigo = ”.$_POST[‘codigo’]; Valor ingresado codigo = 23; DROP TABLE libros Consulta a ejecutar $consulta = “SELECT titulo FROM libros WHERE codigo = 23; DROP TABLE libros”
Ejemplo de vulnerabilidad (junio 2009) Seguridad en aplicaciones Web
Seguridad en aplicaciones Web Algunas formas de evitar este ataque son: Validar todos los datos que se ingresan a la base de datos, incluyendo los tipos de datos esperados. Verificar como trabajan las consultas SQL que se incluyen en el script PHP.  De ser posible, utilizar procedimientos almacenados. Otorgar a los usuarios sólo los permisos de acceso que necesita. Si se trabaja con librerías que incluyen los datos de la conexión (usuario, password, servidor, base de datos), guardarla en un directorio inaccesible por los clientes y tener precaución con la extensión del archivo, ya que podría ser visualizado.
Seguridad en aplicaciones Web Cross-Site Scripting Este ataque se da cuando un servidor fiable ejecuta scripts que están guardados en otro, y tienen intención maliciosa, como obtener datos sensibles. La inclusión del código malicioso puede lograrse a través de boletines de noticias, foros, libros de visitas, etc. Luego, un usuario ejecuta el script, ingresando datos sensibles, sin darse cuenta que en realidad no está trabajando en el sitio confiable. Otra forma de ataque es cuando se utiliza el script para obtener ID de sesiones.
Seguridad en aplicaciones Web Phising El phising es el arte de suplantar sitios web, utilizando la replicación del mismo, incluyendo hasta los formularios de entrada de datos. Luego, al usuario se lo puede engañar para que facilite sus datos, sin que él sepa que no esta trabajando con el sitio web auténtico. Otra forma es enviando un correo electrónico con un enlace hacia el sitio replicado, donde se le solicitarán nuevamente los datos. Una forma de evitar este ataque es usando certificados válidos otorgados por autoridades certificantes.
Seguridad en aplicaciones Web Session Hijacking Cuando un usuario autenticado está conectado a una aplicación, es posible que otro tome el control de su sesión. Esto se logra obteniendo el ID de la sesión o bien recuperando la cookie de la misma. El ID de la sesión puede obtenerse utilizando técnicas de fuerza bruta o mediante la intercepción de mensajes. Una forma de evitar este ataque es definiendo tiempos de expiración por inactividad y absoluto. Otra forma es usando SSL, que trabaja con datos encriptados.
Fin de la Unidad Gracias por su atención!!!

Más contenido relacionado

PPTX
Seguridad de base de datos
PPTX
Seguridad Base de datos
PPTX
Seguridad en Base de Datos
PPT
Proteccion a la base de datos
PPTX
Seguridad Base De Datos
PPTX
Seguridad en bases de datos
PPTX
Seguridad en el almacenamiento de las bases de datos
PPTX
Mario y Carlos 9 1
Seguridad de base de datos
Seguridad Base de datos
Seguridad en Base de Datos
Proteccion a la base de datos
Seguridad Base De Datos
Seguridad en bases de datos
Seguridad en el almacenamiento de las bases de datos
Mario y Carlos 9 1

La actualidad más candente (20)

PPT
Seguridades en bases de datos
PPTX
Seguridad en bases de datos
DOCX
Seguridad En Base De Datos
PDF
Integridad Y Seguridad En Las Bases De Datos
PPTX
Seguridad de base de datos
PDF
SEGURIDAD DE BASE DE DATOS
PPT
SEGUIRIDAD DE BASE DE DATOS
PDF
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
PPTX
Conceptos Basicos de Bases de Datos Multiusuario
DOC
Seguridad de bases de datos
PPT
Base de Datos
PPTX
Introduccion a la seguridad en Windows Azure
PPTX
Green sql
PPTX
Examen vanessa
PPTX
Diapositivas de aplicativos
PPSX
exposicion integridad y seguridad de las bases de datos
DOCX
Taller n1 base de datos 2010
PPTX
Grupo N°8 Ortiz Jessica y Peralvo Gimely
PDF
Seguridad en servidores WEB. Modulo mod_security
PDF
Unidad iv -_seguridad
Seguridades en bases de datos
Seguridad en bases de datos
Seguridad En Base De Datos
Integridad Y Seguridad En Las Bases De Datos
Seguridad de base de datos
SEGURIDAD DE BASE DE DATOS
SEGUIRIDAD DE BASE DE DATOS
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Conceptos Basicos de Bases de Datos Multiusuario
Seguridad de bases de datos
Base de Datos
Introduccion a la seguridad en Windows Azure
Green sql
Examen vanessa
Diapositivas de aplicativos
exposicion integridad y seguridad de las bases de datos
Taller n1 base de datos 2010
Grupo N°8 Ortiz Jessica y Peralvo Gimely
Seguridad en servidores WEB. Modulo mod_security
Unidad iv -_seguridad
Publicidad

Destacado (15)

PDF
Pasos para un buen trabajo APA
PPTX
base de datos para dispositivos móviles
DOCX
DISPOSITIVOS DE COMUNICACIÓN PERSONAL
PDF
Seguridad en dispositivos móviles
PPTX
Reglas de Codd
PPT
Computacion movil y ubicua
PDF
Axolotl Protocol: An Illustrated Primer
PPTX
Arquitectura de software para aplicaciones móviles
PDF
Índice del libro "Hacking Web Technologies"
PDF
El Gran Libro de Diseño Web
PPT
Arquitectura 3 Capas
PPTX
Componentes de una base de datos
PDF
Libro de Seguridad en Redes
DOC
Arquitectura
DOCX
Protocolos De Seguridad En Redes
Pasos para un buen trabajo APA
base de datos para dispositivos móviles
DISPOSITIVOS DE COMUNICACIÓN PERSONAL
Seguridad en dispositivos móviles
Reglas de Codd
Computacion movil y ubicua
Axolotl Protocol: An Illustrated Primer
Arquitectura de software para aplicaciones móviles
Índice del libro "Hacking Web Technologies"
El Gran Libro de Diseño Web
Arquitectura 3 Capas
Componentes de una base de datos
Libro de Seguridad en Redes
Arquitectura
Protocolos De Seguridad En Redes
Publicidad

Similar a Seguridad app web (20)

PPTX
Seguridad en los sistemas web
PPTX
Temas owasp
PDF
Seguridad en el desarrollo de aplicaciones web
PPTX
01 - Sesión 09 - Fallos de Seguridad.pptx
PDF
In seguridad de aplicaciones web
PPT
Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2
PDF
S13 - PRUEBAS DE SOFTWARE OWA - PRUEBAS DE SOFTWARE
PDF
Owasp proyecto
PPS
Seguridad en Aplicaciones Web
PDF
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
PDF
Web App Security, Ethical hacking for CodeCamp SDQ 5
PDF
Seguridad en la web no confíes en el usuario
PDF
Aplicaciones Web Seguras (Anti-SQLi)
ODP
Seguridadappswebfrcu2008 1227940522216168-8 (1)
PDF
Samurai Web Testing Framework 2.0
PDF
Seguridad WEB - Principios básicos.
PPTX
Los 10 principales riesgos en aplicaciones web #CPMX5
PPT
Exposicion univ simon_bolivar
PDF
Seguridad en Aplicaciones Web y Comercio Electrónico
PPT
Seguridad del sitio y pagos
Seguridad en los sistemas web
Temas owasp
Seguridad en el desarrollo de aplicaciones web
01 - Sesión 09 - Fallos de Seguridad.pptx
In seguridad de aplicaciones web
Introducción a La Seguridad Desde La Perspectiva Del Desarrollador V2
S13 - PRUEBAS DE SOFTWARE OWA - PRUEBAS DE SOFTWARE
Owasp proyecto
Seguridad en Aplicaciones Web
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Web App Security, Ethical hacking for CodeCamp SDQ 5
Seguridad en la web no confíes en el usuario
Aplicaciones Web Seguras (Anti-SQLi)
Seguridadappswebfrcu2008 1227940522216168-8 (1)
Samurai Web Testing Framework 2.0
Seguridad WEB - Principios básicos.
Los 10 principales riesgos en aplicaciones web #CPMX5
Exposicion univ simon_bolivar
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad del sitio y pagos

Último (20)

PDF
2.0 Introduccion a processing, y como obtenerlo
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Metodologías Activas con herramientas IAG
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
Atencion prenatal. Ginecologia y obsetricia
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
DOCX
PLANES DE área ciencias naturales y aplicadas
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
2.0 Introduccion a processing, y como obtenerlo
Híper Mega Repaso Histológico Bloque 3.pdf
Metodologías Activas con herramientas IAG
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
TOMO II - LITERATURA.pd plusenmas ultras
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Presentación de la Cetoacidosis diabetica.pptx
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
Atencion prenatal. Ginecologia y obsetricia
Tomo 1 de biologia gratis ultra plusenmas
Punto Critico - Brian Tracy Ccesa007.pdf
caso clínico iam clinica y semiología l3.pptx
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PLANES DE área ciencias naturales y aplicadas
PLAN DE CASTELLANO 2021 actualizado a la normativa
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...

Seguridad app web

  • 1. Desarrollo de Aplicaciones Web Seguridad
  • 2. Seguridad en aplicaciones Web Introducción En las redes hay datos e información sensible de los usuarios que puede encontrarse expuesta cuando es enviada entre clientes y servidores. Así, éstos datos y las aplicaciones web que los procesan pueden sufrir diversos ataques: Ataques pasivos: intercepción de mensajes o de la identidad de los usuarios por una tercera parte con fines maliciosos. Ataques activos: denegación de servicio e imposibilidad de acceso a los recursos utilizados por los usuarios. Para evitar éstos ataques, se deben implementar medidas de seguridad.
  • 3. Seguridad en aplicaciones Web Servicios de seguridad Confidencialidad de los datos (que solamente puedan ser leídos por el destinatario). Integridad de los datos (que no hayan sido modificados durante el envío). Identificación de los usuarios (que un usuario sea quien dice ser). Autenticación de los usuarios (confirmar su identificación). Control de acceso (que sólo accedan a los servicios o recursos los usuarios autorizados). No repudio (prueba irrefutable de verificación).
  • 4. Seguridad en aplicaciones Web Implementación de la confidencialidad La confidencialidad se puede lograr utilizando la criptograf í a y algoritmos de encriptaci ó n. La criptograf í a permite transformar un texto en otro, que es incomprensible para receptores no autorizados, a través de un proceso de encriptado.
  • 5. Seguridad en aplicaciones Web Los tipos de encriptación pueden clasificarse en: Encriptación simétrica: el algoritmo utiliza una misma clave secreta para encriptar y desencriptar el mensaje. Ejemplos: DES (Data Encryption Standard) , 3DES, IDEA (International Data Encryption Algorithm), RC2, RC4, RC5. Encriptación asimétrica: el algoritmo utiliza una clave para encriptar el mensaje (clave pública) y otra para desencriptarlo (clave privada). Ejemplo: RSA. Tanto PHP como JavaScript soportan el uso de los algoritmos de encriptación. PHP incluye la librería Mcrypt.
  • 6. Seguridad en aplicaciones Web Ejemplo: Encriptación del texto con JavaScript
  • 7. Seguridad en aplicaciones Web Ejemplo: Desencriptación del texto con PHP
  • 8. Seguridad en aplicaciones Web Implementación de la integridad La verificación de la integridad de los datos se puede lograr utilizando una función hash, la cual se aplica sobre el mensaje y devuelve un resumen único de éste:
  • 9. Seguridad en aplicaciones Web Algunas características de las funciones hash son: No produce colisiones: no se obtiene el mismo resumen para dos documentos diferentes. Es imposible de invertir: no se puede determinar el mensaje a partir de su resumen. Produce muchos cambios en el resumen: si el documento cambia, el resumen también. Ejemplos de funciones hash: MD5 (Message Digest Algorithm), RIPEMD, SHA y SHA1. Tanto PHP como JavaScript soportan el uso de funciones hash. PHP incorpora las funciones MD5 y MD5_file, que permiten obtener el resumen de una cadena o un archivo respectivamente.
  • 10. Seguridad en aplicaciones Web Ejemplo: Resumen MD5 en PHP
  • 11. Seguridad en aplicaciones Web Implementación de la identificación y la autenticación La forma básica de identificación de usuarios es con algún dato característico (nombre de usuario, documento, correo electrónico, etcétera) y una contraseña asociada. Otra forma más segura es utilizando la firma digital. La firma digital se implementa utilizando el algoritmo RSA: el usuario encripta el mensaje con la clave privada y el destinatario la desencripta con la pública. La autenticación se logra cuando una tercera parte (autoridad certificante) asegura la identidad de una entidad mediante el uso de certificados.
  • 12. Seguridad en aplicaciones Web Algunas políticas de seguridad para el envío de passwords ¿Qué opciones tiene un usuario para recuperar un password olvidado?
  • 13. Seguridad en aplicaciones Web Ataques a las aplicaciones web Además de implementar los servicios de seguridad, una aplicación web debe estar preparada para otros ataques: SQL Injection Cross-Site Scripting Phising Session Hijacking
  • 14. Seguridad en aplicaciones Web SQL Injection Los datos ingresados en los formularios a veces son utilizados para realizar consultas a la base de datos. Esto puede ser peligroso si no se validan las entradas de datos sensibles. Así, se puede producir un error en ejecución que se mostrará en el navegador, y puede divulgar la estructura de la base de datos al atacante. O también, un usuario podría pasar el control de identificación, o ingresar una sentencia SQL que permitiría borrar tablas o la base de datos.
  • 15. Ejemplos Seguridad en aplicaciones Web Consulta en el script $consulta = “SELECT id FROM usuarios WHERE usuario = ‘”.$_POST[‘usuario’].“ ’ AND pass = ‘ ”.$_POST[‘clave’].“ ’ ”; Valores ingresados usuario= juan – pass = ‘OR ‘1 Consulta a ejecutar $consulta = “SELECT id FROM usuarios WHERE usuario = ‘juan’ AND pass = ‘’ OR ‘1’”; Consulta en el script $consulta = “SELECT titulo FROM libros WHERE codigo = ”.$_POST[‘codigo’]; Valor ingresado codigo = 23; DROP TABLE libros Consulta a ejecutar $consulta = “SELECT titulo FROM libros WHERE codigo = 23; DROP TABLE libros”
  • 16. Ejemplo de vulnerabilidad (junio 2009) Seguridad en aplicaciones Web
  • 17. Seguridad en aplicaciones Web Algunas formas de evitar este ataque son: Validar todos los datos que se ingresan a la base de datos, incluyendo los tipos de datos esperados. Verificar como trabajan las consultas SQL que se incluyen en el script PHP. De ser posible, utilizar procedimientos almacenados. Otorgar a los usuarios sólo los permisos de acceso que necesita. Si se trabaja con librerías que incluyen los datos de la conexión (usuario, password, servidor, base de datos), guardarla en un directorio inaccesible por los clientes y tener precaución con la extensión del archivo, ya que podría ser visualizado.
  • 18. Seguridad en aplicaciones Web Cross-Site Scripting Este ataque se da cuando un servidor fiable ejecuta scripts que están guardados en otro, y tienen intención maliciosa, como obtener datos sensibles. La inclusión del código malicioso puede lograrse a través de boletines de noticias, foros, libros de visitas, etc. Luego, un usuario ejecuta el script, ingresando datos sensibles, sin darse cuenta que en realidad no está trabajando en el sitio confiable. Otra forma de ataque es cuando se utiliza el script para obtener ID de sesiones.
  • 19. Seguridad en aplicaciones Web Phising El phising es el arte de suplantar sitios web, utilizando la replicación del mismo, incluyendo hasta los formularios de entrada de datos. Luego, al usuario se lo puede engañar para que facilite sus datos, sin que él sepa que no esta trabajando con el sitio web auténtico. Otra forma es enviando un correo electrónico con un enlace hacia el sitio replicado, donde se le solicitarán nuevamente los datos. Una forma de evitar este ataque es usando certificados válidos otorgados por autoridades certificantes.
  • 20. Seguridad en aplicaciones Web Session Hijacking Cuando un usuario autenticado está conectado a una aplicación, es posible que otro tome el control de su sesión. Esto se logra obteniendo el ID de la sesión o bien recuperando la cookie de la misma. El ID de la sesión puede obtenerse utilizando técnicas de fuerza bruta o mediante la intercepción de mensajes. Una forma de evitar este ataque es definiendo tiempos de expiración por inactividad y absoluto. Otra forma es usando SSL, que trabaja con datos encriptados.
  • 21. Fin de la Unidad Gracias por su atención!!!

Notas del editor

  • #7: Firstly, I recommend you try encrypting and decrypting using the examples below to see if you get the same results. If your results bear no relation at all to the examples below check you are using the same mode , same algorithm (eg single or triple DES) and same input vector (for CBC mode). If only the last part of your result is wrong, check you are using the same padding method . Encrypted data might also become corrupted in transport (eg from the client to server) or when displayed on the screen (see first example below). For these reasons I convert the strings to and from hexidecimal. (Note that this conversion is not done automatically by the algorithm . You have to do it explicitly before or after running DES.) So also check that your package uses hexidecimal (and not base64 or some other method), check whether or not it needs the 0x at the beginning of the hexidecimal string, and check that the hexidecimal conversion works the same (for example "test string" should convert to 0x7465737420737472696e67).