Académique Documents
Professionnel Documents
Culture Documents
Web
OWASP Top-10 2013
Qu es OWASP?
www.owasp.org
A1: Inyeccin
A5: Mala
configuracin de
Seguridad
A2: Quiebre de
autenticacin y
administracin
de la sesin
A3: Cross-Site
Scripting (XSS)
A4: Referencia
directa a objeto
inseguro
A6: Exposicin de
datos sensibles
A7: Inexistente
control de acceso
a nivel de funcin
A8: Falsificacin
de Solicitud de
sitio cruzado
(CSRF)
A9: Usar
componentes
vulnerables
A10: Reenvos y
redirecciones no
validadas
A1 - Inyeccin
Inyeccin significa
Engaar a una aplicacin incluyendo comandos en los datos enviados a un
intrprete.
Intrpretes
Toman strings y los interpretan como comandos
SQL, OS Shell, LDAP, XPath, Hibernate, etc
Impacto tpico
Usualmente severo. La base de datos completa puede ser vista o modificada.
Incluso puede permitir acceso al esquema completo de la base de datos,
acceso a cuentas o acceso a nivel de sistema operativo.
Custom Code
App Server
Firewall
Hardened OS
Firewall
Network Layer
Web Server
Billing
Human Resrcs
Directories
Web Services
Databases
Legacy Systems
APPLICATION
ATTACK
DB Table
Communication
Knowledge Mgmt
E-Commerce
Bus. Functions
Administration
Transactions
request
Accounts
Finance
Application Layer
HTTP
HTTP
SQL
response
query
Account Summary
"SELECT
* FROM
Account:
Account:
accounts
WHERE
Acct:5424-6066-2134-4334
SKU:
SKU:
Acct:4128-7574-3921-0192
acct= OR 1=1-Acct:5424-9383-2039-4029
"
Acct:4128-0004-1234-0293
1. La aplicacin presenta un
formulario al atacante.
2. El atacante escribe datos en el
formulario
3. La aplicacin enva el ataque a
la base de datos en una query
SQL.
4. La base de datos ejecuta la
consulta que contiene el
ataque y enva el resultado a
la aplicacin.
5. La aplicacin prepara los datos
de manera normal y los enva
al atacante.
Recomendaciones
Evitar el intrprete completamente
Usar una interfaz que soporte variables de binding (por ejemplo sentencias
preparadas o procedimientos almacenados)
Las variables de binding permiten al intrprete distinguir entre cdigo y datos.
Codificar todas las entradas de usuario antes de entregrselas al intrprete.
Siempre efectuar validacin de los datos de usuario, respecto de lo autorizado a
ingresar.
Siempre minimizar privilegios de base de datos para reducir el impacto de los
errores de seguridad.
Referencias
Para mayores detalles
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
Impacto tpico
Cuentas de usuario comprometidas o sesiones secuestradas
www.boi.com?JSESSIONID=9FA1DB9EA...
Communication
Knowledge Mgmt
E-Commerce
Bus. Functions
Administration
Transactions
Custom Code
Verificar la implementacin
Veridicar su certificado digital
Examinar todas las funciones relacionadas con la autenticacin
Verificar que el logoff realmente destruye la sesin
Use WebScarab o ZAP de OWASP para probar la implementacin
Datos maliciosos
Almacenados en la base de datos
Reflejados desde la entrada (campo de formulario, campo oculto, Url)
Enviados directamente va JavaScript
Impacto tpico
Robo de la sesin de usuario, robo de datos sensibles, reescritura de la pgina
web, redireccin del usuario a un sitio maligno.
Instalar proxies XSS que permiten al atacante observar y dirigir todo el
comportamiento de un usuario en un sitio vulnerable y forzar que el usuario
acceda a otros sitios.
Ilustracin de XSS
El atacante pone la trampa: Actualizar mi perfil
trap update my profile
Aplicacin con
vulnerabilidad XSS
almacenada
EL atacante ingresa un
Administration
Transactions
Accounts
Finance
Communication
Knowledge Mgmt
E-Commerce
Bus. Functions
Custom Code
El script se ejecuta en el
browser de la vctima con
total acceso a la informacin
que ste maneja
Eliminar la falla
Referencias
Para cmo codificar cdigo de salida apropiadamente, leer:
https://www.owasp.org/index.php/XSS_(Cross Site Scripting) Prevention Cheat Sheet
Error comn
Impacto tpico
Los usuarios pueden acceder a archivos o datos no autorizados.
https://www.onlinebank.com/user?acct=6065
http://app?file=Report123.xls
http://app?file=1
http://app?id=9182374
http://app?id=7d3J93
Access
Reference
Map
Report123.xls
Acct:9182374
Communication
Knowledge Mgmt
E-Commerce
Bus. Functions
Administration
Transactions
Accounts
Finance
Database
Custom Code
App Configuration
Framework
Development
App Server
QA Servers
Web Server
Insider
Hardened OS
Test Servers
Source Control
Verificar la implementacin
Buscar configuraciones genricas y problemas de parches no instalados
Fallas al identificar los lugares a los que se envan los datos senibles
A la web, a otras bases de datos, a socios de negocios, comunicaciones internas
Impacto tpico
Los atacantes acceden o modifican informacin confidencial o privada
Tarjetas de crdito, fichas personales, datos financieros
La vctima ingresa su
nmero de tarjeta de
crdito en un formulario
Accounts
Finance
Administration
Transactions
Communication
Knowledge
Mgmt
E-Commerce
Bus. Functions
Custom Code
Log files
Un atacante interno
roba 4 millones de
nmeros de tarjetas
de crdito
Los logs son accesibles a
todos los miembros de IT
para debug
El manejador de errors
registra los nmeros de
tarjetas de crdito en el
log, porque no hay
comunicacin con el
Sistema
Verifique su arquitectura
Verificar la implementacin
Socios de negocio
Vctima externa
Custom Code
1
Atacante interno
roba credenciales
de acceso y datos
fuera de la red
Atacante externo
Backend Systems
Empleados
Atacante interno
roba credenciales de
acceso y datos desde
la red interna
Atacante interno
XML-Encryption
Firmar mensajes antes de transmitirlos
XML-Signature
Ver
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
para ms detalles.
Un error comn
Mostrar slo links y opciones de men autorizadas
El control de acceso a nivel de capa de aplicacin no funciona
El atacante lograr tener aceso directo a pginas no autorizadas.
Impacto tpico
Los atacantes invocan funciones y servicios a los que no estn
autorizados
Acceso a otras cuentas de usuarios y datos
Efectuar acciones con privilegios sobre el sistema
Verificar su arquitectura
Usar un modelo simple en cada capa
Asegrese que realmente tienen un mecanismo de control de acceso en cada capa
Verifique la implementacin
Verifique que cada URL (adems de los parmetros) referencian a una funcin que es
protegida por:
Un filtro externo, como JavaEEweb.xml
Verificaciones internas en el cdigo (ej. usar mtodo de ESAPI
isAuthorizedForURL())
Verificar que la configuracin de servidor desactiva requerimientos a tipos de archivos
no autorizados.
Usar OWASP ZAP para detectar acceso a pginas o archivos no autorizadas
Cookie de sesin
Header de autenticacin bsica
Direccin IP
Certificados SSL del lado del cliente
Autenticacin de dominio de Windows
Ilustracin CSRF
El Atacante pone la trampa en un sitio web o la enva por email
1
Communication
Knowledge Mgmt
E-Commerce
Bus. Functions
Administration
Transactions
Aplicacin con
vulnerabilidad CSRF
Accounts
Finance
Custom Code
3
La etiqueta <img> cargada
por el browser enva un
request GET (incluyendo
credenciales) al sitio
vulnerable.
El sitio vulnerable ve un
request desde la vctima
y efecta la accin
solicitada.
Agregue un token secreto a todos los requests sensibles (no debe ser
automticamente enviado)
Hace imposible que el atacante modifique el requerimiento
Los tokens debieran ser robustos criptogrficamente
Opciones
Libraries
Library
Versions
Organizations
Downloads
31
1,261
61,807
113,939,358
https://www.aspectsecurity.com/news/press/the-unfortunate-reality-of-insecure-libraries
Expansin
Virtualmente cada aplicacin tiene estos problemas
En muchos casos, los desarrolladores ni siquiera conocen todos los componentes que
usan
Impacto tpico
Completo rango de debilidades
Impacta completamente el sistema
Mnimo
Chequeo peridico manual y upgrade consecuente
Si alguna est desactualizada, pero no quiere actualizar, verificar si existen problemas
de seguridad para esa biblioteca
Bus. Functions
E-Commerce
Knowledge Mgmt
Communication
Transactions
La aplicacin
redirecciona a la vctima
al sitio del atacante
Accounts
Administration
Finance
Custom Code
http://www.irs.gov/taxrefund/claim.jsp?year=2006
& &dest=www.evilsite.com
Evil Site
La aplicacin autoriza el
request la cual contina a
la pgina vulnerable
Filtro
1.
2.
3.
Defensa en profundidad: Para redirecciones, valide la URL destino despus que sea
determinada y asegrese que dirige a un sitio externo autorizado
ESAPI lo puede hacer por usted
http://owasp-esapi-java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/
SecurityWrapperResponse.html#sendRedirect(java.lang.String)
Seguir las mejores prcticas en la gua para construir aplicaciones Web seguras de
OWASP
https://www.owasp.org/index.php/Guide
Y las hojas de apuntes: https://www.owasp.org/index.php/Cheat_Sheets
Gracias
OWASP Top-10 2013