En esta entrada de la serie #MundoHacker, donde tratamos en varios tutoriales las medidas para atacar y/o defenderse en el mundo digital, cambiaremos un poco el chip, para dar algunas nociones sobre mitos, heurística y polimorfismos a la hora de diseñar virus antiguos que siguen infectando como el primer día.


Hacker_Detected

Seguramente muchos de vosotros habéis sido víctima de una pregunta como la que acompaña esta entrada, o bien os habéis preguntado lo mismo al ver que vuestro dispositivo “hacía cosas raras“.

Podría deciros que la mejor manera de no tener problemas con virus es usando el sentido común, y estaría en lo cierto. De nada sirve un antivirus si eres tú mismo quien insertas un USB corrompido en tu ordenador por el simple hecho de que te lo has encontrado en la calle, o bajas el último CD de Justin Bieber y éste viene con regalito. Más aún, si sois asiduos a blogs de seguridad (incluso a este blog), sabréis que casi no hay semana que pase sin noticias de nuevas vulnerabilidades 0-Day, en particular sobre nuestro querido y afamado plugin Java, que después de años y años de fixes y nuevas vulnerabilidades, sigue siendo uno de los vectores de ataque más útiles en la actualidad, siendo el caso más reconocido los últimos accesos a terminales de compañías de la talla de Apple, Microsoft, Twitter, Facebook, y mismamente antesdeayer Evernote.

Pero entonces, ¿qué debemos hacer para evitar resultar infectados? Primero entendamos el funcionamiento de un antivirus.

¿Cómo funcionan los antivirus?

Es ridículo que, hoy en día, sigamos pensando que tener un antivirus es más que suficiente para estar seguro. El antivirus cumple una misión muy específica con mayor o menor acierto (menor acierto la mayoría), y es la de buscar en todo programa que intenta acceder a nuestro terminal, las llamadas signatures reconocidas como código potencialmente peligroso (esto es, extractos de código maligno que tiene la empresa de turno en su base de datos). Algunos antivirus incluyen otros servicios, como análisis de puertos (cortafuegos), o servicios activos, revisión de correo en la bandeja de entrada,…, pero hay que tener claro, que estas medidas son solo una de las capas que deberíamos tener activas para evitar infectarnos con malware, siendo precisamente una de las menos eficaces, por cierto.

El mundo del malware mueve millones de dólares (tanto por parte de las compañías de antivirus y hackers éticos como por las mafias y malignos que pueblan nuestro planeta, en especial en Rusia y China, :)), por lo que vista la regla, hecha la trampa.

No hay que ser un genio del desarrollo para bajarte un programa de encoders que “reescribe” el código malicioso para que el analizador no encuentre equivalencia en su base de firmas. Por supuesto, estos encoders usan algoritmos de morfismo que al cabo del tiempo acaban siendo resueltos en directo por los antivirus mediante heurística, pero para cuando ya hay solución, habrá nuevos encoders, y vuelta a empezar.


Puesto que hacer un análisis en paralelo de cada servicio que está funcionando consumiría mucho procesamiento y previsiblemente reduciría la eficiencia del dispositivo, los antivirus suelen analizar el archivo cuando se escribe en el disco, o cuando es ejecutado. Además, los antivirus actuales, y debido nuevamente a la necesidad abusiva de copar procesamiento para elevar sus tareas, son incapaces de analizar grupos de archivos como los de los programas normales, sino que lo hacen uno a uno por separado. Conociendo estos dos datos, supongo que ya os viene a la mente cómo podemos ofuscar código malicioso de forma que pongamos en serio entredicho la labor del antivirus.

En SecurityByDefault ponen un ejemplo de exploit con Java que utiliza una clase con funciones que requiere privilegios de sistema llamada desde otra clase que no los requiere. De esta manera, y separando el código, resultaba bastante sencillo burlar al antivirus.

Otro método que se empieza a usar con cada vez más frecuencia es el de cargar en disco el código malicioso, teniendo en cuenta el peligro que ello conlleva (por el análisis del antivirus extra), pero que si está bien ofuscado, pasará inadvertido, y tendrá vía libre para campar a sus anchas en el sistema a partir de entonces. Un divide y vencerás de guión, vamos.

Ya conocemos un poco el funcionamiento de un antivirus normal, ahora vamos a hablar de buenas pautas para evitar encontrarnos con regalos inesperados.

Actualizaciones

La amplia mayoría de la gente se compra un ordenador, le pone un antivirus gratuito, y vive tan feliz hasta que pasados unos meses, se encuentra con que éste va demasiado lento, hasta el punto que acaba por llevarlo a la tienda para formatearlo y volver a empezar. Esta situación se ha agravado últimamente con la explosión de las redes sociales y los archivos en la nube, cuando de la noche a la mañana, alguien puede usurpar tu identidad y robarte o modificarte todo lo que tienes subido a internet.

Y cerca del 90% de estos ataques vienen precisamente de tener programas y el mismo SO sin actualizar.

En cada actualización (por lo general), se agregan nuevas funcionalidades, y se intenta cubrir con fixes aquellos posibles exploits que, o bien se han descubierto a tiempo, o seguramente ya se están explotando.


Y esto se extrapola tanto al antivirus, como al resto de servicios de nuestros dispositivos (muy atentos al navegador), tanto si usas Windows, como si usas MacOS, Linux, Android, iOS, WebOS, ChomeOS,…

Si te huele mal, mejor no hacerlo

Te pones a bajar el último capítulo de The Big Bang Theory y te encuentras con un .exe: Raro, raro,… Siempre que pasen cosas raras, es mejor dejarlas donde están, borrarlas, y no ejecutarlas.

Desconfiar sobre todo de los .exe y los PDFs, aunque en la práctica de cualquier archivo que o bien no sea el esperado, o bien te pida ejecutar otro servicio distinto al esperable (un .doc que llama a la consola, por ejemplo, o un plugin que al parecer te falta para visionar un vídeo en una página de novias rumanas).

La guerra del malware juega a nuestro favor

Se da cada vez más el caso de malware que, una vez infectado el terminal, fixea black doors o vectores potenciales del sistema y te limpia eficazmente de algunos malware de la competencia. Por tanto, eso de que “el ordenador me está haciendo algo raro, debo tener un virus” ya no tiene porqué ocurrir. De hecho puede que si el dispositivo te va de la noche a la mañana mejor de lo esperado, estés infectado, aunque suene a chiste.

Y es paradigmático que sean en estos casos los propios crackers quien nos ayudan a librarnos de otros malware más eficazmente que los propios antivirus.

Como parte negativa, está el hecho que por lo general, este malware tiene como principal función robar datos personales (ya sea activándote la cámara para mostrarte en páginas de vouyerismo, o con payloads para grabar qué tecleas y obtener tus cuentas y contraseñas, que acabarán seguramente en un fichero multitudinario colgado en la red).

No existe el método definitivo

Todo sistema operativo, todo programa, puede ser atacado, y ten claro que acabará siéndolo. Tener actualizado todo ayuda y mucho. También lo hace la cabeza (si huele mal,…), y como última barrera, el antivirus y un buen cortafuegos. Pero recordar que primero surge el exploit, y luego el fix que lo soluciona, así que en esta batalla siempre estamos en desventaja.


 

________

Realizar este tipo de artículos me lleva varias horas, y en algunos casos, gastos extra que habitualmente suplo de mi bolsillo, o gracias a esa comunidad de patronos que me apoyan realizando donaciones puntuales o periódicas.

Si le gustaría ver más de estos tutoriales y análisis por aquí. Si el contenido que realizo le sirve en su día a día, piense si merece la pena invitarme a lo que vale un café, aunque sea digitalmente.

hazme patrono pabloyglesias