Ele geçirilmiş bir web ağ geçidi hâlâ nereye ulaşabilir?
Bir web ağ geçidi ziyaretçinin neyi açtığını sınırlar, ele geçirilmiş bir ana makinenin nereye ulaşabileceğini değil. İki inceleme, bir yetki tablosu ve erişimi ölçen komutlar.
Ağ geçidi ana makinesinin sertifikası hâlâ geçerliyken ele geçirildiğini varsayalım. Bir ziyaretçinin hangi sayfaları isteyebileceğini düzenleyen her kural yürürlükte kalır ve bu kuralların hiçbiri saldırganın artık o ana makineden veritabanı alt ağına doğru açtığı bağlantıyı sınırlamaz. Bu boşluk, yalnızca web giriş noktasının bölümlenmiş bir ağ ile aynı iddia olmamasının nedenidir. İki iddia, herhangi biri dürüstçe dile getirilmeden önce, farklı başlangıç noktalarından ayrı incelemeler gerektirir.
İki iddia ve bunlardan yalnızca biri ziyaretçide başlar
İlk iddia bir kişiyle ilgilidir: tarayıcısı ve geçerli oturumu olan bir ziyaretçi bir uygulamayı açabilir, başka bir şeyi değil. Yalnızca web giriş noktası bu iddiaya iyi yanıt verir, çünkü ziyaretçi rota yerine sayfa alır. Bu yanıt korunmaya değer ve aynı zamanda çoğu diyagramın kaydettiği tek iddiadır.
İkinci iddia bir bileşenle ilgilidir: ağ geçidinin ya da arkasındaki uygulama sürecinin başkasının denetiminde olduğu varsayılır. Bu varsayımdan soru, hangi URL'lere izin verildiğinden sürecin hâlâ hangi hedeflere ve kimliklere ulaşabildiğine dönüşür.
İki iddianın sahipleri farklıdır, farklı kanıtlar üretirler ve bağımsız olarak başarısız olurlar. Bir kimlik ekibi ilkini oturum testiyle gösterebilir; ikincisi ağ politikası, hizmet hesabı incelemesi ve ana makine denetimleri gerektirir. Yalnızca ziyaretçi yarısını kaydeden bir tasarım, inceleme slaytında eksiksiz ve olay sırasında ince görünür, çünkü ele geçirmeden sonra önemli olan denetimler hiçbir zaman kapsamda değildi. Her denetimin hangi iddiayı desteklediğini adlandırın, yoksa tek bir ağ geçidi kuralı ikisine birden yazılır.
İşlenmiş bir masraf hizmeti ve kaybetmesinin iki yolu
Bir masraf hizmeti alalım: 10.60.4.10 üzerindeki genel ağ geçidi personeli kimlik doğrular ve onaylanmış istekleri 8443 bağlantı noktasındaki uygulama dinleyicisine iletir ve bu uygulama expenses_app rolü olarak 10.60.4.20:5432 üzerindeki tek bir PostgreSQL dinleyicisine ulaşır. Çalışanların genel iç erişim alması amaçlanmamıştır. Normal işleyişte tasarım gerçekten veritabanı dinleyicisini hiçbir yerde yayımlamadan uygulamaya özgü bir giriş sağlar. Adresler önemlidir, çünkü bu makaledeki her sonraki denetim onları adlandırır.
Şimdi ağ geçidini güvenilir kümeden çıkarın. Süreci bir saldırgana ait olduğunda 10.60.4.10 hangi hedeflere ulaşabilir? Ziyaretçileri kısıtlayan URL filtresi, ağ geçidi ana makinesinin veritabanı alt ağına doğru açtığı bağlantı hakkında hiçbir şey söylemez.
Bunun yerine uygulama sürecini çıkarın ve yetki şekil değiştirir: expenses_app rolü, o sunucunun ulaşabildiği hizmetler ve o hesabın okuyabildiği dosyalar. Her iki durumda da ön kapı yalnızca web olarak kalabilir, arka uç sınırı yokken. Bu nedenle ön kapıdaki etiket iki sorudan hiçbirinin yanıtı değildir.
Her tarafın gerçekte sahip olduğu yetkiyi haritalayın
Amaçlanan izinler olarak yazılmış bir sözleşme, tasarımı size geri tekrarlama eğilimindedir. Onu elde tutulan yetki, fazlalığı çürüten denetim ve o denetimin sahibi olarak yazın, o zaman her satır test edilebilir hale gelir. Bu tablo yukarıdaki örnek için bir öneridir, ürün iddiası değildir:
| Component | Authority it actually holds | Check that proves the denial | Owner of the check |
|---|---|---|---|
| Identity provider | Issues assertions and session cookies, and holds no network path of its own | A request to the application URL without a session is redirected to the login page | Identity team |
| Public gateway host | TCP reachability to whatever its routing table and egress rules permit | An egress rule drops 10.60.4.20:5432 and the probe reports the port filtered | Network platform team |
| Application role | SQL privileges granted to expenses_app inside the expenses database | A privilege query shows no ownership or create right on any other schema | Application team |
| Database listener | Accepts connections only from the source ranges named in its host-based rules | A connection from an unlisted address is refused before authentication | Database administrator |
| Management path | Administrative access reserved for patching, monitoring and recovery | A staff workstation cannot reach the administrative port or jump through it | Platform owner |
Mülkiyet yetkiyi izler. Kimlik ekibi iddialara, ağ platformu ekibi yollara, uygulama ekibi veritabanı rolüne, veritabanı yöneticisi dinleyiciye ve ana makine tabanlı kurallarına, platform sahibi ise yönetim düzlemine sahiptir. Sahibi olmayan bir ret, bir belgede cümledir, denetim değildir.
Ayrım ayrıca çift saymayı önler. Bir bağlantı noktası kısıtlaması tablo ayrıcalığını ifade edemez ve bir veritabanı rolü bir ana makinenin ilgisiz bir alt ağa soket açmasını engelleyemez.
Ağ geçidinin nereye ulaşabildiğini iddia etmek yerine sayın
Sınır iddiası ancak arkasındaki sayım kadar iyidir. Ağ geçidi ana makinesinde üç komut rota seçimini, canlı bir sondayı ve çıkış politikasını kapsar:
ip route get 10.60.4.20
nc -zv 10.60.4.20 5432
sudo nft list chain inet filter outputÇıktıyı bu sırayla okuyun. Rota, 10.60.4.20'nin o ana makineden seçilip seçilmediğini söyler; sonda, dinleyicinin yanıt verip vermediğini söyler; kural listesi, politikanın paketi durdurup durdurmadığını ya da yolunda hiçbir zaman bir şey olmadığını gösterir.
Sayımı uygulama ana makinesinden yineleyin. Oradan veritabanı tarafı, uygulama rolü olarak çalıştırılan tek bir sorgudur:
psql -h 10.60.4.20 -U expenses_app -d expenses -c 'select rolname, rolsuper, rolcreatedb from pg_roles'Başka bir şemayı okuyamayan bir rol altında başarılı bir bağlantı, sahip rolü altında başarılı bir bağlantıdan farklı bir sonuçtur. Yalnızca ikincisi bir bulgudur.
Retleri kaydedin, sonra incelemeyi tarihlendirin
Kabul, niyet olarak değil sonuç olarak yazılır: çalışan oturumu dinleyiciye ulaşamaz, ağ geçidi ana makinesi ilgisiz bir alt ağa ulaşamaz ve uygulama rolü veritabanı oluşturamaz. Her biri adlandırılmış bir sahip ve tarih içeren ayrı bir denetimdir.
İzleme, yamalama ve kurtarmayı onlar için tasarlanmış yönetim yolundan erişilebilir tutun. Sahibini de engelleyen bir sınır kesintiyse dönüşür ve bu kesintiye verilen olağan ilk yanıt kuralı yeniden genişletmektir. CISA çevre kılavuzu gelen ve giden erişimin gerekçelendirilmiş bağlantı noktaları ve protokollerle sınırlandırılmasını ister; buna iç ağlar arasındaki trafik de dahildir, ki bu çoğu diyagramın atladığı arka uç kaynaklı yöndür.
İncelemeyi tarihlendirin ve sahibini adlandırın. Ağ geçidi imajında, yönlendirme tablosunda veya uygulama rolünde herhangi bir değişiklikten sonra sayımı ve ayrıcalık sorgusunu yeniden çalıştırın.