“AcceptEnv *” neden güvensiz kabul ediliyor?


12

İçinde /etc/ssh/sshd_config, AcceptEnvssh istemcisinin ortam değişkenleri göndermesine izin veren bir seçenek vardır . Çok sayıda ortam değişkeni gönderebilmem gerekiyor. Bunlar istemciden gelen her bağlantıda değişir, bu yüzden sunucudaki bir oturum açma komut dosyasına yerleştirmek daha zor olur.

"AcceptEnv *"Güvensiz olduğunu okudum . Buraya koymak için ayarlanmaya çalışılan tüm ortam değişkenlerinin bir listesini almaya çalışmadan önce nedenini anlamak istiyorum.

Neden güvensiz sayılıyor? Bir örnek alabilir miyim?

Yanıtlar:


11

Ortam işlemeyi etkinleştirmek, kullanıcıların LD_PRELOAD gibi mekanizmaları kullanarak bazı yapılandırmalarda erişim kısıtlamalarını atlamasına olanak sağlayabilir.

Sshd_config için man sayfalarının tüm sürümleri bundan bahsetmez. Ortam değişkenleriniz önceden değiştirilirse ve bununla belirtilen yeni kitaplıklar ile belirli ayrıcalıklı işlemler yürütülürse, sorunlar oluşabilir.

Http://www.dankalia.com/tutor/01005/0100501004.htm adresine bir göz atın ve "LD_PRELOAD Exploit" ifadesini arayın. Maalesef, sayfada bağlantı bağlantısı yok.

Ayrıca şu StackOverflow sorusuna, " LD_PRELOAD hile nedir? "

Bağlantıdan sonra ortam değişkenlerini ayarlama iyi, ancak bu değişken ssh daemon tarafından AcceptEnv tarafından ayarlandığı şekilde yorumlandığında, Kötü Şeyler oluşabilir.


1
Giriş yaptıktan sonra değişkenleri manuel olarak ayarladıklarından farkı nedir?
Joseph Garvin

1
@JosephGarvin, bazı sistemler kabukları kısıtlanmış veya yalnızca öyle ki "onlar", tek bir spesifik komut izin olamaz . Bu durumda endişe, bu tür güvenlik önlemlerinin atlanabileceği bir yol sağlamaktır.
Charles Duffy

0

Ortam değişkenlerini kabul etmeyin:

Son zamanlarda ortaya çıkan Shellshock istismarına bakın .. Eğer çevre değişkenlerini kabul ederseniz gerçekten kötü bir istismar açıyorsunuz.


1
Korku IMO yayıyorsunuz. Bu kadar endişeleniyorsanız neden SSH erişimi var? Ve btw, kabukta veya işlevlerde olduklarında ortam değişkenlerini ayarlamasını engelleyemezsiniz. Bu istismar, izin verilen kabuk erişimi değil, nginx gibi şeyler aracılığıyla yetkisiz kabuk erişimi ile ilgilidir.
Jordon Bedwell

Her neyse en az bir env kabul ediyorsunuz. TERM adlı değişken. YAZICI,
DÜZENLEYİCİ

@JordonBedwell, her SSH bağlantısı olan kabuk erişim yetkisi. Sadece tek bir özel komut (bu anahtarın sahibinin kimliği ve pişmiş diğer ayrıntılar ile) çalıştırmak için izin verilen bir SSH anahtarı ile tek kimlik doğrulaması olduğu hesapların olduğu birkaç sistem var.
Charles Duffy

... dedi ki, 2017'den itibaren ShellShock'un burada çok abartılı olduğunu kabul ediyorum. Mevcut uygulamalarda, dışa aktarılan bir işlev oluşturmak için yalnızca bir ortam değişkeninin değeri üzerinde denetim değil , aynı zamanda adı da (ve kabuk başlatma sırasında dışa aktarılan işlevleri değerlendirme süreci artık enjeksiyon saldırılarına yatkın değildir).
Charles Duffy
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.