Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
LID — LID — Linux Integrity Drift: Contornando AppArmor via reescrita de pathname eBPF. Manipulação de argumentos de chamada de sistema pré-LSM com pegada de auditoria zero. "Linux is Dying" | Kitploit
Ferramentas/GitHubGitHub/azqzazq1/lid
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoEvasão de IDS/IPSTestes de PenetraçãoAnálise de BináriosPapers e PesquisaAprendizado e EducaçãoRed Teaming
GitHubazqzazq1/lid

LID

LID — Linux Integrity Drift: Contornando AppArmor via reescrita de pathname eBPF. Manipulação de argumentos de chamada de sistema pré-LSM com pegada de auditoria zero. "Linux is Dying"

20119há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório


``` ██╗ ██╗██████╗ ██║ ██║██╔══██╗ ██║ ██║██║ ██║ ██║ ██║██║ ██║ ███████╗██║██████╔╝ ╚══════╝╚═╝╚═════╝ ```

Linux Integrity Drift

— "O Linux está Morrendo" —


Descoberta sistemática de caminhos no kernel que ignoram as garantias de segurança do LSM
O portão nunca foi arrombado. Foi contornado.



O que é LID?

O framework Linux Security Module tem uma garantia central que se mantém há mais de 20 anos:

Módulos de segurança só podem adicionar restrições. Eles nunca podem removê-las.

Esta garantia está correta. LID não a quebra.

LID encontra caminhos de código do kernel que ignoram completamente os hooks do LSM — subsistemas que realizam operações sensíveis à segurança sem consultar o framework LSM. A verificação de segurança está correta. O problema é que o kernel nunca pergunta.


Entendendo o que LID é (e não é)

Cada descoberta tem duas dimensões distintas que não devem ser confundidas:

A) Lacuna de Visibilidade da Política

O ponto cego arquitetônico. A pergunta não é "um atacante pode explorar isso?", mas sim:

  • O que AppArmor/SELinux realmente vê?
  • O que o log de auditoria registra?
  • O que seu SIEM/EDR observa?
  • O que o mecanismo de política pensa que aconteceu?

Se uma operação sensível à segurança ocorre e a camada de aplicação nunca a avalia, você tem uma lacuna de visibilidade — independentemente de um atacante poder abusar dela na prática hoje. Isso importa para conformidade, perícia forense e pressupostos de defesa em profundidade.

B) Caminho Prático de Escalonamento

A questão real de explorabilidade:

  • Isso cruza um limite de privilégio?
  • Um atacante precisa de root/CAP_BPF existente para acionar?
  • É necessária uma cadeia de exploração ou é independente?
  • Qual é o impacto real — acesso a dados, escalonamento de privilégio, evasão de política?

Essas duas coisas são diferentes. Uma descoberta pode ser uma lacuna de visibilidade crítica (seu monitoramento está cego) sem ser um escalonamento de privilégio prático (atacante já precisa de root). Por outro lado, uma descoberta pode ser um caminho direto de escalonamento com pré-requisitos mínimos.

DescobertaLacuna de VisibilidadeEscalonamento Prático
LID-001Crítica — AppArmor não vê nada, log de auditoria vazio, zero vestígio forenseLimitado — requer root ou CAP_BPF+CAP_PERFMON (já privilegiado). Não é um escalonamento de privilégio. Impacto: evasão de política + cegueira de auditoria.
LID-002Alta — security_file_receive() nunca dispara, transferência de fd invisível para todos os LSMsAlta — funciona a partir de userspace não privilegiado via io_uring. Cruza o limite de aplicação do LSM sem qualquer privilégio.
LID-003Alta — security_sb_mount() ignorado, política de montagem do AppArmor é código mortoMédia — requer acesso ao namespace de montagem (CAP_SYS_ADMIN em user ns). Disponível em muitas configurações de contêiner.
LID-004Crítica — AppArmor não vê nada, zero hooks BPF (0/9), nenhum rastro de auditoria para qualquer operação de token BPFMédia — requer delegação de bpffs pelo host + CAP_BPF em user namespace. Disponível em runtimes de contêiner com delegação BPF (LXD/Incus).
LID-005Média — classificadores tc de egress em interface de contêiner nunca avaliam tráfego AF_XDPLimitado — ignora tc egress na eth0 do contêiner (verificado). Cilium NÃO é ignorado — aplica no ingresso veth do lado do nó + verificação de IP de origem (testado). Impacto limitado a configurações Docker simples com filtragem egress apenas tc.

Matriz de Reprodutibilidade

Cada descoberta tem requisitos específicos de kernel/config/ privilégio. Se seu ambiente não corresponder, a descoberta não será reproduzida.

LID-001: Reescrevendo Caminho via eBPF

CondiçãoObrigatórioObservações
Versão do kernel5.x+Testado em 5.15, 6.1, 6.6, 6.8
CONFIG_BPF_SYSCALL=yPadrão em todas as principais distros
CONFIG_BPF_KPROBE_OVERRIDE=yUbuntu/Debian habilitam, RHEL não
CONFIG_SECURITY_APPARMOR=yLSM alvo deve ser AppArmor
Perfil AppArmorEm enforcing, regra de negação no caminho alvoFunciona com qualquer regra de negação baseada em caminho
Privilégiosroot ou CAP_BPF + CAP_PERFMONNão pode ser executado sem privilégio
kernel.lockdownnone ou integrityModo confidentiality bloqueia anexação de kprobe
kernel.unprivileged_bpf_disabledIrrelevanteRequer CAP_BPF independentemente
fs.protected_hardlinks0 para links entre usuários1 (padrão) ainda permite hard links do mesmo usuário
SELinux em vez de AppArmorNão funcionaSELinux é baseado em inode, não em caminho

LID-002: io_uring MSG_RING

CondiçãoObrigatórioObservações
Versão do kernel6.0+IORING_MSG_SEND_FD adicionado em 6.0
CONFIG_IO_URING=yPadrão em todas as principais distros
PrivilégiosNenhumFunciona a partir de userspace não privilegiado
sysctl io_uring_disabled0 (padrão)2 bloqueia não privilegiado, 1 bloqueia todos
LSM alvoQualquer (SELinux, AppArmor, Smack)security_file_receive() é um hook LSM genérico
kernel.lockdownIrrelevanteNenhum BPF envolvido

LID-004: Cegueira do AppArmor para Token BPF

CondiçãoObrigatórioObservações
Versão do kernel6.9+Token BPF introduzido em 6.9
CONFIG_BPF_SYSCALL=yPadrão em todas as principais distros
CONFIG_SECURITY_APPARMOR=yPadrão Ubuntu/Debian
bpffs com delegaçãoSimHost deve montar com opções delegate_*
PrivilégiosCAP_BPF em user namespaceTrivialmente disponível para root de userns
SELinux em vez de AppArmorNão afetadoSELinux implementa todos os 9 hooks BPF

LID-003: Nova API de Montagem

CondiçãoObrigatórioObservações
Versão do kernel5.2+fsopen/fsmount introduzidos em 5.2
CONFIG_SECURITY_APPARMOR=yApenas AppArmor é afetado
PrivilégiosCAP_SYS_ADMIN em user namespaceDisponível com unshare -m
SELinux em vez de AppArmorNão funcionaSELinux implementa security_sb_kern_mount()
Runtime de contêinerDepende do filtro seccompSeccomp padrão do Docker bloqueia fsopen — Podman/LXC podem não bloquear

LID-005: Bypass de tc Egress via AF_XDP

CondiçãoObrigatórioObservações
Versão do kernel4.18+AF_XDP introduzido em 4.18
CONFIG_XDP_SOCKETS=yPadrão em todas as principais distros
PrivilégiosApenas CAP_NET_RAWPadrão em Docker, pods Kubernetes
Runtime de contêinerDocker, K8s, LXCConjunto de capacidades padrão
Política de rede baseada em tcSimCilium eBPF, Calico, tc u32/flower

Referência Rápida: O que Bloqueia Cada Descoberta

Baixar ferramenta