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? :-)
JASoft.org: El Blog de Jose Alarcón. Programación
.NET y mucho más.