Seria este el programa que le pondrá fin a los virus?

Cual seria sus percepciones u opiniones de este programa?

Seria este el programa que le pondrá fin a los virus?

En esta entrada voy a comentar muy brevemente cómo han ido evolucionando los sistemas antivirus hasta la actualidad y los problemas que han ido surgiendo hasta llegar a la tecnología Softavir (cryptographic whitelisting).

Los sistemas antivirus tradicionales utilizan listas negras para la detección de malware. Esto quiere decir que permiten el funcionamiento de todos los programas salvo aquellos que tienen en una lista de software clasificado como malicioso.
Obviamente, esta política funciona muy mal cuando se trata de malware desconocido.

En un intento por mejorar el sistema y ofrecer protección frente a nuevas amenazas se utiliza también la heurística en combinación con listas negras. La heurística permite detectar amenazas similares a las ya conocidas y funcionó más o menos bien hasta la actualidad.

Actualmente se conocen diversos problemas en la política de lista negra que provocan, como bien se comenta en el libro “Hacking exposed: Malware and Rootkits”, que haya que cambiar y buscar otro tipo de soluciones.

Entre estos problemas se pueden citar algunos como los siguientes:

– Las bases de datos de los antivirus tradicionales crecen desmesuradamente de manera que no se pueden mantener debido a la aparición constante de nuevas amenazas.

– Cuando un desarrollador de malware, crea un malware muy pequeño, los antivirus tradicionales tienen problemas para añadirlo a la lista negra ya que una firma tan poco característica, produce falsos positivos en software legítimo.

– Las mafias dedicadas al desarrollo y mutación de malware han conseguido acortar su ciclo de vida y dejar un paso por detrás a los antivirus. Cuando un malware es detectado, otro nuevo o una mutación es la que está infectando a los usuarios.

– La heurística tiene serios problemas para detectar malware nuevo ya que tiene un tiempo y unos recursos limitados para hacerlo (no puede detener la ejecución de un programa un minuto ni tampoco consumir mucha CPU, RAM, etc…). ¿Qué pasa si un malware se porta bien durante el primer minuto de ejecución? ¿Puede la heurística luchar contra los complejos sistemas criptográficos, empacadores y mutaciones de malware?

caja-softavir-trialPara solucionar esta serie de carencias nace Softavir, el software antivirus que basa su tecnología en listas blancas. Esto quiere decir que prohíbe la ejecución de todos los programas salvo aquellos que estén en la lista de conocidos como benignos. El antivirus protege también de dlls maliciosas, con lo cuál el hooking ahí está también incluído. Y la lista blanca consiste en un XML en el que se incluyen los hashes de los binarios.

El malware no puede engañar a la lista (esto lo garantiza el algoritmo criptográfico SHA256).

No requiere actualizaciones, apenas consume recursos por no requerir heurística y protege totalmente frente a nuevas amenazas ya que estas no están en la lista de software permitido.

VÍDEO EXPLICATIVO DEL PROGRAMA


Si después de leer esta entrada deseas protegerte con Softavir, puedes hacerlo utilizando el siguiente enlace:

http://www.softavir.com/

CODIGO  FUENTE PARA LA AUTOMATIZACIÓN DEL PROCESO

Código escrito en python que permite generar automáticamente una lista blanca de ejecutables.
De esta manera automatizada se permite ahorrar tiempo en la configuración de Softavir.

Autor: David Álvarez (a.k.a. Softavir)

————————————————————————-

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Descripcion: Codigo escrito en python que permite generar automáticamente una lista blanca de ejecutables.
# De esta manera automatizada se permite ahorrar tiempo en la configuración de Softavir.
#
# Autor: David Álvarez (a.k.a. Softavir)
#

import sys
import getopt
import os
import hashlib
from Tkinter import Tk
from tkFileDialog import askdirectory

BLOCKSIZE = 65536
hasher = hashlib.sha256()
whitelist=open(“whitelist.xml”, “wt”)

def generateWhitelist(ruta):
print(“Espere por favor.\n”)
print(“Se esta generando la lista blanca de ejecutables para la ruta: ” + ruta + “\n”)
print(“Pulse Ctrl+C para abortar el proceso de generacion de lista blanca.\n”)
whitelist.write(“\n”)
whitelist.write(“\n”)
whitelist.write(” \n”)
try:
i=0
for root,dirs,files in os.walk(ruta):
for file in [f for f in files if (f.lower().endswith(“exe”) or f.lower().endswith(“com”) or f.lower().endswith(“bat”) or f.lower().endswith(“cmd”))]:
i=i+1
with open(os.path.join(root, file), ‘rb’) as afile:
buf = afile.read(BLOCKSIZE)
while len(buf) > 0:
hasher.update(buf)
buf = afile.read(BLOCKSIZE)
whitelist.write(” “)
whitelist.write(hasher.hexdigest()+”\n”)
except KeyboardInterrupt:
whitelist.write(” \n”)
whitelist.write(“\n”)
sys.exit(0)
whitelist.write(” \n”)
whitelist.write(“\n”)
if __name__ == “__main__”:
Tk().withdraw()
directorio = askdirectory()
generateWhitelist(directorio.replace(“/”,”\\”))

——————————————————————————–

 

Leave a Comment