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 ASP.NET) ::
Seguridad Internet en servidores Windows 2000
Motivación

La creciente importancia que se da a los aspectos de seguridad en los servicios que se ofrecen en Internet hace que en general los administradores de sistemas estén concienciados respecto a la necesidad de dotar a sus servidores de una arquitectura de seguridad que les proteja frente a las amenazas de la red. Sin embargo es por desgracia un hecho frecuente el que los criterios de seguridad se pierdan a la hora de desarrollar las aplicaciones que se ejecutan en los servidores Internet. Si los administradores son conscientes de los peligros de la red los programadores no suelen serlo tanto, por otra parte éstos están sometidos a las presiones de los responsables de negocio para desarrollar nuevos servicios en Internet en tiempos muy reducidos (“Time to Market”) por imperativo de mercado Internet.

Es un hecho conocido el que gran parte de los ataques e intrusiones a servidores Internet se realizan no a través de vulnerabilidades de los sistemas operativos y servicios asociados, sino a través de las aplicaciones propietarias que se ofrecen en el servidor.

El desarrollo de aplicaciones web seguras se está convirtiendo en una tarea cada vez más difícil debido a la creciente complejidad y variedad de servicios ofrecidos a través de Internet. La seguridad de las aplicaciones web no es sólo responsabilidad del administrador de sistemas, encargado de la infraestructura y redes, sino también del desarrollador. ASP.NET y .NET Framework ofrecen una gran variedad y riqueza de funcionalidades de seguridad, como la seguridad de acceso a código y la seguridad basada en roles, soporte nativo para autenticación basada en formularios, herramientas para creación de servicios web seguros, acceso seguro a bases de datos y un largo etcétera tratado en profundidad a lo largo de este curso.

Audiencia
El curso está dirigido a desarrolladores y arquitectos de aplicaciones, 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 manera de evitarlos. Se hace especial incidencia en las ventajas respecto a la seguridad de una buen diseño de la aplicación en las tres capas de presentación, lógica de negocio y datos. Se presta atención a las nuevas características de seguridad introducidas por .NET Framework.
Características generales

Se entrega un manual de documentación en castellano y un CD-ROM con las numerosas herramientas utilizadas durante el curso. Cada asistente dispone de un ordenador con .NET Server y SQL Server 2000.

El curso es eminentemente práctico y parte de una aplicación web existente y que se ha escrito sin tener en cuenta consideraciones de programación segura. Sobre esta aplicación que presenta las vulnerabilidades más frecuentes en el mundo real se va trabajando hasta conseguir una aplicación robusta desde el punto de vista de seguridad.

Requisitos: VB.NET o C#, ASP.NET y SQL Server.

Duración
La duración del curso es de 20 horas.
Autores e Instructores
Gonzalo Álvarez Marañon, Doctor Ingeniero de Telecomunicación e investigador del CSIC es un prestigioso investigador de la seguridad en Internet. Creador del sitio de seguridad CRIPTONOMICON (www.iec.csic.es/criptonomicon) ha presentado sus trabajos sobre seguridad en numerosos congresos y revistas especializadas y es autor del libro “Los mejores trucos para Internet”.
Contenido
  1. Introducción a la seguridad en la plataforma .NET
  2. Acceso seguro a datos en ASP.NET
  3. Autenticación mediante formularios en ASP.NET
  4. Autenticación mediante Windows en ASP.NET
  5. Autenticación mediante certificados en ASP.NET
  6. Ataques de entrada de usuario
  7. Seguridad en SQL Server

1. Introducción a la seguridad en la plataforma .NET

La plataforma .NET 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 de la seguridad en el acceso a código (CAS), basada en la identidad de código, en oposición a la identidad de usuario.

  • Restricciones de seguridad: identidad de código vs. identidad de usuario
  • Autenticación: acumulación de evidencias para identificación del código
  • Autorización: clases de permisos en .NET
  • Inspección de pila
  • Directivas de seguridad de código, grupos de código y niveles de directiva
  • Nombres fuertes y firma de ensamblados de código
  • Verificación y validación de ensamblados
  • Modelo de seguridad para aplicaciones ASP.NET

PRÁCTICAS

Identidad de código vs. identidad de usuario
Se explica de forma práctica con ejemplos el funcionamiento de ambos modelos: el clásico, basado en la identidad del usuario que intenta ejecutar el código, frente al basado en la identidad del propio código que va a ejecutarse.

Inspección de pila
Se muestra el funcionamiento de la inspección de pila, que permite verificar que todas las funciones en la cadena de llamadas poseen permiso para acceder a un recurso.

Permisos, autorización y directivas de seguridad de código
Mediante algunos programas de ejemplo se muestra cómo se obtienen evidencias cuando se carga un ensamblado y cómo se definen las listas de conjuntos de permisos a todos los niveles de directiva.

Implantación de un ensamblado seguro
Se utilizan los mecanismos de seguridad de .NET explicados y se trabaja con los nombres fuertes (SN) para crear un ensamblado seguro.

2. Acceso seguro a datos en ASP.NET

La mayor parte de aplicaciones web hoy en día necesitan acceder a bases de datos para obtener información sobre productos, servicios, clientes, etc., y presentar a partir de ella páginas dinámicas. En este módulo aprenderá cómo configurar el servidor web (IIS y ASP.NET) y utilizar ADO.NET para acceder a los datos de forma segura. Se explica además cómo almacenar y acceder a secretos de forma segura.

  • Acceso a BD de datos mediante ADO.NET
  • Acceso no autorizado a BD a través de la revelación de la cadena de conexión
  • Formas seguras de acceder a la BD
  • Almacenamiento seguro de secretos

PRÁCTICAS

Acceso a la BD desde las páginas ASP.NET
Se crearán páginas de acceso a BD utilizando ADO.NET.

Ataque a la BD
En aquellos casos en los que el nombre de usuario y contraseña de acceso a la BD quedan revelados en la cadena de conexión, por codificarse ésta en la propia página ASP.NET o componente .NET o almacenarse en un fichero include separado o en el "global.asax", es posible acceder directamente a la BD. Se demuestran algunas formas de hacerse con esta información y cómo explotarla para conectarse directamente a la BD sin pasar por el servidor web.

Diseño de componentes de acceso seguro a la BD
Para solucionar las limitaciones de los métodos de acceso anteriores se diseñan varios componentes .NET de conexión a la base de datos. Se muestran las ventajas del uso de componentes frente a la codificación en ASP.NET. También se crea un componente COM+ con cadena de construcción.

Acceso a secretos con DPAPI
Se crea una biblioteca de funciones para acceso a secretos mediante los métodos de la DPAPI (Data Protection API). Después se crean varias aplicaciones diferentes para utilizar la biblioteca anterior desde ASP.NET.

3. Autenticación mediante formularios en ASP.NET

La autenticación y autorización resultan fundamentales en toda aplicación web en la que se desee restringir lo que los usuarios pueden hacer. La autenticación permite conocer la identidad de quienes se conectan al servidor. La autorización permite verificar qué privilegios tiene asignados cada usuario y saber así qué acciones le están permitidas. Una vez detectada la necesidad de autenticar y autorizar a los usuarios, surge la importante cuestión de decidir cómo se llevan a cabo. ASP.NET incluye todo un conjunto de nuevas funcionalidades para simplificar la creación de aplicaciones que autentican a sus usuarios mediante formularios.

  • Autenticación mediante formularios básica
  • Autenticación mediante formularios y XML
  • Autenticación mediante formularios y base de datos
  • Autenticación mediante formularios y tickets personalizados
  • Autenticación mediante formularios sin cookies
  • Protección de contenido distinto de páginas .aspx
  • Autenticación mediante formularios y autorización basada en roles
  • Autenticación mediante formularios en granjas de servidores
  • Directivas de seguridad de contraseñas
  • Conservación de información de sesión
  • Ataques contra las distintas formas de autenticación y defensa

PRÁCTICAS

Autenticación mediante formularios en ASP.NET
Se muestran varias soluciones con diferentes niveles de seguridad: almacenamiento de la información de usuario en el archivo Web.Config, en un archivo XML, en una base de datos, con y sin cookies, utilizando o no roles para autorizar el acceso, con tickets personalizados, etc.

Almacenamiento de contraseñas
Se desarrolla un mecanismo para no almacenar contraseñas 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 en ASP.NET
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 introducidas por ASP.NET.

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

4. Autenticación mediante Windows en ASP.NET

La autenticación y autorización mediante Windows resulta mucho más segura que mediante formularios. En los casos en los que se puede utilizar, se explica cómo configurarla correctamente e integrarla con las aplicaciones ASP.NET.

  • Autenticación básica
  • Autenticación mediante resúmenes
  • Autenticación integrada de Windows
  • Protección de directorios y documentos
  • Representación de usuario
  • Ataques contra las distintas formas de autenticación

PRÁCTICAS

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

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.

Representación de usuario
Configuración y experimentación con las distintas formas de representación de usuario de IIS y ASP.NET.

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

5. Autenticación mediante certificados en ASP.NET

Los certificados digitales constituyen una de las formas más seguras y flexibles para autenticar a los visitantes de un sitio web. En este módulo se introducen los conceptos y herramientas necesarios para configurar una solución segura basada en certificados.

  • Introducción a los certificados digitales
  • Criptografía con .NET
  • Autoridades de certificación
  • Canales seguros con SSL
  • Autenticación mediante certificados digitales
  • Acceso a la información de los certificados desde ASP.NET

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.

Utilización de criptografía con la plataforma .NET
Se crean varios ejemplos para aprender el funcionamiento de las clases de criptografía proporcionadas por .NET para cifrado/descifrado, cálculo de hashes y generación de números pseudoaleatorios. Más adelante, estas clases se utilizarán en muchas aplicaciones.

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 y las transacciones viajen en claro por la red se implanta el servicio SSL (Secure Sockets Layer) en el servidor IIS.

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.

6. Ataques de entrada de usuario

Uno de los medios de ataque más utilizados y eficaces consiste en enviar parámetros inesperados a una página ASP.NET, de manera que no pueda procesarlos y entre en un estado inestable o bien ejecute acciones indeseadas, como cambiar el precio a productos, borrar tablas de una base de datos o acceder a datos confidenciales de otros usuarios. El ejemplo más explotado en ASP.NET consiste en la manipulación de formularios. En este módulo se repasan algunos de los ataques más comunes y peligrosos y la manera de protegerse ante ellos.

  • Consultas maliciosas (inyección de SQL)
  • Cadenas de entrada hostiles
  • Cross Site Scripting e inyección de código
  • Cookies
  • Cabeceras HTTP
  • Comprobaciones locales y campos ocultos
  • Técnicas de validación de entrada en cliente y servidor

PRÁCTICAS

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.

Seguridad en los accesos a la base de datos: ataques de inyección de SQL
Un diseño incorrecto de las consultas a la base de datos puede conducir a un atacante hostil a realizar interrogaciones en la base de datos.

Eliminación de vulnerabilidades del tipo "Cross Site Scripting" e 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.

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

Uso seguro de las cookies y cookies firmadas
Las cookies pueden ser alteradas por un usuario malicioso. Un uso correcto de las mismas requiere la implantación de un mecanismo de firmado criptográfico de los campos de las cookies.

Comprobaciones locales, campos ocultos
Muchas aplicaciones hacen uso incorrecto de funcionalidades del navegador tales como campos ocultos o verificaciones locales para validaciones de entrada. En este apartado se practica cómo protegerse de estos riesgos.

Expresiones regulares en ASP.NET
Se estudia a fondo el funcionamiento de las expresiones regulares, técnica fundamental para sanear las entradas recibidas de los usuarios. Se utilizan los controles de validación de entrada de ASP.NET.

7. Seguridad en SQL Server

El modelo de seguridad de SQL Server ha evolucionado de forma considerable durante los últimos años, hasta llegar a integrarse casi completamente con la seguridad de Windows XP. Sin entrar en los detalles complejos de administración de bases de datos, este módulo explica las principales características de seguridad que resultan de importancia para el creador de aplicaciones web, de manera que se garantice el acceso a los usuarios autorizados, a la vez que se evita el acceso no autorizado a la información de la base de datos.

  • Introducción a la seguridad en SQL Server
  • Administración de usuarios y roles
  • Creación de vistas
  • Programación de procedimientos almacenados
  • Comunicaciones seguras

PRÁCTICAS

Inicio de sesión y usuarios de tablas
Muchas aplicaciones web acceden a la base de datos con el usuario "sa". Se demuestran los graves problemas de seguridad de esta solución y se explica cómo crear inicios de sesión y 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 SQL Server 2000
Se repasan algunas de las herramientas de ataque más comunes utilizadas contra servidores SQL Server 2000 y se explica cómo protegerse ante ellas.

Calendario e inscripciones

Complete el siguiente formulario para enviarnos su consulta:

Precio: 1320 euros + IVA
Fechas: 12 - 15 Junio 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