Bueno, puedes ... ¡siempre que imites el montaje de la partición!
En un nivel bajo, el montaje de una partición no es más que leer la partición sin procesar para descubrir y cargar sus diferentes tablas del sistema (tabla de asignación, carpeta raíz, etc.). Desde ese punto, el sistema puede darle acceso a los archivos individuales.
Si por alguna razón no quiere que el kernel monte la partición, su aplicación debe tener suficiente conocimiento sobre las partes internas de su sistema de archivos para poder:
- encuentre y lea la carpeta raíz (y cualquier otra carpeta una vez que pueda encontrarla)
- identificar todos los archivos y carpetas activos (sin formato) dentro de una carpeta
- cargar un archivo desde una carpeta
Como solo quiere pasar clamav allí, puede ignorar de forma segura todos los archivos especiales (dispositivos, enlaces simbólicos, sockets de dominio Unix) y procesar solo archivos y carpetas simples. Además, puedes ignorar cualquier atributo de archivo.
Luego, recursivamente recorres las carpetas, lees individualmente todos los archivos y pasas su contenido a clamav
Pero la pregunta ahora es: ¿cuál es la ganancia / pérdida de seguridad con respecto a un montaje normal de la partición?
Pros:
- no hay riesgo de ejecutar accidentalmente algo desde la partición
- no hay riesgo de golpear una falla de seguridad en el controlador del sistema de archivos (*) (tenga en cuenta que puede mediar con un FUSE controlador, si lo hay, o ejecutando el análisis en una máquina virtual)
- no hay riesgo de que un proceso de terceros pueda acceder a cualquier archivo desde la partición
Contras:
- debe implementar de forma segura todas las estructuras y accesos de bajo nivel de un sistema de archivos
- debe confiar más en su código que en el kernel (altamente probado) y el código del controlador
- debe asegurarse de que su código seguirá todas las posibles evoluciones del sistema de archivos
- debe implementar todos los sistemas de archivos que desea poder clamax
Dicho esto, eso es exactamente lo que hace la utilidad fsck
: lee una partición sin procesar y recorre su jerarquía para descubrir y corregir errores de bajo nivel. Pero es una herramienta de sistema de bajo nivel ...
TL / DR: a menos que sea un experto en sistemas de archivos, no estoy seguro de que la ganancia de seguridad valga la pena. En mi humilde opinión, el siguiente procedimiento debería ser lo suficientemente seguro:
- fsck la partición, si es compatible con fsck
- móntelo en un subdirectorio de un directorio con permisos 700 para asegurarse de que ningún proceso que no sea root pueda acceder a él, con
noexec
, nosymfollow
, noatime
flags
- pasa clamav en él
(*) La página de manual mount
termina con
ERRORES
Es posible que un sistema de archivos dañado cause una falla.