La sabiduría popular suele ser útil para muchas cosas. Sólo hay que darse una vuelta por el rico refranero español para obtener una gran cantidad de sabios consejos grátis. No obstante el saber popular muchas veces que se confunde con lo que son simplemente mitos y leyendas urbanos, que están alejados de la realidad.
En el mundo de la informática existen multitud de estas leyendas urbanas. Algunas están sustentadas en hechos "históricos" acaecidos al principio de los tiempos que sin embargo perduran hasta nuestros días como si las cosas permaneciesen inmutables. Por ejemplo, hay quien sigue comparando Windows 98 con Linux para decir que éste último es más estable, etc... (claro que no dicen nada del nefasto "98" en cuestión, sólo de "Windows"), o SQL Server 6.5 con Oracle, etc...
Una de estas posibles leyendas urbanas es la de que Apache es mucho más seguro que Internet Information Server.
Todo esto viene a raíz de un artículo aparecido en Computer World el pasado día 7, en el que Roger A. Grimes pone de manifiesto sus dudas a este respecto y muestra muchos datos interesantes.
Por ejemplo, desde el famoso incidente del gusano Code Red en 2001 no ha habido un sólo ataque masivo con éxito a servidores IIS, mientras que todos los días miles de Apaches caen como moscas.
De todos modos no me gustan estas afirmaciones "cualitativas", que se parecen a otras como, "Los Sitios en Apache/Linux son mucho más estables y cargan más rápido que los que trabajan bajo IIS/Windows", en sentido contrario. Prefiero datos más objetivos, y Roger también. Así que durante el último mes se dedicó a monitorizar todos los incidentes de seguridad que aparecían sobre uno y otro servidor. La proporción de servidores comprometidos era de 17 a 1 en detrimento de Apache (es decir Apache era hackeado 17 veces más veces que IIS). También en Zone-H, la web que lleva un registro de los servidores hackeados, se muestra que entornoal 80-90% de los sitios web maliciosos están basados en Apache. Finalmente en el informe de Phising de Castlecops, con más de medio millón de servidores registrados, se ve que aproximadamente el 93% de los incidentes provenían de servidores Apache.
Como bien dice el amigo Roger, realmente ambos servidores son razonablemente seguros hoy en día. En realidad todas estas estadísticas que se quieren llevar hacia la seguridad del producto en sí están basadas en la creencia errónea de que la seguridad depende sólo del producto, cuando realmente depende mucho más de las personas y sus errores. Un producto muy seguro mal configurado será una "coladera" de seguridad. En ese sentido IIS tiene la ventaja de ser un producto muy fácil de configurar (aunque si quieres meterte a fondo tiene sus cosas), y que viene por defecto configurado con una superficie de ataque mínima.
Lo que ocurre es que hay muchos programadores que no se preocupan por la seguridad en absoluto, o la comprensión que tienen de la misma es muy reducida. Así, independientemente de lo seguro que sea un servidor Web y de lo bien configurado que esté, si tenemos una aplicación con código irresponsable y plagado de agujeros de seguridad, no nos valdrá de nada y el servidro acabará comprometido.
En mi opinión hay una carencia generalizada de formación en seguridad porque muchos programadores asumen que se trata de una responsabilidad de la gente de sistemas. Craso error. Pienso que la seguridad es más importante enlas aplicaciones incluso que en los sistemas, y que todos los programadores deben conocer como mínimo las técnicas fundamentales de escritura de código seguro.
Pienso que es casi una obligación moral. ¿Qué pensaríamos de un médico que sabe las técnicas quirúrgicas para operar a un paciente pero desconoce lo mínimo de higiene?. Nos parece impensable, algo que se da por sentado y sin lo que no lo consideraríamos un buen profesional ¿verdad?. Pues para un programador la seguridad es casi lo mismo.
Dejo ahí esta reflexión.
Y por cierto, no quiero "entrar al trapo" en el ámbito de las creencias sobre Linux vs. Windows, Oracle vs. SQL Server o IIS vs. Apache. No es mi especialidad y además pienso que cada cosa tiene sus aplicaciones idóneas y no hay una verdad absoluta ¿vale? :-)