PDF de programación - Desarrollando aplicaciones Apex seguras

Imágen de pdf Desarrollando aplicaciones Apex seguras

Desarrollando aplicaciones Apex segurasgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 16 de Marzo del 2018)
544 visualizaciones desde el 16 de Marzo del 2018
1,0 MB
53 paginas
Creado hace 10a (08/12/2013)
D&5@r0ll@nd0 @pl1c@c10n&5

@p&x 5&6ur@5

@nd&r50n F&rr&1r@

Desarrollando aplicaciones Apex

seguras

Anderson Ferreira

Quién soy

● Anderson Ferreira

– Ingeniero en Computación

– Posgrado en Seguridad de la Información

– MBA en Gestión de TI

– Gestiona y desarolla más de

15 sistemas en Apex





Aviso

● Las opiniones aquí expresadas

son mis opiniones personales!

● Preguntas sólo al final!

● El español no es mi lengua materna,

por favor sea paciente!





Sumario

● Introducción
● Principales dispositivos de seguridad en Apex

– Autenticación
– Autorización
– Protección de Estado de la Sesión

● Principales amenazas

– URL tampering
– Inyección SQL
– Cross-site scripting

● Conclusión





Sumario

✔ Introducción
● Principales dispositivos de seguridad en Apex

– Autenticación
– Autorización
– Protección de Estado de la Sesión

● Principales amenazas

– URL tampering
– Inyección SQL
– Cross-site scripting

● Conclusión





Introducción

● ¿Qué es la seguridad de la información?





Introducción

● “El costo de la seguridad no puede ser mayor

que el activo”

● Pero tienes que invertir en seguridad!!





Sumario

✔ Introducción
✔ Principales dispositivos de seguridad en Apex

✔ Autenticación
– Autorización
– Protección de Estado de la Sesión

● Principales amenazas

– URL tampering
– Inyección SQL
– Cross-site scripting

● Conclusión





Autenticación

● Establece la identidad del usuario antes del

acceso a la aplicación





Autenticación





Autenticación





Autenticación

● Evite desarrollar con la aplicación pública

– Open Door Credentials

– No Authentication (using DAD)





Sumario

✔ Introducción
✔ Principales dispositivos de seguridad en Apex

✔ Autenticación
✔ Autorización
– Protección de Estado de la Sesión

● Principales amenazas

– URL tampering
– Inyección SQL
– Cross-site scripting

● Conclusión





Autorización

● Define lo que una persona puede hacer en la

aplicación

● Se puede asociar a (entre otros):

aplicación

regiones

botones

páginas

elementos

procesos





Autorización





Autorización





Autorización

● Si desea que un componente no sea ejecutado,
bloquee el componente, no sólo los caminos de
llegar a él.

● Ejemplo:

– Si no puede acceder a una página, debe bloquear

la página y no sólo los enlaces que llevan a la
página.

link

páginas





Sumario

✔ Introducción
✔ Principales dispositivos de seguridad en Apex

✔ Autenticación
✔ Autorización
✔ Protección de Estado de la Sesión

● Principales amenazas

– URL tampering
– Inyección SQL
– Cross-site scripting

● Conclusión





Protección de Estado de la Sesión

● URL Apex

f?p=
app:page:session:request:debug:cache:input
parameters:values:printerfriendly

“Apex programmers smartly request double
cache in virtual programs”





Protección de Estado de la Sesión

● Checksum valida que no ha cambiado:

– Nombre o Valor del elemento
– Request (Solicitud)
– Borrar caché
– Otros (Vamos a ver!) - Usuario o Sesión





Protección de Estado de la Sesión

Aplicación

1º paso

Página

Elemento

2º paso





Protección de Estado de la Sesión





Protección de Estado de la Sesión



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



Protección de Estado de la Sesión





Protección de Estado de la Sesión





Protección de Estado de la Sesión





Protección de Estado de la Sesión





Protección de Estado de la Sesión

Favorito público

Favorito privado





Protección de Estado de la Sesión

● Función 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

✔ Introducción
✔ Principales dispositivos de seguridad en Apex

✔ Autenticación
✔ Autorización
✔ Protección de Estado de la Sesión

✔ Principales amenazas

✔ URL tampering
– Inyección SQL
– Cross-site scripting

● Conclusión





Principales amenazas

● No intente esto en casa!

● Puede ser peligroso!





Principales amenazas

● Apex sufre las mismas vulnerabilidades de

otras tecnologías web!





URL Tampering

● Modificación de la dirección URL con el fin de
realizar acciones que no son deseables, tales
como:
– cambiar los parámetros,
– realizar acciones no autorizadas en la base de datos o
– acceder páginas no permitidas.





URL Tampering

● Ejemplo:

– Sistema de tienda virtual

● (Acceso a los pedidos no autorizados)
● (Acceso a las páginas no utilizadas)
● (Modificación de los precios de los pedidos)





URL Tampering

● ¿Cómo evitar URL Tampering?

– Protección de Estado de la Sesión
– Cláusula WHERE

– VPD (Virtual Private Database)

● Solo en Enterprise Edition





URL Tampering

● ¿Cómo evitar URL Tampering?

– Efectúe siempre las validaciones del lado del

servidor

– Las páginas no utilizadas no pueden ser accesibles

● Eliminar o dejar sin acceso URL





Sumario

✔ Introducción
✔ Principales dispositivos de seguridad en Apex

✔ Autenticación
✔ Autorización
✔ Protección de Estado de la Sesión

✔ Principales amenazas

✔ URL tampering
✔ Inyección SQL
– Cross-site scripting

● Conclusión





Inyección SQL

● Se inserta comandos SQL maliciosos
en la aplicación, que pueden generar:
– acciones no deseadas (eliminación de datos o

tablas, cambio de información, etc.); o

– acceso no autorizado a los datos (contraseñas,

datos sensibles, etc.)

● Objetivo: La base de datos





Inyección SQL

● Ejemplo:
● Campo de búsqueda vulnerable

– Acceso no autorizado (1 OR 1=1)
– Consulta de más informaciones (UNION)
– Drop table/Update table (1; DROP TABLE my_table)





Inyección 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





Inyección SQL

● ¿Cómo evitar Inyección SQL?
– Evite sustitución / concatenación

● Utilice variables de enlace o "función v"

– Cuidado con SQL dinámico!
– Siempre realize la validación en el lado del servidor

● No confíe en javascript





Inyección SQL

● ¿Cómo evitar Inyección SQL?

– Utilice campos de tamaño apropiado

– Evite datos sensibles en claro en la base de datos

– Limite los privilegios de acceso





Sumario

✔ Introducción
✔ Principales dispositivos de seguridad en Apex

✔ Autenticación
✔ Autorización
✔ Protección de Estado de la Sesión

✔ Principales amenazas

✔ URL tampering
✔ Inyección SQL
✔ Cross-site scripting

● Conclusión





Cross-site scripting

● XSS

● Objetivo: Otros usuarios (navegador interpreta

el código malicioso en javascript)





Cross-site scripting

● Se puede robar los datos o la sesión del

usuario





Cross-site scripting

● Ejemplo

– Página de comentario

● insertando script en la entrada del usuario





Cross-site scripting

● ¿Cómo evitar XSS ?

– Debe escapar la entrada del usuario

● htf.escape_sc

– Siempre realizar la validación en el lado del

servidor





Sumario

✔ Introducción
✔ Principales dispositivos de seguridad en Apex

✔ Autenticacción
✔ Autorización
✔ Protección de Estado de la Sesión

✔ Principales amenazas

✔ URL tampering
✔ Inyección SQL
✔ Cross-site scripting

✔ Conclusión





Conclusión





Conclusión

● Apex tiene varios dispositivos de seguridad

Protección de estado de la sesión

Autorización

Autenticación





Conclusión

● Apex es seguro!

● Las personas dejan las aplicaciones inseguras!





¿Preguntas?

[email protected]
  • Links de descarga
http://lwp-l.com/pdf9591

Comentarios de: Desarrollando aplicaciones Apex seguras (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad