¡¡Compartenos!!

martes, 4 de septiembre de 2012

Normas y conceptos para hacer aplicaciones web seguras.


Normas y conceptos para hacer aplicaciones web seguras.
Es importantisimo crear aplicaciones web con, por lo menos, un nivel mínimo de seguridad. En este sentido Hispasec.com nos ofrece muchas ayudas, como es el caso de esta noticia.

Se publica una guía de referencia para facilitar el desarrollo de aplicaciones web teniendo en cuenta, desde el mismo momento en que se realiza el diseño de las mismas.

En los últimos meses estamos asistiendo a un considerable movimiento alrededor de las aplicaciones y los servicios web. Casi todos los fabricantes de software están orientando sus plataformas de desarrollo de aplicaciones para que se integren y utilicen las posibilidades de la web.

Entendemos por aplicaciones web a todo aquél software que interacciona con el usuario utilizando el protocolo HTTP. Por su parte, los servicios web son un conjunto de funciones empaquetadas dentro de una entidad única y publicadas dentro de la red para que puedan ser utilizadas por las aplicaciones web.



Normas básicas de seguridad

El proyecto OWASP (Open Web Application Security Project) tiene como objetivo ofrecer una metodología, de libre acceso y utilización, que pueda ser utilizada como material de referencia por parte de los arquitectos de software, desarrolladores, fabricantes y profesionales de la seguridad involucrados en el diseño, desarrollo, despliegue y verificación de la seguridad de las aplicaciones y servicios web.

La guía empieza estableciendo los principios básicos de seguridad que cualquier aplicación o servicio web debe cumplir:

* Validación de la entrada y salida de información La entrada y salida de información es el principal mecanismo que dispone un atacante para enviar o recibir código malicioso contra el sistema. Por tanto, siempre debe verificarse que cualquier dato entrante o saliente es apropiado y en el formato que se espera. Las características de estos datos deben estar predefinidas y debe verificarse en todas las ocasiones.

* Diseños simples Los mecanismos de seguridad deben diseñarse para que sean los más sencillos posibles, huyendo de sofisticaciones que compliquen excesivamente la vida a los usuarios. Si los pasos necesarios para proteger de forma adecuada una función o modulo son muy complejos, la probabilidad de que estos pasos no se ejecuten de forma adecuada es muy elevada.

* Utilización y reutilización de componentes de confianza Debe evitarse reinventar la rueda constantemente. Por tanto, cuando exista un componente que resuelva un problema de forma correcta, lo más inteligente es utilizarlo.

* Defensa en profundidad Nunca confiar en que un componente realizará su función de forma permanente y ante cualquier situación. Hemos de disponer de los mecanismos de seguridad suficientes para que cuando un componente del sistema fallen ante un determinado evento, otros sean capaces de detectarlo.

* Tan seguros como en eslabón más débil La frase "garantizamos la seguridad, ya que se utiliza SSL" es realmente muy popular, pero también es muy inexacta. La utilización de SSL garantiza que el tráfico en tránsito entre el servidor y el cliente se encuentra cifrado, pero no garantiza nada acerca de los mecanismos de seguridad existentes.

Por tanto, no debemos fiarnos únicamente de los mecanismos de seguridad "exteriores", sino que es preciso identificar cuales son los puntos precisos en los que deben establecerse las medidas de seguridad. Si nosotros no hacemos este trabajo, seguro que los atacantes si lo harán.

* La "seguridad gracias al desconocimiento" no funciona El simple hecho de ocultar algo no impide que, a medio o largo plazo, llegue a ser descubierto. Tampoco es ninguna garantía de que tampoco será descubierto a corto plazo.

* Verificación de privilegios. Los sistemas deben diseñarse para que funcionen con los menos privilegios posibles. Igualmente, es importante que los procesos únicamente dispongan de los privilegios necesarios para desarrollar su función, de forma que queden compartimentados.

* Ofrecer la mínima información Ante una situación de error o una validación negativa, los mecanismos de seguridad deben diseñarse para que faciliten la mínima información posible. De la misma forma, estos mecanismos deben estar diseñados para que una vez denegada una operación, cualquier operación posterior sea igualmente denegada.

Otros aspectos tratados en la guía son: consideraciones de arquitectura, mecanismos de autenticación, gestión de sesiones de usuario, control de acceso, registro de actividad, prevención de problemas comunes, consideraciones de privacidad y criptografía.

Más información

A Guide to Building Secure Web Applications
http://www.owasp.org/guide/

The Open Web Application Security Project
http://www.owasp.org/

A Guide to Building Secure Web Applications
http://developers.slashdot.org/article.pl?sid=02/09/25/1317210

Programming PHP with Security in Mind
http://www.linuxjournal.com/article.php?sid=6061

Secure Programming for Linux and Unix HOWTO
http://www.dwheeler.com/secure-programs/

SPSMM - Estándard de programación segura
http://www.isecom.org/projects/spsmm-es.htm

una-al-dia (30/09/2001) Curso de seguridad para desarrolladores y webmasters
http://www.hispasec.com/unaaldia.asp?id=1071

No hay comentarios:

Publicar un comentario