Ders 1.74: eBPF saklanma yeri olduğunda
Savunanların çekirdeği izlemesini sağlayan aynı eBPF, root'a sahip bir saldırganın çekirdeğin bildirdiklerini değiştirmesini de sağlar. getdents64 sistem çağrısına bağlanmış bir program dizin listelerinden girdileri silebilir; böylece ls /proc, ps, top ve hatta osquery bir süreci göstermeyi bırakır, süreç ise çalışmayı ve konuşmayı sürdürür. Laboratuvarda güvenlik duvarı web07'nin hâlâ bir komut sunucusuyla konuştuğunu görüyor ama makinedeki hiçbir şey görmüyor. Yüklü eBPF programlarını listeliyor, gizleyicinin eşlemini okuyor, gizlenen PID'leri çözüyor, onlara doğrudan /proc üzerinden bakıyor, örneği saklıyor ve gizleyiciyi kaldırıyorsun.
18 dk
Bu derste öğreneceklerin
- Bir eBPF programının süreçleri nasıl gizleyebildiğini açıklamak
- eBPF programlarını ve sahiplerini bpftool ile listelemek
- Bir eBPF eşlemini dökmek ve küçük endian anahtarları çözmek
- Gizlenen süreçlere doğrudan /proc/PID üzerinden ulaşmak
- Bir gizleyiciyi kaldırmak: yükleyicisini öldürmek ve iğnesini silmek
Temel terimler
- getdents64
- Dizin girdilerini döndüren sistem çağrısı; ls ve ps /proc'u listelemek için onu kullanır.
- bpftool
- eBPF programlarını ve eşlemlerini listelemek ve incelemek için çekirdeğin aracı.
- eBPF eşlemi
- eBPF programları ile kullanıcı alanı arasında paylaşılan anahtar-değer deposu.
- İğneleme
- Bir eBPF nesnesini /sys/fs/bpf'te bir yol vererek canlı tutmak.
- Küçük endian
- En az anlamlı baytın önce geldiği bayt sırası (x86).
← Açılışlar arasında günlüğü okumak · Tüm dersler · E-posta başlıklarını okumak →