Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
Amenazas en una
aplicacin
Amenaza
Ejemplos
Inyeccin de SQL
Modificacin del
ingreso
Robo de claves
Reemplazo de
sesin
Reemplazo de
identidad
Revelado de
informacin
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.
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
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
13
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
Autenticacin y
autorizacin
Autenticacin
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?
Soporta navegadores no
IE?
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 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
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
ASP.NET
ASP.NET
* 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
Seguridad en Base de
datos
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