Pruebas de Seguridad

Pruebas de Seguridad
 
-A +A

Las actividades que se pueden realizar para hacer las pruebas de seguridad son diversas y se orientan a varios ámbitos, especialmente en lo relativo a asegurar el funcionamiento y disponibilidad de los servicios web y contenidos publicados. En general nos referimos a Sitios Web cuyo contenido es público y que no incluye información estratégica o de seguridad instucional, por este motivo, la correcta configuración de servidores y servicios debe incluir verificación de al menos los siguientes temas:

A continuación se entrega información para cada uno de ellos.

Manejo de DNS

Un aspecto que se debe cuidar es el de utilizar un nombre de dominio adecuado y relacionado con la identidad y misión de la institución. No obstante, gracias a la forma de operación del Domain Name Service (DNS o Servicio de Nombre de Dominio) es posible asignar más de un nombre de dominio a un mismo Sitio Web. De esta manera es posible incorporar otras denominaciones, bajo el dominio .CL u otro, que permitan generar alias adicionales para el sitio y así permitir utilizar las denominaciones más coloquiales con la cual la institución es conocida por los ciudadanos.

No obstante, sin importar cuántos alias tenga un sitio, se recomienda que todos los dominios sean redirigidos para que la primera pantalla, en cualquier caso, corresponda a la portada oficial del Sitio Web y que el cada uno de los dominios sea configurado para que responda usando o no la nomenclarura "www".

Ejemplo: si el dominio primario es www.misitio.gob.cl, se pueden configurar ALIAS como misitio.gov.cl; www.misitio.gov.cl; misitio.cl; y www.misitio.cl, en todos estos casos, el dominio debe apuntar y responder siempre redirigiendo al usuario al dominio primario (www.misitio.gob.cl).

Recuerde que sobre los nombres de dominio existe una normativa obligatoria definida en el Oficio No. 485, del 10 de noviembre de 2000, en relación con el Decreto Supremo No. 5996, donde se especifica claramente que los sitios del Estado deben registrar su dominio bajo la denominación .GOB.CL y .GOV.CL. Adicionalmente pueden hacerlo bajo el dominio .CL en forma directa. Dicha operación, en cuanto a procedimientos y alcance, está definida en su totalidad en el sitio http://nic.gob.cl y mayores referencias se pueden encontrar en http://nic.gob.cl/reglinscr.html.

Protección de la Estructura Interna del Sitio Web

Uno de los mecanismos que permite proteger la estructura interna del sitio (especialmente para casos de intentos de ataques externos y/o intentos de violación de confidencialidad), es disminuir la cantidad de información contenida en las URL que se muestran en el programa visualizador. Esto es importante respecto de directorios y nombres de programas, pero especialmente en lo que se refiere a la entrega de parámetros de sesión, datos de usuario u otro mecanismo de transferencia de información entre páginas y/o secciones de código.

Se recomienda que los mecanismos de traspaso de información entre páginas sea a nivel de objetos del servidor, asociados a la sesión, sin que la interacción con el lado cliente deba hacerse responsable de la transferencia de datos y/o información entre sesiones de ejecución del servidor.

De igual forma, se recomienda evitar que el acceso a elementos del servidor web esté asociado a direccionamientos relativos por sesión o asociados al UserId o SessionId; esto se debe a que mediante simples pasos se puede conocer token de sesión y gracias a eso simular que es el mismo usuario que regresa al sitio. Para evitar el problema se recomienda incorporar protecciones de dirección relativas a la Dirección IP de origen.

Otro método de protección de estructura interna consiste en deshabilitar (excepto para casos excepcionales, como repositorios públicos de archivos) la navegación sobre directorios mediante el servidor web. Esta protección se hace para todos los directorios desde la configuración del software del servidor web. Otra forma de hacerlo consiste en incorporar un archivo por omisión del servidor web en todos los directorios, aun cuando no sea directamente referenciado por otras páginas para que se muestre su contenido cuando un usuario intente revisar el contenido existente en el directorio. En el caso de habilitar la navegación sobre directorios, se debe evitar el acceso a ciertos directorios protegidos.

Junto con estas protecciones de lectura, se recomienda realizar periódicamente una revisión de los esquemas de permisos otorgados a directorios y archivos. Las permanentes actualizaciones del software de un servidor web, generalmente provocan un problema de control del acceso a nivel de archivos, lo cual requiere procedimientos claros de supervisión.

Protección Contra Robots

No todos los directorios del sitio deben estar disponibles para que los robots de búsqueda (conocidos más popularmente como arañas o spiders de los buscadores) entren en ellos. Para impedirlo, se debe utilizar el archivo robots.txt o las instrucciones específicas en los meta-tags de la página de inicio, para impedir su ingreso.

El archivo robots.txt es un archivo de texto plano (no de HTML) ubicado en directorios el servidor web que contiene instrucciones precisas respecto de qué hacer en ellos. Cada vez que un robot visita un sitio, primero revisa si existe ese archivo.

Si no lo encuentra, indexa la página en el sistema buscador que lo haya enviado; si lo encuentra, analiza su contenido buscando la siguiente información:

User-agent: * disallow: /

La primera línea User-agent indica que es válida para todos los robots que lleguen (porque tiene un asterisco; puede restringirse a un robot, indicando su nombre), mientras que la segunda indica con disallow que no está permitido avanzar por los enlaces de la página ya que / hace referencia a la raíz del sitio.

En otro caso, si se quiere evitar el acceso de todos los robots a un directorio determinado (por ejemplo cgi-bin, donde están los archivos más sensibles), se puede indicar esa información de la siguiente manera:

User-agent: * disallow: /cgi-bin/

Adicionalmente se puede usar el commando allow que permite incluir directorios específicos, gracias a lo cual ciertos contenidos sí son indexados. Por ejemplo:

User-agent: * disallow: /imagenes/ allow: /imagenes/logotipo-institucion.jpg

En este caso la segunda línea indica con disallow que no está permitido ingresar al directorio de imagenes, pero que sí se puede indexar un archivo específico, que corresponde al Logotipo institucional.

Otra forma de impedir el acceso de un robot es poniendo marcadores específicos en los meta-tags de las páginas. No obstante, este mecanismo no es soportado por todos los robots, por lo que su alcance es más limitado.

La forma precisa de incluir dicho meta-tag es la siguiente:

<html> <head> <meta name="robots" content="noindex,nofollow"> <meta name="description" content="Este sitio...."> <title>...</title> </head> <body>

Más información en:

Las cuatro posibles combinaciones de este meta-tag son las siguientes:

<meta name="robots" content="index,follow">
Indica que la página puede ser indexada y sus enlaces seguidos
<meta name="robots" content="index,nofollow">
Indica que la página puede ser indexada, pero sus enlaces no pueden ser seguidos
<meta name="robots" content="noindex,follow">
Indica que la página no puede ser indexada, pero sus enlaces pueden ser seguidos
<meta name="robots" content="noindex,nofollow">
Indica que la página no puede ser indexada ni sus enlaces seguidos

Manejo de Privacidad

Mantener la privacidad de los usuarios debe ser un objetivo permanente del sitio. Para ello se requiere de contar con una Política de Privacidad formal y explícita en el sitio y, además, deben existir mecanismos de seguridad concretos para proteger los datos de sus usuarios.

Entre estos, se debe contar con protecciones físicas y lógicas sobre dicha información.

En el caso de disponer de arquitecturas multicapas reales, se recomienda proteger la información de clientes en servidores físicos distintos de almacenamiento de datos, incluyendo interfaces idealmente separadas de consulta de datos. Además, incorporar mecanismos de encriptación de los datos para información sensible.

Se recomienda que la información, si es almacenada para efectos de que los usuarios la recuperen desde el Sitio Web, sea encriptada con claves administradas por ellos mismos (por ejemplo, su clave de autenticación (identificación) frente al sitio).

Una decisión de arquitectura que disminuye el riesgo de robo de información de clientes o cuentas de acceso, consiste en evitar que desde la Base de Datos sea posible generar parejas UserId/Clave que permitan autenticarse frente al sitio. La forma de hacerlo es incorporar mecanismos que almacenen un valor de índice de la clave en la Base de Datos, en vez de almacenar la clave propiamente tal. Gracias a esto, cuando un cliente se autentica frente al sitio, la comparación de claves se realiza sobre los valores de índice y se evita conocer directamente esa información.

Es importante destacar además que un buen diseño de los mecanismos de autenticación junto con mecanismos de auditoría, almacenamiento y recuperación posterior, son adecuados para la implementación de la Firma Electrónica Simple, requisito definido como suficiente para múltiples interacciones del Estado, de acuerdo con la Ley 19.799 y su reglamento (analizar recomendaciones asociadas al Uso del Documento y Firma Electrónica al interior del Sector Público [PDF; 127Kb]).

Finalmente, se recomienda un control particular de todos los procesos de respaldo, recargas, manejo de medios removibles y generación de copias de información, por ser mecanismos internos de fugas o compromiso de confidencialidad de la información.

Canales Seguros

Es importante incorporar mecanismos de encriptación del canal de comunicaciones (como el protocolo Secure Socket Layer o SSL), para la transferencia de información privada entre los usuarios y el Sitio Web, a través de la red Internet. Hacerlo no requiere de programación adicional a las funcionalidades de interacción, y asegura la protección de toda la información intercambiada entre el servidor y los usuarios.

Desde un punto de vista de desempeño, si bien el inicio (hand shaking) del proceso de establecimiento del canal SSL puede significar un pequeño retardo en la conexión inicial, posteriormente no provoca un aumento significativo del ancho de banda utilizado en la conexión, ni tampoco obliga a un aumento significativo de recursos del servidor.

Es importante considerar que la seguridad asignada a un Sitio Web debe ser correspondiente con la inversión y la importancia de los datos almacenados, siendo estas capacidades obligatorias para el caso de los sitios transaccionales.

Mecanismos de Control de Acceso

Otro aspecto que genera mejoras en la protección de la privacidad de los usuarios y de la información contenida en el Sitio Web, es la incorporación de mecanismos modernos de generación de claves y autenticación, como los que se plantean a continuación.

Firma Electrónica Simple y Avanzada:
es un sistema que identifica al usuario cuando realiza trámites a través de Internet o redes cerradas. Existe una ley y el correspondiente reglamento que la regula y empresas que las ofrecen en el mercado (más información en http://www.entidadacreditadora.cl). Ambas firmas constituyen las bases legales para que ciudadanos y empresas puedan identificarse virtualmente y de esa manera enviar comunicación y hacer negocios de manera más segura y confiable. Se trata de un mecanismo de complejidad media, aunque incluye funcionalidades de seguridad y criptografía. No obstante, la incorporación de este mecanismo en forma única dependerá del control absoluto que se tenga de la comunidad de usuarios de la solución. Para comunidades abiertas es preferible establecer dos mecanismos de autenticación: uno fuerte, mediante Firma Electrónica (usando certificados digitales) y otro, mediante autenticación de Usuario y Clave. Por otro lado, la Firma Electrónica Simple podría ser usada para las comunicaciones oficiales enviadas por la institución a sus usuarios. El uso de la Firma Electrónica debe definirse al momento de determinar la arquitectura de solución del Sitio Web.
Autenticación con par Usuario y Clave:
si se emplea esta solución, debe existir un procedimiento concreto para los casos en que un usuario pierda o no recuerde su clave. Se recomienda ofrecer mecanismos deregeneración de clave, mediante la entrega de respuestas a preguntas predefinidas por los usuarios, en lugar de hacer el envío de la clave por e-mail . En el caso de contar con mecanismos de Ayuda, se debe ofrecer apoyo para la regeneración de las claves, sin que el personal de la institución tenga acceso a la información de seguridad del cliente. Se debe evitar el uso de mecanismos de autenticación administrados por terceros, en caso de que puedan comprometer la confidencialidad o la suplantación del usuario.
Sistemas de Hardware para Autentificación:
para sistemas de seguridad que requieren una autenticación absoluta del usuario, es preferible considerar mecanismos de autenticación fuerte. Para ello, se deben incorporar mecanismos que incluyan elementos de hardware que deben estar en posición del usuario, tales como tarjetas u otros similares (security token) que permiten el acceso a las áreas de autenticación. Allí el usuario debe ingresar su identificación de Usuario (security challenge response) y se le genera una clave de sesión que al ser digitada en pantalla, le permite acceder al sistema. Dicha clave cambia frecuentemente para aumentar la seguridad de acceso.

Protección de Programas

Es fundamental proteger los códigos y programas internos del servidor web, particularmente evitando la transferencia de parámetros o información a través de la dirección de acceso a las páginas (por ejemplo, al usar el método GET para la entrega de parámetros), los cuales son mecanismos frecuentes de hackeo o robo de información.

De igual forma, se debe evitar la lectura de ejecutables desde los directorios del servidor, controlando los permisos adecuados de acceso a éstos, con el fin de evitar desensamblaje y/o ingeniería reversa para analizar accesos internos.

En cuanto a los scripts ubicados en el lado del cliente, en caso de ser críticos, se recomienda utilizar compactadores de código y eliminar documentación de apoyo que permita su fácil comprensión a partir de la lectura del código.

Es importante que estas medidas sean incluidas junto a las acciones de seguridad informática normales de la institución.

Hosting Externo vs. Sitio Propio

Sin entrar en profundidad en cuanto al detalle de los elementos a considerar para esta decisión, la principal recomendación es hacer una evaluación objetiva basada en los siguientes aspectos:

  • Evaluar las reales capacidades disponibles para la operación permanente del sitio, desde un punto de vista técnico.
  • Evaluar los requerimientos de control y seguridad necesarios.
  • Evaluar el nivel de soporte efectivo que el personal técnico del servicio puede realizar sobre los servidores.

Con estos parámetros se debe definir la mejor opción, no sólo desde el punto de vista del interés de las áreas técnicas, sino que mediante una evaluación de impacto global de la decisión asociada.

La amplia oferta disponible permite realizar combinaciones de servicios e infraestructura de muy diversos tipos, lo cual facilita configurar una solución óptima en términos del costobeneficio asociado (por ejemplo, hosting compartido, dedicado, collocation, housing, red administrada, monitoreo de seguridad, administración de seguridad perimetral, control de aplicaciones, fulfillment, etc.).

En caso de que se decida externalizar esta área, es importante contar con altos estándares de parte del proveedor en todo lo referido a tiempo de desempeño (uptime), respaldos y recuperación, actualizaciones de software, etc.

Roles Mínimos a Asegurar

Un último aspecto considerado en esta área de recomendaciones, consiste en definir los diversos roles profesionales dentro de la definición y diseño de un Sitio Web para una institución.

Desde un punto de vista exclusivamente técnico, es fundamental considerar al menos los siguientes roles, identificando tanto sus responsabilidades como el personal más competente que pueda cumplirlos.

Si bien más de uno de estos roles funcionales puede ser desarrollado simultáneamente por una persona o área de la organización, es importante que dichas áreas sean cubiertas no sólo durante la puesta en marcha de la solución sino también durante su etapa de producción.

Arquitecto:
encargado de hacer las configuraciones de trabajo de los servidores y aplicaciones.
Administrador de Aplicaciones:
encargado del funcionamiento del software operativo.
Administrador de Control de Calidad:
encargado del cumplimiento de las políticas de calidad.
Administrador de Seguridad:
encargado de hacer generar y hacer cumplir las directivas de seguridad.
Administrador de Operaciones:
encargado de los aspectos operativos relacionados con el hardware.
Administrador de Contenidos:
encargado de las informaciones contenidas en el Sitio Web.
Administrador de HelpDesk y Soporte:
encargado de dar soporte a usuarios sobre las funcionalidades del Sitio Web.
Administrador de Contingencias:
encargado de enfrentar en primera línea los problemas que se generen en la operación.
Auditor / Contralor:
encargado de llevar registro de las operaciones realizadas, con el fin de apoyar la revisión de procedimientos.

Finalmente, aunque los roles del área Informática pueden estar muy claros, es necesario que se entienda que la operación del Sitio Web es una tarea conjunta en la que participan funcionarios de diversas áreas de la institución.