
Mecanismo de segurança em nível de kernel usando eBPF-LSM para aplicar políticas de acesso a arquivos com base na linhagem de processos, protegendo dados sensíveis contra ataques à cadeia de suprimentos com sobrecarga mínima.

kprotect é um mecanismo de segurança a nível de kernel projetado para proteger seus dados sensíveis contra ataques à cadeia de suprimentos (como bibliotecas maliciosas Python ou Node.js). Ele atua como uma camada de segurança independente para os arquivos mais sensíveis.
*.env, home/user/.ssh/*).VS Code → Terminal → cat (Cadeia autorizada)VS Code → Terminal → python script.py → cat (Cadeia não autorizada bloqueada)kprotect é construído em torno de conceitos modernos de programação de sistemas:
/etc/machine-id).python exploit.py vs python tool.py).Em vez de validar arquivos individuais, o kprotect valida o caminho de execução:
~/.ssh/id_rsa, arquivos .env, cookies de navegador) são designados como caminhos protegidos.bprm_committed_creds, file_open) para proteção com sobrecarga quase zero e resistente a bypass.


python safe_script.py e 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| DaemonO kprotect consiste em dois componentes principais que devem ser instalados em ordem:
lsm=lockdown,yama,apparmor,bpf inclua bpf. Você pode verificar isso com cat /sys/kernel/security/lsm.Instale o daemon primeiro para habilitar a proteção a nível de kernel:
# Install the core debian package
sudo apt install ./target/kprotect_0.2.0-beta-1_amd64.deb
O instalador configurará automaticamente o serviço systemd.
Instale a GUI para uma experiência de gerenciamento visual:
# Install the GUI package
sudo apt install ./kprotect-ui/src-tauri/target/release/bundle/deb/kprotect-ui_0.2.0-beta_amd64.deb
Por favor, REINICIE seu computador após a primeira instalação.
O kprotect precisa rastrear a linhagem de processos desde o momento em que o sistema inicializa. Processos iniciados antes da instalação do daemon serão marcados como "No Chain" e não podem ser autorizados com precisão.
Se você está compilando o projeto por conta própria, use os scripts auxiliares incluídos:
# Build the Core (Daemon & CLI)
./scripts/build_deb.sh
# Build the Desktop GUI
./scripts/build_gui.sh
Embora a GUI seja recomendada, você pode gerenciar tudo via kprotect-cli:
# Check system and eBPF map capacity
sudo kprotect-cli status
# View live security events
sudo kprotect-cli events --stream
# Authorize a bash-to-cat chain
sudo kprotect-cli authorize add "/usr/bin/bash,/usr/bin/cat" --mode Suffix --description "Dev tools"
# Protect a sensitive file
sudo kprotect-cli zone add red "/home/user/.ssh/id_rsa"
kprotect-ebpf: O "cérebro" no kernel. Código Rust de alto desempenho semelhante a C usando aya.kprotect-daemon: O hub central. Gerencia o ciclo de vida do eBPF, criptografia e estado.kprotect-cli: Ferramenta de interação leve.kprotect-ui: Interface de desktop construída com Tauri + React + Vite + TailwindCSS.kprotect-common: Estruturas de dados compartilhadas e definições de protocolo.Se você acha o kprotect útil e deseja apoiar seu desenvolvimento, considere me pagar um café! Seu apoio me ajuda a dedicar mais tempo para melhorar o kprotect, adicionar novos recursos e manter o projeto.
Cada contribuição, por menor que seja, é profundamente apreciada e me motiva a continuar construindo melhores ferramentas de segurança para a comunidade Linux. Obrigado! 🙏
Este projeto está licenciado sob a GNU Affero General Public License v3.0 (AGPL-3.0). Consulte o arquivo LICENSE para obter detalhes.
Desenvolvido por khoinp1012
VS Code → Terminal → deploy.shsudoNOPASSWD/etc/sudoers