Heurístico ¿Funciona de verdad tal como ofrecen las compañias de AntiVirus?

3 07 2009

Últimamente se lee mucho eso de ‘Heuristic Mode‘ (Modo Heurístico), pues bien, BitDefender, Norton y demás compañías de Anti Virus ofrecen este típo de protección pero, hasta qué punto es segura?

Los algoritmos heurísticos que usan los AntiVirus a día de hoy sólo se basan en reglas predefinidas, pasos que, con los conocimientos de los virus anteriores se crean reglas en tiempo real para poder ‘neutralizar’ el efecto del virus desconocido.

Aunque suene a desengaño, el modo heurístico de los Antivirus no es más que una forma de “intentar evitar” amenazas recientes, buscando una “posible (que no  necesariamente correcta)” forma de eliminarlos. Pongamos un ejemplo de como funcionan los algoritmos heurísticos hoy en día;

Supongamos que un día existió ‘DobleGusanoMix2001″, el mismo lo que hacía era, modificar el registro para cambiar las páginas de inicio actuales por otras falsas ó con publicidad (Hijacking), registraba todas las pulsaciones en un archivo y las exportaba a un archivo de texto para, posteriormente, enviarlas vía IRC (Internet Relay Chat) a su autor con la finalidad de tener todas las claves almacenadas y tener acceso a las mismas. Pues bien, imaginemos que hoy se publicase el “DobleGusanoMix2009”, éste es su variante ‘mayor’, ha aprendido de sus errores en el pasado como por ejemplo almacenar las contraseñas en un archivo de texto en modo visible y ha pasado a almacenarlo en archivos temporales cambiando secuencialmente el nombre del archivo cada ‘X’ tiempo. Nosotros y nuestro fabuloso ‘QuitaBichoQueTeMeto v2.020.2390’ con modo heurístico activado, al encontrar el virus pero NO reconocerlo por la firma (todos los virus llevan una especie de ‘firma’ que los hace reconocibles), de modo totalmente independiente intenta analzar la amenaza buscando ‘similitudes’ con otros virus del pasado y controlando las actividades del proceso (virus actual). Como ya hemos dicho el ‘DobleGusanoMix2009’ ya no guarda un archivo de texto con las contraseñas, lo cual ya hace que el Antivirus dude ante la búsqueda de escritura de archivos en ‘X’ directorio, el gusano ya no abre conexión de IRC permanente atraves del puerto 6667 sino que, cada 33 días conecta al IRC para ‘hablar’ con su dueño y así informarle, ahora támpoco modifica el registro en el momento de la instalación sino que, para evitar ser detectado, muestra Pop-Ups (Ventanas Emergentes) al usuario mientras navega para que parezca un pop-up del mismo navegador con la intención de crear confusión y así recibir la “Confirmación” para que sea una interacción consentida y que con un poco de suerte, el antivirus no percate diferencias. Con este último paso, nuestro pequeño ‘monstruo’ ha modificado la página de inicio de la víctima apuntando o bien a una réplica de Google (recordar que para que fuera una réplica totalmente creible tendría que modificar el archivo hosts de Windows).

Con todas estas ‘mejoras’ en el virus, el antivirus podría ser capaz de detectar en parte el código del mismo si tuvieran similitudes, el cálculo de hash, etcétera. Ahora la duda nos asalta, qué algoritmo tan maravilloso y asombroso es capaz de detectar la mala fé del ‘proceso’ que tan solo modifica el registro previa aceptación del usuario y sólo realiza conexiones cada 33 días? el código del virus no lo hemos comprobado ya que las heurísticas comprueban las acciones de los procesos en tiempo real, no el código que seguramente esté encriptado como la mayoría de los programas hoy en día.

Sería capaz cualquier compañía de Antivirus de crear un algoritmo que sea capaz de distinguir entre una aplicación malintencionada y una normal?

Este texto tan solo intenta simplificar lo que las compañías de Antivirus nos venden en sus nuevas versiones como si fuera algo milagroso, en ningún caso intento desprestigiar, en cualquier caso, intento explicar a la gente de una forma clara y sencilla lo que se ofrece como solución definitiva.

Cualquier añadido/Consejo será bien recibido, espero vuestros comentarios.





Twitter objetivo de los gusanos Web mediante XSS

17 04 2009

Un gusano Web y tres variantes más se han extendido en cientos de cuentas de usuario en la red Twitter en el fín de semana, produciendo 10,000 posts ó “twiteos” a otros usuarios, la compañía lo ha confirmado el Domingo.

El gusano, que empezó a expandirse a las 2 A.M en la noche del Sábado, ha usado un exploit de JavaScript para ejecutar una vulnerabilidad XSS (Cross Site Scripting) en Twitter, infectando perfiles de usuarios con código malicioso. Ha comprometido cuentas enviando así mensajes de infección a otros para seguir infectando.
Un residente de Brooklyn de 17 años y dueño de La competición Twitter, StalkDaily, reconoce la creación y liberación de los gusanos de acuerdo a varios nuevos informes, Yo sólamente lo hice porque estaba aburrido“, dijo el propio autor para CNET News.com. “Yo no pienso que Twitter corrija el fallo muy pronto, pero támpoco pensé que el gusano se expandería tan rápido como lo ha hecho“.

Twitter que ha nombrado al gusano comoStalkDaily“, ha recordado al programa Samy que infectó en 2005 a los usuarios de MySpace, afirmando que la compañía tomará medidas legales contra el autor.

“En ese momento, MySpace tómo medidas legales contra el creador del virus resultando en una sentencia severa”, la compañía dice en su blog que:  “Nos tomamos la seguridad con mucha seriedad y seguiremos todos los frentes“.
Mientras que el gusano StalkDaily no ha robado los credenciales de los usuarios, los expertos de seguridad que en el pasado los gusanos como éste, hicieron un daño significativo ya que las redes sociales aumentas su popularidad. Similar al gusano Samy que se expandía mediante MySpace en el año 2005, el gusano StalkDaily ha seguido unas cuentas de usuario particulares, como en el caso “OneDegrees”. Los futuros gusanos web se podrían expandir mediante redes sociales, infectando el ordenador de las víctimas y continuar expandiendose ó saltar a otras redes sociales.

Twitter está actualmente realizando análisis de el incidente y planea publicar detalles del mismo.
“Todavía estamos observando todos los detalles, limpiando y seguimos en alerta”, ha dicho la compañía en su blog. “Cada vez que libramos una batalla, evaluamos nuestras prácticas de programación web para aprender cómo podríamos hacerlo mejor para prevenir ésto en un futuro“.

Fuente:  SecurityFocus (en Inglés)

Traducción por Cross.





EvE Online Cheats, Bots, Trainers, ISK, SilkRoad Online, RuneScape, OGame

16 03 2009

Este post se lo dedico a un compañero de viciadas (Ese Tony!).

Aunque el título indique lo contrario este post sólo trata de aclarar ciertas dudas que pueden surgir en la vida de todo jugador; ¿Cómo subimos de nivel rápidamente? ¿Cómo conseguimos gold/ISK/Dinero rápidamente en un MMORPG ó en cualquier RPG Online? (También incluyo a OGame).

Bien, la respuesta es simple, en ningún lado, por una parte lo que puedes encontrar en la red son websites que te ofrecen “Una joya” y sólo es un simple EXE que no es más que un simple keylogger ó es un espammer.

Por otra parte, también puedes encontrar sitios web que te ofrecen el servicio de su (ro)bot, que no tiene nada de fantástico, sólo que realiza las típicas tareas sin tu presencia; Lo que definimos como Automatizado. Se encarga de subirte de nivel mientras tu estás jugando la típica partidita a la PS3 (PlayStation 3, para l@s más despistad@s) mientras dejas tu personaje trabajando por así decirlo.

No he de recordar que el uso de programas como pueden ser los bots  en cualquier juego que se precie, conlleva a una expulsión y a un veto durante ‘X’ tiempo, muchas veces la gente “se libra” porque ha comprado en el juego ‘cierto típo de objetos “Premium”‘ y los desarrolladores se dan por contentos con esa pequeña ‘aportación’.

¿Porqué no hay trucos (cheats) para Eve Online ó Silkroad?

R: Símple, nuestros personajes (Véase Chars) se almacenan en las bases de datos del servidor del juego (Desde ahora Server Side), con lo cual nosotros no podemos modificarlo desde la máquina (Desde ahora Client Side), otra cosa esque tuvieras acceso al servidor central…. (Ni te molestes, el FBI estará esperandote a la vuelta de la esquina cuando vayas a por pán.).

¿Los bots sí funcionan en los juegos?

R: Sí, están diseñados principalmente para que funcionen, aunque antes de pagar por nada hay que informarse de que sean legales y no albergen ninguna sorpresa en su código (Que por cierto, no es código abierto, os lo aseguro..).

¿Podrías explicar como podría conseguir millones de Oro/ISK/Cash en el SilkRoad/Eve/RuneScape/Ogame?

R: Tienes una opción bastante simplona, comprar el oro. Hay millones de sitios web que se dedican a la venta de oro, aunque no sea totalmente lícito, esta actividad la realiza mucha gente (Sí sí, toda esa gente que ves con trajes +15 INT, +15 STR y el traje a +20.. y sin contar con esa espada (Blade) SoSuN a +18..), aunque muchos de los juegos que he mentado NO las aceptan, támpoco ponen vetos directos hacia las mismas.

Una explicación de el porqué no se pueden alterar ciertas ‘variables’ (Como pueden ser Nivel, Dinero, Experiencia, Etc) de nuestro personaje sin mayor complicación es por lo que ya he comentado anteriormente, nosotros cuando nos ‘logeamos’ en el servidor del juego (Client <–> Server), sólo enviamos un usuario y una contraseña, es el servidor el cuál busca en la base de datos nuestras estadísticas. Hay diferentes juegos y diferentes desarrolladores y aunque a día de hoy no he visto muchos juegos populares que usen técnicas tan antigüas como puede ser almacenar el personaje de cada persona en el propio ordenador del usuario, todavía quedan algunos despistados (Client Side). Si por una casualidad estarías en esta página en busca de como “hacerte rico” en el juego rápidamente y tienes la suerte de que tu juego favorito usa esta última técnica mencionada, sería tan facil como poner en GoogleHow to modify ‘PK3’ files” (PK3 Archivos de texturas/sonidos de SilkRoad, modifica la palabra ‘PK3’ por el típo de archivo de tu juego en la carpeta de instalación del juego) y así, obtendrás millones de resultados con tutoriales (algunos falsos) con los cuales podrás modificar tu personaje hasta tal punto que, ni tú mismo sabrás que ‘ese’ era tu personaje.

Espero que os sirva de ayuda.





Dúo Indispensable para tu PC

17 10 2008

Bien en este artículo os traigo un pequeño dúo de herramientas que no nos deberían faltar a los más exigentes en cuanto a utilidades se refiere. Claro está que hablo de herramientas en el ámbito de Linux, aunque también he de decir que algunas (o la mayoría) están disponibles en su versión Win32.

Empezemos por Woof, un simple pero versatil servidor que tan solo comparte un archivo por sesión.

Woof es acrónimo de Web Offer One File (Una única oferta de archivo vía web).

Por ejemplo cuando estás en el trabajo, en clase o bien en casa de algún/alguna conocido/a y tu tienes un archivo que necesitas compartir, si el archivo es demasiado pesado para subirlo a un servidor de ficheros como podría ser RapidShare, aquí entra en acción nuestro amigo Woof, podemos iniciar el servidor con un único archivo a compartir sin mayor complicación.

(He de decir que conocí esta utilidad gracias a la revista Linux Magazine a la cuál soy habitual.)

Los requisitos para empezar a usarlo es tener Python instalado, y si vamos a compartir directorios necesitaremos tar. (Para los despistados, Python es un intérprete de el lenguaje de programación Python que, por defecto, suele venir instalado en la mayoría de las distribuciones al igual que tar que es el encargado de gestionar los archivos comprimidos).

A compartir sea dicho!

El uso es bastante sencillo, aquí expongo algunos de los comandos que usaremos.
woof -i Dirección IP -p Puerto -c veces/contador [-u] Fichero/Directorio

El argumento -i como podreís apreciar es para indicar la IP en la cuál se ofrece el fichero.
‘-p’ Indica el puerto en el cuál se ejecutará el servidor, ‘-c’ contará las veces que ese fichero se servirá.
Y por último, ‘-u’ es usado si queremos compartir un tar descomprimido.

Un ejemplo;

woof -i 69.96.69.96 -p 80 -c 3 dir.tar.gz

Ahora comenzamos con TrueCrypt, TrueCrypt es una aplicación o suite de encriptación,
la cuál nos ayudará a mantener nuestras particiones seguras de vistazos indeseados.
TrueCrypt tiene una interface gráfica bastante familiar y no requiere de un gran conocimiento para
comenzar a usarla.

Algunas de sus funcionalidades;

  • Crea un disco virtual encriptado en un archivo y lo monta como si fuera físico.
  • Encripta todo un disco duro o un pendrive.
  • Encripta una partición donde esté instalado algún sistema operativo.
  • La encriptación es automática, en tiempo real (al vuelo) y transparente.
  • Ofrece dos opciones en caso de que te veas obligado a revelar tu contraseña;1) Disco Oculto (Estenografía) y sistema operativo oculto.

    2) No se puede identificar el volumen TrueCrypt (los volúmenes no pueden ser distinguidos de otro típo de datos normales y corrientes).

  • Algoritmos de encriptación; AES-256, Serpent, y Twofish. Modo de operaciones: XTS.

Sobre TrueCrypt no puedo contar mucho más, ya que todavía no le he metido mano demasiado tiempo pero por lo que se puede ver,
promete ser un gran programa 🙂

Y como novedad de WordPress, he puesto una pequeña encuesta que no cuesta nada responder, no me seais vagos ;).





Ubuntu 8.04 Hardy Heron Alpha 6 Ya disponible

9 03 2008

Aquí os traigo la última Alpha pública de Ubuntu. Hablando de novedades lo nuevo que podemos apreciar frente a las otras Alphas que ya os he comentado estas son las nuevas;

Integración de ActiveDirectory

Likewise Open está disponible atraves del repositorio “Universe”. Esto permite la integración de Ubuntu con una red de Active Directory. Los usuarios pueden usar sus credenciales AD (ActiveDirectory) para registrarse desde sus Ubuntu’s y acceder a cualquier servicio kerberizado que ofreca un servidor Ubuntu.

Soporte iSCSI

iSCSI ha sido totalmetne integrado con el kernel, permitiendo a ubuntu montar objetivos iSCSI como un dispositivo más.
iSCSI está disponible en la versión de Servidor de Ubuntu si iscsi=true (Verdadero) en la linea de comandos del kernel en el principio de la instalación.

Protección de Memoria

Se han añadido algunos checkeos adicionales para que así /dev/mem y /dev/kmem solo puedan usarse para acceder al dispositivo de memoria. Estos cambios ayudaran a defendernos contra los RootKits y otros códigos maliciosos.
Los 64k más bajos de memoria no podrán ser accesibles por defecto. Esto ayudará a defendernos contra códigos maliciosos que intentan hacer uso de los bugs (Fallos) dee el kernel y convertirlos en vulnerabilidades de seguridad.
Aplicaciones compiladas como Position Independent Executables (PIE && Ejecutables de Posición Independiente) son ahora puestos en localizaciones inpredecibles haciendo más dificil explotar vulnerabilidades de seguridad.

Aquí podeís encontrar los enlaces para Ubuntu y sus distribuciones hermanas:

http://cdimage.ubuntu.com/releases/hardy/alpha-6/ (Ubuntu)
http://cdimage.ubuntu.com/kubuntu/releases/hardy/alpha-6/ (Kubuntu)
http://cdimage.ubuntu.com/kubuntu-kde4/releases/hardy/alpha-6/ (Kubuntu with KDE4)
http://cdimage.ubuntu.com/edubuntu/releases/hardy/alpha-6/ (Edubuntu)
http://cdimage.ubuntu.com/jeos/releases/hardy/alpha-6/ (Ubuntu JeOS)
http://cdimage.ubuntu.com/xubuntu/releases/hardy/alpha-6/ (Xubuntu)
http://cdimage.ubuntu.com/gobuntu/releases/hardy/alpha-6/ (Gobuntu)
http://cdimage.ubuntu.com/ubuntustudio/releases/hardy/alpha-6/ (UbuntuStudio)





Juego de la vida (Juego en C)

7 03 2008

Hoy quería hablaros de un juego que ha publicado mi compañero Imydes y el cuál quiere compartir con todo el mundo. He aquí la creación de “Un Juego de la Vida”;

Los Requisitos: con las típicas librerias ANSI C y un compilador de C en condiciones (Veasé gcc(Linux/Unix) ó Dev C++ (Win32) debería bastaros para probar el juego, aún así cualquier duda que se os proponga podeís dejarmela aquí o en la web de mi compi sin ningún problema. La licencia es CC (Creative Commons)

Web Oficial de Imydes

/*
Autor: Imydes
Descripció: Joc de la vida
Data: 21/02/2008
*/

#include

/*****************************
* Definicions *
****************************/
#define MAX_COOR 7

/*****************************
* Tipus *
*****************************/

typedef int Tterreny[MAX_COOR][MAX_COOR];

/*****************************
* Capcelera de les funcions *
******************************/

void preparar_terreny(Tterreny &original, Tterreny &temporal);
void inserir_habitants(Tterreny &original);
void mostrar_terreny(Tterreny &original);
int obtenir_generacions(void);
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal);
void copiar_terreny(Tterreny &original,Tterreny &temporal);

int main() {

int generacions;
Tterreny original, temporal;

printf(”Introduce los habitantes mediante coordenadas, la tabla es de 5×5\n”);

preparar_terreny(original, temporal);

inserir_habitants(original);

mostrar_terreny(original);

generacions = obtenir_generacions();

resoldre_terreny(generacions, original, temporal);

return 0;
}

/* Copiar Terreny */
void copiar_terreny(Tterreny &original,Tterreny &temporal) {
int fila, col;
for (fila = 1; fila < MAX_COOR-1;fila++)
for (col = 1; col < MAX_COOR-1; col++)
original[fila][col] = temporal[fila][col];
}

/* Gestió d’habitants del terreny */
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal) {
int g, fila, col;
int contador;
for(g=0;g
printf(“GENERACION %i\n”,g+1);
for (fila=1;fila
for (col=1;col
contador = 0;
contador = original[fila-1][col-1]+original[fila-1][col]+original[fila-1][col+1];
contador = contador+original[fila][col-1]+original[fila][col+1];
contador = contador+original[fila+1][col-1]+original[fila+1][col]+original[fila+1][col+1];

/* Decidim si creem o eliminem un habitant */

if (original[fila][col] == 1) {
if (contador == 2 || contador == 2 ) {
temporal[fila][col] = 1;
}
else {
temporal[fila][col] = 0;
}
}
else {
if (contador == 3) temporal[fila][col] = 1;
else temporal[fila][col] = 0;
}
printf(“%i”,temporal[fila][col]);
}
printf(“\n”);
}
copiar_terreny(original,temporal);
}
}

/* Preparació del terreny */
void preparar_terreny(Tterreny &original, Tterreny &temporal) {
int fila, col;
for (fila=0;fila
for (col=0;col
original[fila][col] = 0;
temporal[fila][col] = 0;
}
}
/* Sistema d’insersió d’habitants */
void inserir_habitants(Tterreny &original) {
int fila, col;
do {
scanf(“%i”,&fila);
scanf(“%i”,&col);

if (fila > 0 && fila < MAX_COOR-1 && col > 0 && col < MAX_COOR-1)
if (original[fila][col] == 1)
printf(“Ya tienes un habitante en la casilla %i:%i\n”,fila,col);
else
original[fila][col] = 1;
else
if (fila != 0 || col != 0) printf(“El terreno es de 1×5 x 1×5\n”);
}while(fila != 0 || col != 0);
}

/* Obtenim el nombre de generacions */
int obtenir_generacions(void) {

int generacions;
printf(“Dime el numero de generacions que quieres que haga (valor positivo)\n”);

do {
scanf(“%i”,&generacions);
printf(“\n”);
}while(generacions < 1);
return generacions;
}

/* Mostrem el terreny amb els habitants */
void mostrar_terreny(Tterreny &original) {

int fila, col;

for (fila=1;fila
for (col=1;col
printf(“%i”,original[fila][col]);
printf(“\n”);
}
}

PS: Como ya sabreís WordPress no preformatea correctamente el texto, asíque para una versión completa del código fuente, ir al weblog del autor, más arriba indicado.





Koders Una manera de ver el Open Source

9 12 2007

Koders nos permite realizar busquedas en proyectos Open Source en cualquier lenguaje de programación y en cualquier Licencia.
Si necesitas un empujón y necesitas una parte de código ya escrito Koders es tu lugar.
Koders también se nos ofrece en formato Plugin para nuestro Eclipse, muy útil cuando estas corriendo eclipse y necesitas en ese preciso momento consultar alguna parte de código sin salir de Eclipse.
Con esta pequeña aportación espero haber solventado alguna que otra duda que nos suele aparecer a la hora de escribir código que a veces dudamos de que el sintaxis que hemos escrito sea el correcto.