Está en la página 1de 53

D&5@r0ll@nd0 @pl1c@c10n&5

@p&x 5&6ur@5
@nd&r50n F&rr&1r@

Desarrollando aplicaciones Apex


seguras
Anderson Ferreira

Quin soy

Anderson Ferreira

Ingeniero en Computacin

Posgrado en Seguridad de la Informacin

MBA en Gestin de TI

Gestiona y desarolla ms de
15 sistemas en Apex

Aviso

Las opiniones aqu expresadas


son mis opiniones personales!

Preguntas slo al final!

El espaol no es mi lengua materna,


por favor sea paciente!

Sumario

Introduccin

Principales dispositivos de seguridad en Apex

Autenticacin

Autorizacin

Proteccin de Estado de la Sesin

Principales amenazas

URL tampering

Inyeccin SQL

Cross-site scripting

Conclusin

Sumario
Introduccin

Principales dispositivos de seguridad en Apex

Autenticacin

Autorizacin

Proteccin de Estado de la Sesin

Principales amenazas

URL tampering

Inyeccin SQL

Cross-site scripting

Conclusin

Introduccin

Qu es la seguridad de la informacin?

Introduccin

El costo de la seguridad no puede ser mayor


que el activo
Pero tienes que invertir en seguridad!!

Sumario
Introduccin
Principales dispositivos de seguridad en Apex
Autenticacin

Autorizacin

Proteccin de Estado de la Sesin

Principales amenazas

URL tampering

Inyeccin SQL

Cross-site scripting

Conclusin

Autenticacin

Establece la identidad del usuario antes del


acceso a la aplicacin

Autenticacin

Autenticacin

Autenticacin

Evite desarrollar con la aplicacin pblica

Open Door Credentials

No Authentication (using DAD)

Sumario
Introduccin
Principales dispositivos de seguridad en Apex
Autenticacin
Autorizacin

Proteccin de Estado de la Sesin

Principales amenazas

URL tampering

Inyeccin SQL

Cross-site scripting

Conclusin

Autorizacin

Define lo que una persona puede hacer en la


aplicacin
Se puede asociar a (entre otros):

aplicacin

regiones

botones

pginas

elementos

procesos

Autorizacin

Autorizacin

Autorizacin

Si desea que un componente no sea ejecutado,


bloquee el componente, no slo los caminos de
llegar a l.
Ejemplo:

Si no puede acceder a una pgina, debe bloquear


la pgina y no slo los enlaces que llevan a la
pgina.

link

pginas

Sumario
Introduccin
Principales dispositivos de seguridad en Apex
Autenticacin
Autorizacin
Proteccin de Estado de la Sesin

Principales amenazas

URL tampering

Inyeccin SQL

Cross-site scripting

Conclusin

Proteccin de Estado de la Sesin

URL Apex
f?p=
app:page:session:request:debug:cache:input
parameters:values:printerfriendly
Apex programmers smartly request double
cache in virtual programs

Proteccin de Estado de la Sesin

Checksum valida que no ha cambiado:

Nombre o Valor del elemento

Request (Solicitud)

Borrar cach

Otros (Vamos a ver!) - Usuario o Sesin

Proteccin de Estado de la Sesin


Aplicacin

1 paso

Pgina
2 paso
Elemento

Proteccin de Estado de la Sesin

Proteccin de Estado de la Sesin

Genera un nuevo SALT para el checksum (total de control)

Proteccin de Estado de la Sesin

Proteccin de Estado de la Sesin

Proteccin de Estado de la Sesin

Proteccin de Estado de la Sesin

Proteccin de Estado de la Sesin

Favorito pblico
Favorito privado

Proteccin de Estado de la Sesin

Funcin que genera el checksum:


APEX_UTIL.PREPARE_URL (
p_url

IN VARCHAR2,

p_url_charset IN VARCHAR2 default null,


p_checksum_type IN VARCHAR2 default null)
RETURN VARCHAR2;
SESSION
PRIVATE_BOOKMARK
PUBLIC_BOOKMARK

3
2
1

Sumario
Introduccin
Principales dispositivos de seguridad en Apex
Autenticacin
Autorizacin
Proteccin de Estado de la Sesin

Principales amenazas
URL tampering

Inyeccin SQL

Cross-site scripting

Conclusin

Principales amenazas

No intente esto en casa!

Puede ser peligroso!

Principales amenazas

Apex sufre las mismas vulnerabilidades de


otras tecnologas web!

URL Tampering

Modificacin de la direccin URL con el fin de


realizar acciones que no son deseables, tales
como:

cambiar los parmetros,

realizar acciones no autorizadas en la base de datos o

acceder pginas no permitidas.

URL Tampering

Ejemplo:

Sistema de tienda virtual

(Acceso a los pedidos no autorizados)


(Acceso a las pginas no utilizadas)
(Modificacin de los precios de los pedidos)

URL Tampering

Cmo evitar URL Tampering?

Proteccin de Estado de la Sesin

Clusula WHERE

VPD (Virtual Private Database)

Solo en Enterprise Edition

URL Tampering

Cmo evitar URL Tampering?

Efecte siempre las validaciones del lado del


servidor

Las pginas no utilizadas no pueden ser accesibles

Eliminar o dejar sin acceso URL

Sumario
Introduccin
Principales dispositivos de seguridad en Apex
Autenticacin
Autorizacin
Proteccin de Estado de la Sesin

Principales amenazas
URL tampering
Inyeccin SQL

Cross-site scripting

Conclusin

Inyeccin SQL

Se inserta comandos SQL maliciosos


en la aplicacin, que pueden generar:

acciones no deseadas (eliminacin de datos o


tablas, cambio de informacin, etc.); o

acceso no autorizado a los datos (contraseas,


datos sensibles, etc.)

Objetivo: La base de datos

Inyeccin SQL

Ejemplo:

Campo de bsqueda vulnerable

Acceso no autorizado (1 OR 1=1)

Consulta de ms informaciones (UNION)

Drop table/Update table (1; DROP TABLE my_table)

Inyeccin SQL
SELECT *
FROM orders
WHERE order_id = &PX_ORDER_ID.
1 OR 1=1

1 UNION
SELECT login, password,
credit_card, address
FROM customers

1; DROP TABLE access_log

Inyeccin SQL

Cmo evitar Inyeccin SQL?

Evite sustitucin / concatenacin

Utilice variables de enlace o "funcin v"


Cuidado con SQL dinmico!

Siempre realize la validacin en el lado del servidor

No confe en javascript

Inyeccin SQL

Cmo evitar Inyeccin SQL?

Utilice campos de tamao apropiado

Evite datos sensibles en claro en la base de datos

Limite los privilegios de acceso

Sumario
Introduccin
Principales dispositivos de seguridad en Apex
Autenticacin
Autorizacin
Proteccin de Estado de la Sesin

Principales amenazas
URL tampering
Inyeccin SQL
Cross-site scripting

Conclusin

Cross-site scripting

XSS
Objetivo: Otros usuarios (navegador interpreta
el cdigo malicioso en javascript)

Cross-site scripting

Se puede robar los datos o la sesin del


usuario

Cross-site scripting

Ejemplo

Pgina de comentario

insertando script enla entrada del usuario

Cross-site scripting

Cmo evitar XSS ?

Debe escapar la entrada del usuario

htf.escape_sc

Siempre realizar la validacin en el lado del


servidor

Sumario
Introduccin
Principales dispositivos de seguridad en Apex
Autenticaccin
Autorizacin
Proteccin de Estado de la Sesin

Principales amenazas
URL tampering
Inyeccin SQL
Cross-site scripting

Conclusin

Conclusin

Conclusin

Apex tiene varios dispositivos de seguridad


Proteccin de estado de la sesin

Autorizacin

Autenticacin

Conclusin

Apex es seguro!

Las personas dejan las aplicaciones inseguras!

Preguntas?

andersonrf@gmail.com

También podría gustarte