titulo

43
Java y Seguridad © 2002 CoreST Corelabs www.corest.com/corelabs titulo Java y Seguridad InformáticaCaracterísitcas y consideraciones en la implementación de software

Upload: vernados-karan

Post on 01-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

titulo. “ Java y Seguridad I nformática ”. Caracterísitcas y consideraciones en la implementación de software. Objetivos. Conocer la arquitectura y componentes de seguridad de Java Entender los problemas de seguridad para los que Java fue diseñado - PowerPoint PPT Presentation

TRANSCRIPT

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

titulo

“Java y Seguridad Informática” Caracterísitcas y consideraciones en la implementación de software

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Objetivos

• Conocer la arquitectura y componentes de seguridad de Java

• Entender los problemas de seguridad para los que Java fue diseñado

• Conocer los problemas de seguridad mas comunes en soluciones Java

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Agenda

1. Introducción

2. Estrategia JAVA

3. Sandboxing

4. Java Security – Application Security

5. Inseguridad en Java

6. Conclusiones

Java

y S

eg

urid

ad

© 2

002

Cor

eST

- C

orel

abs

ww

w.c

ores

t.com

/cor

elab

s

Introducciónconvenciones y fundamentos

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Fundamentos de Seguridad Informática

• Prevención• Disuasión • Auditoria

• Privacidad• Integridad• Autenticidad• Disponibilidad• Irrefutabilidad

Objetivos

Política

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Un módelo de Riesgo

amenaza x vulnerabilidades x impactocontramedidas

Abundancia,Recursos

Probabilidad o Frecuencia

Pérdida,Atractivo

Prácticas y tecnologías

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

El Escenario

• El atacante– Perfil– Recursos– Motivaciones

• Las vulnerabilidades– Características Técnicas– Características Estratégicas

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

El Atacante

•Perfil–Interno / Externo

–Oportunista / Plan e intereses

–Individuo u organización

–Aficionado, profesional

• Recursos

–Conocimiento

–Herramientas

–Ataques(exploits)

–Tiempo

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Incidentes CERT/CC

• Computer Emergency Response Team Coordination Center

Incidentes de Seguridad

05000

1000015000200002500030000

1999 2000 2001

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Vulnerabilidades

• Software– Diseño– Implementación– Configuración/puesta en producción

• Físico

• Humano

• Estrategia / Políticas

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Bugtraq

Estadísticas securityfocus.com

Java

y S

eg

urid

ad

© 2

002

Cor

eST

- C

orel

abs

ww

w.c

ores

t.com

/cor

elab

s

Estrategia de Seguridad JavaEscenario y Arquitectura

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Escenario I: Aplicaciones Hóstiles

• Consideraciones de Seguridad– Estaciones de trabajo con recursos y/o

procesos valiosos– Control de acceso basado en direcciones IP– Atacante en control potencial del Código

resources

Proc a

Proc b

Proc c

resources

Pro

c a

Pr o

c b

Pr o

c c

resources

Pro

c a

Pr o

c b

Pr o

c c

appl code a

appl code b

appl code c

Workstation Internet Servers

NetworkFirewall

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Escenario II: Usuarios Hóstiles

• Consideraciones de seguridad– Servidores con recursos valiosos– Desarrolladores con tendencia a cometer

errores– Atacante en potencial control de la

entrada/salida del programa

resources

Proc a

Proc b

Proc c

Server

NetworkFirewall

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Elementos de Java Security

• Sandboxing• Access Control:

– Politicas– Permisos– Dominios de seguridad– Privilegios

• Autenticación y autorización• Arquitectura Criptográfica

– JCA & JCE• Lenguaje mas seguro

– Typesafety– Strong Type Checking

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs VM

Java Security Model

• JDK 1.0/ JDK 1.1

Resources: files/network/devices

SANDBOXRestricted

TRUSTED CODEFull Access

Local classes Remote classes

auth

Security Manager NATIVE CODEVM

bytecode verifier

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Java 2 Security Model

• Java 2

Resources: files/network/devices

SANDBOXRestricted

Domain or Security Context

Permission

Security Manager NATIVE CODEVM

Domain or Security Context Set of Permission

Class loader

bytecode verifier

Local classes Remote classes

Policy

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Java Security API

• Java 2

JCA / JCE

JAAS JSSE GSSCertPath

CryptoProvider

CryptoProvider

CryptoProvider

Applications

Java

y S

eg

urid

ad

© 2

002

Cor

eST

- C

orel

abs

ww

w.c

ores

t.com

/cor

elab

s

SandboxingProtección de código potencialmente hóstil

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

En esencia

• Dos niveles de permisos– Untrusted code -> Sandbox

• No puede abrir o acceder a archivos• Solo puede establecer conexiones con el

servidor origen de la clase

– Trusted Code• Sin restricciones• Puede invocar cualquier método, abrir

archivos, conexiones o hacer llamadas al sistema.

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Mas precisamente

• Política– Mayor Granularidad– Asocia Permisos a Dominios/Clases

class a

class b

class c

class d

domain A

domain B

domain C

-Permission 1

-Permission 2

-Permission 3

-Permission 1

-Permission 2

-Permission 3

-Permission 1

-Permission 2

-Permission 3Policy

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Privilegios

• Verificación en runtime• Stackwalk

– Intersección de permisos. – Verifica que a y b tengan privilegios

class a

class b

systemdomain

a

b

system

stac

k st

ack

stac

k st

ack

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Algunos Ejemplos

• Permission– java.io.FilePermission(“/tmp”, “write”)

• Policy– grant signedBy “companyA” {

• Permission java.io.FilePermission “/tmp” “read”

}

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Clases y Confianza

• Trusted Class:– CLASSPATH

• La clase fue cargada desde un directorio listado en CLASSPATH

– Signed Class • La clase tiene una firma digital de

un origen listado como confiable

– Classloaders

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

El Verificador• Typesafety

– Dataflow analisys– Strong type-checking

• Pointer arithmetic, access restrictions• Object Methods, Methods arguments• Stack overflows, System calls

fe 23 12 4a c8 7a be cd

bytecode class info signature

Class File - JAR

Java

y S

eg

urid

ad

© 2

002

Cor

eST

- C

orel

abs

ww

w.c

ores

t.com

/cor

elab

s

Java SecuritySeguridad de Aplicación

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

#1 Problemas Típicos en otros lenguajes

• Ej: Que es un Buffer Overflow?

// abo1.cint main(int argc, char *argv[]){ char nombre[20];

strcpy(nombre, argv[1]); return 0;}

nombre[20]

stackframe

ret address

argc

stac

k st

ack

stac

k st

ack

stac

k

compiler

01234567890123456789ssssfe7d

67892345890145670123

SSSS

FE7D

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Seguridad Java Language

• Typesafety

• Tipos básicos para Arrays, Lists, Strings

• No hay aritmética de punteros

• Permisos y Dominios

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

# 2 Diseño e implementaciones complejas

• Dificultades a la hora de implementar:

– Autenticación y autorización

– Protocolos criptográficos, primitivas y algoritmos.

– Canales seguros.

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

JCA & JCE

• Java Cryptographic Architecture / Java Cryptographic Extensions

• Clases abstractas para:– Ciphers, hash functions, MACs,

signatures– Protocols

• Cryptographic providers– Implementations of primitives

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

JAAS

• Java Authentication & Authorization Service

• Mecanismos Autenticación de usuarios

• Permisos/privilegios y autorizaciones del usuario

• PAM

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

JSSE

• Secure Socket API

• Implementaciones de SSL & TLS basados en JCA

• HTTPS

Java

y S

eg

urid

ad

© 2

002

Cor

eST

- C

orel

abs

ww

w.c

ores

t.com

/cor

elab

s

Inseguridad en JavaProblemas y consideraciones

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

DNS Attack

• Escenario I. Código Hóstil• El atacante controla el servidor de DNS que

resuelve para el webserver donde esta el applet

resources

Proc a

Proc b

Proc c

resources

Pro

c a

Pr o

c b

Pr o

c c

appl code a

Workstation Web server

NetworkFirewall

Attack-dns

dns server

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Lurking & directory transversal

• Escenario I: Código Hóstil• Escenario II: Usuario Hóstil• Directory Transversal & lurking• Attack on temporary file name

class aSystemclass

user: ../../etc/passwd

files

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Choosen Plaintext Attack on JCA

• Escenario II: Usuario Hóstil• Webmail + Homebanking

JCA

webmail

homebanking

cookies

Java

y S

eg

urid

ad

© 2

002

Cor

eST

- C

orel

abs

ww

w.c

ores

t.com

/cor

elab

s

Conclusiones

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Algunas recomendaciones

• Concentrar las interfases entre dominios.

• Evaluar y validar cuidadosamente los parámetros. A veces una excepción es suficiente impacto.

• Aprovechar el sistema de permisos y segregación.

• Atención en particular al uso de servicios de criptografía.

• El análisis o auditoría de seguridad es insustituible

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Preguntas

• Preguntas

• Comentarios

• Ideas

• Etc.

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Referencias / 1

• Corelabs– Core Security Technologies– www.corest.com/corelabs

• Bugtraq– Difusión de vulnerabilidades– online.securityfocus.com/archive/1

• SecurityFocus– Actualidad y Seguridad– www.securityfocus.com

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Referencias / 2

• Java Security FAQ– Respuestas a las preguntas mas

frecuentes sobre seguridad en Java, por SUN

– java.sun.com/sfaq

• JAVA Home Site– Sitio oficial de JAVA – java.sun.com

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Referencias / 3

• Secure Internet Programming– Fuente de articulos e información

general– www.cs.princeton.edu/sip

• Microsoft y JAVA– www.microsoft.com/java/security/default.htm

• Netscape y JAVA– developer.netscape.com/docs/manuals/signedobj/capsapi.html

Java

y S

eg

urid

ad

© 2

002

Cor

eST

C

orel

abs

ww

w.c

ores

t.co

m/c

orel

abs

Información de contacto

[email protected]@corest.comwww.corest.com

Java

y S

eg

urid

ad