¿Qué hace que sea difícil tener un antivirus de hardware?

27

Los sistemas de publicación son vulnerables a virus y gusanos y tener un antivirus es casi necesario. ¿Cómo es posible que no existan los antivirus de hardware?

La idea suena bastante bien, si el antivirus reside en chips reprogramables similares al que aloja el BIOS, entonces sería inmune a los ataques y aún podría actualizarse. También tendría privilegios más altos y eso resolvería el problema de no poder reparar los archivos del sistema en uso.

¿Hay algo en lo que no estoy pensando que hace esto imposible de implementar?

    
pregunta Ulkoma 23.11.2014 - 11:16
fuente

9 respuestas

24

Si el chip se puede escribir desde el sistema operativo, el malware también puede escribir en él, por lo que no ayudaría allí.

Además, el software antimalware tiene que manejar amenazas que tienen solo unas pocas horas de antigüedad. Tener que reiniciar su computadora para actualizar el software antimalware que se está ejecutando en su propio hardware sería muy malo, por lo que necesitamos poder actualizarlo desde el sistema operativo. Si podemos escribir en el chip desde el sistema operativo, también lo puede hacer el malware.

Para crear un anti-malware de hardware seguro, primero tiene que cambiar la tarea principal del programa. El software anti-malware básicamente tiene una lista de software malicioso. Si un programa está en esa lista, se bloquea y se elimina. Si no, lo dejamos correr. Cada vez que se escribe una nueva pieza de malware, debemos agregarla a la lista. Por lo tanto, el software solo puede ser reactivo, con la necesidad de actualizar la lista (enorme) todo el tiempo. Si, por otro lado, tiene una lista de programas que pueden ejecutarse y bloquear todo lo demás, no necesita actualizar esa lista todo el tiempo; Solo cuando quieras ejecutar un nuevo programa. Cualquier malware, desconocido o bien conocido, sería bloqueado por este rechazo implícito. Para muchos entornos sensibles no instalas un nuevo código todos los días. Los cajeros automáticos necesitan ejecutar una pieza de software. Nada más. La lista básicamente no cambiaría.

El problema es que no hay una lista generalmente viable de programas OK. Tendrías que tener una lista relativamente pequeña de los programas que necesitas para poder ejecutar en tu computadora, la cual debe ser hecha específicamente para ti, o deberías tener una lista enorme de cualquier programa que cualquier persona quiera alguna vez quiero correr.

Para generar esa lista, lo más fácil sería agregar todos los programas posibles y eliminar todos los malos, lo que equivale a lo que hace el software antimalware hoy en día, en lugar del rechazo implícito. Simplemente no puede obtener una lista de todos los programas no maliciosos que se escribirán sin incluir los que no lo estarán.

Podría funcionar, si lo haces bien. Pero generalmente no es factible. Además, realmente sería una cosa terrible cambiar a denegación implícita para compañías antimalware que intentan vender servicios de suscripción.

En cuanto al nivel de privilegio adicional; a veces tienes que escalar privilegios, y si puedes, el malware lo hará. Y la imposibilidad de editar archivos del sistema, acaba de agregar otra capa. La capa superior seguirá teniendo ese problema.

    
respondido por el Filip Haglund 23.11.2014 - 15:21
fuente
13

No hay dificultad en los virus / malware basados en BIOS, ya existe , como hace " malware solo ". Si tuviera que adivinar por qué no es más frecuente que los virus / malware normales, diría que esto se debe a que el software de BIOS es muy diferente de un sistema operativo normal. Hay un costo asociado con la creación de software malintencionado, y los autores probablemente están apuntando a un software en el que pueden obtener el mayor beneficio por su dinero.

Supongamos que somos desarrolladores de software por un momento. Diseñamos nuestro software para que sea compatible con la mayor cantidad de dispositivos en general. Estas son nuestras opciones con un valor genérico para las cantidades de usuarios que nos gustaría que ejecuten nuestro software:

Windows Users - 10
OSX Users - 4
Linux Users - 4
Others - 1

¿Dónde encaja BIOS en la ecuación aquí? Tomemos algunas muestras de fabricantes de BIOS

Phoenix
Asus
ACER
AOPEN
Dell
Fujitsu
Gateway
IBM
Intel

Y esa lista crece y crece. Como desarrollador de software, ¿por qué querría centrarme en crear algo orientado cuando no tenía una idea inicial de qué software de BIOS estaría ejecutando mi cliente? No es rentable. Ahora, reemplacemos la instancia anterior con un "desarrollador de software malicioso". ¿Qué incentivo tendrían para centrarse en, por ejemplo, más de 30 fabricantes de BIOS, en lugar de decir: 2 sistemas operativos muy utilizados?

Nunca ha habido un momento en el que ha sido difícil crear BIOS basado en "virus" como virus. No es rentable. La mayoría de los desarrolladores de software malintencionados crean sus ejecutables a escala, simplemente tiene sentido. Normalmente, cuando he analizado las cosas basadas en BIOS / boot, parece que ha sido un ataque altamente dirigido. El desarrollo de este tipo de explotaciones lleva tiempo, mucho reconocimiento para garantizar que esté enviando la explotación adecuada al objetivo correcto (no perdería tiempo creando malware basado en ASUS, solo para descubrir que su objetivo está utilizando el firmware del BIOS basado en Intel).

Los autores malintencionados dicen que el nivel estatal varía de manera diferente de los grupos de delitos informáticos. Algunos de estos tipos (actores estatales) desaparecen en ciertos países. ¿Por qué gastar tanto tiempo, esfuerzo y dinero para apuntar al software de la BIOS cuando puede centrarse en el sistema operativo y luego pasar a la memoria?

    
respondido por el munkeyoto 23.11.2014 - 15:11
fuente
9

Los sistemas operativos modernos ya tienen aislamiento de privilegios, y los programas antivirus modernos ya utilizan ese mecanismo para tratar de evitar la interferencia de un malware menos privilegiado.

En principio, no hay ninguna razón por la que no pueda introducir un nivel de privilegios aún mayor (lo que parece ser el impulso de su pregunta); muchas personas usan máquinas virtuales para hacer exactamente esto. (No hay razón para que esto sea "antivirus de hardware", sin embargo).

Cualquier interfaz entre los contextos de privilegios más bajos y de ejecución de privilegios más altos es, por supuesto, una posibilidad de vulnerabilidades de elevación de privilegios, que se producen tanto en el propio sistema operativo como, con una mayor rareza, a través de los límites de virtualización (por ejemplo, enlace , enlace ), así que esto no es una panacea.

Pero en realidad, los problemas con el antivirus son más profundos y más fundamentales que el problema del aislamiento de privilegios. Los motores antivirus tienen un valor cuestionable (dada la naturaleza heurística de su detección) y, a menudo, son una fuente de vulnerabilidades: la creación de una gran cantidad de analizadores de archivos que intentan analizar cada archivo en el disco (¡a menudo con privilegios elevados!) Es solo una receta para el desastre (por ejemplo, enlace , enlace ).

    
respondido por el D__ 23.11.2014 - 17:24
fuente
6

Arranque seguro

¿Qué te hace pensar que no existe? Es bastante básico en principio, debido a la falta de memoria En UEFI y el alcance limitado para parchear vulnerabilidades, en lugar de detectar código malicioso, verifica su imagen de arranque con una firma. Sin embargo, el problema principal con el arranque seguro es que no todos pueden firmar una imagen de arranque con una firma autorizada (por diseño).

Esto significa que para las personas que compilan sus propios sistemas operativos, no podrán ejecutar su propio sistema operativo. Además, si el usuario pudiera firmar su propio sistema operativo, es probable que un virus se firme a sí mismo al instalarse.

    
respondido por el Aron 24.11.2014 - 06:36
fuente
6

Además de lo que ya se ha dicho, creo que hay un problema más fundamental: el nivel de hardware ya es demasiado bajo para entender lo que está pasando.

Ha habido protecciones de hardware para cosas de bajo nivel (por ejemplo, la edición del sector de arranque), pero tomemos algunas acciones comunes de malware / PUP del día actual:

  • cambiar la página de inicio / configuración del usuario a sitios cuestionables;
  • agregar programas que se ejecutan automáticamente e intentan engañar al usuario para que pague dinero;
  • registrar las pulsaciones de teclas para robar contraseñas;
  • enviar correo no deseado / realizar solicitudes web finalizadas a DDoS;
  • cifrar archivos y pedir un rescate;
  • conectarse a cualquier recurso compartido de red posible para infectar archivos ejecutables / documentos de Office;
  • pedir comandos y ejecutarlos a un botnet-master.

Todo esto es un nivel demasiado alto para un gancho de hardware; cuando se trata de hardware, toda la lógica de alto nivel (llamadas al sistema, archivos / claves de registro, consultas de DNS, conexiones HTTP, ...) ya se ha ido, todo está "escrito en el disco en esta ubicación", "mueva esos bytes en la memoria "," envía estos paquetes de Ethernet "y similares, por lo que reconocer patrones peligrosos de alto nivel es mucho más complicado.

    
respondido por el Matteo Italia 24.11.2014 - 13:30
fuente
3

El principal problema con el software antivirus no es realmente que sea vulnerable a los ataques o que no tenga suficientes privilegios. El problema es bastante más fundamental y se aplica a todas las computadoras de propósito general (máquinas universales de Turing): en la mayoría de los casos, dado un fragmento de código, la única forma de decir qué hará es ejecutarlo. Además, el código generalmente depende de la entrada, y saber lo que hace en la mayoría de sus entradas no es una garantía de lo que hará en el resto. Esto es, en parte, la razón por la que escribir un código sin errores es tan difícil, pero también significa que el procesador de textos que acaba de instalar puede funcionar bien durante meses, y luego un día decide borrar su disco duro porque también escribió una letra uno. muchas veces, y la única forma de saber que esto sucederá es intentar todas las posibles secuencias de entrada.

Si es difícil creer que el propósito de un código podría ser difícil de entender, vea algunos ejemplos de ofuscación . Soy un buen programador de C, pero entender la entrada de Ian Phillipps me llevaría al menos media hora de concentración intensa, y este es el código C; Imagínate si fuera asamblea. Ahora imagine que trata de analizar un software del tamaño de Microsoft Word, tratando de entender lo que hace con suficiente detalle para asegurarse de que no dañará la computadora. Es casi tan literalmente imposible como es posible.

Debido a este problema fundamental, lo único que puede hacer un software antivirus es mantener una lista de "firmas" de virus e intentar encontrarlos en los programas que instala. Dado que nuevos virus aparecen a diario, obviamente es algo difícil de hacer y requiere actualizaciones constantes. Hacerlo en hardware no lo haría más fácil. Una alternativa interesante podría ser restringir la cantidad de cosas que los programas pueden hacer. Esto se hace en cierta medida: los sistemas operativos modernos ya no permiten que los programas se modifiquen a sí mismos, por ejemplo, y siempre hay límites a lo que cada programa puede hacer. Sin embargo, estos límites siempre se pueden esquivar (a menudo engañando al usuario, o explotando algún error), y probablemente siempre será así: demasiadas restricciones harán que su computadora sea inútil.

    
respondido por el Legendre17 24.11.2014 - 17:59
fuente
1

Las técnicas de detección de virus de hardware (firmware) son posibles, pero tendrían que ser diferentes para cada pieza de hardware y cada variación de firmware. Por ejemplo, como se mencionó anteriormente, el código BIOS está escrito por diferentes fabricantes (PHOENIX, Dell, etc.), y cada uno necesitaría sus propias rutinas de detección de antivirus. Dado que el firmware no cambia con frecuencia, sería más sencillo implementar una técnica de suma de comprobación para determinar si se realizaron cambios de , en lugar de mantenerse al tanto de cada nueva variante de cada nuevo virus que pueda existir. / p>     

respondido por el Ryan Griggs 23.11.2014 - 22:55
fuente
1

El software malicioso que infecta el controlador de BIOS o HDD ya existe. Por lo tanto, su antivirus HW no se podrá actualizar (y quedará obsoleto antes de ser enviado a los consumidores) o será actualizable, y sufrirá infecciones similares que su sistema operativo está teniendo en este momento.

Sería simplemente otra computadora bajo el capó de tu computadora actual. Con todos sus problemas actuales, solo en dos niveles.

    
respondido por el Agent_L 25.11.2014 - 16:42
fuente
-2

Aquí hay un ejemplo de un antivirus basado en hardware real: el FixMeStick en enlace

enlace

    
respondido por el Borat Sagdiyev 25.11.2014 - 06:58
fuente

Lea otras preguntas en las etiquetas