Escolar Documentos
Profissional Documentos
Cultura Documentos
Normativa de Desarrollo
Seguro para Aplicaciones Web
Julio 2015
INDICE
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
OBJETIVOS..............................................................................................................2
ALCANCE.................................................................................................................2
INTEGRACIÓN EN LA METODOLOGÍA..................................................................2
DESTINATARIOS.....................................................................................................2
Arquitectura Web...................................................................................................3
Consideraciones de la Arquitectura.......................................................................3
Acceso remoto de administración..........................................................................4
Uso de distintas Interfaces ....................................................................................4
CONTROL DE ERRORES........................................................................................5
Control de Excepciones.........................................................................................6
REGISTRO DE EVENTOS........................................................................................7
Especificación de las trazas de registro.................................................................7
Almacenamiento de registros ................................................................................8
Protección de los registros ....................................................................................8
PRIVACIDAD DE LA INFORMACIÓN ......................................................................9
Información CONFIDENCIAL ................................................................................9
Datos de carácter personal....................................................................................9
Caché de datos .....................................................................................................9
CONTROL DE SESIÓN..........................................................................................10
Aspectos generales.............................................................................................10
Uso de identificadores de sesión.........................................................................10
Detección de ataques..........................................................................................11
VALIDACIÓN DE LOS DATOS...............................................................................12
Filtrado de entrada de datos................................................................................12
Filtrado de salida de datos...................................................................................13
CODIFICACIÓN DE LOS DATOS...........................................................................14
FILTRADO DE LOS DATOS...................................................................................14
Estrategia de filtrado de datos.............................................................................15
Datos a prevenir ..................................................................................................15
Tipos de filtrado a aplicar.....................................................................................16
INFORMACION SENSIBLE....................................................................................18
Información Sensible en Páginas *SP .................................................................19
Seguridad de Archivos .........................................................................................19
Normalización de Path’s.......................................................................................20
Caracteres HTML y Caracteres Especiales como Entrada de Datos.................20
Uso del campo Referer.........................................................................................20
Uso de POST .........................................................................................................20
Opción Multilingüe................................................................................................21
Comandos de sistema..........................................................................................21
AUTENTICACIÓN...................................................................................................22
Autenticación basada en formularios...................................................................22
Autenticación sobre HTTP...................................................................................23
OBJETIVOS
Este documento expone una serie de principios globales para el diseño y desarrollo
seguro de aplicaciones Web para el Banco .
Página: 1
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
El objetivo de este documento es exponer una serie principios que describan los
aspectos más importantes que se deben tener en cuenta cuando se diseña o desarrolla
una aplicación Web. Mediante el seguimiento de estos principios, se pretende evitar los
problemas de seguridad más comunes.
ALCANCE
El alcance de este documento afecta a todas las aplicaciones Web a desarrollar para el
Banco .
DESTINATARIOS
En el ciclo de vida del desarrollo de aplicaciones, este documento aplica a las fases de
“Diseño del Sistema”, “Construcción y Pruebas Unitarias” y “Pruebas del Sistema
y Certificación de Calidad”.
(*)
(*)
Página: 2
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Capa de presentación.
Capa de aplicación o de negocio.
Capa de datos.
Capa de Datos: La capa de datos se utiliza para gestionar y almacenar los datos que
utilizará la aplicación Web.
CONSIDERACIONES DE LA ARQUITECTURA
Las aplicaciones Web deberán diseñarse sobre una arquitectura de tres capas.
Página: 3
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
• La aplicación deberá estar diseñada para que el servidor Web sólo acepte peticiones
desde un servidor proxy, salvo en aquellos entornos en los que no exista proxy.
El servidor Web sólo aceptará peticiones con la dirección IP origen del servidor
proxy. Si recibe peticiones de otra máquina devolverá un mensaje de error apropiado
y generará una traza en el archivo de log.
CONTROL DE ERRORES
Página: 4
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Es muy importante determinar las causas que pueden producir un error, con el fin
de resolver cualquier eventualidad en la aplicación. Como objetivo global se trata de
evitar las finalizaciones inesperadas del programa que puedan comprometer los
controles de seguridad.
Para la interacción con el usuario, se optará entre uno de los siguientes tipos de
mensajes:
Página: 5
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
CONTROL DE EXCEPCIONES
REGISTRO DE EVENTOS
Página: 6
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Las trazas de registro deberán incluir la siguiente información, que vendrá definida en la
“Especificación de Requisitos” de la aplicación:
Fecha y hora.
Servicio, proceso o URL invocada.
Ubicación desde donde se accede.
Identificador de usuario y de sesión.
Parámetros de entrada (nombres de archivos, etc.).
ALMACENAMIENTO DE REGISTROS
Página: 7
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
• Para el caso de aplicaciones desarrolladas por personal del Banco los registros de
eventos deben almacenarse en servidores dedicados para este fin.
• Los datos de los archivos logs deberán ser cifrados antes de su transmisión hacia
cualquier destino, previa validación del mecanismo de cifrado con el personal de
Seguridad de la Información del Banco para proteger la confidencialidad e integridad
de los mismos.
Con el fin de que estén suficientemente protegidos los archivos de traza, se deberá
comprobar que se corresponden con los siguientes permisos asignados:
PRIVACIDAD DE LA INFORMACIÓN
INFORMACIÓN CONFIDENCIAL
1
Proveedores contratados por Banco
Página: 8
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Las aplicaciones que tratan datos de carácter personal necesitan medidas adicionales
para garantizar la privacidad de los datos.
• Se deberá cumplir con las medidas de seguridad que establece la normativa del Banco
y la legislación vigente.
CACHÉ DE DATOS
Para evitar que información confidencial quede almacenada en las máquinas de los
usuarios, las páginas deberán tener activas las siguientes opciones:
CONTROL DE SESIÓN
ASPECTOS GENERALES
Página: 9
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Existen diversos mecanismos para que cliente y servidor HTTP establezcan una sesión,
en la que se mantenga un estado que relacione peticiones de un cliente sobre un mismo
servidor:
- Cookies.
- Campos ocultos en formularios. - URL rewriting.
- Cabeceras HTTP con formato propietario.
- Autorización de usuarios.
o Ser único.
o Ser no predecible (se usará una fuente de aleatoriedad aprobada por
Seguridad de Información).
o Ser resistente a ingeniería inversa. o No incluir información confidencial.
o Ser suficientemente largos para evitar ataques de fuerza bruta.
• Las acciones críticas dentro de una aplicación deberán solicitar una reautenticación.
DETECCIÓN DE ATAQUES
Página: 10
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
La validación de los datos es uno de los aspectos más importantes a la hora de diseñar
una aplicación segura. Cuando se habla de validación de datos, se hace referencia tanto
a la entrada, como al proceso, como a la salida de datos.
Muchas aplicaciones validan los datos en cliente (utilizando por ejemplo Javascript en
clientes web). La validación de cliente favorece el rendimiento y la usabilidad (reduce la
cantidad de tráfico inválido al servidor), pero no introduce ningún beneficio desde el
punto de vista de la seguridad.
• Se procurará que todas las entradas recibidas y salidas emitidas sean tratadas como
datos y no como contenido ejecutable.
Página: 11
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
< <
> >
( (
) )
# #
& &
• Se deberán revisar todas las entradas y salidas de datos de las que haga uso la
aplicación, como pueden ser:
Líneas de comando.
Variables de entorno.
Contenido de archivos.
Cookies.
Cabeceras HTTP.
Datos de formularios HTML.
Mapa de memoria.
Sistema de archivos.
Tecnologías de acceso a bases de datos (OLE DB, ODBC, JDBC,...).
Otros.
Codificación
Página: 12
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Filtrado
CODIFICACIÓN DE LOS DATOS
Mediante la codificación de los datos de salida se consigue que los datos enviados
se traten como datos y no como código ejecutable, evitando de esta forma diversos
ataques, como es el conocido como “cross-site scripting”.
US-ASCII.
Codificación UTF-8.
Codificación UCS-2 Unicode.
Codificación ISO-8859-1.
• Se deberán filtrar tanto los datos de entrada como de salida en busca de código
malicioso que pueda afectar a la seguridad de la aplicación. Existen diversas
estrategias de filtrado que se pueden aplicar sobre los datos.
Página: 13
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Esta es la estrategia más segura de las tres. Las aplicaciones sólo deben
aceptar entradas que son seguras y cumplen con lo esperado por la
aplicación. Se definirá qué datos son válidos, y se rechazará cualquier otro
tipo de dato.
• Cada parámetro debe ser chequeado con un formato estricto que especifique
exactamente qué entradas están permitidas.
DATOS A PREVENIR
Se deberán tener en consideración los siguientes caracteres:
Página: 14
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Además, se deberá tener especial cuidado con los caracteres de control, como por
ejemplo: [NULL] [New Line] [Enter]
1. Datos Obligatorios
2. Longitud
• Se limitará la longitud de los campos al mínimo posible. Todo campo tendrá definido
una longitud máxima de caracteres a aceptar.
Página: 15
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
3. Formato
4. Rango
5. Otros casos
Página: 16
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Todas las salidas, códigos de retorno y de error deberán ser verificados y tratados.
URL’s absolutas.
Direcciones IP.
Path’s de directorios de la aplicación.
Nombres de usuario.
Contraseñas.
A continuación se detallan los motivos por los que evitar cada uno de los puntos
enumerados anteriormente.
Página: 17
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Se deben evitar aquellos comentarios dentro de páginas HTML o scripts de cliente que
puedan contener información privada o sensible.
*SP: nomenclatura utilizada para identificar tanto páginas JSP como ASP.
SEGURIDAD DE ARCHIVOS
• El modo de acceso desde una aplicación web a cualquier archivo se realizará con
los mínimos privilegios necesarios para la tarea prevista.
Página: 18
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
En el caso de que la aplicación requiera de esta funcionalidad, su uso tendrá que ser
autorizado por la Unidad de Seguridad de Información y Prevención del Fraude.
NORMALIZACIÓN DE PATH’S
• Para el acceso a ubicaciones de la aplicación web, se hará uso de las funciones que
provee el lenguaje de programación de normalización de path’s.
• Se eliminará además cualquier tipo de cadenas como "..”, “/", caracteres NULL o
cualquier variante Unicode en las rutas de acceso.
El uso de tags HTML como entrada de datos, además de afectar a la seguridad del
servidor (utilizadas de cierta manera, pueden permitir visualizar código sensible de la
aplicación web), afecta a la seguridad de los usuarios de la aplicación web (ataques de
Cross-Site Scripting). Si se permite entradas de datos HTML, probablemente también
se está permitiendo el uso de tags Javascript, DHTML, JSP, etc.
Los caracteres especiales pueden ser interpretados de diversas formas por cada
aplicación, produciendo un comportamiento inesperado o no previsto. Se conocen
muchos tipos de ataques que aprovechan este tipo de comportamientos (poisoned
NULL, SQL injection,...)
Página: 19
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
El campo “referer” se envía con la petición del cliente, para conocer de dónde obtuvo el
cliente la URI. Aparenta un método conveniente para determinar que el usuario ha
seguido un camino desde la aplicación o ha sido redirigido a través de un dominio de
confianza, pero el campo “referer” es implementado por el navegador, y por lo tanto es
modificable por el usuario.
USO DE POST
Los formularios HTML pueden ser enviados mediante la utilización de dos métodos: GET
o POST.
Otro problema adicional, y quizás más importante al uso de GET es, que la información
enviada se almacena en diferentes sitios, y por lo tanto es visible por terceros:
El método POST no envía la información como parte de la URL, sino como un flujo de
datos. La información no es almacenada en los registros de los sistemas por los que
pasa la petición (servidores web, de aplicaciones, proxies), y por lo tanto no es visible
por terceros.
OPCIÓN MULTILINGÜE
• Se tendrá especial cuidado con el soporte de los idiomas, sobre todo mediante una
validación de datos especialmente restringida.
La utilización de diferentes conjuntos de caracteres implica que una cadena lógica puede
tener múltiples representaciones, y dificulta sobremanera la validación de datos. Se han
Página: 20
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
COMANDOS DE SISTEMA
AUTENTICACIÓN
Basada en Formularios.
Basada en Certificados Digitales (en este caso deberá pasar por la revisión
previa del personal de Seguridad de la Información)
Página: 21
Seguridad de la Información y Normativa de Desarrollo Seguro de
Prevención del Fraude Aplicaciones Web
Las peticiones GET son visibles en el historial de navegación, por lo que es posible su
visualización por cualquier persona que tenga acceso al equipo.
Se deberá prestar atención con el completado automático de los campos del formulario.
• Se optará por el protocolo HTTP 1.1 siempre que no afecte al acceso de los clientes.
Página: 22