aplicaciones on-line código abierto: seguridad en …...seguridad aplicaciones on-line 76 linux+...

4
seguridad Aplicaciones On-Line 76 Linux+ 9/2007 [email protected] Seguridad en el Código Abierto: Aplicaciones On-Line José Andrés Ruiz 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 pro- bable 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 tradu- cirse 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 guar- dando los contenidos en bases de datos, a las cuales acce- den para componer y servir las páginas en el mismo mo- mento en que son solicitadas, es decir, en tiempo real. Por ello, hay que tener presente que un CMS no está hecho de páginas html, si no de un programa encargado de ges- tionar 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 visuali- zados. 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 to- da 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 lla- mar 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 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.

Upload: others

Post on 16-Jul-2020

2 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aplicaciones On-Line Código Abierto: Seguridad en …...seguridad Aplicaciones On-Line 76 Linux+ 9/2007 seguridad Aplicaciones On-Line 77 linux@software.com.pl Seguridad en el Código

seguridadAplicaciones On-Line

76 Linux+ 9/2007

seguridadAplicaciones On-Line

77www.lpmagazine.org

linux

@so

ftwar

e.co

m.p

l

Seguridad en el Código Abierto: Aplicaciones On-LineJosé Andrés Ruiz

El incremento en el uso de Internet y la facilidad para hacerse un hueco dentro de éste, a modode 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 pro-bable que incluso ya se haya duplicado o triplicado dichacifra 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 tradu-cirse 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 guar-dando los contenidos en bases de datos, a las cuales acce-den para componer y servir las páginas en el mismo mo-mento en que son solicitadas, es decir, en tiempo real. Por

ello, hay que tener presente que un CMS no está hecho de páginas html, si no de un programa encargado de ges-tionar 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 visuali-zados.

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 to-da 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 lla-mar 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

Las aplicaciones online, llamadas comúnmente CMSo 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.

Page 2: Aplicaciones On-Line Código Abierto: Seguridad en …...seguridad Aplicaciones On-Line 76 Linux+ 9/2007 seguridad Aplicaciones On-Line 77 linux@software.com.pl Seguridad en el Código

seguridadAplicaciones On-Line

76 Linux+ 9/2007

seguridadAplicaciones On-Line

77www.lpmagazine.org

de mantenerlos “vivos” y en expansión. Den-tro de estas comunidades hay muchos di-señadores y programadores que realizan nuevos themes (plantillas de diseño), com-ponentes (sub-aplicaciones que funcionan dentro del CMS), traducciones a otras len-guas e infinidad de mejoras, siempre respe-tando las licencias del código abierto. Todo ello contribuye a que los CMS sean cada vez más ricos y eficientes, lográndose verdade-ras maravillas.

Los CMS son capaces de proporcionar-nos 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, porta-les, 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 atracti-vo, 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, por-que ¿para qué vamos a reinventar la rueda una y otra vez?

La corriente del “código abierto”, promo-vida por millones de programadores, dise-ñadores y usuarios, tanto profesionales co-mo aficionados, han puesto a nuestra dispo-sició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 mi-llones 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 total-mente disponibles en la red y simplemente debemos bajarlos.

Los CMS han permitido que tanto pro-fesionales como aficionados tengan y gestio-nen 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 ventajasHasta 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

placer y autosatisfacción. En nuestro mundovirtual en la red estos malos se llaman cra-ckers, y son los piratas del ciberespacio, co-mo muchos ya sabrán (o habrán sufrido en sus propias carnes).

El código abierto es libre de ser adqui-rido, investigado, modificado, copiado y un largo etcétera de libertades, las cuales son las que lo han hecho tan popular. Estas liber-tades son muy ventajosas para su desarrollo y expansión, promoviendo y acelerando suscontinuas mejoras y adaptaciones. Pero tam-bién, estas mismas libertades permiten a loscrackers estudiarlo fácilmente a fondo, pu-diendo encontrarles vulnerabilidades, las cua-les 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 más de un sitio web, siendo lo normal que alo-je a varios cientos. La mayoría de sitios webs suelen estar alojados en servidores compar-tidos, ya que sus precios, como es lógico, son bastante más asequibles que los de un servi-dor dedicado (aquel que es exclusivo sola-mente para nosotros). Por ello, casi todo el contenido de la red está hospedado en ser-vidores 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 compar-tidos de Internet contienen más de un CMS entre sus sitios web alojados.

Esta abundancia de CMS populares, uni-da a la facilidad de estudiar su código, son el caldo de cultivo ideal para virus y otros ata-ques lanzados por los crackers. El objetivo

Figura 2. Blogs más usados

Figura 1. Crackers

Page 3: Aplicaciones On-Line Código Abierto: Seguridad en …...seguridad Aplicaciones On-Line 76 Linux+ 9/2007 seguridad Aplicaciones On-Line 77 linux@software.com.pl Seguridad en el Código

78

seguridadAplicaciones On-Line

Linux+ 9/2007 79

seguridadAplicaciones On-Line

www.lpmagazine.org

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 ha-brí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 ha-cer llamamientos reiterados a páginas estra-tégicas de la aplicación, a veces introducien-do variables junto con la URL, para provo-car una reacción anormal que suelen apro-vechar 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 ser-vidor, 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 siste-ma operativo, alterando el rendimiento delservidor y, por consiguiente, al resto de si-tios web alojados en éste. Casi siempre, los ataques aumentan la carga del servidor y lle-gan incluso a colapsarlo, debido sobre todo a la enorme reiteración con que son produ-cidos.

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 provo-can 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 servido-res del mundo, una cifra astronómica.

Tan desconocidos llegan a ser estos problemas, que muchos administradores de CMS los sufren durante mucho tiempo y cul-pan de ello a los servidores, sin saber que realmente es su aplicación la que los está pro-vocando, y muchas veces es debido al simp-le 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 losservidores lo tienen muy difícil para detec-tar cuál es el sitio web que está provocando los problemas. Pensemos que estamos ha-blando de servidores que albergan cientos de páginas webs, y la mayoría de las veces, aunque se aprecia claramente el daño (so-brecarga 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 si-tios webs más sospechosos y hacer un segui-miento por un proceso de eliminación, tra-tando de descubrir de esta manera al cul-pable, con los consecuentes perjuicios para aquellos que son inocentes.

¿Qué defensas existen?Aunque esté todo correctamente instalado y configurado, ante estos ataques pocas de-fensas 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 vul-nerabilidad en el CMS.

Los programadores de estas aplicaciones y sus colaboradores suelen estar al tanto para corregir de inmediato cualquier vulne-rabilidad que aparezca, evitando así el daño que éstas puedan producir. Por ello, es muy

Figura 3. Crecimiento de Internet

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 actualiza-das en los sitios web.

De todas formas, las medidas más im-portantes son las que tomen los webmasters de los sitios web con CMS instalados, ya que si éstos actúan correctamente y con conoci-mientos, es muy poco probable que sufran ataques e incidencias. Por ello, hacemos hin-capié en hacer ver que el gran problema está en el desconocimiento por parte de los admi-nistradores 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 importan-cia. Todo no consiste en hacer la instalación y listo, hay que configurar óptimamente todas las características y luego llevar un manteni-miento 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 aplica-ciones, así como la del sitio web oficial, y si podemos toda aquella que encontremos en Internet (siempre y cuando procedan de una fuente fiable).

Page 4: Aplicaciones On-Line Código Abierto: Seguridad en …...seguridad Aplicaciones On-Line 76 Linux+ 9/2007 seguridad Aplicaciones On-Line 77 linux@software.com.pl Seguridad en el Código

78

seguridadAplicaciones On-Line

Linux+ 9/2007 79

seguridadAplicaciones On-Line

www.lpmagazine.org

Como ya hemos mencionado, la falta de conocimientos por parte de los administra-dores 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 verda-deramente 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 fun-ciona correctamente en otro puede ser un gran desastre.

La facilidad de instalación y uso que pre-sentan los CMS nunca debe ser confundida con que son innecesarios los conocimientos para su administración.

El estar documentados nos ayuda a hacer la instalación correctamente, haciendo las configuraciones más óptimas para nuestro sistema y otorgando los permisos adecuados a las carpetas. En este punto, los permisos de las carpetas, debemos hacer mucho hincapié, pues es algo muy importante y que no se suele considerar como tal. Por ejemplo, el dar permisos a carpetas que no lo necesitan es abrir la puerta a los crackers, debiéndose evitar a toda costa. Otorgar permisos inade-cuados es uno de los errores más frecuentes por parte de los aficionados, aunque parezca ilógico, ya que éstos nunca imaginan lo peli-groso que puede llegar a ser. Tan extendido es este error, que hay un altísimo porcentaje de servidores en Internet que alojan sitios web con todos los permisos otorgados en la raíz de documentos (o sea, la carpeta principal

Figura 4. Experiencia con el software libre

José Andrés Ruiz Pescador es Director dela compañía de hosting y dominios VAXNU.Lleva varios años a la cabeza de dicha compañía y ha colaborado en varios pro-yectos 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.

Sobre el Autor

del sitio), es decir, que tienen todo su sitio abierto de par en par a la red.

Otro punto de gran importancia es man-tener la aplicación siempre actualizada. Los virus y ataques de los crackers se extienden por la red de una manera rapidísima, y no podemos perder ni un segundo en actualizar nuestro CMS. Así podremos garantizar que estamos protegidos y libres de incidencias.

Concerniente a este último punto, los pro-gramadores de CMS deben considerar el in-cluir en sus aplicaciones actualizaciones au-tomáticas, que no requieran ninguna acción por parte de los administradores de los sitios web. Esto ya lo incluyen muchos CMS y ha demostrado ser una de las mejores técnicas de seguridad. Los programadores de CMS deben 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.

ResumiendoUn 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 propie-tarios 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 in-cidencias 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.

Figura 5. Arquitectura de los CMS