pierre sergei zuppa azúa diseño. métodos de desarrollo para web diseño keyword

28
Pierre Sergei Zuppa Azúa Diseño

Upload: ignacio-lujano

Post on 28-Jan-2016

270 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Pierre Sergei Zuppa Azúa

Diseño

Page 2: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Keyword

Page 3: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Seguridad en Sistemas Informáticos e Internet 3

Métodos de desarrollo para web

Diseño

Aplicaciones Web

Aplicaciones cliente/servidor que utilizan el protocolo HTTP para interactuar con los usuarios u otros sistemas

El cliente utilizado por los usuarios es habitualmente un navegador

Los problemas de seguridad pueden provenir de los programas web en los que se apoyan, aunque en su mayor parte son consecuencia de fallos en la lógica y el diseño de la propia aplicación

Page 4: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Arquitectura cliente-servidor

El servidor es la computadora encargada de proporcionar el contenido. Para ello necesitamos instalar un servidor web en dicha máquina.

El cliente, que es el encargado de solicitar la información al servidor y mostrarla al usuario. Es el navegador (Internet Explorer, Firefox, Chrome, entre otros).

El funcionamiento de una aplicación es simple, el cliente emite una petición de un recurso que se encuentra en el servidor, y el servidor devuelve el recurso solicitado que es mostrado por el navegador.

Page 5: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Diseño de interfaces de usuario

Es el diseño de aplicaciones de software, y sitios web enfocado en la experiencia de usuario y la interacción. Es una actividad multidisciplinar que involucra a varias ramas como el diseño gráfico, industrial, web, de software y la ergonomía.

Page 6: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Principios para el diseño de IU

• Familiaridad del usuario

• Consistencia

• Mínima sorpresa

• Recuperabilidad

• Guía al usuario

• Diversidad de usuarios

Page 7: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Prototipos en la implementación del diseño de IU

• Prototipos Estáticos

• Prototipos Dinámicos

• Prototipos Robustos

Page 8: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Interacción del usuario en el diseño de IU

1. Manipulación directa: Interacción directa con los objetos de la pantalla. Rápida e intuitiva. Fácil de aprender.

2. Selección de menús: El usuario selecciona un comando de una lista de posibilidades. Evita errores del usuario. Se requiere teclear poco. Lenta para usuarios experimentados.

3. Llenado de formularios: Introducción de datos sencilla en los campos de un formulario. Fácil de aprender. Ocupa mucho espacio en la pantalla.

4. Lenguaje de comandos: Los usuarios emiten un comando especial y los parámetros asociados para indicar al sistema que hacer. Poderoso y flexible. Difícil de aprender. Administración de errores pobre.

5. Lenguaje Natural: El usuario emite comandos en lenguaje natural. Accesible a usuarios casuales. Fácil de ampliar.

Page 9: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Color en el diseño de la IU

• No utilizar más de 4 ó 5 colores diferentes en una ventana y no más de 7 en la interfaz total del sistema.

• Utilizar un cambio de color para mostrar un cambio en el estado del sistema.

• Utilizar el código de colores para apoyar la tarea que los usuarios están tratando de llevar a cabo.

• Utilizar el código de colores en una forma consciente y consistente.

• Ser cuidadoso al utilizar pares de colores• Si se utilizan muchos colores o si son muy

brillantes, el despliegue puede ser confuso.

Page 10: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Pautas para evaluar un diseño de IU

• Visibilidad del estado del sistema• Semejanza del sistema al mundo real• Control y libertad por parte del usuario• Consistencia y estandarización• Prevención de errores• Reconocimiento de acciones y

opciones• Flexibilidad y eficiencia en el uso• Estética y diseño minimalista• Reconocimiento de errores,

diagnóstico y recuperación• Ayuda y documentación

Page 11: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Seguridad en las aplicaciones Web

Cliente Servidor Aplicación Comunicación

Código móvilLenguajes de Macro: VBALenguajes de Script: JavaScript y VBScriptApplets JavaControles ActiveX

Servidor WebServidor de Bases de DatosLenguajes de servidor

Control de accesoValidación de datos de entradaProgramación segura

SSL

Page 12: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

¿Cuánta seguridad es necesaria?

La seguridad supone un coste económico y de eficiencia. Hay que disponer de la adecuada, ni más ni menos

Reglas• El riesgo cero no es práctico• Hay diversas formas de

mitigar el riesgo• No se puede gastar un millón

para proteger un peso

Page 13: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Amenazas1. Entrada no validada2. Control de acceso roto3. Administración de sesión y

autentificación rota4. Fallos de Cross Site Scripting

(XSS)5. Desbordamiento del buffer6. Fallos de inyección7. Manejo inadecuado de errores8. Almacenamiento inseguro9. Negación de servicio10. Administración de

configuración insegura

Page 14: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Guías de seguridad

• Validar la entrada y la salida• Fallar con seguridad• Mantener un esquema de seguridad simple• Utilizar componentes de confianza• La seguridad a través de la oscuridad no funciona• Mantener los privilegios al mínimo y separados

Page 15: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Desarrollo de una aplicación Web requiere

Una serie de herramientas: • Servidores Web• Servidores de aplicaciones• Servidores de bases de datos• Lenguajes de servidor

• Proporciona muchos servicios y es muy probable que algunos de ellos no sean necesarios para el funcionamiento de la aplicación web• En tal caso es conveniente deshabilitarlos• Para ello el servidor dispone de múltiples opciones de configuración que es conveniente adaptar a las circunstancias concretas de la aplicación Web• Configuraciones por defecto inadecuadas: ficheros de ejemplo, visualización de mensajes de error.

• Activación de cuentas por defecto: admin., system, test, guest, demo.

Page 16: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Servidor de bases de datosRecomendaciones

• No ejecutar el servidor como root• No dar a ningún usuario salvo al root

permiso de acceso a la tabla de usuarios

• Asegurarse de que el root tiene un password

• Restringir el acceso remoto al servidor

• No dar a un usuario más permisos que los estrictamente necesarios

• Almacenar los datos sensibles de forma encriptada

• Validar las instrucciones SQL antes de enviarlas al servidor

• No revelar información sobre la base de datos en los mensajes de error (esquema, naturaleza de los datos almacenados, fragmentos SQL)

• Proteger el código donde aparezca información sensible para el acceso al servidor

Nota: No ejecutar el servidor como root: crear un usuario especial para ello.

Page 17: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Lenguajes de servidor

– Proteger el código fuente para evitar que pueda ser visualizado, especialmente cuando contiene información sensible como pueden ser los datos de conexión al servidor de bases de datos

– Sacar el código fuente sensible fuera de la raíz de la web

Page 18: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

18

Métodos de desarrollo para web

Diseño

Control de acceso

Un aspecto muy importante de una aplicación Web es el control de acceso de los usuarios a zonas restringidas de la aplicación

• Autentificación• Autorización

Page 19: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

19

Métodos de desarrollo para web

Diseño

AUTENTIFICACIÓN

Es el proceso de determinar si un usuario es quien dice ser

Esto se puede hacer de varias maneras.

Autentificación HTTP básica

Autentificación basada en la aplicación

Page 20: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

20

Métodos de desarrollo para web

Diseño

Autentificación HTTP básica

VentajasEs muy simple de implementar

Se pueden fijar restricciones de acceso por usuario y contraseña o por otros conceptos como por ejemplo el dominio o dirección IP de la máquina

InconvenientesLos datos viajan por la red sin encriptar

No se puede hacer Logout, la única forma es cerrar el navegador

No hay control sobre el diseño de la ventana de diálogo

Page 21: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

21

Métodos de desarrollo para web

Diseño

Autentificación basada en la aplicación

La propia aplicación puede implementar un mecanismo de autentificación que implica la presentación de un formulario para que el usuario introduzca sus credenciales y el uso de una base de datos para verificar la corrección de éstas

Es más costosa pero más flexible ya que permite establecer diferentes permisos y niveles de acceso en función del usuario que solicita la autentificación

Page 22: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Seguridad en Sistemas Informáticos e Internet 22

Métodos de desarrollo para web

Diseño

Passwords

Recomendaciones• Restringir los valores para los nombres de

usuarios. Los que representan nombres reales suponen dar pistas a los atacantes

• Almacenar los passwords de forma segura, protegiendo el acceso a la base de datos

• Seguir reglas de seguridad para su elección

• Bloquear una cuenta cuando se detecta un número determinado de intentos de acceso incorrectos

• Actualizar los passwords periódicamente y mantener un histórico para evitar repeticiones

Recuperación de passwords• Automáticamente• A través de técnicos de soporte

Page 23: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

23

Métodos de desarrollo para web

Diseño

Recuperación de passwordsautomática

• Plantear durante el registro del usuario varias preguntas a las que sólo él puede responder

• Enviar el password por correo electrónico. Es recomendable que tenga fecha de expiración y se pida su cambio cuando el usuario se conecte

• Comunicar el password por teléfono al usuario a requerimiento del mismo

– Deben registrarse todos los intentos de recuperación y fijar un límite de tiempo pasado el cual sería preciso recurrir al técnico

– Para recuperar el password el usuario deberá responder a las preguntas correctamente

– Comunicar el password por teléfono al usuario a requerimiento del mismo. Es más seguro y puede ser registrado

Page 24: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

24

Métodos de desarrollo para web

Diseño

Sesiones

– Una vez que el usuario se ha autentificado introduciendo su nombre de usuario y su clave, es preciso mantener esta autentificación en cada conexión subsiguiente

– Para evitar tener que mostrar nuevamente la ventana de autentificación se recurre habitualmente al uso de sesiones, un mecanismo que permite mantener el estado entre diferentes peticiones HTTP

El mecanismo • Una vez autentificado, al usuario se le

asigna un identificador de sesión• Este identificador acompañará

invisiblemente a cada petición del usuario, con lo cual se garantizará que la petición proviene de un usuario previamente autentificado

• El identificador de sesión se suele almacenar en la propia máquina del cliente, mediante una cookie

• Sólo se debe almacenar el identificador de la sesión; cualquier otro dato del usuario se almacenará en el servidor

Page 25: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

25

Métodos de desarrollo para web

Diseño

SesionesSistema de gestión

• Establecer un tiempo límite de vida para la sesión

• Regenerar el identificador de sesión cada cierto tiempo

• Detectar intentos de ataque de fuerza bruta con identificadores de sesión

• Requerir una nueva autentificación del usuario cuando vaya a realizar una operación importante

• Proteger los identificadores de sesión durante su transmisión

• Destruir la cookie al finalizar la sesión para evitar el acceso de otro usuario en un entorno público

Page 26: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

26

Métodos de desarrollo para web

Diseño

Estrategias de protecciónModelos posibles 1. Aceptar únicamente datos válidos

conocidos2. Rechazar datos no válidos conocidos3. Sanear todos los datos

Page 27: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Seguridad en Sistemas Informáticos e Internet 27

Métodos de desarrollo para web

Diseño

SSL (Secure Socket Layer)

Es un protocolo para asegurar el transporte de datos entre el cliente y el servidor web.

Proporciona una comunicación segura entre cliente y servidor permitiendo la autentificación mutua, el uso de firmas digitales y garantizando la privacidad mediante encriptación. Una sesión SSL se establece según una secuencia de operaciones

Podemos reconocer una conexión HTTP sobre SSL porque aparece el prefijo ‘https’ en lugar de ‘http’ en la URL

Page 28: Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword

Métodos de desarrollo para web

Diseño

Frase

"Las organizaciones gastan millones de dólares en firewalls y dispositivos de seguridad, pero tiran el dinero porque

ninguna de estas medidas cubre el eslabón más débil de la cadena de seguridad: la

gente que usa y administra los ordenadores“

Kevin Mitnick