Sunteți pe pagina 1din 7

Crear Aplicaciones ASP.

NET
Captulo 01
Autenticar / Autorizar / Comunicar CON SEGURIDAD
Este captulo define el alcance y la organizacin de la gua y resalta sus objetivos. Presenta adems la
terminologa clave y un conjunto de principios esenciales que se aplican a las instrucciones que contienen los
captulos posteriores.


Captulo 01: Introduccin
Seccin: ASP01-C01
Revisin: 03
Junio 2014

Alejandro Huapaya Snchez I - 1

Presentacin
El motivo que me movi realizar el presente manual, fueron mis alumnos que consultaban sobre la seguridad de
los sistemas; pues bien, aqu est.
ste manual se lleva a cabo para que sirva de gua sobre el tema de seguridad informtica, Se Tratar de
transmitir los pocos conocimientos que se tiene a ste respecto, la seguridad en ASP.NET.
La creacin de aplicaciones Web distribuidas seguras constituye un verdadero desafo. El alcance de la seguridad
de su aplicacin lo define su punto ms dbil. Las aplicaciones distribuidas contienen muchas piezas mviles y
conseguir que esas piezas funcionen conjuntamente de forma segura requiere un conocimiento de base de
numerosos productos y tecnologas.
Ya tiene que tener en cuenta muchos aspectos: la integracin de varias tecnologas, el mantenerse al da acerca de
las tecnologas y aventajar a la competencia. Si todava desconoce el proceso de creacin de aplicaciones seguras,
puede permitirse el tiempo y el esfuerzo necesarios para aprenderlo? Y ms concretamente, puede permitirse no
hacerlo?

Resumen
Este captulo define el alcance y la organizacin de la gua y resalta sus objetivos. Presenta adems la
terminologa clave y un conjunto de principios esenciales que se aplican a las instrucciones que contienen los
captulos posteriores.
Contenido
El entorno conectado
Alcance
Objetivos de esta gua
Lectura recomendada de esta gua
Organizacin de la gua
Terminologa clave
Principios
Conclusin
El entorno conectado
Si ya sabe cmo crear aplicaciones seguras, puede aplicar sus conocimientos a la hora de crear aplicaciones
Web .NET? Puede aplicar sus conocimientos al entorno actual de aplicaciones Web distribuidas, en el que los
servicios Web conectan a las empresas con otras empresas y con los clientes, y en el que las aplicaciones traen
consigo varios niveles de exposicin, como por ejemplo, a usuarios en intranets, extranets e Internet?
Se ha de considerar algunas de las caractersticas principales de este entorno conectado:
Los servicios Web utilizan estndares tales como SOAP, Lenguaje de marcado extensible (XML) y Protocolo
de transferencia de hipertexto (HTTP), pero sobre todo transmiten informacin potencialmente
confidencial mediante texto sin formato.
Las aplicaciones B2C {business-to-consumer) de Internet transmiten informacin confidencial en el Web.
Las aplicaciones B2B (business-to-business) de extranet relajan las condiciones de seguridad y permiten
que las aplicaciones sean llamadas por otras aplicaciones de empresas asociadas.
Las aplicaciones de Internet comportan riesgos si se considera el carcter confidencial de las aplicaciones
de nminas y de recursos humanos (RR.HH.). Tales aplicaciones son especialmente vulnerables a
administradores avispados y empleados descontentos.


Captulo 01: Introduccin
Seccin: ASP01-C01
Revisin: 03
Junio 2014

Alejandro Huapaya Snchez I - 2

Alcance
Esta gua se concentra en:
La autenticacin (para identificar a los clientes de la aplicacin)
La autorizacin (para ofrecer controles de acceso para los clientes)
La comunicacin segura (para garantizar que los mensajes mantienen su privacidad y no son
manipulados por personas no autorizadas)
Por qu la autenticacin, la autorizacin y la comunicacin segura?
La seguridad es un tema muy amplio. Segn los estudios, al disear al principio la autenticacin y autorizacin
se elimina un alto porcentaje de vulnerabilidades de las aplicaciones. La comunicacin segura es una parte
esencial de la proteccin de la aplicacin distribuida para garantizar la confidencialidad de los datos (incluidas
las credenciales) que se transmiten a la aplicacin y desde ella, y entre niveles de la aplicacin.
Objetivos de esta gua
Esta gua no constituye una introduccin a la seguridad. No se trata de una referencia sobre seguridad para
Microsoft .NET Framework, ya que es el Kit de desarrollo de software (SDK) de .NET Framework que se
encuentra disponible en MSDN el que cumple esta funcin (consulte la seccin "Referencias" de esta gua para
obtener ms informacin). Esta gua es una continuacin de la documentacin y presenta un enfoque basado en
escenarios para compartir experiencias y tcnicas probadas, tal y como se desprende de la experiencia prctica
y con clientes y de los conocimientos de los equipos de producto de Microsoft.
La informacin de esta gua tiene como objetivo mostrarle cmo:
Aumentar la seguridad de la aplicacin
Identificar dnde y cmo es necesario realizar la autenticacin
Identificar dnde y cmo es necesario realizar la autorizacin
Identificar dnde y cmo es necesario proteger la comunicacin entre la aplicacin y los usuarios
finales, y entre niveles de la aplicacin
Identificar riesgos comunes y estrategias para evitarlos
Identificar los riesgos principales y su mitigacin en relacin con la autenticacin y la autorizacin
Evitar comprometer la seguridad solamente para que todo funcione bien
Identificar no slo cmo, sino tambin cundo utilizar varias caractersticas de seguridad
Eliminar TID (temor, incertidumbre y dudas)
Promover prcticas recomendadas y resultados predecibles
Lectura recomendada de esta gua
Esta gua se ha diseado de forma modular. Esto le permite escoger los captulos que desea leer. Por ejemplo, si
est interesado en obtener informacin acerca de las caractersticas de seguridad avanzadas que proporciona
una tecnologa concreta, puede pasar directamente a la Parte III de la gua (captulos 8 a 12), que contiene
material detallado acerca de ASP.NET, la aplicacin de Servicios Empresariales, servicios Web, .NET Remoting y
el acceso a datos.
No obstante, le recomendamos que empiece por leer los primeros captulos (del 1 al 4) de la Parte I de la gua,
puesto que le ayudarn a entender el modelo de seguridad y a identificar las tecnologas y servicios de
seguridad bsicos de los que dispone. Los arquitectos de aplicaciones debern asegurarse de leer el captulo 3,
que ofrece conocimientos clave acerca del diseo de una estrategia de autenticacin y autorizacin que se
aplica a todos los niveles de la aplicacin Web. La Parte I le proporcionar los materiales de base que le
permitirn aprovechar al mximo el resto de los captulos de la gua.

Captulo 01: Introduccin
Seccin: ASP01-C01
Revisin: 03
Junio 2014

Alejandro Huapaya Snchez I - 3

Los captulos dedicados a las intranets, extrais e Internet (captulos 5 a 7) de la Parte II de la gua le
mostrarn cmo proteger determinados escenarios de aplicaciones. Si conoce la arquitectura y el patrn de
implementacin que ha adoptado o va a adoptar la aplicacin, puede utilizar esta parte de la gua para entender
los problemas de seguridad correspondientes y los pasos de configuracin bsicos para implementar la
proteccin de escenarios especficos.
Adems, la informacin adicional y el material de referencia de la Parte IV de la gua le ayudarn a aumentar
sus conocimientos acerca de reas tecnolgicas especficas. Contiene tambin una biblioteca de artculos
prcticos que le permitirn desarrollar soluciones de seguridad eficaces en el menor tiempo posible.
Organizacin de la gua
Esta gua est dividida en cuatro partes. Su objetivo es proporcionar una divisin lgica, que le facilitar la
asimilacin del contenido.
Parte I - Modelos de seguridad
La Parte I de la gua ofrece una base para el resto de la gua. Al familiarizarse con los conceptos, tecnologas y
principios presentados en esta parte, podr sacar el mximo partido a las partes restantes de la gua. La Parte I
contiene los siguientes captulos:
Captulo 1 - "Introduccin"
Captulo 2 - "Modelo de seguridad para aplicaciones ASP.NET"
Captulo 3 - "Autenticacin y autorizacin"
Captulo 4 - "Comunicacin segura"
Parte II - Escenarios de aplicaciones
La mayora de las aplicaciones pueden clasificarse como aplicaciones de intranet, extranet o Internet. Esta parte
de la gua presenta un conjunto de escenarios de aplicaciones comunes, cada uno de los cuales representa una
de las categoras anteriores. Se describen las caractersticas principales de cada escenario y se analizan las
amenazas de seguridad potenciales.
A continuacin, se explica cmo configurar e implementar la estrategia de autenticacin, autorizacin y
comunicacin segura ms adecuada para cada escenario de aplicaciones. Cada escenario contiene adems
secciones con un anlisis detallado, los riesgos ms comunes que se deben evitar y preguntas ms frecuentes
(P+F). La Parte II contiene los siguientes captulos:
Captulo 5 - "Seguridad de intranet"
Captulo 6 - "Seguridad de extranet"
Captulo 7 - "Seguridad de Internet"
Parte III - Proteger los niveles
Esta parte de la gua contiene informacin detallada relacionada con los distintos niveles y las tecnologas
asociadas a las aplicaciones Web seguras conectadas a .NET. La Parte III contiene los siguientes captulos:
Captulo 8 - "Seguridad de ASP.NET"
Captulo 9 - "Seguridad de la aplicacin de Servicios Empresariales"
Captulo 10 - "Seguridad de servicios Web"
Captulo 11 - "Seguridad de .NET Remoting"
Captulo 12 - "Seguridad del acceso a datos"
Cada captulo contiene una breve introduccin a la arquitectura de seguridad y su aplicacin a la tecnologa
concreta tratada en el captulo. Se explican las estrategias de autenticacin y la autorizacin de cada tecnologa
junto con opciones de seguridad configurables, opciones de seguridad programables y recomendaciones
prcticas acerca de cundo utilizar cada una de las estrategias.

Captulo 01: Introduccin
Seccin: ASP01-C01
Revisin: 03
Junio 2014

Alejandro Huapaya Snchez I - 4

Cada captulo contiene instrucciones y explicaciones que le permitirn escoger e implementar la opcin de
autenticacin, autorizacin y comunicacin segura ms adecuada para cada tecnologa. Adems, cada captulo
incluye informacin adicional especfica de cada tecnologa. Por ltimo, cada captulo concluye con un breve
resumen de recomendaciones.
Parte IV - Referencia
Esta parte de referencia de la gua contiene informacin complementaria para ayudarle a aumentar sus
conocimientos sobre las tcnicas, estrategias y soluciones de seguridad presentadas en los captulos anteriores.
Los artculos prcticos contienen procedimientos paso a paso que le permiten implementar soluciones de
seguridad especficas. La Parte IV contiene la siguiente informacin:
Captulo 13 - "Solucionar problemas de seguridad"
"Artculos prcticos"
"Configuracin bsica"
"Almacenes y herramientas de configuracin"
"Centro de referencia"
"Artculos prcticos"
"Funcionamiento"
"Matriz de identidades de ASP.NET"
"Criptografa y certificados"
"ModelodeseguridaddeASP.NET"
"Glosario"

Terminologa clave
Esta seccin presenta varios trminos clave de seguridad que se utilizan en toda la gua. Aunque la seccin
"Referencia" de la gua contiene un glosario terminolgico completo, deber familiarizarse con los siguientes
trminos:
Autenticacin. Identificar correctamente los clientes de la aplicacin, entre los que pueden figurar
usuarios finales, servicios, procesos o equipos.
Autorizacin. Definir lo que pueden ver y hacer en la aplicacin los clientes autenticados.
Comunicaciones seguras. Garantizar la privacidad y la integridad de los mensajes cuando pasan de una
red a otra.
Suplantacin. Se trata de la tcnica utilizada por una aplicacin de servidor para obtener acceso a recursos
en nombre de un cliente. El contexto de seguridad del cliente se utiliza para los controles de acceso
realizados por el servidor.
Delegacin. Una forma ampliada de suplantacin que permite a un proceso de servidor que trabaja en
nombre de un cliente el acceso a recursos de un equipo remoto. Kerberos ofrece esta capacidad de forma
nativa en Microsoft Windows 2000 y sistemas operativos posteriores. La suplantacin convencional
(por ejemplo, la de NTLM) slo permite un salto de red. Cuando se utiliza la suplantacin de NTLM, este
salto se usa entre el equipo cliente y el equipo servidor, con lo que se impide el acceso del servidor a otros
recursos que no sean los locales durante la suplantacin.
Contexto de seguridad. Es un trmino genrico usado para referirse a la coleccin de configuraciones de
seguridad que afectan al comportamiento relativo a la seguridad de un proceso o subproceso. Los atributos
de la sesin de inicio y el testigo de acceso de un proceso conforman el contexto de seguridad del proceso.

Captulo 01: Introduccin
Seccin: ASP01-C01
Revisin: 03
Junio 2014

Alejandro Huapaya Snchez I - 5

Identidad. Hace referencia a una caracterstica exclusiva de un usuario o servicio que lo identifica. Suele
tratarse, por ejemplo, de un nombre de visualizacin, que a menudo adopta el formato autoridad/nombre
de usuario.
Principios
Existen varios principios generales que se aplican a las instrucciones presentadas en captulos posteriores. A
continuacin, figura un resumen de estos principios:
Adoptar el principio de privilegios mnimos. Los procesos que ejecutan cdigo o secuencias de
comandos debern ejecutarse con una cuenta con privilegios mnimos para limitar los posibles daos
que podran producirse si se ve comprometido el proceso. Si un usuario malintencionado consigue
insertar cdigo en un proceso de servidor, los privilegios concedidos al proceso determinan en gran
medida los tipos de operaciones que puede realizar el usuario. El cdigo que requiere confianza
adicional (y privilegios elevados) deber aislarse en procesos independientes.
El equipo de ASP.NET decidi deliberadamente ejecutar la cuenta de ASP.NET con los mnimos
privilegios (mediante la cuenta ASPNET). Durante el lanzamiento de la versin beta de .NET
Framework, ASP.NET se ejecut como SISTEMA, una configuracin intrnsecamente menos segura.
Usar las defensas a fondo. Coloque puntos de control en cada una de las capas y subsistemas de la
aplicacin. Los puntos de control son los guardianes que garantizan que slo los usuarios autenticados
y autorizados puedan obtener acceso a la siguiente capa inferior.
No confiar en los datos introducidos por el usuario. Las aplicaciones debern validar al completo
todos los datos introducidos por el usuario antes de ejecutar operaciones con esos datos. La validacin
podra incluir el filtrado de caracteres especiales. Esta medida preventiva protege a la aplicacin de
usos incorrectos accidentales o ataques deliberados por parte de usuarios que intentan insertar
comandos dainos en el sistema. Entre ios ejemplos ms habituales, figuran los ataques de inyeccin
SQL, la insercin de secuencias de comandos y el desbordamiento del bfer.
Utilizar opciones predeterminadas seguras. Una prctica habitual entre los desarrolladores es la de
utilizar opciones de configuracin de seguridad reducida, simplemente para que funcione la aplicacin.
Si la aplicacin requiere caractersticas que le obligan a reducir o cambiar la configuracin de seguridad
predeterminada, prubelo primero para comprobar sus efectos y consecuencias antes de realizar el
cambio.
No depender de la seguridad por medio de la oscuridad. Si intenta ocultar secretos mediante el uso
de nombres de variables engaosos o los guarda en ubicaciones de archivos no habituales, no estar
mejorando la seguridad. En el juego del escondite, es mejor utilizar caractersticas de la plataforma o
tcnicas de probada eficacia para proteger los datos.
Realizar controles en la puerta. No siempre es necesario transmitir el contexto de seguridad del
usuario hasta el servidor para realizar comprobaciones de autorizacin. A menudo, sta no suele ser la
mejor opcin en un sistema distribuido. El control de clientes en la puerta se refiere a autorizar al
usuario en el primer punto de autenticacin (por ejemplo, en la aplicacin Web del servidor Web) y a
determinar los recursos y operaciones (que pueden proporcionar los servicios de capas inferiores) a los
que se permite obtener acceso al usuario.
Si disea estrategias de autenticacin y autorizacin slidas en la puerta, podr evitar la necesidad de
delegar el contexto de seguridad del llamador original hasta el nivel de datos de la aplicacin.
Asumir que los sistemas externos no son seguros. Si no es de su propiedad, no presuponga que
alguien se est ocupando de la seguridad por usted.
Reducir el rea expuesta. Evite exponer informacin no necesaria. Si lo hace, posiblemente estar
abriendo puertas que pueden traer consigo vulnerabilidades adicionales. Tambin deber tener
cuidado con los errores; no exponga ms informacin de la necesaria al devolver un mensaje de error al
usuario final.

Captulo 01: Introduccin
Seccin: ASP01-C01
Revisin: 03
Junio 2014

Alejandro Huapaya Snchez I - 6

Cometer errores de forma segura. Si se produce un error en la aplicacin, asegrese de no dejar al
descubierto ninguna informacin confidencial. Tampoco deber proporcionar demasiados detalles en
los mensajes de error; es decir, no deber incluir informacin que pueda ayudar a un intruso a explotar
una vulnerabilidad de la aplicacin. Escriba informacin detallada de errores en el registro de sucesos
de Windows.
No olvidar que el alcance de la seguridad lo define su punto ms dbil. La seguridad es un motivo
de preocupacin en todos los niveles de la aplicacin.
Si no lo utiliza, deshabiltelo. Puede eliminar posibles puntos de ataque si deshabilita mdulos y
componentes innecesarios para la aplicacin. Por ejemplo, si la aplicacin no utiliza el almacenamiento
en cach de resultados, debera deshabilitar el mdulo de cach de resultados de ASP.NET. Si ms
adelante se detecta una vulnerabilidad de seguridad en el mdulo, su aplicacin no se ver amenazada.
Conclusin
Este captulo le ha proporcionado material bsico de preparacin para el resto de la gua. Se han descrito los
objetivos de la gua y se ha presentado su estructura general. Asegrese de haberse familiarizado con la
terminologa clave y los principios presentados en este captulo, puesto que se mencionan y se utilizan a
menudo en todos los captulos posteriores.

S-ar putea să vă placă și