Ders 1.72: Süreç belleğindeki sırlar ve ptrace
Çalışan bir program sırlarını bellekte tutar: belirteçler, parolalar, şifresi çözülmüş anahtarlar. ptrace (hata ayıklayıcı arayüzü) ile ona bağlanabilen her süreç bunların hepsini dışarı kopyalayabilir. Kimin bağlanabileceğine Linux'un Yama modülü karar verir. Laboratuvarda bir hata ayıklama kaydından kalan 'geçici' bir ayar, paylaşılan bir atlama sunucusundaki her geliştirici sürecini aynı kullanıcının diğer tüm süreçlerine açmış. Riski gcore ile kanıtlıyor, buna yol açan dosyayı buluyor, varsayılanı geri getiriyor ve sonra bu makine için sıkılaştırıyorsun.
16 dk
Bu derste öğreneceklerin
- ptrace'in bir saldırgana ne verdiğini açıklamak
- kernel.yama.ptrace_scope'u okumak ve ayarlamak (0, 1, 2, 3)
- Bir değeri hangi sysctl.d dosyasının ayarladığını bulmak
- Bir sürecin belleğini gcore ile dökmek ve içinde aramak
- Bir sunucu için ptrace kapsamı seçmek
Temel terimler
- ptrace
- Hata ayıklayıcıların bir süreci durdurmak, belleğini ve yazmaçlarını okuyup yazmak için kullandığı sistem çağrısı.
- Yama ptrace_scope
- Kimin bağlanabileceğini belirleyen çekirdek ayarı: 0 aynı kullanıcı, 1 yalnızca ebeveynler, 2 yalnızca CAP_SYS_PTRACE, 3 hiç kimse.
- gcore
- Çalışan bir sürecin belleğini, onu uzun süre durdurmadan bir çekirdek dosyasına yazan gdb aracı.
- sysctl.d sırası
- Dosyalar ad sırasıyla uygulanır; bir anahtar için son değer kazanır.
- CAP_SYS_PTRACE
- Bir sürecin normalde izleyemeyeceği süreçleri izlemesini sağlayan yetenek.
← Derinlemesine journalctl: günlüğü süzmek · Tüm dersler · Açılışlar arasında günlüğü okumak →