InicioInfoUna guía para la seguridad de sitios webs

Una guía para la seguridad de sitios webs

Info7/1/2013
Versión Móvil de este post: clic

Este arículo es una traducción que realizé durante un par de días reescibiendo ela artículo entero. Sepan disculparme si encuentran algún error dado que no soy un profesional. Las aclaraciones fueron realizadas entre corchetes "[ ]". Con el objeto de impedir cualquier incumplimiento al protocolo de Taringa! los links externos fueron removidos al igual que algunas oraciones vinculante a estos.

===



Tener tu propio sitio web es muy difícil. Además de agregar contenido, tratando de hacer crecer tu audiencia y manteniéndola, ¿ahora tienes que preocuparte de posibles malwares distribuyéndose a través de tu sitio web?

De acuerdo con El review de Malwares modernos, "el 90 por ciento de los Malwares desconocidos son liberados en la navegación por internet. "

Esto confirma que la mayoría de las infecciones basadas en la web vuelan por debajo del radar por varias horas e incluso días antes de ser detectadas por la mayoría de los productos antivirus.

Echemos un vistazo detrás de las cortinas de los sitios webs y servicios webs que albergan y distribuyen malware y cómo mejorar la protección de nuestro sitio web.

Hay millones de sitios webs y el proceso para obtener uno es bastante tribal. Sin ninguna duda la facilidad para desplegar un sitio web y los costos relativamente bajo para tener uno son responsable de muchos de los problemas de seguridad que afrontamos. Mientras usted pueda pensar en un sitio web como un blog personal, comercio electrónico o foro, los chicos malos lo ven como un recurso para muchos propósitos:

Albergar gratuitamente archivos ilegales y protegidos por copyright.
Albergar malware, phishing y falsas páginas farmacéuticas.
Enviando spam (los malwares pueden ejecutarse en un sitio web como si lo hiciera en tu computadora de escritorio).
Trucando el algoritmo del ranking de posicionamiento de motor de búsqueda de Google rellenando páginas con "backlinks" [enlaces que reciben una página web desde otras páginas webs].
Realizar ataques de Denegación de Servicios para derribar otros sitios webs.


Encontrando la(s) falla(s)

El software de los servidores webs dominante es Apache, que corre en Linux, Así como hay una creencia ampliamente aceptada de que Linux es más seguro que Windows, los servidores webs son constantemente hackeados por atacantes que van desde script kiddies [ utilizan exploits hechos por otros para atacar ] hasta pentesters profesionales [ lo que erróneamente solemos llamar "hackers" ].

Revisemos algunas de las principales razones por la que los sitios webs son hackeados:


Robar credenciales de usuarios

Usted accede a su sitio web ingresando a un Panel de Control o página de ingreso desde tu software de blogging favoritos como WordPress. Ocasionalmente, podrías usar un programa FTP para subir archivos. Si hay malware presente en tu computadora, y sucede que es un keylogger o algún otro tipo de ladrón de contraseñas, todo lo que escribas, como las configuraciones de archivos, pueden ser recolectado y enviado a los chicos malos. Del mismo modo, "loguearse" en tu sitio web desde un punto Wi-Fi libre o un acceso inseguro exponen tu contraseña.

Contraseñas débiles

Muchos atacantes dejan el nombre de usuario por defecto "admin" y eligen una contraseña que es fácil de adivinar realizando una técnica conocida como ataque de fuerza bruta. Consiste en probar centenares de miles de contraseña hasta que una entre. Si usas un típico diccionario o el nombre de una mascota tierna, podrías también darle la llaves de tu casa a los chicos malos.

Vulnerabilidades en software

Los sitios webs corren en múltiples programas a fin de cargar páginas, almacenar datos de clientes, etc. Si estos están mal configurados o desactualizados, una multitud de bugs pueden ser explotados por un atacante remoto para ganar acceso al sistema.

Configuraciones peligrosas

Un aspecto muy importante de seguridad de Linux son los permisos de archivos. Sin embargo, es una espada de doble filo porque, si son configurados adecuadamente, los permisos de archivos pueden hacer un sitio muy seguro, lo contrario también es cierto. Muchas personas no entienden los permisos bien o simplemente lo deshabilitan con tal de instalar un plugin que se queja de las restricciones.

Un método de ataque popular que ha permitido a una cantidad incontable de "script kiddies" para desfigurar sitios webs y distribuir malwares es llamado Inclusión de Ficheros Remotos (RFI) [ por sus siglas en inglés "Remote File Inclusion" ]. Consiste en engañar al servidor web haciéndolo creer que debe abrir un archivo como si realmente residiera localmente pasando parámetros especialmente elaborados en la URL. El archivo remoto puede ser cualquiera, pero los hackers usarán scripts, también conocidos como "shells" [cáscaras en inglés] (lo veremos más adelante), para ganar acceso y realizar operaciones administrativas directamente en el sitio web.

Adueñándose de la caja

La última meta de un atacante es adueñarse completamente del sistema objetivo, algo conocido como ser root. A menos que usted posea las credenciales administrativas, tu cuenta de usuario local tiene permisos muy restringidos que no le permite alterar partes fundamentales del sitio web a tu gusto. Una vez más, los servidores webs tienen suficientes vulnerabilidades para explotar y elevar los privilegios de usuario hasta ser root.

En su mayoría, los atacantes reusarán exploits disponibles públicamente, tal vez retocándolos un poquito para meter su firma o mensaje para sus amigos. Incluso exploits de hace varios años siguen funcionando, que muestran uno de los mayores problemas con la seguridad de sitios webs: la falta de mantenimientos de seguridad.

También hay algunas confusiones entre el proveedor de hosting y sus clientes en cuanto al proceso de parcheado. Algunos proveedores no realizarán mejoras por usted, en especial si instalas tu propio Sistema de Gestión de Contenidos (WordPress, Joomla!, Drupal). Hay muchas razones para eso:

El costo: Si sólo pagas unos pocos dólares por mes por el hosting del sitio web, tu proveedor no va a perder su tiempo y dinero solucionando problemas en tu sitio,
La responsabilidad: Si realizar una actualización en tu sitio web corrompe la base de datos u otra parte crítica, es una responsabilidad bastante grande que asumes. Tu compañía de hosting no es un estudio de desarrollo.


El problema es que muchos dueños de sitios webs erróneamente asumen que todo esta cuidado o que un sitio web es por alguna razón "inmune" a los problemas de seguridad.

La prevención es un largo camino

Únicamente administra tu sitio web desde un dispositivo de su confianza está libre de malwares.
No administres tu sitio web desde un punto Wi-Fi libre (por ejemplo, el StarBucks de tu ciudad). Si es necesario, por favor utiliza un programa VPN [ Red Privada Virtual ] gratuito o barato para encriptar tu conexión.
Mantén tu sitio web actualizado de la misma manera en que (quizás deberías) mantener tu computadora con los últimos parches. Si usas WordPress, el tablero de administración te avisará cuando haya actualizaciones disponibles.
Si utilizar tu tiempo en asegurar tu sitio no es tu taza de té, podrías pagar un poco más y hacer "hosting dedicado" una solución llaves en mano en donde todo esta cuidado para usted.
Usa contraseñas fuertes y cámbialas regularmente.
Respalda tu sito al menos una vez por mes.


Para los usuarioas más avanzados de aquí, vamos a arremangarnos y cavar más profundo.

Un "shell" popular conocido como C99 permite a un atacante navegar por todo el contenido del sitio web desde su navegador.


Figura 1: C99 Shell: El favorito de los hackers


Asimismo este shell te permite borrar y agregar archivos, volcar la base de datos e incluso cambiar los permisos de archivos.

En casi todos los casos en donde haya un hackeo de sitio web, encontrarás un backdoor [ "puerta trasera" ] o algo parecido. Podría no tener toda la interza gráfica, pero en cuanto se permite el acceso remoto de hackers, eso es más que suficiente para mantener el sitio web bajo su control. Naturalmente los shells son muy chiquitos en tamaño y tratarán de esconderse en ciertas direcciones o, si eso no es posible, en carpetas con los permisos menos estrictos como /images [ imágenes ] por el simple hecho de que es el luger más fácil para introducirse.

Cómo reconocer un backdoor

Accediendo a tus archivos

Si estás tratando de cazar archivos maliciosos. necesitarás acceder a la parte interna de tu sitio web. Puedes hacerlo también desde FTP, SFTP o SSH. FTP es la ruta clásica para subir archivos usando un programa como FileZilla o CuteFTP. En cambio recomiendo utilizar SFTP, que soporta encriptación (en contraposición con enviar tus credenciales de acceso abiertamente por FTP). La mejor manera lejos para acceder a tu sitio web es usando un terminal de línea de comandos por SSH. Tenga en mente que requiere de ciertos conocimientos de comandos de Linux y podría ser un poquito abrumador. Por último tambien puedes por supuesto navegar por tus archivos usando el panel de control de tu compañía de hosting (Cpanel y Plesk por nombrar).


Figura 2: El panel de control de Plesk


Patrones y ubicaciones de nombre de archivos

Aunque no sea un enfoque muy fiable, buscar shells maliciosos por nombre puede resultar rendidor. Muchos hackers no se molestarán en renombrar el backdoor que subieron. Por lo que si ves un archivo llamado c99.php ó r57.php (dos backdoors muy populares), es casi seguro que es malo. Otro truquito que utilizan los chicos malos es renombrar esos archivos con otra extensión como ".txt", por lo que prestes atención en eso (por ejemplo, c99.php.txt, r57.php.txt).

Revisar las carpetas en donde normalmente residen los plugins o las imágenes puede ser bastante revelador si buscar archivos que no no tienen nada que hacer ahí.


Figura 3: Un backdoor escondiéndose entre la carpeta Images


Fecha de modificación de archivos

Si tu sitio web fue hackeado recientemente pero dices que estaba en orden, hace un mes, entonces tienes algo en qué trabajar: las marcas de tiempo. Busca cualquier archivo añadido o modificado recientemente y trátalo como sospechoso.

Permisos y autoría de archivos

Como lo mencionamos antes, los permisos de archivos y la autoría son cruciales para mantener un sitio aweb seguro. Al mismo tiempo, muchos backdoors que son subidos a menudo se muestran con atributos poco comunes o que quedan una vez más "fuera de lugar" en comparación con los otros archivos de alrededor. Entonces, si ves un archivo con permisos "777", deberías levantar bandera roja casi al instante.

Contenido de archivos

Un método mucho más poderoso para identificar backdoors es buscar paternos y secuencias dentro de los mismos archivos. Aquí es donde entran en juego los conocimientos de comandos de Linux como grep [ utilidad de la línea de comandos ]. Esto, por supuesto, depende de tener una lista de secuencias maliciosas o paternos que son mantenidos al día. En muchos casos, podrías compararlo como la firma de virus de antivirus y una base de datos de malwares.


Figura 4: Otro backdoor llamado FilesMan


Análisis de registos

Cuando todo lo demás falla, los análisis de registro pueden ser tu mejor amigo. Asimila los archivos de registro como la caja negra que los investigadores rescatan para saber más de un accidente. Los registros contienen huellas de todos los eventos que ocurrieron en tu sitio web, ordenados por tiempo. Hay 2 tipos de registro con frecuencia mencionados: Acceso de Apache y registro de errores. Cada vez que alguien visita una página en tu sitio, se crea una inscripción en el registro de acceso de Apache. Los registros de errores muestran entradas de comandos que derivaron en error, a menudo indicando actividad maliciosam como tratar de forzar una página de login o realizando un hackeo. Como podrías imaginarlo, los archivos de registro pueden ser bastante grandes, por lo que hace que buscar algo sea un verdadero sufrimiento. Hay herramientas como OSSEC que facilitan un poquito este proceso.

Si estás usando el panel de control de tu proveedor de hosting, estos registros podrían estar ubicados en donde muestra la siguiente imagen.


Figura 5: Panel de control mostrándo los registros de Apache


Comprometimiento de todo el sitio web

Introducir un backdoor en tu sitio es sólo el primer paso de una larga cadena de eventos subsiguientes. Una vez que el atacante puede controlar tu servidor, se buscará realizar alguna clase de acción. Nota que la mayoría (si no son todos) de los comprometimiento de sitio webs son automatizados, osea no hay humano alguno sentado en un terminal y hackando tu sitio particularmente. Los scripts automatizados están constantemente buscando el hilo para hackear cualquier cosa que sea vulnerable.

Como mencioné antes, tu sitio web puede ser liberado para hacer cualquier clase de cosas. Veamos algunos de los motivos más comunes y como esta hecho.

Spam (también conocido como Pharma Hack)

Pareciera que tenemos spam para largo rato. Pocas personas saben que los spam farmacéuticos afectan a los sitios webs. Si bien puede no ser visible para los visitantes, los spam de farmacias son detectados por los buscadores. Repentinamente, tu sitio web puede estar apoyando falsas drogas y demás productos sospechosos. No sólo utilizan mucho ancho de banda, podría colocar un sitio web en la lista negra de Google con ciertas consecuencias en el ranking de búsqueda.


Figura 6: Un sitio web legítimo promocionando varias drogas


El hack farmacéutico es muy difícil de erradicar puesto que son metidos profundamente dentro de los archivos de sitio web e incluso dentro de la dase de datos.

Malware

Utilizar tu sitio web para distribuir malware es probablemente el motivo más común detrás del comprometimiento de un sitio. Un sitio web ya tiene tráfico, tal vez tenga un buen ranking de posicionamiento de motor de búsqueda, y tiene cero costo para el hacker. Para resaltar, ¿quién va a sufrir las consecuencias si queda en lista negra? Usted , y el hacker puede tranquilamente buscar otra víctima.

Mientras algunos sitios webs son usados para albergar malware, la mayoría son simplemente parte de una cadena de redirecciones, haciéndo difícil para las autoridades encontrar al culpable. Como tal el principal propósito del sitio es redirigir a tus legítimos visitantes a sitios maliciosos. Un manera de hacer eso es hackeando un archivo central de Apache llamado .htacces. Este archivo brinda muchos usos y puede, de hecho, ser configurado para mantener a los chicos malos acorralados. Al mismo tiempo, este el archivo elegido para cualquier hacker plantar su código malicioso de redirección. Muchas personas que tienen un sitio web probablemente nunca hayan escuchado hablar de .htaccess, hasta el día que son hackeados.


Figura 7: Código de redirección maliciosa dentro del archivo .htaccess


La imagen de arriba muestra una típica redirección también conocida como redirección condicional. La condición es que el visitante que entre a tu sitio provenga de algunos de los sitios (mayormente buscadores) de arriba, Si se cumple dichas condiciones, entonces la regla es enviar a los visitantes directamente hacia el sitio de los chicos malos. Este truquillo funciona bastante bien para mantenerte por debajo del radar a vos, el dueño del sitio web, quién siempre entrará la URL de tu sitio web directamente, sin necesidad de usar un buscador para acceder.

Otro método para redirigir el tráfico es hackeando el CMS [ sigla de la palabra en inglés "Sistema de Gestión de contenidos" ] de tu sitio. Si utilizas WordPress o Joomla!, sabes que necestan PHP, un lenguaje de programación universal del lado del servidor. Los archivos de núcleo de PHP pueden fácilmente ser introducidos con contenidos maliciosos de la misma manera en que un archivo de Windows puede ser infectado con un virus y seguir funcionando con normalidad. En muchos casos los códigos maliciosos se insertan o en la parte de arriba o de abajo de un sitio web, pero esto no significa un estándar.

Si navegas por tu sitio y te fijas en su código fuente, podrías ver algo así:


Figura 8: Código introducido para empujar hacia los malware encontrado


Si accedes al archivo infectado directamente desde tu servidor (via FTP/Panel de Control/SSH), podrías ver esto:


Figura 9: Un script malicioso que fue ofuscado.


El motivo por el que ves algo diferente es que el PHP, al ser un lenguaje de programación del lado del servidor, entregará la página al cliente (quienquiera que navegue tu sitio desde afuera) sin exponer el código subyacente.

Inpedendientemente los chicos malos adoran utilizar encriptación o codificación y en particular codificación Base 64. La meta es ofuscar el código lo suficiente para hacerlo difícil de saber qué hace, en especial si se esta haciendo una búsqueda por paternos y secuencias. Además, Base 64 es utilizado también por usuarios legítimos, por lo que uno no puede etiqutarlo completamente como malo si general falsos positivos.

Rogue módulos y rootkits:

Los chicos malos buscan establecer una presencia larga e indetectable en tu sitio web. Hackear el archivo .htaccess o tus archivos PHP es demasiado obvio y pueden ser limpiados com muchísima facilidad. Por estas razones, estamos viendo más y más malware binarios avanzados e incluso rootkits que son mucho más difícil de identificar y quitar.

Hackear un sitio web entero podría requerir más trabajo pero además da mucho más frutos. Después de todo, por qué los chicos malos perderían tiempo hackeando un sitio web si en todo ese tiempo ellos pueden controlar cientos e incluso miles de sitios comprometiendo un simple servidor que los alberga a todos.

En recientes noticias, hemos oído hablar de tales compromisos que afectan a Apache, por ejemplo, el backdoor Cdorked de Linux. Lo que estamos viendo son comprometimentos de sitios webs cada vez más sotisficados con cargas útiles maliciosas entregadas sobre la marcha una sola vez a la misma víctima, con mecanismos avanzados empotrados para sortear "crawlers" [ arañas webs:inspecciona páginas webs de forma metódica ] y "honeypots" [ herramienta de seguridad informática para juntar info sobre los atacantes y sus técnicas ] con el objeto de evadir detecciones.

Justamente hace unos meses [ al momento de escribir este post ] escuchamos acerca de la compañía de hosting Hetzner siendo hackeado y filtrado los datos de sus clientes. El reporte indicaban que los atacantes habían usado un rootkit nunca antes visto con un componente backdoor. Esto muestra cuán rápido los chicos malos suben por la cadena y uno sólo puede imaginarse el potencial del hackeo en la fuente misma.

Entonces, ¿cómo se ve un malware de Linux? Si alguna vez tuviste en tus manos una muestra, pueden primero analizarlo estáticamente. En el ejemplo de abajo, tomarmos al ahora famoso backdoor dorked, responsable de aquellas infecciones cautelosas en Apache. Cuando el archivo se propagó primeramente era prácticamente indetectable, sólo y lentamente se fue introduciendo en las firmas más genéricas de los principales productos antivirus una vez que se hizo público. A decir verdad, recolectar dicho malware es difícil y se necesita acceso a nivel de root además de una cooperación de parte del proveedor de hosting.

El comando de archivo en Linux mostrará el formato binario (ELF) y que fue compilado por un procesador 64-bits.


Figura 10: El comando de archivos revela información en el binario


Si estás interesado en chequear estas secciones, otro comando (objdump –h filename) los listará a todos.


Figura 11: Las diversas secciones del binario


De todas estas secciones, las siguientes son las más importantes.

.text: Contiene el código ejecutable.
.rodata: contiene las constantes de cadena.
.data: Contiene los datos inicializados.
.bss Contiene variables estáticas sin iniciar.


Otro elegante comando nos puede mostrar el volcado de cadena [ strings dump ]: strings filename | more.


Figura 12: Un volcado de cadema del binario


Si bien no es garantía, en algunos casos puedes hacerte una idea de lo que hay en el código. Pero no hay nada como desarmar el archivo para dar realmente con su núcleo. Esto es un proceso más tedioso y largo que no entraremos en detalle. Sin embargo, sabemos que todo este puede lograr con comandos nativos de Linux y algunos programas de código abierto.

Reflexión final

Como puedes ver, los malwares de servidores web han evolucionado a través de los años, similar a su contraparte del lado de los usuarios. Cuando la mayoría de los proveedores de hosting quienes supuestamente invierten mucho y tecnología son hackeados, uno tiene que preguntarse si realmente podemos protegernos de los cibercriminales. La verdad es que en su mayor parte, si corres tu propio sitio web y realizas (o tienes una empresa que lo haga) mantenimentos y prevenciones continuamente, muy seguramente estás seguros. En el campo de la seguridad nunca puedes decir que nunca, es por eso que los respaldos son tan importante para cuando algo suecede.

La mayoría de los sitios webs que fueron hackeados todos muestran fallas en una o varias áreas como contraseñas débiles, una configuración deficiente de sistemas nunca actualizados desde que se implementó y un proveedor de hosting que es barato en todos los aspectos. Hasta cierto punto, podrías comparar tu sitio web como tu auto. Si le pones combustible barato, nunca lo llevas del mecánico para mantenimiento y siempre lo dejas abierto, muy porobablemente estés en problemas.

Sitios webs que pueden servir de ayuda:

StopBadware: StopBadware.org en conjunto con su foro comunitario BadwareBusters.org se dedica a luchar contra los malware webs y capacitar gente en la problemática. También manejan un gran centro de activación de URLs para sitios webs infectados.

Herramienta de Webmasters de Google: Muchas personas se molestan cuando Google enlista negativamente su sitio web, pero por lo general hay una o varias buenas razones por lo que se hace. Este es un recurso casi obligatorio si tu sitio web esta infectado y estas en el proceso de recuperarlo.

Sucuri SiteCheck: Este escáner gratuito inspecciona tu sitio de malwares además de verficar de que no se encuentre en alguna lista negra.

RedLeg: Hay algunos buenos samaritanos ahí, personas dispuestas a ayudar a otras en foros. Este es el caso con dicha particularidad además de brindar una tonelada de consejos útiles en su sitio web.
Datos archivados del Taringa! original
63puntos
254visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

F
FCs33🇦🇷
Usuario
Puntos0
Posts15
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.