Instituto para la Seguridad en Internet

Instituto Seguridad Internet

Página de inicio

Buscar :: Cursos :: Quiénes somos :: Contacto

 Servicios

:: Seguridad en las aplicaciones WEB (entornos J2EE) ::
Seguridad Internet en servidores Windows 2000
Motivación

Las aplicaciones web en Internet en general y de comercio electrónico en particular se están convirtiendo en un importante motor de la economía digital. Según numerosos estudios, la seguridad es el aspecto que más limita el crecimiento de la actividad económica en la Red. Los sistemas de información en línea y de realización de transacciones económicas a través de medios telemáticos se enfrentan a numerosas amenazas. Los ataques de piratas contra las tecnologías de la información son cada vez más frecuentes y sus efectos más devastadores. Por estos motivos resulta de crucial importancia poseer la capacidad de detectar y bloquear ataques en tiempo real contra los propios sistemas de información.

Según un estudio realizado durante los últimos cuatro años por Imperva, tan solo un 10 por ciento de las aplicaciones web pueden considerarse seguras ante cualquier tipo de ataque. En estos datos se incluyen sitios de comercio electrónico, banca online, B2B, sitios de la Administración, etc. Los estudios realizados han concluido que al menos un 92% de las aplicaciones web eran vulnerables a algún tipo de ataque. Los problemas más comunes son las vulnerabilidades de cross-site scripting (80%), inyección SQL (62%) y falsificación de parámetros (60%).

Contando con la formación adecuada, estos ataques podrían evitarse fácilmente en la fase de desarrollo, sin necesidad de recurrir a costosas soluciones basadas en IDS y cortafuegos de aplicación implantadas ya en la fase de producción. ISI considera que la mejor inversión en seguridad consiste en formar adecuadamente al personal implicado en el desarrollo de aplicaciones web. A largo plazo resulta más viable desarrollar aplicaciones seguras que intentar proteger aplicaciones inseguras.

Audiencia

El curso está dirigido a desarrolladores y arquitectos de aplicaciones web, encargados de diseñar y desarrollar sistemas y, por lo tanto, de incorporar la seguridad desde el principio. También se dirige a jefes de proyecto, ya que el diseño y desarrollo de una aplicación segura requiere un esfuerzo y unos tiempos de realización mayores, que deben ser tenidos en cuenta en la planificación y elaboración de plazos de entrega. Aunque las características de seguridad a menudo no resultan observables, si están presentes consumirán un porcentaje importante de la carga de trabajo.

Objetivo

Al finalizar el curso los programadores deben ser capaces de conocer los errores de seguridad más comunes que se cometen al desarrollar aplicaciones web, así como la mejor manera de evitarlos. Se hace especial incidencia en las ventajas respecto a la seguridad de un buen diseño de la aplicación en las tres capas de presentación, lógica de negocio y datos. Se ofrecen numerosas herramientas, técnicas y alternativas para que el desarrollador cuente con un amplio abanico de recursos y utilice posteriormente lo más adecuado en función de las características del problema concreto.

Características generales

El curso es eminentemente práctico. A la hora de explicar todos los conceptos presentados, se parte de una aplicación web consistente en una tienda electrónica, plenamente funcional, pero desarrollada sin tener en cuenta consideraciones de programación segura. A lo largo del curso, se va trabajando progresivamente sobre esta aplicación que presenta las vulnerabilidades más frecuentes en el mundo real hasta conseguir una aplicación robusta desde el punto de vista de la seguridad.

Los alumnos reciben un CD-ROM con el código de la tienda y del resto de prácticas, con las numerosas herramientas de ataque y protección utilizadas durante el curso, y con una extensa colección de documentos, artículos y capítulos de libros en formato PDF.

Como plataforma se utiliza Windows 2000, con Apache, Tomcat y Oracle.

Duración
La duración del curso es de 20 horas.
Autores e Instructores

D. Gonzalo Álvarez Marañón, Ingeniero Superior de Telecomunicación y Doctor en Informática. Posee 10 años de experiencia como criptólogo en proyectos de investigación en el CSIC (Consejo Superior de Investigaciones Científicas), habiendo participado como contribuyente y conferenciante habitual en congresos, publicaciones científicas y foros sobre criptología y seguridad en Internet. En su faceta divulgativa, ha sido columnista de varios periódicos (El Mundo, El Correo) y colaborador en revistas especializadas (iWorld, PC World, Mundo Electrónico, SIC). Es autor del libro "Los mejores trucos para Internet" (5ª edición) y "Seguridad informática para empresas y particulares". Imparte regularmente cursos sobre seguridad informática para profesionales del sector. Fue pionero de la seguridad en Internet en España con su sitio Criptonomicón, uno de los más antiguos de la comunidad latina. Esta experiencia científica y divulgativa se completa con un gran conocimiento práctico de la seguridad en Internet en el mundo real, tras su participación en numerosos proyectos como diseñador de arquitecturas de seguridad, desarrollador de aplicaciones seguras y auditor de seguridad.

D. Pedro Pablo Pérez García, CISSP. Su formación incluye los títulos de Ingeniero Superior de Informática y Certified Information Security Profesional (CISSP), otorgado por el prestigioso ISC2. Posee más de 10 años de experiencia como especialista de seguridad en varios proyectos de ámbito nacional e internacional, habiendo desarrollado su carrera profesional como consultor de seguridad dentro de empresas de la talla de Hewlett Packard o Telefónica. En su faceta divulgativa imparte regularmente cursos sobre seguridad informática para profesionales del sector y colabora habitualmente en varios programas de postgrado en universidades españolas. Es coautor del libro "Seguridad informática para empresas y particulares".

Contenido
  1. Introducción a la seguridad en Java y J2EE
  2. Protección del extremo cliente
  3. Protección del transporte de datos
  4. Protección del Servidor Web y Aplicaciones
  5. Protección del Servidor de Base de Datos
  6. Análisis de seguridad
  7. Criptografía en Java

1. Introducción a la seguridad en Java y J2EE

La plataforma J2EE proporciona como una de sus características más destacadas una robusta infraestructura de seguridad que facilita tanto a los desarrolladores, como administradores y usuarios finales, un mayor control sobre el código que se ejecuta en sus sistemas. En este primer módulo aprenderá los fundamentos del modelo de seguridad de Java y sus primitivas criptográficas.

  • Arquitectura de aplicaciones web con J2EE
    • Diseño en capas: Presentación,Negocio, Integración, Datos
    • Arquitectura de seguridad de EJB
  • Seguridad en componentes Java
    • Modelo de seguridad de Java
    • Autenticación y autorización con JAAS
    • Criptografía con JCE
    • SSL con JSSE

2. Protección del extremo cliente

Algunos fallos de seguridad causados por la aplicación web afectan al extremo cliente, concretamente a la confidencialidad de los datos de usuario en su ordenador, generados durante la operación con el servidor web; a la integridad de los datos de usuario; a la disponibilidad de sus datos y de sus recursos computacionales, incluyendo su conexión a Internet.

  • Fallos de seguridad
    • Ataques típicos: XSS, GET vs. POST, Caché, Historial, Máquina Virtual
    • Mala configuración
    • Bugs del navegador
  • Configuración segura

PRÁCTICAS

Confidencialidad de datos de usuario
Impacto del caché del navegador y del Historial en la seguridad del cliente y medidas correctoras..

Eliminación de vulnerabilidades del tipo "Cross Site Scripting" y de inyección de código
Demostración práctica de la existencia de estas vulnerabilidades en sitios reales. Se implantan las medidas correctoras para evitar estos problemas.

3. Protección del transporte de datos

Durante la transmisión de datos entre ambos extremos, cliente y servidor, debe velarse porque la confidencialidad e integridad de los mismos se encuentre a salvo. El protocolo SSL constituye el mecanismo tradicionalmente utilizado en este contexto.

  • Fallos de seguridad
    • Ataques típicos: sniffers, MITM, etc.
    • Mala configuración de SSL en el servidor web
    • Bugs del navegador
  • Configuración segura de las comunicaciones de red
    • Configuración de SSL en el servidorweb para Internet
    • Utilización de JSSE

PRÁCTICAS

Rastreo de contraseñas
Se utilizará un rastreador de red (sniffer), que permitirá comprobar cómo todo el tráfico, incluidas las contraseñas, viajan en claro.

Instalación y operación de la autoridad de certificación
Se instala y configura la autoridad de certificación, que será utilizada para expedir certificados tanto a servidores web como a usuarios.

Instalación del servicio SSL
Para evitar el que las contraseñas, testigos de sesión y demás información sensible viajen en claro por la red, se instala y configura el servicio SSL (Secure Sockets Layer) en el servidor web.

4. Protección del Servidor Web y Aplicaciones

Este módulo está destinado a explicar los aspectos de seguridad relativos al servidor web, encargado de la capa de presentación de datos. Se tratan los aspectos básicos de seguridad como autenticación, autorización, auditoría, administración, gestión de sesiones y gestión de excepciones.

  • Autenticación
    • Básica
    • Digest
    • Certificados digitales
    • Integrada contra la base de datos
    • Integrada contra LDAP
    • Formularios contra la base de datos
    • Cracking de contraseñas
    • SSO
  • Autorización
    • Permisos de archivos
    • Control por IP
    • Control por Cabeceras
    • Permisos web
  • JAAS
  • Auditoría
    • Logs del servidor web
  • Fallos de seguridad
    • Explotación de vulnerabilidades conocidas contra el servidor web
    • Mala configuración del servidor web
    • Bugs del servidor web
  • Administración
    • Gestión remota del servidor web
    • Publicación de páginas web
    • Monitorización del funcionamiento del servidor
    • Configuración del servidor
  • Gestión de sesiones
    • Testigos de sesión en el URL
    • Testigos de sesión en las cookies
    • Variables de sesión
    • Ataques contra los testigos
  • Validación de entrada/salida
    • Expresiones regulares
    • Validación en cliente (JavaScript) y servidor (JSP)
  • Gestión de excepciones
    • Personalización de páginas de error
    • Registro de eventos

PRÁCTICAS

Autenticación básica, mediante resúmenes e integrada
Se explica cómo configurar estos tipos de autenticación en el servidor web y se comprueban sus ventajas y limitaciones.

Diseño de autenticación basada en certificados de usuario X-509
Como importante mejora de la aplicación se desarrollan los mecanismos para una identificación de usuarios basada en certificados X-509. Se exploran las distintas políticas de acceso basando el control en información contenida en el propio certificado presentado por el usuario: uno a uno y muchos a uno, evaluándose sus ventajas e inconvenientes.

Autenticación mediante formularios
Se muestran varias soluciones con diferentes niveles de seguridad.

JAAS
Se explica cómo realizar la autenticación y autorización con JAAS y el funcionamiento de los roles y principales.

Almacenamiento de contraseñas
Se desarrolla un mecanismo para no almacenar contraseñas en claro en la base de datos.

Validación de contraseñas
Se examinan distintas soluciones para proteger la información a la que pueden acceder los usuarios autenticados en un sitio web.

Conservación de información de sesión
Mantener la información de los usuarios resulta fundamental para seguir su sesión con el servidor. Se explican las formas alternativas de conservación de sesión de usuarios.

Protección de directorios y documentos
Se examinan distintas soluciones para proteger la información a la que pueden acceder los usuarios autenticados en un sitio web.

Ataques contra las distintas formas de autenticación
Se realizan ataques contra las formas de autenticación analizadas y cómo defenderse ante ellos.

Expresiones regulares
Se estudia a fondo el funcionamiento de las expresiones regulares, técnica fundamental para sanear las entradas recibidas de los usuarios.

Verificación de las cabeceras HTTP
Una validación de las cabeceras HTTP es muy importante para protegerse contra algunos tipos de ataques.

Acceso al servidor web a través de Telnet
Se demuestra cómo valiéndose de un sencillo cliente de Telnet y un conocimiento profundo de las cabeceras HTTP, puede manipularse prácticamente cualquier dato de entrada. Después se repasan algunas de las herramientas de hacking web más utilizadas.

Gestión de excepciones
Se explican distintas formas de gestionar las excepciones, de manera que se proporcione información significativa al usuario, pero ninguna al atacante.

Auditoría
Se explica la manera de configurar y de examinar los rastros de auditoría disponibles en el servidor web.

5. Protección del Servidor de Base de Datos

Este módulo está destinado a explicarlos aspectos de seguridad relativos al servidor de base de datos, encargado de la capa de datos. Se tratan los aspectos básicos de seguridad como autenticación, autorización, auditoría, administración y protección frente a los ataques más frecuentes.

  • Introducción a Bases de Datos SQL
  • Autenticación
    • Inicios de sesión
    • Cadenas de conexión
  • Autorización
    • Roles
    • Permisos sobre objetos: tablas, vistas, procedimientos almacenados
  • Auditoría
    • Logs de la base de datos
  • Fallos de seguridad
    • Ataques típicos: inyección de SQL
    • Mala configuración
    • Bugs y vulnerabilidades conocidas
  • Administración
    • Gestión
    • Publicación
    • Monitorización
    • Configuración

PRÁCTICAS

Usuarios de la base de datos
Se explica cómo crear usuarios, con diferentes niveles de privilegios (roles).

Utilización de vistas y procedimientos almacenados
En lugar de acceder directamente a los datos de las tablas, se explica cómo crear vistas y procedimientos almacenados, de manera que se protege mejor la información a la que cada usuario tiene acceso. Se explican también otras muchas ventajas de los procedimientos almacenados.

Comunicaciones seguras
Se utiliza SSL para cifrar las comunicaciones entre el servidor de base de datos y el cliente. Se configura de formas variadas: para el servidor, para todas las aplicaciones del cliente y para aplicaciones concretas.

Herramientas de hacking de BD
Se repasan algunas de las herramientas de ataque más comunes utilizadas contra servidores de BD en general y contra Oracle en particular y se explica cómo protegerse ante ellas.

6.Análisis de seguridad

Es importante detectar y bloquear los ataques durante su transcurso o poder reconstruirlos una vez finalizados. Los sistemas de detección de intrusiones y los cortafuegos de aplicaciones web sirven al primer propósito, mientras que el análisis forense sirve al segundo. Paralelamente, con el fin de minimizar la superficie de ataque, conviene bastionar la plataforma y los servidores utilizados.

  • Auditoría
    • Análisis de los logs
    • Sistemas IDS
    • Cortafuegos a nivel de aplicación
  • Bastionado
    • Plataforma
    • Servidor web
    • Servidor de base de datos

PRÁCTICAS

Análisis forense
Se explica cómo buscar información valiosa en los logs sobre posibles ataques.

Cortafuegos de aplicaciones web
Se configuran algunas reglas en mod_security para Apache y se realizan prácticas con otros cortafuegos de aplicación comerciales.

Bastionado
Se explica el bastionado paso a paso de los tres elementos básicos de toda aplicación web: servidor web, de aplicaciones y de base de datos.

7. Criptografía en Java

Se introducen los conceptos de criptografía básicos que se utilizan en prácticamente toda aplicación web, particularizados para Java.

  • Algoritmos de cifrado simétrico o clave secreta
  • Algoritmos de cifrado asimétrico o clave pública
  • Algoritmos de hash
  • Certificados digitales y firma de mensajes

PRÁCTICAS

Utilización de criptografía con Java
Se crean varios ejemplos para aprender el funcionamiento de las clases de criptografía proporcionadas por Java para cifrado/descifrado, cálculo de hashes, generación de números pseudoaleatorios, firma de mensajes, etc.

Calendario e inscripciones

Complete el siguiente formulario para enviarnos su consulta:

Precio: 1320 euros + IVA
Fechas: 28 - 31 Mayo de 2007 (mañana de 9:00 a 14:00)
Nombre y apellidos:
Empresa:
CIF:
Dirección:
Ciudad:
Provincia:
Código postal:
Correo electrónico:
Teléfono:
Fax:

Los datos personales contenidos en el presente formulario formarán parte de un fichero propiedad de ISI. Dicho fichero será tratado y protegido según lo establecido en la LO 15/1999, de 13 de diciembre, de Protección de Datos de carácter personal. Queda garantizada la confidencialidad de la información aportada, así como su uso exclusivo para las gestiones precisas en la facturación y gestión de los cursos. Este fichero no será cedido a terceros. Los interesados que lo deseen podrán ejercitar los derechos de acceso, rectificación o cancelación de los datos aportados.

Política de privacidad :: Instalaciones :: Publicidad

© Instituto Seguridad Internet, 2001-2003. Todos los derechos reservados