Tuesday, August 31, 2004

Seguridad

Una de los aspectos más importantes de todo desarrollo web es la seguridad que pueden ofrecer, instituciones como bancos o tiendas en línea deben establecer una serie de mecanismos con el fin de salvaguardar la información de los clientes y transacciones que se ejecutan 24x7, pues los chicos malos siempre están al acecho para explotar las vulnerabilidades del software/hardware y hacer de las suyas, ninguna institución está libre de ellos, por eso valen los consejos de los expertos.

Estrategias para diseñar una app segura:



Configuración del servidor
Esto va desde la instalación del sistema operativo hasta los servicios que correrán en él. Dentro de los sistemas operativos para servidor, Windows 2003 es el abanderado, mientras que Linux también se ofrece como alternativa seria ya que está menos expuesto a ataques. El sistema de archivos es también parte importante, NTFS es mucho más seguro que FAT32 además de manejar discos duros de gran capacidad más eficientemente.

Muchas empresas instalan diversos servicios en un mismo equipo: Base de Datos, Correo, servidor de aplicaciones, etc, es conveniente evaluar cuáles pueden convivir y cuáles deben residir en equipos separados, pues la vulnerabilidad de un servicio inevitablemente afectará al otro. Aquí se aplica la frase de que la cadena se rompe por el eslabón más débil.

No dejar instalados servicios BETA en el servidor, es conocido que dichas versiones carecen aún de seguridad eficiente en su diseño y puede ser una puerta abierta para posibles ataques.

Parches
Es necesario instalar las últimas correcciones al software de servidor, no necesariamente todas, pero sí las más urgentes, asegurándose que no afecte otros componentes instalados. Siempre es bueno informarse antes de instalar cualquier parche, se dan casos de parches que abren huecos por otros lados o dañan aplicativos importantes.

Control de Acceso
Las contraseñas deben tener mecanismos de seguridad desde el momento que son creadas, los sistemas pueden aplicar validaciones a fin de que dichas claves presenten un patrón determinado, que incluya números y ¡hasta signos! (%, $, #, etc). Dentro de una app web, se suele almacenar contraseñas en archivos de texto cifrados, pero se recomienda usar una conexión de confianza.

Evitar usuarios con todos los privilegios, si su contraseña se filtra, cualquiera podría hacer mal uso de esta y modificar o dañar información sensible de la empresa. Incluso el usuario puede compartir su clave, y sí suceden estos casos, lo cual hace imperativo restringir los accesos.

Seguimiento
Los logs también juegan una parte importante, pues deben registrar de dónde se conecta cada usuario y quién realiza tal o cual operación, esto permite identificar y hacer seguimiento de operaciones dolosas o sospechosas en el servidor.

Validaciones
Las entradas que el usuario realiza por medio de un formulario web deben pasar por una serie de filtros, ASP.NET posee controles que permite realizar un conjunto de validaciones, cosa que no he visto en PowerBuilder o Java, si alguien conoce que hable ahora o calle para siempre, o hasta que salga eso en dichos lenguajes. Con esto evitamos que un usuario conocedor, ingrese sentencias SQL adrede para modificar datos.

Herramientas de encriptación
La información que viaja a través de la red puede ser fácilmente interceptada, por lo que mecanismos de encriptamiento se hacen necesarios, un ejemplo es el estándar SSL.

Si bien los ataques no se reduciran aplicando todas estrategias, será posible mantener la información segura y nuestros usuarios podrán respirar tranquilos, en caso de desastre informático, una buena política de backups nos salvará del apocalipsis, a pesar de que siempre en un backup falta algo por backupear.


Visitar aquí, un artículo de MS acerca de estrategias de seguridad.

0 Comments:

Post a Comment

<< Home