Casper-fs es un generador de módulos kernel de Linux personalizado para trabajar con recursos para proteger u ocultar una lista personalizada de archivos. Cada LKM tiene recursos para proteger u ocultar archivos siguiendo una lista personalizada en el archivo de reglas YAML. Sí, ni siquiera el root tiene permiso para ver los archivos o realizar acciones como editar y eliminar. Los archivos solo se pueden capturar, editar y eliminar si el usuario envía una clave adecuada al dispositivo personalizado para liberar la acción en el sistema de archivos.
Tabla de Contenidos
Visión de conjunto
El primer punto, el usuario envía entrada al Casper-FS el archivo YAML con reglas para generar un LKM personalizado (módulo del kernel de Linux), cada módulo generado funciona en el sistema de archivos para proteger y ocultar archivos secretos (ni siquiera la raíz tiene permiso para ver el archivo, solo se puede ver con una clave de envío adecuada al dispositivo personalizado). Este programa tiene dos funciones principales: ocultar archivos privados. La segunda función es proteger los archivos confidenciales para evitar su lectura, escritura y eliminación.
La motivación: un atacante puede leer todos los archivos en su máquina en una mala situación (si tiene root). Pero si tiene un módulo personalizado Casper-fs, el atacante no encontrará el módulo kernel oculto que tiene funciones para proteger sus archivos de datos privados, como registros y bóvedas de contraseñas.
Mi propósito inicial en este proyecto es proteger mi servidor, que es proteger las máquinas de mis amigos. Cuando hablo con amigos, digo personas que no saben cómo escribir código de bajo nivel. Usando Casper-fs, puede generar su módulo kernel personalizado para proteger sus archivos secretos. El programador de bajo nivel puede escribir nuevas plantillas para módulos, etc.
El primer paso, entender antes de la carrera.
Verifique si la versión del kernel es 3.x, 4.x o 5.x:
$ uname -r
Clonar el repositorio
$ clon de git https://github.com/CoolerVoid/casper-fs
Ingrese a la carpeta e instale los módulos de python3:
$ cd casper-fs/module_generator
$ sudo python3 -m pip install -r requisitos.txt
Edite las reglas de su archivo en el directorio module_generator/rules/fs-rules.yaml, los scripts de python, use ese archivo para generar un nuevo módulo personalizado de casper-fs.
$ cat módulo_generador/rules/fs-rules.yaml
nombre_binario: casperfs
nombre_del_módulo: Casperfs
unhide_module_key: AbraKadabra
hide_module_key: Shazam
nombre_de_dispositivo_falso: usb15
mostrar-ocultar-archivo-clave: Alakazam
desproteger-proteger-archivo-clave: Sésamo
reglas fs:
oculto:
1: secreto.txt
2: mi_bóveda.db
proteger:
1: fondokup_httpd.log
La matriz está oculta y protegida por matriz. Puede insertar muchos de los elementos de otro archivo en contexto, por ejemplo:
proteger:
1: copia de seguridad_httpd.log
2: secreto_img.iso
3: archivo_secreto.img
4: archivo_secreto2.img
5: archivo_secreto3.img
Si desea estudiar el código estático para generar, mire el contenido del directorio «plantillas».
El segundo paso, genera tu módulo.
Si desea generar un módulo kernel siguiendo su archivo de reglas YAML, siga ese comando:
$ python3 casper-fs-gen.py –rules rules/fs-rules.yaml
El tercer paso, instala tu módulo.
Si usa Fedora Linux, instale paquetes de kernel para el desarrollador:
actualizar
dnf install kernel-headers.x86_64 kernel-modules.x86_64 kernel.x86_64 kernel-devel kmod
En UbuntuLinux:
apt install linux-headers-generic gcc make
Para probar el módulo:
salida de cd; hacer limpia; hacer
insmod casperfs.ko
El cuarto paso ejecuta su módulo personalizado.
- La contraseña para hacer visible el módulo casper-fs para lsmod es la clave «Shazam».
- La contraseña para volver invisible el casper-fs es “AbraKadabra”.
- La contraseña para convertir los archivos secretos en ocultos es «Alakazam», la misma para convertirlos en no ocultos.
- La contraseña para proteger o desproteger archivos es “Sesame”.
Debe enviar la contraseña de su dispositivo falso, «usb15», por ejemplo, para probar los recursos ocultos y no ocultos en el sistema de archivos:
$ toque secreto.txt
$ ls
– no hay resultados-
$ echo “Alakazam” > /dev/usb15
$ ls
secreto.txt
$ echo “Alakazam” > /dev/usb15
$ ls
– no hay resultados-
Nota: debe hacer que casperfs sea visible en el comando «lsmod». Necesita esta acción antes de eliminar el módulo
casperfs
rmmod: ERROR: ../libkmod/libkmod-module.c:799 kmod_module_remove_module() no pudo eliminar ‘casperfs’: No existe tal archivo o directorio
rmmod: ERROR: no se pudo eliminar el módulo casperfs: No existe tal archivo o directorio
lsmod | casper
echo “Shazam” > /dev/usb15
lsmod | casper
Casperfs
casperfs