Documento de notificación de Seguridad
Exploits, bots, inyección de código y otras amenazas relacionadas con robo de contraseñas, publicación no autorizada vía FTP y uso no autorizado de cuentas de correo para envíos masivos.
Si usted esta leyendo este documento es probable, que ya fuera victima de algún ataque y otras amenazas ó que este interesado en indagar más sobre este tema. Para los que están afectados por un ataque, pueden saltar directamente al apartado de mediadas de reacción inmediata.
Recomendamos leer este texto en forma completa tan pronto le sea posible.
El webhosting y la seguridad en internet: Consideraciones generales.
Lo primero que usted debe tener presente con respecto a la seguridad en internet y los servicios de hosting de sitios o aplicaciones web es que no existe algo como “hosting seguro” o “hosting inexpugnable”. La seguridad de su sitio web depende de muchos factores, algunos de los cuales están fuera de su control, cuando usted publica un sitio web, debe considerarlo expuesto a riesgos tal como lo esta una tienda con vitrina expuesta a la calle. Partiendo de la base de que si algo esta conectado a internet no es seguro, usted estará más consciente de la verdadera realidad de las aplicaciones web, “la web no fue diseñada con la seguridad en mente”, por lo tanto la seguridad no es una característica inherente al protocolo http y demás reglas fundamentales que mueven el World Wide Web.
Cuando uno piensa en seguridad y sitios web, es inevitable considerar el rol del servicio de hosting y en como estas organizaciones manejan al seguridad y en que consiste esta seguridad. La idea general que se maneja es que las empresas de hosting pueden prever todo y mágicamente hacerse cargo de cualquier riesgo posible, pero eso es falso. Las empresas de hosting pueden cumplir con una serie de medidas y buenas practicas, pero la seguridad en internet es una cadena muy larga de dependencias demasiado completas como para considerar todos los escenarios posibles. Muchas de estas dependencias están fuera del ámbito de las empresas proveedoras de servicio. Las compañías de hosting solo se enfocan en aquellos riesgos que están dentro de su control, que tienen más impacto o que son más probables y en aquellos que son económicamente viables sin que esto sea considerado una negligencia. En un escenario donde las amenazas son infinitas, no se puede pretender tener respuestas también infinitas. Últimamente los eslabones más débiles de esta cadena, que son los usuarios desde su notebook, estación de trabajo o smartphone ó pad, se han transformado en las victimas de los ataques. Los atacantes están cumpliendo su objetivo de manera indirecta al comprometer las estaciones de trabajo en vez de enfrentar las barreras de seguridad directas de los servicios de hosting o manejar debilidades de las aplicaciones web publicadas por los mismos usuarios para ganar acceso.
Radiografía de la seguridad moderna en Internet.
El cracker, el sistema y el propósito:
Tradicionalmente todos reconocemos esa imagen cinematográfica en la que crackers atacan a los sistemas vulnerables y que pueden ingresar mágicamente al "servidor central" con una serie de comandos desde un terminal local o remotamente a través de una "red" misteriosa.
La realidad es que no se puede ingresar comandos a un computador sin un terminal de entrada, este puede ser un teclado físico ó un terminal "virtual" accesible desde una conexión remota, piense por ejemplo en el cajero electrónico, es en verdad un sistema que sirve de terminal para el acceso a un servidor central, la interface de usuario del cajero es en realidad una "consola" de comandos, como un teclado y monitor con cables largos que llegan desde la sucursal del banco hasta el sistema central del banco. El ratón de su computador es también un canal de entrada de datos (con un cable más corto eso si). La mayoría de los sistemas operativos modernos proveen soporte para varias instancias de comunicación potencial para terminales: cables seriales, conexión de red, usb, Bluetooth, IFR, etc.
Cuando alguien quiere “atacar” a un sistema, en realidad tiene un propósito, sea ingresar a datos alojados dentro, modificarlos, desactivar el sistema, modificar una funcionalidad ,eliminar datos (sabotaje) o engañar.
Imagine al cracker de la clásica película de hollywood tratando de ingresar o sacar un dato en un computador personal que no tiene teclado, no tiene red ni medio para intercambiar información con el mundo exterior. Es virtualmente imposible interactuar con un computador en esas condiciones.
Luego imagine al cracker sentado frente a un computador con teclado, pero con la pantalla bloqueada con una clave. El cracker tendría que conocer la clave para ingresar.
Volvamos por un momento al ejemplo del computador sin teclado y el cracker Nuestro atacante no piensa dentro de las reglas cinematográficas, en el mundo real nuestro cracker saca un teclado de su bolso y lo conecta para ganar acceso. En el ejemplo del computador con teclado y con password, nuestro cracker implemente abre el computador y se lleva el disco duro. Estas dos situaciones dan a entender una realidad dura: el acceso a un sistema o a los datos es tan simple como en el mundo físico romper el vidrio de la tienda. Son las medidas complementarias las que brindaran mayor seguridad y lo hacen por medio un factor clave: el tiempo. Si el tiempo necesario para ingresar a un sistema es más costoso que el botín, el cracker probablemente seguirá adelante a buscar otra victima. De lo contrario si persiste el tiempo suficiente, podrá ser detectado y neutralizado.
El protocolo ip:
Los servidores que entregan servicios vía internet, tales como los servidores de correo, web y muchas más, utilizan como medio de entrada y salida de datos la conexión a la red. Dentro de la estructura de los sistemas operativos existen módulos especializados en las comunicaciones, particularmente en el mundo de la internet y de las redes locales modernas, los módulos de comunicaciones se comunican externamente en un solo lenguaje: el protocolo ip. El protocolo ip establece una dirección para cada computador (numero ip) y a nivel de cada computador existen diversos “puertos” de comunicaciones, que actúan como subdirecciones, como podría ser un departamento dentro de un edifico. Cada servicio que brinda un servidor al mundo exterior esta escuchando y se comunica por uno o más de estos puertos. Imagine un edifico de oficinas en el que los mensajes de correo se atienden en el piso 2 oficina 201, los mensajes relacionados con el trafico web en el piso 3 oficina 301, etc. Cada servicio tiene su puerto y cuando se establece una comunicación, los paquetes con datos viajan primero a la dirección ip y luego al puerto adecuado. ¿Como sabe el mundo exterior a que puerto enviar un determinado dato?, por convención se usan ciertos puertos para ciertos servicios, por ejemplo el puerto 25 es usado para la descarga de mensajes (pop3) y el 110 para el envío y trafico de mensajes (smtp). Perfectamente se podría cambiar esta configuración y decir: “ahora acepto mensajes por el puerto 300”, eso es lo que llamamos una configuración arbitraria o personalizada, pero se respeta la convención para facilitar el acceso a todos los usuarios.
La seguridad perimetral en internet
Filtrado de paquetes:
Durante años la seguridad en internet se baso en lo que llamamos seguridad perimetral, esto consiste en poner una puerta giratoria en el edificio y un guardia que verifica que cualquiera sea la persona que ingresa, solo pueda ir a alguna de las oficinas habilitadas y que no permanezca merodeando. Esto es lo que llamamos filtrado ip y es la forma más básica de firewall. Lógicamente los crackers aprendieron a burlar este sistema, disfrazandose y aparentando llevar mensajes al puerto de mensajes cuando en realidad van a desviarse en el camino a otra lugar dentro del edificio. Este fenómeno es lo que llamamos anomalía en el protocolo. En otro escenario el atacante ingresa con cualquier pretensión al edificio y se pone frente a una puerta con una ganzúa a intentar abrir la puerta, eventualmente lo va a lograr si no es sorprendido, esto es lo que llamamos ataque de fuerza bruta.
Inspección profunda de paquetes:
Eventualmente los ingenieros se dieron cuenta de que el filtrado de paquetes por si solo no constituye una solución para detener a los atacantes. Se establecieron entonces reglas más especificas: cada visitante del edificio debe reportarse en la recepción y debe indicar a donde va, el guardia verifica que la caja que porta el visitante corresponda con el tipo de paquete que se espera para ese tipo de visitas, confirma además con el departamento de destino y entonces se le hace pasar. Luego de unos minutos el guardia verifica si el visitante efectivamente llego al departamento indicado, si no llega, entonces busca y desaloja al visitante (packet drop). Esto es lo que llamamos inspección profunda de paquetes. El procedimiento es mucho más sofisticado y permite eliminar el “merodeo” y por tanto los ataques de fuerza bruta son fácilmente neutralizables así como los intentos de pasar datos por puertos no autorizados y otras variantes. Este nivel de seguridad fue tan efectivo que desalentó a los crackers a seguir intentando burlar la guardia, pronto buscarían otra manera de entrar.
Análisis de la seguridad a nivel de la aplicación ó firewall de aplicación:
El atacante no puede entrar al edificio y tener el tiempo suficiente de ingresar violando una puerta de una oficina. Rápidamente los crackers oncluyeron que solo existían dos maneras de ingresar y tener tiempo suficiente de hacer algo, el primer camino es investigar como funciona alguna de las empresas que están alojadas en ese edificio y por medio de un estudio crear una estrategia para que alguna de las empresas autorice el ingreso al edificio y a un piso en particular. Esto es lo que llamamos Explotar una aplicación. En este ejemplo existe una empresa vulnerable que esta atendiendo publico en forma permanente. Basta con hacerse pasar como cliente y poder subir a la oficina pretendiendo hacer una cotización, una vez dentro es posible robar una tarjeta de proximidad para abrir puertas en el edificio y merodear en el sin restricciones por un tiempo. Esta situación crea un gran problema, para poder evitar un intruso en estas condiciones, la administración del edificio (que en este ejemplo representa a la empresa de hosting) tendría que influir en las reglas de seguridad al interior de las oficinas, situación que en la practica resulta costosa para las empresas, pues tendrían que contratar guardias o prepara un esquema de seguridad especial en combinación con el edificio. Finalmente se adopta una solución que no es efectiva en todos los casos, la administración del edificio dejara pasar visitantes a las oficinas y los acompañara hasta la puerta y luego entrara con ellos hasta el mesón de atención. En este esquema cada visitante sera acompañado y escoltado hasta la puerta, se averiguara si sus intensiones son legitimas y luego el guardia se retira. Esto supone un enorme esfuerzo. Aun con este sistema es imposible garantizar la seguridad pues una vez que esta dentro, quien atienda al visitante anónimo podría cometer un error, dejarlo pasar, exponer algún documento o sencillamente distraerse mientras el visitante robe o se escabulle en el edificio o en la oficina.
Este escenario es idéntico a lo que ocurre con el hosting compartido de sitios web. La administración del edificio monta un aparato de seguridad impresionante pero aun con todos estos recursos no puede evitar que una negligencia entro de cualquiera de las empresas alojadas termine exponiendo la seguridad de una empresa o del edificio completo. En este escenario la seguridad es una responsabilidad compartida y en gran medida depende del administrador de cada oficina nivelar su seguridad con la del edificio. En el mundo real, a este tipo de sistema se le llama firewall de aplicación y se trata de complementar los anteriores sistemas de seguridad con medidas mas finas, controlando lo que hacen las visitas de un sitio web hasta el cierto punto. Este es uno de los sistemas más sofisticados y operarlo es costoso pues se requieren muchos recursos para poder analizar todo el trafico sin hacerlo lento. Lamentablemente por la infinidad de aplicaciones que se puede correr, no es posible prever todos los escenarios, por lo tanto muchas veces solo se aplican reglas genéricas de seguridad, las que tienen el mayor impacto, pero no están cubiertas todas. Los atacantes modernos se valen de vulnerabilidades conocidas para ingresar y lo hacen buscando sitios web que tengan determinado software instalado. (con software nos referimos a scripts php o aplicativos CMS).
Vulnerabilidad en el escritorio:
Los atacantes saben que finalmente la seguridad a nivel de aplicación termina por hacerse mas eficaz mientras más tiempo pasa, esto es por que las aplicaciones se van parchando y las reglas de los firewall se van mejorando. Surge una idea tentadora: Es más fácil comprometer la seguridad desde fuera atacando a una de las personas que trabaja en nuestro "edificio". Le roban la credencial al gerente desde su propia casa y luego entran. Esto es lo que se esta usando en la actualidad, se ataca los escritorios de la gente en busca de las claves de acceso. Luego el atacante pasara todos los filtros sin problemas, después de todo es considerado legitimo si porta la "credenciales apropiadas" (claves).
Conclusión:
En los ejemplos que hemos cubierto en este texto recorrimos los escenarios más genéricos. La conclusión a la que llegamos es que las empresas de hosting pueden aplicar medidas genéricas pero estas no son suficientes sin la colaboración de los usuarios. Las aplicaciones que se publican en la web deben ser seguras y las personas deben cuidar sus datos de acceso, si estos dos criterios no se cumplen, se rompe toda la cadena y se tiene como resultado una seria vulnerabilidad.
Usted como usuario es responsable entonces de parte de la cadena. Si usted toma seriamente en cuenta las recomendaciones, su sitio se hace más seguro y menos proclive a los ataques. En caso contrario no hay mucho que se pueda hacer para resolver los problemas de seguridad por usted, a menos que se aumentara el costo del servicio de manera tal de poder pagar un proyecto de seguridad personalizado y ejecutado para usted de manera exclusiva, eso supone varios miles de dolares por cada sitio web que alojamos, esto es precisamente lo que las grandes empresas hacen, proyectos integrales en los que las aplicaciones están completamente consideradas en la estrategia de seguridad. Esto es la expresión más sofisticada de la seguridad en internet, donde el código fue programado pensando en integrarse a todas las medidas existentes.
Para las empresas pequeñas, la opción es el software de código abierto o comercial actualizado e instalado de la manera más segura posible, antivirus en todos los pcs pero un antivirus con suscripción pagada. Tener asesoría en esta materia es clave pues después de todo es su aplicación y su negocio, no puede dejar sin puertas su oficina y pretender que nadie entre, tampoco puede ponerse una venda en los ojos y pretender que no existen riesgos.
Se puede hacer mucho por mejorar, de partida contratando buenos asesores, gente bien pagada que tenga la experiencia necesaria, luego están los productos de hosting más personalizados, vps es la opción más eficiente al costo para tener reglas personalizadas y control total. Separar el correo del servicio de hosting web en dos productos separados también es recomendable. Pagar un plan de administración para su vps de manera de contar con apoyo desde el lado del hosting también es una buena idea. En general se trata de una materia presupuestaria, existen serios limites en lo que se puede lograr en una cuenta de hosting compartido económico en materia de seguridad.
Invierta más: tenemos estadísticas que muestran que nuestros clientes en promedio invierten más en útiles de aseo para sus oficinas que en sus servicios de hosting y correo. Es una realidad insólita que se complementa con otro dato: la mayoría de nuestros clientes gastan más en televisión por cable que en el servicio de hosting y correos.
Mediadas de reacción inmediata:
1-. Uso no autorizado de ftp para cambiar contenidos desde el sitio web:
1.1. Cambie de inmediato sus contraseñas de administración y/o ftp (todas)
1.2. Verifique todos sus computadores personales basados en windows contra amenazas de troyanos, debe usar un antivirus de eficacia conocida, con licencia comercial (es decir que no sea una copia pirata), descargado desde la fuente oficial y que este actualizado a su ultima versión con todas las firmas de virus vigentes. Todos los equipos de su red deben ser verificados y los equipos portátiles que ingresen a su red deben contar con un antivirus confiables instalado y ser verificados para evitar el riesgo de propagación de troyanos. Sus sistemas operativos Windows deben ser licenciados pues es la única manera de tener copias actualizadas con todos los parches de seguridad al día. Cuando hablamos de al dia, estamos hablando literalmente, debe ser actualizado con frecuencia diaria para prevenir riesgos de seguridad llamados “zero day exploits”, es decir amenazas que se desatan y difunden de forma rapida.
1.3. Cambie la password de su red WIFI.
1.4. Elimine el contenido malicioso desde su sitio web. Como es difícil determinar que es lo que fue cambiado, recomendamos eliminar el sitio completamente y partir de una copia limpia de errores o modificaciones no autorizadas.
1.5. NO mantenga claves de sus sitios en las agendas del software FTP. Es la primera fuente de compromiso de sitios web, la mayoría de los troyanos competentes rescatan los archivos de password de las aplicaciones ftp mas usadas. (eso incluye las herramienta de desarrollo como Dreamweaver.)
2-. Inserción de archivos y modificaciones no autorizadas usando vulnerabilidades de aplicaciones php:
2.1-. Eliminar todas las aplicaciones php de su sitio, recomendamos reciclar su cuenta completamente para descartar el riesgo de archivos ocultos que pueden ser usados como puertas de acceso traseras (back door). Una vez reciclada la cuenta se le enviara una nueva contraseña, su cuenta de hosting estará vacía tal como fue entregada inicialmente.
2.2-. Actualice su código o su software cms a la ultima versión conocida y efectúe las instalaciones de acuerdo a las recomendaciones de las comunidades de usuarios y/o desarrolladores. No vuelva a republicar el contenido tal como estaba hasta antes del ataque, eso supone un trabajo inútil pues el atacante puede simplemente replicar el mismo ataque ya efectuado.
2.3-. Si sus scripts son programados por usted o es un código personalizado, usted debería considerar abandonar el uso de ese código hasta poder determinar de que forma es vulnerable.
2.4-. En el caso de ataques del tipo “deface”, lo más probable es que su sitio este enrolado en una base de datos de ataques exitosos por lo que el riesgo de nuevos ataques es más alto. Usted debe considerar la posibilidad de no volver a publicar su sitio hasta que tenga la certeza de que su código es seguro. Ante la duda, genere una versión estática simplificada de su sitio para mantener el contacto con sus clientes y asociados. Un sitio temporal de “en mantenimiento” con toda la información de contacto, es la mejor opción y previene nuevos ataques durante las horas calientes. (cuando un sitio es atacado muchos crackers de fin de semana frecuentan el sitio para ver si pueden replicar el ataque o para determinar si el sitio sido restaurado.)
Nota: La seguridad de su red y del código de su sitio web es su responsabilidad y mantener una red ó un código inseguros supone un riesgo para usted y para todos sus asociados y/o clientes y afecta a las redes con las que usted se conecta, como por ejemplo ACSYSTEM y por su intermedio a los clientes de ACSYSTEM. Usted DEBE invertir en la seguridad de su red, código y equipos, hacerlo es una forma de prevención que en realidad es una inversión.