Você está na página 1de 10

Banco de Previsin Social

Asesora en Informtica y Tecnologa (ASIT)

ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 2007-05-16

Documento de

Circular de Tecnologa Pautas de seguridad para el desarrollo de aplicaciones Web

Versin 01

ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 1 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)

ndice del Contenido


1. 2. 3. 4. 5. 6. 6.1. 6.2. 7. 7.1. 8. 9. Abstract _________________________________________________________ 3 Objeto __________________________________________________________ 3 Alcance _________________________________________________________ 3 Antecedentes ____________________________________________________ 3 Justificacin______________________________________________________ 4 Aspectos generales de seguridad en los desarrollos Web __________________ 4 Vulnerabilidades de las aplicaciones Web_____________________________ 4 Proteccin ante estas vulnerabilidades _______________________________ 6 Recomendaciones de seguridad ______________________________________ 8 Buenas prcticas para garantizar la seguridad en las aplicaciones Web _____ 9 Vigencia _______________________________________________________ 10 Referencias Generales:____________________________________________ 10

ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 2 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)

1. Abstract
Cuando las aplicaciones se exponen a travs de Internet, es necesario considerar especialmente la seguridad programada dentro de las mismas. Los elementos de seguridad que pueden considerarse en otros puntos, no siempre son suficientes si el problema est en el cdigo de las aplicaciones. En este documento se presentan recomendaciones generales y se describen pautas para el desarrollo de aplicaciones Web seguras. Las mismas se extendern y profundizarn en otros documentos sub-siguientes. Estas pautas debern ser implementadas por los servicios y proveedores de desarrollo, tanto en sus prcticas de desarrollo como en los mecanismos de control de calidad a travs de los procedimientos de testing (entre otros).

2. Objeto
Definir buenas prcticas y recomendaciones generales para garantizar la seguridad en las aplicaciones Web.

3. Alcance
Esta Circular de Tecnologa comprende el desarrollo de todas las aplicaciones que se ofrecen a travs de la Web.

4. Antecedentes
Para brindar servicios a travs de la Web son necesarios una gran variedad de elementos entre los que se mencionan por ejemplo, el lugar fsico donde reside el equipamiento, la conectividad con Internet, los servidores, computadoras, terminales para operar en la Web y software de base, adems de las aplicaciones. Todos estos elementos son susceptibles de ataques. Un plan de seguridad exitoso debera incluirlos a todos. Cuando las aplicaciones se exponen a posibles ataques a travs de Internet, es necesario considerar especialmente la seguridad programada dentro de las mismas. Los elementos de seguridad que pueden considerarse en los dems puntos, no siempre son suficientes si el problema est en el cdigo de las aplicaciones. En otros documentos, la ASIT ha planteado recomendaciones de seguridad en aplicaciones Web, pero apuntando a la robustez de los sistemas, y concentrando la atencin en aspectos de infraestructura y tecnologas. Asimismo se han presentado pautas de seguridad en el uso de Web Services (Perfiles de seguridad para Web Services Interoperables).
ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 3 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)

Este documento es complementario a los anteriormente referenciados, extiende las recomendaciones generales y se concentra en pautas para el desarrollo de aplicaciones Web seguras.

5. Justificacin
Histricamente los desarrolladores de aplicaciones han trabajado en ambientes considerados seguros, en sistemas que solamente utilizaban las redes internas de una organizacin. La seguridad de las aplicaciones Web est expuesta a vulnerabilidades relativamente comunes y que pueden ser explotadas por atacantes no experimentados con herramientas que estn fcilmente disponibles. Cuando se desarrolla una aplicacin Web, se invita al mundo a que le enve solicitudes HTTP. Los ataques camuflados en estas solicitudes superan los firewalls, filtros, SSL y otras barreras porque estn dentro de las solicitudes legales de HTTP. Por este motivo, el cdigo de las aplicaciones Web forma parte del permetro de seguridad y no puede ser ignorado.

6. Aspectos generales de seguridad en los desarrollos Web


El tema de la seguridad debe ser considerado desde las primeras etapas del proyecto. Desde el diseo hasta la propia implementacin, es necesario considerar cuales son los aspectos clave de seguridad. Es importante recordar la relevancia de la identificacin de riesgos y de la valuacin de los mismos. Dentro de las especificaciones de los planes de prueba para una aplicacin se debera incluir el tema de la seguridad, definiendo como objetivo probar que el sistema sea inmune a determinada clase de ataques, en forma similar a lo que luego de instalado, se considerara un test de penetracin. Considerar la seguridad de los datos privados de terceros que manejan las aplicaciones, de forma de evitar contingencias legales. La infraestructura a nivel de seguridad debera seguir razonablemente el concepto de mltiples capas, contando con diferentes niveles de proteccin en cada zona.

6.1. Vulnerabilidades

de las aplicaciones Web


N. PG: 4 / 10 VERSIN DEL: 20/11/2009 11:01 hs
Fecha: 1997-07-09

ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)
En esta seccin se incluyen algunas de las vulnerabilidades que presentan ms frecuentemente las aplicaciones Web. Esta lista no es exhaustiva ni siquiera definitiva, las vulnerabilidades irn cambiando a medida que evolucione la tecnologa por lo que es recomendable, cada vez que comience un nuevo desarrollo o durante el mantenimiento de una aplicacin, evaluar la probabilidad de que stas u otras vulnerabilidades sean explotadas por posibles amenazas y en consecuencia, tratar de asegurar las aplicaciones. 1. Cross Site Scripting (XSS): Esta vulnerabilidad posibilita un tipo de ataque en el cual la informacin ingresada en un rea es insertada sin validar o codificar, en otra rea de confianza, lo que puede resultar en un ataque usando credenciales confiables. Una falla de XSS permite que la aplicacin Web pueda ser utilizada como un mecanismo para transportar un ataque al navegador del usuario final. Un ataque exitoso puede obtener datos de la sesin del usuario, atacar la mquina local o engaar al usuario final mostrando contenido falso 2. Inyeccin de cdigo ( SQL Injection): En particular la inyeccin en el SQL es la ms comn: ocurre cuando datos ingresados por un usuario se envan a un intrprete como parte de un comando o query. Los datos ingresados por un atacante engaan al intrprete para ejecutar comandos en forma involuntaria. Los ataques de este tipo permitiran a un atacante utilizar la aplicacin Web como transmisor de cdigo malicioso 3. Referencia insegura a un objeto: Esta vulnerabilidad ocurre cuando un desarrollador expone una referencia a un objeto de implementacin interna, tal como un archivo, directorio, registros de una base de datos o claves, como parmetro URL o de un form. Por ejemplo, una aplicacin presenta al usuario una opcin (referencia interna a un objeto) a la que no debiera tener acceso. A menos que el control de acceso se realice en ese punto, un atacante podra manipular esa referencia para acceder a otros objetos sin autorizacin. 4. Fuga de informacin y manejo inadecuado de errores: El manejo inadecuado de los errores que ocurren durante la operacin de la aplicacin, puede resultar en un ataque a la misma. Se puede llegar a divulgar informacin que puede ser utilizada ms tarde por un atacante, para explotar una vulnerabilidad. Si un agresor puede provocar que ocurran errores que la aplicacin web no maneja, puede llegar a obtener informacin detallada del sistema, denegar servicios, provocar que fallen mecanismos de seguridad o hacer caer el servidor. 5. Brechas en la gestin de autenticacin y de sesiones:
ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 5 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)
Otra de las vulnerabilidades ms frecuentes consiste en quebrar el sistema de autenticacin o la gestin de sesiones, lo que supone que posibles agresores pueden comprometer contraseas, claves, cookies de sesin y otros tokens y asumir la identidad de otro usuario. La gestin de la autenticacin y el manejo de sesiones son crticos en la seguridad de una aplicacin Web 6. Almacenamiento criptogrfico inseguro: Las aplicaciones Web frecuentemente utilizan funciones de criptografa para proteger informacin sensible y credenciales. Si para implementar estas funciones se realiza una seleccin incorrecta de los algoritmos, o los mismos no estn correctamente codificados, se redunda en una proteccin dbil. Lo mismo ocurre si se trabaja en ambientes desprotegidos: DBMS, File System, memoria. 7. Comunicaciones inseguras: Las aplicaciones frecuentemente fallan al encriptar trfico de red cuando es necesario proteger comunicaciones sensibles. La encriptacin (generalmente SSL) debe usarse para todas las conexiones autenticadas, especialmente las pginas Web accesibles desde Internet, pero tambin las conexiones con el backend. Una falla en el modo de encriptacin o la divulgacin del mismo expone a la aplicacin a un posible ataque. 8. Ocultamiento de URL restringidas: Es frecuente encontrar en algunos sitios que la seguridad depende del hecho de que el atacante no conoce la direccin URL para tener acceso a ella. Sin embargo, un atacante motivado, hbil o simplemente con suerte puede encontrar el acceso a estas pginas, invocar funciones y ver informacin. La seguridad por medio de la oscuridad no es suficiente para proteger funciones e informacin sensibles en una aplicacin.

6.2.

Proteccin ante estas vulnerabilidades

1. Cross Site Scripting (XSS) o Validar y limpiar los parmetros o entrada de datos o Codificar (encoding) la respuesta del servidor o Limitar el largo de los parmetros 2. Inyeccin de cdigo ( SQL Injection) o Evitar la concatenacin de parmetros o Filtrar y validar la entrada para eliminar caracteres sospechosos o Ejecutar con permisos limitados: servidor de aplicaciones sin permisos de root, DBMS con permisos slo sobre el esquema. 3. Referencia insegura a un objeto
ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 6 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)
o Evitar exponer referencias de objetos privados a los usuarios siempre que sea posible o Validar cualquier referencia de objeto privado extensivamente, con el enfoque de aceptar lo conocido o Verificar la autorizacin a todos los objetos referenciados

4. Fuga de informacin y manejo inadecuado de errores o Asegurar que el equipo de desarrollo comparta un enfoque comn para el manejo de excepciones o Evitar detalles en un mensaje de error, sobretodo informacin tcnica o Volcar los detalles del mensaje de error a un archivo de log o Modificar las pginas de error por defecto. 5. Brechas en la gestin de autenticacin y de sesiones o Evitar una autenticacin pobre de los usuarios. Utilizar un mecanismo de autenticacin simple, con un nmero de factores y fortaleza adecuados o Proteger adecuadamente las contraseas en trnsito (SSL) o Proteger adecuadamente las contraseas guardadas (encripcin o hash) o Utilizar mecanismos de gestin de sesin del proveedor y ningn cookie del lado del cliente o Crear una nueva sesin a partir de la autenticacin exitosa o Asegurar que cada pgina tiene un link al logout y que ste destruye todas las sesiones del lado del servidor y la cookies del lado del cliente o Proteger el identificador de sesin o No enviar datos de autenticacin como parte de un HTTP GET o Implementar correctamente el SSO 6. Almacenamiento criptogrfico inseguro o Garantizar un almacenamiento seguro para la claves de encriptacin, certificados y contraseas relacionadas o Utilizar algoritmos criptogrficos reconocidos y asegurarse de que no existen vulnerabilidades abiertas o No permitir que personal sin experiencia desarrolle algoritmos criptogrficos o Si es posible, almacenar slo el hash del valor en vez del valor o Minimizar el uso de la encriptacin, proteger solo lo necesario. 7. Comunicaciones inseguras o Usar SSL para todas las conexiones autenticadas o que trasmitan informacin de valor o sensible, como credenciales, detalles de tarjetas de crdito, informacin de salud o cualquier otra informacin privada. o Asegurar que las comunicaciones entre los elementos de la infraestructura, tales como aquellas entre servidores web y sistemas de base de datos, estn adecuadamente protegidos a travs del uso de seguridad de la capa de transporte. 8. Ocultamiento de URL restringidas
ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 7 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)
o Asegurar que el cumplimiento de la matriz de accesos sea parte de la arquitectura y diseo de la aplicacin o Asegurar que todas las funciones URL y del negocio estn protegidas por un mecanismo de control de acceso que verifique el rol del usuario y los derechos asignados por encima de cualquier otro proceso que se est desarrollando. o Desarrollar test de penetracin antes del despliegue o liberacin de cdigo, para asegurarse que la aplicacin no pueda ser mal utilizada por un atacante motivado y hbil. o Asegurar que las acciones administrativas y de alto privilegio estn protegidas, no confiar en que los usuarios no estarn en conocimiento de URLs o APIs especiales.

7. Recomendaciones de seguridad
En general las recomendaciones para proteger a las aplicaciones Web de los posibles riesgos, estn basadas en las siguientes recomendaciones generales de seguridad: Defensa en profundidad: donde un control podra ser razonable, varios que combatan los riesgos en diferente forma son mejores. Realizar mltiples validaciones a lo largo de una aplicacin. Privilegios al mnimo: otorgar la menor cantidad de privilegios posible para permitir las acciones legtimas Manejo de errores en forma segura: si una aplicacin falla, todas las operaciones siguientes deberan ser rechazadas Minimizar el rea de ataque: cuanto menos se pueda atacar, mejor. Cada funcionalidad agrega un problema de seguridad en potencia. Utilizar valores por defecto seguros: la operativa normal de una aplicacin debe ser segura. Considerar los sistemas externos inseguros ya que en general, no se tienen detalles de su construccin. Seguridad sin oscuridad: la clave para la seguridad de una aplicacin no debe recaer sobre cmo mantener detalles ocultos. Mantener la seguridad simple: evitar el uso de codificacin o arquitecturas complejas cuando un enfoque ms simple es posible. Mantenerse actualizado: estar informado de dnde y cmo se arreglan los errores conocidos. Separar las responsabilidades

ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 8 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)

7.1.

Buenas prcticas para garantizar la seguridad en las aplicaciones Web

Controlar los datos o parmetros ofrecidos por el usuario: o Evitar publicar informacin suministrada por un usuario sin validarla primero o Evitar que el usuario pueda pasar cadenas SQL que puedan ser ejecutadas directamente en el servidor o Controlar el tamao de todo dato enviado por el cliente antes de guardarlo en una variable o espacio de memoria controlado por la aplicacin Utilizar las aplicaciones para deteccin de intrusos o Determinar cuando un parmetro enviado por un usuario puede ser errneo o cuando necesariamente involucra un intento de intrusin o Cerrar las sesiones y potencialmente, suspender los privilegios del usuario ante un intento de intrusin o Generar como mnimo un registro en el log o una alarma en tiempo real Controlar el flujo de informacin entre el cliente y el sitio o Informacin de autenticacin (secretos del usuario) o Parmetros de aplicaciones, por ejemplo informacin disponible en el GET o datos privados o No utilizar solamente controles de ingreso de datos que se ejecuten en el navegador del cliente o Reducir al mnimo la informacin que es enviada desde el cliente, utilizar en el servidor los datos que ya se conocen de la sesin Informacin existente en la propia pgina o Evitar comentarios en el cdigo de la aplicacin, que puedan generar riesgos como por ejemplo, pruebas anteriores, trozos de scripts comentados, identificacin de los desarrolladores, etc. o Evitar utilizar informacin privada (usuario/password, informacin de conexiones a bases de datos o servidores internos) en el fuente de pginas dinmicas para minimizar el impacto de posibles ataques de tipo source diclosure

ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 9 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Banco de Previsin Social


Asesora en Informtica y Tecnologa (ASIT)

8. Vigencia
A partir de mayo de 2007.

9. Referencias Generales:
Cdigo de buenas prcticas para la gestin de la seguridad de la informacin UNIT-ISO/IEC 17799:2005 Seguridad en aplicaciones web PWC Noviembre 2006 Seguridad en las Aplicaciones Web Ing. Pablo Garbusi - ISACA - 2006 http://www.owasp.org Organizations Should Implement Web Application Security Scanning, 2005 Amrit T. Williams, Neil MacDonald Gartner Group MarketScope for Web Application Security Vulnerability Scanners, 2006 Joseph Feiman, Neil MacDonald Gartner Group

ARCHIVO: ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 CREADO:17/05/2007 9:44:00
Modelo: DCAL-DO1997-02_BPS Emitido por: Dpto. Calidad

N. PG: 10 / 10 VERSIN DEL: 20/11/2009 11:01 hs


Fecha: 1997-07-09

Você também pode gostar