Hace apenas unas semanas el mundo de los virus informáticos volvía
a experimentar una revolución en el campo de la investigación y el
desarrollo de nuevas técnicas de infección; en esta ocasión se ha
tratado de «Stream», que pasará a la historia por ser el primer
patógeno de tipo «companion» nativo para sistemas de tipo NTFS.
La inmensa mayoría de los virus informáticos, desde la aparición
de «Brain» en 1986, se puede subdividir en dos grandes grupos, en
función del tipo de infección aplicada a los ficheros «huésped» o
víctimas del contagio: «appending» (anexión del código maligno al
final del archivo), la más común, especialmente con la llegada de
los sistemas de 32 bits, y «prepending» (adhesión del cuerpo del
virus antes del código original), característica de un nutrido
grupo de especímenes experimentales de las primeras oleadas en la
era del DOS.

Otros métodos menos convencionales pero también frecuentados por
diversos autores han sido el de «overwriting» (sobreescritura
del fichero huésped con el código vírico) y el de «spawning» o
«companion», consistente en sustituir un programa original con
una copia del virus que, al ser ejecutada, se encargará de correr
la aplicación huésped, previamente renombrada y escondida de los
ojos del usuario afectado.

El origen de esta técnica de infección -que generalmente conserva
intacto e íntegro el código de los ficheros originales- se puede
encontrar en la jerarquía ejecutiva prevalente en el DOS, mediante
la cual un fichero de extensión COM con idéntico nombre que uno
de extensión EXE estaba dotado de preferencia. Así, se daba la
circunstancia de que si el usuario ejecutaba «programa» -sin
especificar extensión alguna- y existían los ficheros de nombre
«programa.exe» y «programa.com», era este último el primero en
el orden de ejecución.

Aprovechándose de esta característica, los virus «companion» más
antiguos lo tenían tan fácil como buscar archivos de un tipo
determinado de extensión y renombrarlos, creando una copia de
su propio código con el nombre original del fichero afectado, de
forma que la carga maligna sea ejecutada cada vez que el usuario
desee correr un programa, que acaba siempre por ser lanzado por
el propio virus, tras haber llevado a cabo sus menesteres.

Años más tarde, cuando una técnica de semejante primitivismo ya
había quedado desfasada, los autores de virus han vuelto a darle
la vuelta a la tortilla y han encontrado una manera de volver a
dar vida a un resorte de tecnología vírica que había caído en el
olvido; uno de los programadores de «Stream», el checo «Benny»,
ya había pasado a la posteridad meses antes tras su participación
en la escritura de «Install», el primer virus para Windows2000.

La adaptación del mecanismo «companion» puesta en práctica por
el virus «Stream» ha sido ya bautizada como «stream companion»,
de donde el patógeno ha tomado su nombre. Se trata de un método
de infección válido única y afortunadamente para ordenadores
con sistema de ficheros NTFS, el que emplean, principalmente,
tanto WindowsNT como Windows2000. El motivo radica en el hecho
de que en estas plataformas ha sido habilitado por Microsoft, su
desarrollador, un complejo mediante el cual cada fichero posee
un flujo de datos o «data stream» al que se pueden asociar otros
elementos análogos, accesibles mediante su nombre personal, que
responde al formato «nombre_fichero:nombre_flujo».

La asociación de un flujo con su fichero es permanente, y así,
resulta imposible de acceder o modificar sin previa referencia
a su «compañero», al que permanece «grapado» incluso si éste es
renombrado o borrado, algo que complica sobremanera la detección
de «Stream», al no existir herramientas incluidas por defecto
en el sistema para editar o visualizar los flujos de un archivo.

Lejos de tratarse de una técnica de implementación laboriosa,
la longitud del código de este patógeno es tan insignificante
como irrelevante, especialmente tras haber sido procesada por
el compresor «Petite», que reduce el tamaño de «Stream» a tan
solo cuatro kilobytes. Al tratarse de un espécimen de carácter
experimental, de su acción expansiva potencial podría decirse
que se encuentra en relación directamente proporcional con la
longitud del virus: su acción maligna se limita a intentar
infectar todos los ficheros del directorio actual. En caso de
fallo, «Stream» muestra el siguiente mensaje en pantalla:

[ Win2k.Stream by Benny/29A & Ratter ]

This cell has been infected by [Win2k.Stream] virus!

[ OK ]

La rutina de contagio, por su parte, se limita a acceder a cada
uno de los ficheros encontrados y a copiar el código original en
un nuevo flujo, de nombre «STR», sustituyéndolo en el «stream»
principal por una copia del virus, que, tras ser ejecutada, se
encarga de ceder el control al archivo huésped, accesible por
medio de la ruta «nombre_fichero:STR». Como nota anecdótica
cabría resaltar que -por motivos hasta ahora desconocidos- a
pesar de que la técnica de «stream companion» es perfectamente
compatible con WindowsNT, los autores de «Stream» incluyeron en
el código de su creación una rutina que le impide correr en
otras versiones del sistema operativo de Microsoft distintas a
Windows2000, reduciendo aún más si cabe el posible radio de
acción del virus en caso de ser liberado.

Giorgio Talvanti
talvanti@hispasec.com

Más información:

AVP-ES
http://www.avp-es.com/noticias/stream.html

F-Secure
http://www.f-secure.com/v-descs/w2kstrm.htm

NAi
http://vil.nai.com/vil/dispVirus.asp?virus_k=98803

Panda Software
http://www.pandasoftware.es/vernoticia.asp?noticia=759

Sophos
http://www.sophos.com/virusinfo/analyses/w2kstreams.html

Symantec
http://www.sarc.com/avcenter/venc/data/w2k.stream.html

Trend Micro
http://www.antivirus.com/pc-cillin/vinfo/virusencyclo/default5.asp?VName=PE_STREAM.A

Compártelo: