
Moteur de sécurité au niveau noyau utilisant eBPF-LSM pour appliquer des politiques d'accès aux fichiers basées sur la lignée des processus, protégeant les données sensibles contre les attaques de la chaîne d'approvisionnement avec une surcharge minimale.

kprotect est un moteur de sécurité au niveau du noyau conçu pour protéger vos données sensibles contre les attaques de la chaîne d'approvisionnement (comme les bibliothèques Python ou Node.js malveillantes). Il constitue une couche de sécurité indépendante pour les fichiers les plus sensibles.
*.env, home/user/.ssh/*).VS Code → Terminal → cat (Chaîne autorisée)VS Code → Terminal → python script.py → cat (Chaîne non autorisée bloquée)kprotect est construit autour de concepts modernes de programmation système :
/etc/machine-id).python exploit.py vs python tool.py).Plutôt que de valider des fichiers individuels, kprotect valide le chemin d'exécution :
~/.ssh/id_rsa, fichiers .env, cookies du navigateur) sont désignés comme chemins protégés.bprm_committed_creds, file_open) pour une surcharge quasi nulle et une protection résistante aux contournements.


python safe_script.py de python malicious_script.py.graph TD
subgraph Kernel Space
LSM[BPF LSM Hooks]
Maps[eBPF Maps: Signatures, Auth, Zones]
end
subgraph Userspace
Daemon[kprotect-daemon]
CLI[kprotect-cli]
GUI[kprotect-gui]
end
LSM -->|Perf Events| Daemon
Daemon -->|Update Maps| Maps
CLI -->|Unix Socket| Daemon
GUI -->|Unix Socket| Daemonkprotect se compose de deux composants principaux qui doivent être installés dans l'ordre :
lsm=lockdown,yama,apparmor,bpf inclut bpf. Vous pouvez le vérifier avec cat /sys/kernel/security/lsm.Installez d'abord le démon pour activer la protection au niveau du noyau :
# Installer le paquet debian du noyau
sudo apt install ./target/kprotect_0.2.0-beta-1_amd64.deb
Le programme d'installation mettra en place automatiquement le service systemd.
Installez l'interface graphique pour une expérience de gestion visuelle :
# Installer le paquet GUI
sudo apt install ./kprotect-ui/src-tauri/target/release/bundle/deb/kprotect-ui_0.2.0-beta_amd64.deb
Veuillez REDÉMARRER votre ordinateur après la première installation.
kprotect doit suivre la lignée des processus dès le démarrage du système. Les processus démarrés avant l'installation du démon seront marqués comme "Sans chaîne" et ne pourront pas être autorisés avec précision.
Si vous compilez le projet vous-même, utilisez les scripts d'aide inclus :
# Compiler le noyau (démon et CLI)
./scripts/build_deb.sh
# Compiler l'interface graphique de bureau
./scripts/build_gui.sh
Bien que l'interface graphique soit recommandée, vous pouvez tout gérer via kprotect-cli :
# Vérifier l'état du système et la capacité des cartes eBPF
sudo kprotect-cli status
# Afficher les événements de sécurité en direct
sudo kprotect-cli events --stream
# Autoriser une chaîne bash vers cat
sudo kprotect-cli authorize add "/usr/bin/bash,/usr/bin/cat" --mode Suffix --description "Outils de développement"
# Protéger un fichier sensible
sudo kprotect-cli zone add red "/home/user/.ssh/id_rsa"
kprotect-ebpf : Le "cerveau" dans le noyau. Code de type C performant en Rust avec aya.kprotect-daemon : Le hub central. Gère la durée de vie de l'eBPF, le chiffrement et l'état.kprotect-cli : Outil d'interaction léger.kprotect-ui : Interface utilisateur de bureau construite avec Tauri + React + Vite + TailwindCSS.kprotect-common : Structures de données partagées et définitions de protocole.Si vous trouvez kprotect utile et souhaitez soutenir son développement, pensez à m'offrir un café ! Votre soutien m'aide à consacrer plus de temps à l'amélioration de kprotect, à l'ajout de nouvelles fonctionnalités et à la maintenance du projet.
Chaque contribution, aussi petite soit-elle, est profondément appréciée et me motive à continuer à construire de meilleurs outils de sécurité pour la communauté Linux. Merci ! 🙏
Ce projet est sous licence GNU Affero General Public License v3.0 (AGPL-3.0). Voir le fichier LICENSE pour plus de détails.
Développé par khoinp1012
VS Code → Terminal → deploy.shsudoNOPASSWD/etc/sudoers