Ayrılmış ekran oturumunda çalışan bir kök kabuğu bırakmak güvenli midir?


20

Ayrılmış bir ekran oturumunda çalışan bir kök kabuğu bırakmanın güvenliğini merak ediyorum. Genellikle bunu asla yapmam.

Kök dışı kullanıcı hesabımın tehlikeye girme potansiyelinin yanı sıra (parola açık, ssh anahtarının güvenliği aşılmış, vb.), Endişelenmem gereken ayrık, parola korumalı ekran oturumuna giriş için başka vektörler var mı veya ayrı bir ekran olabilir mi? oturum eylemsiz kabul edilir mi?


Bu bir cevap değil çünkü bilmiyorum, ama senin söylediğin gibi yapmakla işi bırakmak arasında bir fark yarattığını sanmıyorum sudo.
phunehehe

7
@phunehehe Bir fark var çünkü bir iş tamamlandığında, sudogerçek bir kök kabuk açıkken devre dışı kalır.
Michael

Yanıtlar:


5

Bunun bir güvenlik sorunu olduğunu düşünüyorum, çünkü "Kök dışı kullanıcı hesabımın tehlikeye girme potansiyelinin yanı sıra" oldukça büyük olabilir.

Ancak bunun ötesinde başka riskler de var. Örneğin, şimdi kendinizi ekran soketi dizinindeki izinleri değiştirmeye izin veren ( /var/run/screensistemimde, ancak bazen /tmpkullanılır) teorik bir istismara açtınız . Bu istismarın artık kök salması için bir yolu var, aksi halde olmayabilir.

sudoHer komutun yerine yapmak kullanılacak kendinizi eğitebilirse diğer avantajları vardır sudo su -. O (uzaktan oturum sürece, anlamlı güvenliği artmaz, ancak size ne bir iz veriyor mu, hangi eylemlerin günlüğünü size ettik yapılır). Tamamen ayrıcalıklı bir oturuma geçmek yerine, her komut için kasıtlı olarak iletilmesi gerekerek kazaların önlenmesine yardımcı olur.


1
Böyle artık biliniyor istismar rağmen, ben devam edeceğim değil ekranında açık kök kabukları bırakarak. Kullanıcı hesabındaki riskler olduğu gibi yeterlidir. Teşekkürler.
Michael

-1 Dosya izinlerini değiştirebilecek bir istismarım varsa, çalışan bir ekranı hacklemem gerekmez. Sistem ile istediğim her şeyi yapabilirim.
1111

@Let_Me_Be - istismarınızın hangi dosya izinlerini değiştirmenize izin verdiğine bağlıdır . Belki belirli hiyerarşiler altında yalnızca birkaç özel şey yapabilirsiniz. Bu o kadar da zor değil.
mattdm

Ekranın kendisi geniş bir saldırı yüzeyine sahip. Gösterecek tam bir saldırım yok , ancak net zayıflıklar var.
Gilles 'SO- kötülüğü durdurun'

yanılıyorsam beni düzelt, ancak ekran uygulaması bir kabuk oturumu (doğrudan sistem konsolunda veya bir ssh oturumu aracılığıyla) ile arabirim. Bildiğim kadarıyla böyle bir ağ protokolü değil. bu nedenle ssh oturumunuz veya terminal oturumunuz kadar güvenlidir. bazılarının ssh oturumuna veya fiziksel makinenize erişimi varsa, tüm bahisler kapalıdır. herhangi bir kullanıcı hesabının altındaki herhangi bir komut satırına erişmek için yeterli erişime sahiplerse, makinenizin güvenliğini yine de atabilirsiniz.
senkronize olmayan

10

Bir ekran oturumunda bir kök kabuk varsa (ayrılmış veya değil, parola korumalı veya değil) ve screenyürütülebilir dosyanız setxid değilse, ayrıcalıklarınızı kazanan bir saldırgan bu kabuktaki komutları çalıştırabilir. Başka bir şey yoksa, ekran işlemini çıkararak bunu yapabilirler .

Ekran setuid veya setgid ise ve oturum ayrılırsa ve parola korumalıysa, prensip olarak o kabuktaki komutları çalıştırmak için ekran parolasını alır. Bu ilke geçerliyse, yalnızca hesabınızı tehlikeye atan birisinin bir truva atını koyması ve şifreyi yazmanızı beklemesi gerekir. Ancak saldırı yüzeyi (yani, bir hata veya yanlış yapılandırma nedeniyle işlerin yanlış gidebileceği yer sayısı) rahatsız edici derecede büyüktür. Temel sistem güvenliği özelliklerine ek olarak, aşağıdakilere güvenirsiniz:

  • ekranı kontrol edin.
  • Diğer yollarla oturuma erişimi önlemek için
  • İşletim sistemi erişim kontrol mekanizmalarını doğru bir şekilde kullanmak için ekran (örneğin borulardaki izinler).
  • ptrace güvenlik kontrollerini doğru şekilde yapmak için çekirdek (bu sık sık bir güvenlik açığı kaynağıdır).
  • çalışan kabuk aptal bir şey yapmamak.
  • ısırmamak için başka bir özellik.

“Seni ısırmamak için başka bir özellik”: evet, bu belirsiz. Ancak bu her zaman güvenlikle ilgilidir. Bunu sadece sade arzulu bir düşünce olarak reddetmek isteyebilirsiniz, ama gerçekten her şeyi düşündünüz mü? Örneğin…

Terminal cihazına yazabildiğiniz sürece, o kabuğun girişine veri enjekte edebilirsiniz. Makinemde ekranın varsayılan yapılandırması altında:

printf '\ekfoo\017bar\e\\' >/dev/pts/33
printf '\e[21t' >/dev/pts/33

Bu ␛]lfoobar␛l, kabuğun girdi akışına eklenir . \ekbir uygulamanın (veya terminal cihazına yazabilen herhangi bir şeyin) pencere başlığını ayarlamasını sağlayan ( ekran kılavuzundaki “Pencereleri adlandırma” bölümüne bakın ) ve \e[21tterminal raporunu başlığını uygulamanın standart girdisine dönüştüren kontrol dizisidir ( ekran bu diziyi belgelemek, ancak bunu uygulamaya does değil, siz altında bulabilirsiniz CSI Ps ; Ps ; Ps ; tiçinde xterm kontrol dizileri listesinde Aslında, ekranın 4.0.3 altında en azından tüm kontrol karakterleri raporlanan başlığı ayrılır, kabuk okur böylece. lfoobar( ␛]bir düzenleme komutuna bağlı olmadığı varsayılarak ) ve yeni satır bulunmadığından, saldırgan aslında bu şekilde bir komut yürütemez, ancak böyle bir komutu doldurabilirchmod u+s /bin/sh arkasından bir sürü boşluk ve muhtemel görünen bir bilgi geldi.

Ekran birkaç benzer riskli kontrol dizisi uygular, güvenlik açıkları için potansiyellerinin ne olduğunu bilmiyorum. Ama umarım şimdiye kadar ekran oturum şifreleri tarafından sunulan korumanın o kadar da iyi olmadığını görebilirsiniz. Sudo gibi özel bir güvenlik aracının güvenlik açıklarına sahip olma olasılığı daha düşüktür.


+1 Mükemmel cevap. Her şeyi açıklamaya zaman ayırdığınız için teşekkür ederiz.
Michael

1

Ekran tarafından oluşturulan borulara sadece sahip tarafından erişilebilir, bu nedenle bu bir güvenlik sorunu olmamalıdır.


5
Cümlenizin muhtemelen "olması gerektiği" anlamına geldiğiniz ilk bölümünde "vardır" ifadesini kullandınız. Varsayım yapma alışkanlığına girmeyelim.
Shadur

1
Ah? Ekran tarafından oluşturulan borulara yalnızca sahip tarafından erişilebilir (eğer elle manuel olarak chmod yapmazsanız).
1111
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.