¿Cómo el software AV se asegura de que los archivos en cuarentena nunca se ejecuten? [duplicar]

17

Esta pregunta del Superusuario me hizo preguntar, ¿es realmente una buena idea mantener los archivos en cuarentena cuando no ¿No sabes lo que son todavía? Por lo que sé, hay más o menos 2 pasos que deben realizarse para "perder el control" de su sistema. Primero tiene que haber algún código malicioso para ser inyectado en el sistema y luego debe haber una forma de ejecutarlo. Entonces, ¿qué medidas toma el software AV para los archivos "en cuarentena" para evitar esto? Supongo que el problema no es el caso en el que el usuario solo está ejecutando el archivo. Es decir. ¿Cómo asegurarse de que no un error esté causando un desbordamiento que resulte en la ejecución del código?

En otras palabras: ¿qué hace el software AV para evitar la ejecución de archivos en cuarentena, y puedo confiar en que no puedan ejecutarse de todos modos?

NOTA: no estoy preguntando acerca de las formas en que los AV realizan la función de cuarentena. El núcleo de la publicación es: "¿Cuáles son las formas en que las funciones de cuarentena se están protegiendo a sí mismas / a los archivos en cuarentena para evitar que sean engañados / decodificados / lo que sea y se ejecuten de todos modos y qué tan probable es que esto pueda suceder?"

    
pregunta Zaibis 04.07.2016 - 13:51
fuente

4 respuestas

17

Hay un par de formas en que un programa antivirus podría prevenir la ejecución de un archivo en cuarentena:

  • Manténgalo abierto para acceso exclusivo. Simplemente puede usar la API normal CreateFile y pasar el cero para dwShareMode , previniendo cualquier otro tipo de acceso al archivo. Si no se puede leer un ejecutable, no se puede ejecutar. Dado que los programas antivirus suelen ser una de las primeras cosas que se inician, pueden volver a abrir todos esos archivos cuando el sistema se reinicia.
  • Use Políticas de restricción de software . Cuando se instala el programa antivirus, puede crear un SRP que bloquee la ejecución de programas en el directorio de cuarentena.
  • Enganche una función que sea crítica para la creación de un proceso. El proceso de inicio siempre implica NtCreateSection , por lo que el controlador del modo kernel del programa antivirus podría enganche eso y determine si el archivo en cuestión es un ejecutable y verifique si se solicita PAGE_EXECUTE .

De estos, solo el primero es útil para los no programas (por ejemplo, documentos que pueden contener exploits). Para vigilar todas las cargas de archivos, el programa antivirus podría enlazar NtCreateFile , ya que ningún archivo puede ser leído sin invocar eso. Alternativamente, para observar el marcado de las páginas como ejecutables, podría enlazar NtProtectVirtualMemory . De cualquier manera, el controlador en modo kernel podría mirar un poco a lo que sucede en el espacio de usuario antes de permitir que la operación continúe.

La solución más fácil, sin embargo, sería cifrar los archivos en cuarentena con una clave que no está almacenada en el disco. Con tal sistema, el usuario tendría que escribir una contraseña para descifrar y poner en cuarentena los archivos. Esto podría lograrse con bastante facilidad con algunas criptografías de clave asimétrica.

    
respondido por el Ben N 04.07.2016 - 17:42
fuente
6

Las funciones de AV de cuarentena mencionadas en la respuesta antes de asegurarse de que el archivo no se puede ejecutar o acceder mientras se encuentra en cuarentena. Así que no, mientras el antivirus esté funcionando, no hay peligro de que el virus escape de la cuarentena. En la práctica, algunos almacenan el archivo en un formato diferente que no se puede ejecutar y otros simplemente renombran el archivo y les niegan el acceso de lectura / escritura.

Un ejemplo simple: obtiene un archivo estándar con contenido ASCII .exe, convierte ese contenido en binario y lo vuelve a escribir como ceros y 1s en un archivo de texto. Nada puede salir mal desde allí. No hay nada para escapar ya que el archivo ahora es contenido binario guardado como texto.

-Editar-

Por lo tanto, los elementos que usted solicitó son Denegar acceso R / W / X y codificar el archivo en cualquier otra cosa que no sea el formato original.

    
respondido por el Overmind 04.07.2016 - 14:14
fuente
2

Supongamos que tiene un archivo importante (por ejemplo, alguna presentación) que su antivirus ha marcado como "malicioso". No desea eliminarlo (después de todo, es importante, incluso si es malicioso), pero tampoco desea que su máquina se infecte.

Entonces, ¿qué opción tienes? Su producto antivirus puede quarantine it. Mantiene los archivos en un entorno aislado en su disco, para que los archivos maliciosos no representen una amenaza para su máquina.

Hay diferentes enfoques en cuanto a cómo se pueden manejar estos archivos: 1) mover el archivo a una ubicación diferente 2) renombrando el archivo, cambiando el formato del archivo 3) cambiando los permisos del archivo, marcándolo como oculto 4) cifrar o codificar el archivo, de modo que incluso acceder al archivo inutilizaría el código malicioso

Ahora, ¿qué sucede si desea recuperar el archivo, incluso después de comprender que podría causar estragos o simplemente un falso positivo? Los productos antivirus le dan la opción de mover el archivo en cuarentena de la cuarentena a la ubicación original, en el formato original, de modo que pueda utilizarlo nuevamente (¡por su cuenta y riesgo, por supuesto!).

Si sospecha que su archivo es inofensivo, puede intentar escanearlo con otro antivirus (por ejemplo, en Virustotal ). También puede pedirle a su proveedor de productos antivirus que vuelva a revisar el archivo para detectar cualquier comportamiento malicioso. Una vez que esté satisfecho de que es inofensivo, puede continuar y restaurar el archivo de la cuarentena de forma segura.

Y sí, puede confiar en las características de cuarentena de cualquier producto antivirus reputado.

    
respondido por el pri 04.07.2016 - 14:05
fuente
0

Es poco probable que algún archivo se ejecute sin un usuario que haya otorgado ese permiso. Ese usuario podría haber sido alguien que preparó la imagen de fábrica o usted cuando ejecutó otro programa.

Para evitar que se acceda al contenido (malicioso), una forma segura es usar una máquina completamente separada para cifrarla con un One Time Pad de la misma longitud que el contenido, y luego mantener el contenido cifrado y la almohadilla separados hasta Es hora de acceder al contenido. Los punteros de ejecución perdidos son raros en el código estable, y como tal no deberían ejecutar el contenido malicioso incluso cuando se ha descodificado. A menos que, por supuesto, el decodificador se haya escrito en un lenguaje inseguro y contenga un error que el contenido sabe explotar. (Ver exploits JPG).

Si no desea recuperar el contenido, luego destrúyalo desde la órbita (arranque desde un medio seguro de solo lectura) debería asegurarse de que nunca regrese ... si usa un disco duro. Se sabe que los SSD administran sus propias celdas de almacenamiento de una manera que no ofrece ninguna garantía de que los datos que contienen esas celdas hayan desaparecido. Incluso las unidades de disco duro necesitan sobrescrituras múltiples de acuerdo con las especificaciones del ejército, y muchas compañías destruyen físicamente las unidades para garantizar que no haya una recuperación de datos económica.

    
respondido por el Cees Timmerman 04.07.2016 - 17:31
fuente

Lea otras preguntas en las etiquetas