viernes 21 de diciembre de 2007

Foundations of Security

Foundations of Security


La seguridad en el desarrollo del software es un aspecto tan importante como, por desgracia, obviado habitualmente durante dicho proceso. Sin embargo, se trata de una de las consideraciones que no debería dejar de lado ningún programador, máxime cuando trabaje en aplicaciones web que deban permanecer accesibles para un gran número de usuarios, como es el caso de aplicaciones desarrolladas para estar al alcance de cualquiera, vía Internet.


Por ello, desde hace algunos años, los autores del libro imparten en la Universidad de Oregón un curso en su escuela de verano sobre los aspectos a tener en cuenta durante el proceso de desarrollo del software, y de las conclusiones extraídas que de dichos encuentros han extraído, hacen recuento en este libro. Estamos ante un libro de iniciación a la seguridad en la programación, por lo que muchos de sus conceptos serán ampliamente conocidos por aquellas personas que tengan algunas inquietudes sobre estos temas, pero no deja de ser un buen recordatorio para todos acerca de la importancia de escribir código seguro, así como un buen punto de arranque para aquellos desarrolladores que aún no se hayan iniciado en este apasionante mundo de la seguridad, las vulnerabilidades y la criptografía.

Navegar sin publicidad

El archivo hosts es un fichero de texto que contiene la resolución a IP de las direcciones de equipos (servidores, webs, etc.) a las que tenemos acceso a través de la red o Internet. La necesidad de un archivo con estas características surgió hace tiempo, cuando existían aún pocos dominios en Internet, y el archivo era actualizado con cierta frecuencia.


La ubicación del mismo cambia según el sistema operativo que estemos utilizando, por lo que a continuación detallamos su localización en algunos de los S.O. más usados:




  • Windows 95/98/Me: C:\Windows\Hosts

  • Windows NT/2000: C:\WINNT\System32\drivers\etc

  • Windows XP/2003/Vista: C:\WINDOWS\system32\drivers\etc

  • Unix/Linux/MacOS (en general): /etc/hosts


Actualmente, la navegación por Internet y el acceso a servidores en redes locales e Intranets se realiza a través de servidores de dominio, que mantienen actualizada esta información, por lo que realmente el archivo hosts es una reminiscencia de otros tiempos. Sin embargo, su utilidad sigue vigente, ya que el sistema operativo consulta si existe una entrada para un determinado dominio en el archivo hosts, si no es así, se dirige a su caché, y por último realiza la consulta al servidor de DNS. Así, puede resultar útil introducir determinadas direcciones en este archivo (por ejemplo, páginas que visitemos frecuentemente, que serán cargadas unos milisegundos antes) o, por ejemplo, direcciones de servidores de nuestra red local (imaginemos, por ejemplo: www.UrlDeNuestraEmpresa.com), que serían accedidas a través de Internet, y a las que obtendremos un acceso más rápido dirigiendo la búsqueda a la IP local del propio servidor. La entrada sería del tipo:


IP [espacio(s) en blanco] URL

Por ejemplo, en nuestro caso:

192.168.0.1 www.UrlDeNuestraEmpresa.com

Además de todo esto, el archivo hosts puede resultar un gran aliado a la hora de navegar más rápido, obviando la ingente cantidad de publicidad que es descargada a nuestro ordenador mientras navegamos y que, por tanto, consume ancho de banda y tiempo de descarga. Además, en los últimos tiempos la publicidad no es sólo eso, sino que también se convierte en un espía de nuestros hábitos, ya que hay empresas dedicadas a estudiar cómo y dónde navegamos, qué compramos o sobre qué enlaces pulsamos con mayor frecuencia, recabando dicha información para venderla posteriormente a otras empresas. Para evitar esa publicidad simplemente hay que “engañar” a la página que estamos visitando, indicándole que la publicidad que busca no está en el servidor xxx.xxx.xxx.xxx, sino en nuestro propio equipo (para no consumir así ancho de banda alguno). Para evitar ambigüedades, y que además el archivo hosts-anti-publicidad sirva para todos los equipos de nuestra organización (o simplemente, para que funcione aunque tengamos una IP dinámica por uso de DHCP o, sencillamente, que la podamos cambiar en algún momento), redirigiremos esas direcciones a la IP 127.0.0.1, que es la dirección estándar en el protocolo TCP/IP para el equipo local (localhost). Así, simplemente bastaría con ir agregando líneas al archivo hosts como las que siguen:


127.0.0.1 clicks.firstname.com
127.0.0.1 w1.extreme-dm.com
127.0.0.1 w0.extreme-dm.com
127.0.0.1 banners3.spacash.com
127.0.0.1 promos2.adlead.com

También pueden agregarse varias direcciones en una misma línea, para asignarlas a la misma IP, simplemente separándolas mediante tabuladores o espacios en blanco:


127.0.0.1 w1.extreme-dm.com w0.extreme-dm.com

Este método es especialmente útil para dominios dedicados a la publicidad (como Doubleclick, por ejemplo). Sin embargo, hay que tener en cuenta que estamos redirigiendo un dominio a otra IP, por lo que si no se trata de un servidor específico (publi.ms.com, por ejemplo), sino de todo el dominio en sí (www.ms.com), no tendremos acceso a ninguna página del mismo.


Y ahora, a navegar más rápido y seguro.