Sei sulla pagina 1di 25

Seguridad en .

Net
Daniel Seara

Proceso de desarrollo
Definir que hace la aplicacin y como
se usa
Los usuarios ven pginas con catlogos
Realizan bsquedas del mismo
Agregan tems al carrito
Cierran la operacin

Diagrama de la aplicacin
Mostrando
sub sistemas
Flujo de datos
Listando afirmaciones

Diseando aplicaciones
seguras
Refinar el diagrama de la arquitectura
Mostrar mecanismos de autenticacin
Mostrar mecanismos de autorizacin
Mostrar tecnologas (ej. DPAPI)
Diagrama de lmites de confianza
Identificar puntos de entrada

Empezar a pensar como el agresor


Donde estn mis vulnerabilidades?
Qu puedo hacer para resolverlas?

Amenazas en una
aplicacin
Amenaza

Ejemplos

Inyeccin de SQL

Incluyendo comandos de SQL en el texto


ingresado

Script entre sitios

Usando script del lado del cliente malicioso

Modificacin del
ingreso

Cambiando valores de campos ocultos

Robo de claves

Usando un investigador de paquetes (sniffer)


para obtener claves de acceso o cookies no
encriptadas

Reemplazo de
sesin

Uso de Cookie de sesin robado, para acceder


a sitios

Reemplazo de
identidad

Uso de Cookie de Autenticacin por Formulario,


para hacerse pasar por otro

Revelado de
informacin

Mostrar al cliente el seguimiento de la pila,


cuando sucede un error

http://msdn.microsoft.com/library/en-us/dnnetsec/html/THCMCh10.asp?frame=true#c10618429

Identificando Amenazas
Mtodo #1: Lista de Amenazas
Comenzar con una lista base
Identificar las que se aplican a la App.

Mtodo #2: STRIDE


Lista categorizada de tipos de Amenazas
Identificar Amenazas por tipo

Opcionalmente dibujar rboles


Los nodos raz representan las metas del
atacante
Los rboles ayudan a identificar las
condiciones de Amenaza

Modelando amenazas
11

Identificar
Identificarelementos
elementos

22

Documentar
DocumentarArquitectura
Arquitectura

33

Descomponer
Descomponerla
laAplicacin
Aplicacin

44

Identificar
IdentificarAmenazas
Amenazas

55

Documentar
DocumentarAmenazas
Amenazas

66

Cuantificar
CuantificarAmenazas
Amenazas

STRIDE
SS Spoofing
Se puede acceder con una identidad falsa?
TT Tampering
Se pueden modificar datos mientras fluyen por la Aplicacin?
Repudiation
R
R Si se intenta denegar, se puede probar que es un agresor?
de informacin
II Revelado
Se puede acceder a informacin reservada?
Denial of service
D
D Es posible disminuir la disponibilidad de la Aplicacin?
Elevation of privilege
E
E Puede un atacante asumir roles de usuario privilegiado?

DREAD
Damage
D
D Cuales son las consecuencias?
Reproducibility
R
R Se puede reproducir bajo ciertas circunstancias?
Exploitability
E
E Cuan fcil es realizarla?
Affected users
A
A Cuantos usuarios pueden verse afectados?
Discoverability
D
D Es fcil de descubrir?

DREAD, Cont.
Alto (3)

Medio (2)

Bajo (1)

El agresor
puede obtener
datos muy
sensibles,
daar
servidores etc.

Puede obtener
datos sensibles,
pero casi nada
ms

Puede acceder a
datos poco
importantes

Reproductibilida Siempre es
d
posible

Sucede si se
realiza en un
corto tiempo

Raramente se
puede hacer

Explotabilidad

puede hacerlo

Se deben tener
ciertos
conocimientos

Tal vez alguno

Usuarios
afectados

La mayora

Algunos

Pocos, si es que
hay alguno

Encubrimiento

Fcil de ver

Ms costoso de
ver

Muy difcil de
encontrar

Dao Potencial

DREAD, Ejemplo
Amenaza

Sum

Robo de cookie aut. (Robo de claves)

13

Robo de cookie aut. (XSS)

12

Alto
Alto
(Impersonalizacin,
(Impersonalizacin,robo
robode
declaves
claves
etc.)
etc.)
Es
Esfcil,
fcil,pero
perosirven
sirvenslo
slohasta
hastasu
su
expiracin
expiracin
Cualquiera
Cualquierausa
usaun
unsniffer;
sniffer;XSS
XSS
requiere
mayor
experiencia
requiere mayor experiencia
Muchos
Muchospueden
puedenser
serafectados,
afectados,
pero
cada
vez
menos
pero cada vez menosgente
genteabre
abre
mensajes
de
desconocidos
mensajes de desconocidos
Fcil
Fcilde
deencontrar:
encontrar:basta
bastacon
con
escribir
<script>
en
un
cuadro
escribir <script> en un cuadrode
de
texto
y
probar
texto y probar

Riesgos
Riesgos
Priorizados
Priorizados

Ejemplos de ataques
Inyeccin de SQL (SQL Injection)
Es comn por el armado de sentencias
SQL encadenando valores ingresados por
el usuario
Puede evitarse simplemente con la
buena prctica de usar Procedimientos
Almacenados
ASP.Net a partir de 1.1, valida
automticamente que no se enve cdigo
invlido

Inyeccin de SQL

Ejemplos de ataques
Denegacin de servicio (Denial of
Service)
Evita el acceso a servicios generalmente
al crear consumos invlidos
Consumo invlido de recursos
Utilizacin desmedida de recursos publicados
(UDP)
Consumo de ancho de banda
Etc.

Plataforma de proteccin
El esquema Firewall

La DMZ (Zona des militarizada)

Autenticacin y
autorizacin
Autenticacin

Mecanismo para identificar un usuario

Autorizacin
Mecanismo para permitir el acceso de un
usuario especfico, a un usuario
especfico
Por identidad
Por pertenencia

Mecanismos de
Autenticacin en IIS
Windows
Integrada
Kerber Certifica Passpo
os
do
rt

Basic

Digest

NTLM

Necesita cuenta de
Windows?

Soporta delegacin?

Las credenciales van como


texto plano?

Soporta navegadores no
IE?

Pasa a travs de firewalls?

Buena experiencia del


usuario?

IIS 5 y ASP.Net

Inetinfo.exe
Inetinfo.exe

Tubera

Aspnet_wp.exe
Aspnet_wp.exe
(Worker
(WorkerProcess)
Process)
AppDomain

HTTP Requests

T. nombrada
Aspnet_isapi.dll

AppDomain

ASP.NET comparte un proceso pero asla


las aplicaciones en AppDomains*

* ASP.NET tambin soporta jardines de servidores reservando un proceso por cada CPU

IIS 6 y ASP.Net
Application pooling: permite decidir como separar
las aplicaciones entre los procesos de trabajo
Application Pool 1

Application Pool 2

W3wp.exe
W3wp.exe

W3wp.exe
W3wp.exe
AppDomain

Inetinfo.exe
Inetinfo.exe

User Mode

AppDomain

AppDomain

Aspnet_isapi.dll

Aspnet_isapi.dll

I/O Completion Ports

Kernel Mode
HTTP Requests

Http.sys
Http.sys

Autenticacin en ASP.Net
Autenticacin Windows
Utiliza usuarios existentes de Windows
Ideal para aplicaciones Intranet

Passport
Conveniente para los usuarios (un solo
inicio)
Deja el almacenamiento de credenciales
en manos de otros

Forms
Tpicamente utilizada en aplicaciones de
tipo carrito

Autenticacin Windows
Se ejecuta usando la identidad
del proceso o impersonando
(Jos o IUSR_machinename)

Bob

IIS
IIS

IIS crear un Id de acceso


para el llamador (Jos o
IUSR_machinename*)

ASP.NET
ASP.NET

ASP.NET recibe ese Id y


realiza un control ACL del
recurso solicitado

* Normalmente, IIS usa IUSR_machinename para representar usuarios annimos, pero puede ser c

Por Formulario
El recurso est
El recurso est
disponible para
disponible para
usuarios annimos?
usuarios annimos?

No

El llamador tiene un
El llamador tiene un
cookie de autenticacin?
cookie de autenticacin?

Recurso
Recurso
S

Est autorizado?
Est autorizado?

No

No

Acceso
Acceso
negado
negado

Genera el cookie
Genera el cookie
de autenticacin
de autenticacin

Pgina
Pginade
de
Ingreso
Ingreso

Se
Se
identific?
identific?

No

Seguridad en
Componentes
Atributos de seguridad

Atributos de seguridad
Permite identificar el tipo de permisos
que un tipo y/o sus mtodos requieren
para ser ejecutados
Demand
Permit
Assert

El componente debe tener un nombre


firme (Strong name)
Sn
Versin

Seguridad en Base de
datos

Repasa los conceptos de seguridad en


la presentacin acerca de datos
Autenticacin integrada
Cadena de conexin protegida
Encriptacin
Ubicacin fuera de la aplicacin

Seguridad en Servicios
Identificar adecuadamente al usuario
que accede a un servicio
Integrada
Impersonalizacin
Mejoras para servicios Web (WSE)

Referencias
How To: Perform a Security Code
Review for Managed Code (.NET
Framework 2.0)
http://msdn.microsoft.com/practices/defa
ult.aspx?pull=/library/enus/dnpag2/html/PAGHT000027.asp

Threat Modeling Web Applications


http://msdn.microsoft.com/practices/defa
ult.aspx?pull=/library/enus/dnpag2/html/tmwa.asp

Security Engineering Index


http://msdn.microsoft.com/practices/defa
ult.aspx?pull=/library/en-

Potrebbero piacerti anche