seguridad Aplicaciones On-Line
Seguridad en el Código Abierto: Aplicaciones On-Line José Andrés Ruiz
linux@software.com.pl
Las aplicaciones online, llamadas comúnmente CMS o Sistemas de Gestión de Contenidos, desarrollados en código abierto reportan innumerables ventajas y beneficios, pero si su instalación y mantenimiento no se hacen correctamente, podemos acarrear una serie de problemas que no solamente afectarán a la aplicación en sí, sino al funcionamiento del propio servidor, perjudicando al resto de sitios webs alojados en éste en caso de tratarse de un servidor compartido, como ocurre la mayoría de las veces.
76
E
l incremento en el uso de Internet y la facilidad para hacerse un hueco dentro de éste, a modo de sitio web, hace que cada vez sean más los que opten por la utilización de CMS. El número de páginas web en la red crece cada vez más rápidamente y ya superó los 100 millones en octubre de 2006. Dado que se trata de un crecimiento exponencial, es muy probable que incluso ya se haya duplicado o triplicado dicha cifra y ande por encima de los 200 ó 300 millones de sitios web en el mundo. Prueba de ello es que ya son pocas las empresas que no cuentan con un sitio en la red y lo mismo está ocurriendo con las páginas personales de la gente de a pie. La palabra CMS, cuyo origen se deriva de las siglas inglesas “Content Management System”, puede traducirse por Sistema de Gestión de Contenidos. Este vocablo engloba cualquier aplicación online que nos facilite tanto la edición de contenidos para la web como su posterior uso y gestión. Los sistemas CMS suelen funcionar guardando los contenidos en bases de datos, a las cuales acceden para componer y servir las páginas en el mismo momento en que son solicitadas, es decir, en tiempo real. Por
Linux+ 9/2007
ello, hay que tener presente que un CMS no está hecho de páginas html, si no de un programa encargado de gestionar los contenidos (textos, imágenes y otros medios), que se guardan desmontados y solamente se componen para enviar al cliente cuando se llaman para ser visualizados. La entrada y edición de contenidos dentro del CMS se suele hacer desde una interfaz online, es decir, desde una página web especial para ello, la cual está protegida por usuario y contraseña, garantizando así la seguridad del sitio. Desde esta interfaz también se puede administrar toda la aplicación, tanto el funcionamiento integral del sitio como el diseño general de éste, el cual suele gestionarse mediante plantillas prediseñadas conocidas comúnmente como “Themes”. Los CMS suelen incluir subprogramas como editores de texto, manejadores de archivos, editores gráficos, etc.; todos online y que nos ayudan a la edición de los contenidos. A estos subprogramas se les suele llamar componentes y pueden ser incluso aplicaciones tan complejas como foros, encuestas o chats. Existen comunidades muy activas alrededor de los CMS más populares, que son las principales responsables
seguridad Aplicaciones On-Line placer y autosatisfacción. En nuestro mundo virtual en la red estos malos se llaman crackers, y son los piratas del ciberespacio, como muchos ya sabrán (o habrán sufrido en sus propias carnes). El código abierto es libre de ser adquirido, investigado, modificado, copiado y un largo etcétera de libertades, las cuales son las que lo han hecho tan popular. Estas libertades son muy ventajosas para su desarrollo y expansión, promoviendo y acelerando sus continuas mejoras y adaptaciones. Pero también, estas mismas libertades permiten a los crackers estudiarlo fácilmente a fondo, pudiendo encontrarles vulnerabilidades, las cuales podrían aprovecharse para intenciones no muy buenas. Muchos CMS se han popularizado tanto que prácticamente están presentes en todos los servidores compartidos de Internet. Un servidor compartido es aquel que alberga
Figura 1. Crackers de mantenerlos “vivos” y en expansión. Dentro de estas comunidades hay muchos diseñadores y programadores que realizan nuevos themes (plantillas de diseño), componentes (sub-aplicaciones que funcionan dentro del CMS), traducciones a otras lenguas e infinidad de mejoras, siempre respetando las licencias del código abierto. Todo ello contribuye a que los CMS sean cada vez más ricos y eficientes, lográndose verdaderas maravillas. Los CMS son capaces de proporcionarnos un sitio en la red sin necesidad de saber nada sobre diseño, html, programación y todo aquello que, hasta hace unos años, era indispensable conocer si queríamos crear y editar una página web. Foros, blogs, portales, tiendas virtuales, chats, galerías de imágenes y un sinfín de aplicaciones que pueden solucionarnos la vida y hacer que tengamos un sitio web totalmente funcional y atractivo, sin tener que perder horas diseñando y programando, y sin necesidad de echar mano a los servicios de un profesional. Esta es la oferta actual y el futuro de Internet, porque ¿para qué vamos a reinventar la rueda una y otra vez? La corriente del “código abierto”, promovida por millones de programadores, diseñadores y usuarios, tanto profesionales como aficionados, han puesto a nuestra disposición una gran variedad de CMS, estando entre éstos los más populares y usados en Internet. Algunos, dado su potencia y gran acabado (no les falta ni un detalle) gozan de tanta popularidad que son usados por millones de sitios web. Esta popularidad tam-
bién se debe, en gran medida, a la facilidad de adquisición de éstos, ya que están totalmente disponibles en la red y simplemente debemos bajarlos. Los CMS han permitido que tanto profesionales como aficionados tengan y gestionen su propio blog, foro o cualquiera de las aplicaciones disponibles, sin necesidad de ser un experto en informática y solamente con conocimientos básicos.
Cuidado, no todo son ventajas
Hasta aquí muy bien, pero en la informática como en las películas, siempre aparecen los malos que intentan fastidiarnos la vida, ya sea por un objetivo lucrativo o simplemente por
más de un sitio web, siendo lo normal que aloje a varios cientos. La mayoría de sitios webs suelen estar alojados en servidores compartidos, ya que sus precios, como es lógico, son bastante más asequibles que los de un servidor dedicado (aquel que es exclusivo solamente para nosotros). Por ello, casi todo el contenido de la red está hospedado en servidores compartidos, con lo cual, podemos imaginar que no queda ningún servidor compartido en Internet sin alojar más de un CMS. Es decir, todos los servidores compartidos de Internet contienen más de un CMS entre sus sitios web alojados. Esta abundancia de CMS populares, unida a la facilidad de estudiar su código, son el caldo de cultivo ideal para virus y otros ataques lanzados por los crackers. El objetivo
Figura 2. Blogs más usados
www.lpmagazine.org
77
seguridad Aplicaciones On-Line de estos ataques suele ser bastante variado, desde aprovechar los servidores para enviar correo basura (spam) a intentar “hacerlos caer” por pura satisfacción. Tanto es así, que se puede asegurar que más del 90% de las incidencias de los servidores compartidos están provocados por esta clase de ataques.
¿Cómo pueden ser atacados los servidores con CMS?
Al igual que en otros ataques informáticos, los piratas no tienen una norma fija a la hora de perpetrar sus actos (si esto fuera así ya se habrían cerrado todas las puertas y no habría más problemas). Por ello, la lucha es constante y nunca se puede bajar la guardia, ya que no existe ningún programa informático que sea seguro al 100%. Muchos ataques suelen basarse en hacer llamamientos reiterados a páginas estratégicas de la aplicación, a veces introduciendo variables junto con la URL, para provocar una reacción anormal que suelen aprovechar los crackers en sus propósitos. Los objetivos de este tipo de ataques pueden ser muy amplios, algunos de ellos son: abrir ilimitadas conexiones a las bases de datos hasta saturar la memoria y hacer caer al servidor, enviar correo spam aprovechando alguna función propia del CMS, albergar scripts maliciosos y así todo lo que se pueda imaginar. Como podemos deducir, la mayoría de estos ataques no solamente afectan al CMS o sitio web en concreto, si no a todo el sistema operativo, alterando el rendimiento del servidor y, por consiguiente, al resto de sitios web alojados en éste. Casi siempre, los ataques aumentan la carga del servidor y llegan incluso a colapsarlo, debido sobre todo a la enorme reiteración con que son producidos. Por tanto, no hay forma de librarnos de estos ataques, siendo tan frecuentes que globalmente, no suele transcurrir un mes sin que un servidor sufra alguno. Éstos provocan las típicas “caídas” que solemos ver en muchas ocasiones, cuando visitamos alguna página web, y de las que siempre culpamos al servidor, ignorando el verdadero origen del problema. Es algo que así, a priori, puede extrañar, pero es un problema muy serio que debemos sacar a la luz para que sea conocido. De esta forma será tenido más en cuenta y se podrá actuar en consecuencia. Tenemos que pensar que estamos hablando de casi la totalidad de las incidencias ocurridas en todos los servidores del mundo, una cifra astronómica.
78
Figura 3. Crecimiento de Internet Tan desconocidos llegan a ser estos problemas, que muchos administradores de CMS los sufren durante mucho tiempo y culpan de ello a los servidores, sin saber que realmente es su aplicación la que los está provocando, y muchas veces es debido al simple hecho de no tenerla actualizada. Es más, muchos no se lo creen hasta que hacen la actualización y ven como desaparecen todas las incidencias. Por otra parte, los administradores de los servidores lo tienen muy difícil para detectar cuál es el sitio web que está provocando los problemas. Pensemos que estamos hablando de servidores que albergan cientos de páginas webs, y la mayoría de las veces, aunque se aprecia claramente el daño (sobrecarga en la CPU, memoria, procesos... ), es casi imposible detectar quien lo provoca. Tanto es así, que en muchas ocasiones no queda otro remedio que suspender los sitios webs más sospechosos y hacer un seguimiento por un proceso de eliminación, tratando de descubrir de esta manera al culpable, con los consecuentes perjuicios para aquellos que son inocentes.
¿Qué defensas existen?
Aunque esté todo correctamente instalado y configurado, ante estos ataques pocas defensas tienen los servidores. Recordemos que realmente el ataque consiste en aprovechar alguna función propia del CMS (subida de archivos, entrada de datos, etc.) para lograr los objetivos de los crackers y, por tanto, no hay defensa que valga, salvo solventar la vulnerabilidad en el CMS. Los programadores de estas aplicaciones y sus colaboradores suelen estar al tanto para corregir de inmediato cualquier vulnerabilidad que aparezca, evitando así el daño que éstas puedan producir. Por ello, es muy
Linux+ 9/2007
importante mantener actualizadas dichas aplicaciones, tanto por parte de los propios programadores de CMS como por la de los administradores de sitios que los utilicen, ya que de nada serviría que se corrigieran las vulnerabilidades y no fueran luego actualizadas en los sitios web. De todas formas, las medidas más importantes son las que tomen los webmasters de los sitios web con CMS instalados, ya que si éstos actúan correctamente y con conocimientos, es muy poco probable que sufran ataques e incidencias. Por ello, hacemos hincapié en hacer ver que el gran problema está en el desconocimiento por parte de los administradores de CMS, ya que la mayoría de ellos no tienen formación y actúan sin saber lo que hacen, dejando las puertas abiertas a los crackers.
¿Cómo evitar estos problemas?
En primer lugar, hay que concientizarse de que mantener un CMS requiere algunos conocimientos y acciones de vital importancia. Todo no consiste en hacer la instalación y listo, hay que configurar óptimamente todas las características y luego llevar un mantenimiento adecuado y continuado en el tiempo, ya que hay que estar siempre prevenido pues los crackers nunca duermen. La primera regla de oro consiste en documentarnos a fondo sobre el CMS que vamos a instalar. Es imprescindible conocer lo que estamos haciendo y hacerlo bien. En caso de que surjan errores debemos saber cómo actuar y buscar la mejor solución. Por ello, es obligatorio leer y comprender toda la documentación que acompaña a estas aplicaciones, así como la del sitio web oficial, y si podemos toda aquella que encontremos en Internet (siempre y cuando procedan de una fuente fiable).
seguridad Aplicaciones On-Line Como ya hemos mencionado, la falta de conocimientos por parte de los administradores de CMS es el peor enemigo de estas aplicaciones. Desgraciadamente, casi todos los usuarios que instalan CMS en sus sitios web son aficionados con escasos o nulos conocimientos, y de ahí derivan todos los problemas. Muy pocos son los que verdaderamente saben lo que están haciendo y actúan en consecuencia. No vale hacer las cosas porque se han leído en un foro, o usar copiar y pegar, ya que lo que en un host funciona correctamente en otro puede ser un gran desastre. La facilidad de instalación y uso que presentan los CMS nunca debe ser confundida con que son innecesarios los conocimientos para su administración. Figura 5. Arquitectura de los CMS El estar documentados nos ayuda a hacer la instalación correctamente, haciendo las del sitio), es decir, que tienen todo su sitio configuraciones más óptimas para nuestro abierto de par en par a la red. Otro punto de gran importancia es mansistema y otorgando los permisos adecuados tener la aplicación siempre actualizada. Los a las carpetas. En este punto, los permisos de virus y ataques de los crackers se extienden las carpetas, debemos hacer mucho hincapié, por la red de una manera rapidísima, y no pues es algo muy importante y que no se podemos perder ni un segundo en actualizar suele considerar como tal. Por ejemplo, el nuestro CMS. Así podremos garantizar que dar permisos a carpetas que no lo necesitan estamos protegidos y libres de incidencias. es abrir la puerta a los crackers, debiéndose Concerniente a este último punto, los proevitar a toda costa. Otorgar permisos inadegramadores de CMS deben considerar el incuados es uno de los errores más frecuentes cluir en sus aplicaciones actualizaciones aupor parte de los aficionados, aunque parezca tomáticas, que no requieran ninguna acción ilógico, ya que éstos nunca imaginan lo peligroso que puede llegar a ser. Tan extendido es por parte de los administradores de los sitios este error, que hay un altísimo porcentaje de web. Esto ya lo incluyen muchos CMS y ha servidores en Internet que alojan sitios web demostrado ser una de las mejores técnicas de con todos los permisos otorgados en la raíz seguridad. Los programadores de CMS deben de documentos (o sea, la carpeta principal tener mucho cuidado al diseñar estos sistemas
de actualización, ya que deben procurar que no se convierta en otra puerta o vulnerabilidad más por donde puedan atacar los crackers.
Resumiendo
Un mantenimiento eficaz de los CMS por parte de todos los webmasters evitaría más del 90% de las incidencias en los servidores de Internet, una cifra más que a tener en cuenta. Ésto no solo beneficiaría a los propietarios de estas aplicaciones, si no al resto de sitios web alojados en los servidores, lo cual, considerando que casi todos los servidores de Internet son compartidos, es de obligación. Pensemos que estamos hablando de las incidencias sufridas prácticamente por todos los sitios webs de Internet, lo cual se estima actualmente en ¡más de 200 millones! Por ello, si todos colaboramos un poco, gozaremos de una Internet con más calidad. Pensemos que incluso gran parte del correo spam que todos recibimos a diario proviene de estos ataques, lo cual se podría disminuir muchísimo con solo mantener actualizados y correctamente configurados los sitios con CMS.
Sobre el Autor José Andrés Ruiz Pescador es Director de la compañía de hosting y dominios VAXNU. Lleva varios años a la cabeza de dicha compañía y ha colaborado en varios proyectos de aplicaciones online. Defiende la utilización de este tipo de aplicaciones argumentando sus ventajas, sobre todo la disponibilidad desde cualquier ordenador conectado a Internet.
Figura 4. Experiencia con el software libre
www.lpmagazine.org
79