Ders 4.58: Kapsayıcı kaçışını çalışırken tespit etmek
Kaçan bir kapsayıcı süreci kendini duyurmaz ama ailesini gizleyemez. Ebeveynleri hâlâ kapsayıcının süreçleridir ve cgroup'u hâlâ docker-ID.scope der; oysa ad alanları birden makinenin PID 1'iyle eşleşir. Laboratuvarda bir uyarı, bir kapsayıcı sunucusunda bir hazırlık sunucusundan indirme bildiriyor. Süreç ağacını indirmeden bir kapsayıcıya kadar geri izliyor, ad alanı bağlantılarıyla bir kabuğun onu nsenter ile terk ettiğini kanıtlıyor, buna olanak veren ayarları buluyor ve onu sınırlıyorsun.
18 dk
Bu derste öğreneceklerin
- Bir süreci süreç ağacı üzerinden kapsayıcısına kadar izlemek
- Bir sürecin hangi kapsayıcıya ait olduğunu /proc/PID/cgroup ile görmek
- Ad alanı bağlantılarını readlink ile karşılaştırmak
- --privileged ile --pid host'un nsenter -t 1'e nasıl izin verdiğini açıklamak
- Bir kaçışı sınırlamak ve kanıtı korumak
Temel terimler
- nsenter
- Bir programı başka bir sürecin ad alanlarında çalıştırır.
- /proc/PID/ns/
- Bir sürecin ad alanlarını adlandıran bağlantılar; aynı sayı aynı ad alanı demektir.
- /proc/PID/cgroup
- Bir sürecin denetim grubu; kapsayıcı süreçleri docker-ID.scope içinde durur.
- --pid host
- Kapsayıcı makinenin PID ad alanını paylaşır ve her makine sürecini görebilir.
- containerd-shim
- Kapsayıcı başına ebeveyn süreç; -id değeri kapsayıcı kimliğidir.
← Kalıcılık taraması · Tüm dersler · Derin sahteler, bahane ve fiziksel saldırılar →