2. Bio Consultortécnicoespecializado en la plataforma RIA de Adobe +10 años de experiencia en la plataforma Co – manager del grupo de usuarios de Adobe RIactive
3. Agenda Panorama general de seguridad en la plataforma Decompiladores y ofuscadores Transmisión de datos Un poco de criptografía
4. Archivos SWF Vectores + contenido multimedia (bitmaps, audio, video ) InstruccionesActionScript en formatobinario Protocolos web paracomunicarse Sigue la especificación del formato SWF (www.adobe.com/devnet/swf)
5. Modelos de seguridad (FP) Definen: rango de datos y operacionesque la app puedeacceder / utilizar Security.sandboxType Protección contra: Acceso no autorizado de los datos Acceso no autorizado a la información del usuario Acceso no autorizado a los recursos del sistema
6. Sandbox remoto Controladopor el dominio de origen Para habilitar la comunicaciónutilizamos un archivocrossdomain.xml (http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html ) ( crossdomain.xml )
9. Acción de usuariorequerida Como acción de usuario se define algúnclic del mouse o presión de tecla. FileReference.browse() FileReference.download() Clipboard.generalClipboard.setData() Clipboard.generalClipboard.setDataHandler() System.setClipboard()
10. Protección extra… Flash Player poseerutinasqueprotegen al sistema contra el mal uso de susrecursos, ya sea de forma intencional o accidental. Almacenamiento de datos SharedObjectscontroladosporlaspropiedades del player ( 100 K* ) Capacidadparamodificar el espacioasignado Procesamiento Detección de bloques de códigorepetidodurante un lapso de tiempo ( 15 seg* ) Capacidadparamodificar el tiempo Memoria Garbage collector Siempreutilizamemorialimpia Sin posibilidad de obtenerdatosprevios
11. Archivo de configuración de seguridad mms.cfg Ubicación: MAC -> /Library/ApplicationSupport/Macromedia/mms.cfg Win -> C:indowsystem32acromedlashms.cfg Controla: Display ( Hardware Acceleration ) Privacy Local Storage Microphone Camera
14. Decompiladores Así como pueden revertir un archivo SWF y generar el FLA, también pueden extraer: Cualquier archivo contenido en el SWF Imágenes ( jpg, png, gif, etc…) Audio ( mp3, wav, … ) Video ( flv, mov, mp4, 3gp, f4v, etc… ) Otros archivos ( txt, xml, bin ) Código ActionScript Clases completas Bloques de código En general cualquier información dentro del archivo SWF
17. Ofuscadores Herramientas que nos ayudan a dificultar el proceso de “decompilación” en archivos SWF y SWC. Ofuscan ( confunden, encubren) el código fuente de los archivos SWF Pueden llegar a alterar el comportamiento normal de la aplicación ( enterpriseapps )
18. Ofuscadores Además de ofuscar el código estas herramientas pueden realizar otras acciones útiles: Cifrado de cadenas Optimización de código Añadir marcas de agua a los archivos Eliminación de comentarios
22. Envío de datosdesdelasaplicaciones Usualmente las aplicaciones Flash / Flex / AIR se encuentran continuamente enviando datos Si no utilizamos la seguridad adecuada esos datos pueden ser interceptados y alterados La plataforma no posee ningún método nativo para proteger esos datos
23. Envío de datosdesdelasaplicaciones ¿ y qué sucede si esos datos son credenciales de acceso ? ¿ y si es un video en formato streaming ? veamos que puede suceder…
25. Funciones Hash Funciónde dispersióncriptográfica Recibenunaentrada de datos ( mensaje ) Entreganunasalida (hash) únicaparadichomensaje Salida con longitudfija Prácticamenteimposibleobtener el mensaje a partir del hash
27. Funciones Hash Utilizadaspara: Enviarcredenciales de autenticación Integridad de los datos Indexarelementos Algoritmos MD5 SHA-1 SHA-256 Otros… Y ahora...
29. Bibliotecascriptográficas en la plataforma Ascorelib ( ActionScript core library ) ( http://github.com/mikechambers/as3corelib ) As3crypto ( http://code.google.com/p/as3crypto ) Soportepara TLS 1.0 Algoritmos Hash: MD2, MD5, SHA-1, SHA-224, SHA-256 Criptografía de llavepública: RSA Criptografía de llavesecreta: AES, DES, 3DES, BlowFish, RC4 Entrootros…
30. Entonces… ¿ cómopodemosasegurarunaaplicación ? Biblioteca As3crypto Clase AS3 – ByteArray ( manejo de datos a nivel de bytes ) Clase Loader ( load, loadBytes ) Adobe Integrated Runtime ( solo paraguardar un archivo )
33. Flash Player y SSL Flash Player no implementa SSL Verificación y validación de certificados son implementados por el browser o el OS Flash Player no contiene reglas de validación para certificados: Expirados Rechazados Con firmas personales URL no exactos.