Şablonlardaki Symlinks bir güvenlik sorunu mu ve evet ise neden?


35

Magento, sembolik bağlantıları kullanarak şablonları kullanmamanızı önerir:

Advanced > Developer > Template Settings > Allow Symlinks

Uyarı! Bu özelliği etkinleştirmek, üretim ortamlarında önerilmez, çünkü potansiyel bir güvenlik riski oluşturur.

Bugüne kadar burada risk göremiyorum.

  • Risk nedir

8
Bunun yalnızca e-ticaret için kullanılmaması gereken paylaşılan ana bilgisayarlar için bir risk olduğunu hayal edebiliyorum.
Benmarks

3
@benmarks. Neden bunu cevap olarak yazmıyorsun?
Marius

2
Çok güzel bir soru @ FBI!
user487772

3
Başkalarının daha eksiksiz cevaplar sunacağını biliyordum. Ben DOĞRU :-D
benmarks

3
@benmarks web ;-) herhangi bir şekilde soru hızında daha yüksek cevabı ihtiyacı
user487772

Yanıtlar:


40

Sembolik bağlantılar mutlaka fena değil.

Her şeyden önce: Bir sembolik bağlantı hedefi açmaya çalışıyorsanız, hedefin dosya izinleri etkindir. Sembolik bağlantı hedefini okuma / yazma / yürütme izniniz yoksa, hiçbir şey olmuyor.

Ancak: Belge kökünüz dışındaki dosyaları çalıştırabilirsiniz (bazen onlarla yapmak istediğiniz aslında budur, değil mi?). Sorun, bir suEXEC ortamında değilseniz ve farklı hesaplardan dosya sunmaktan sorumlu olan paylaşılan bir barındırmada bir apacheveya www-datakullanıcı varsa . Sistem kullanıcınızın başka bir müşterinin dosyalarına erişmesine izin verilmiyor, ancak apache/www-datakullanıcı çoğunlukla paylaşılan tüm hesaplarda okuma haklarına sahip olacak. Bu, bir kullanıcının başka bir kullanıcının dosyalarına paylaşılan bir ana bilgisayarda erişebileceği bir senaryo olabilir. Kendi kullanıcınızla değil, dosyaya tarayıcı aracılığıyla apache/www-datakullanıcı ile erişerek . Özetle: Bu senaryoda, diğer kullanıcıların dosyalarına erişebileceksiniz => kötü.

Bir sonraki kötü şey, bir saldırganın / etc / passwd, ... gibi dosyalara da sembolik bağlantılar oluşturabilmesi, bu verileri indirmesi ve bu bilgilerle devam etmesi. Bu sadece sadece bağlantı bağlantısına değil, aynı zamanda kötü bir sunucu konfigürasyonuna da bağlıdır (bu dosyalara erişim kesinlikle sınırlıdır). Dolayısıyla, sembolik bağlantıların kullanılmaması bazı olası saldırıları önler.

Bu sadece sembolik bağlantının kendisinin güvenlik riski olduğu değil, sunucu konfigürasyon problemidir.


5
Harika bir açıklama - bu doğru cevap, aslında, "kendi sorumluluğunuzdadır kullanın"
philwinkle

2
Muhtemelen bahsetmeye değer (her zaman bir 'yükseltme yapmaktan kaçınmak' ortamındaki güvenlikle ilgili hatalar ile dengeyi korumakla birlikte) - Magento, sembolik bağlantıları şiddetle tavsiye etmeyen sembolik bağlantıları app/design, diğer küçük istismarlarla birleştiğinde klasörün dışındaki şablon ve mizanpajların bulunduğu bir istismarla ilişkiliydi. ayrıcalık yükselmesi ve diğer sunucu kullanımları için yönetici kullanıcı tarafından kullanılabilir.
Alan Storm,

1
Apache httpd'de sembolik bağlantıları desteklemek istiyorsanız, SymLinksIfOwnerMatchbunun yerine bu seçeneğin kullanıldığını düşünün FollowSymlinks.
hakre

15

evet onlar, bu yüzden web sunucularının genellikle "izleri takip etme" konfigürasyonuna sahip olmaları ya da en azından "sadece aynı kullanıcıyla hedefin işaretlerini takip etmeleri" nedeni budur.

Web sunucuları genellikle visible / etc / shadow gibi şeylerden kaçınmaya çalıştığından, şablonlar include () ile ayrıştırıldığından magento şablonları daha da tehlikelidir, bu nedenle dosyalarınız üzerinde tam kontrole sahip değilseniz, çok güçlü güvenlik sızıntılarına sahip olursunuz.

Öyleyse, o zaman başka sorunların olduğunu, ancak her potansiyel saldırı senaryosunu gerçekten bilen ve çoğu zaman büyük kırılmalara neden olan daha az problemli güvenlik açığı kombinasyonunu bilen olduğunu iddia edebilirsiniz.

Ayrıca, bir süre önce medya dizini ve sembolik bağlarla ilgili bir güvenlik düzeltmesi yapıldı, bu yüzden olası saldırı senaryoları için oraya bakmalısınız.


1
Eğer bir başkası sunucunuz üzerinde sembolik bağlantılar oluşturabildiyse, ondan daha büyük bir problem yaşarsınız. Yani - Ben'in yorumuna bakınız. Bir Magento'yu paylaşılan bir barındırmada kim barındırır ki? Bugünlerde paylaşılan bir barındırmada kim bir şeye ev sahipliği yapacak ve neden? :)
Sven

3
çünkü bunu yapan insanlar var. Başkalarının makul davranmalarını bekleyemezsiniz. Bunu yapan insanlar her zaman olacak ve genel sunucu yapılandırmasıyla ilgili her zaman hata yapan insanlar olacaktır.
Flyingmana 10:14

14

Bunun yalnızca e-ticaret için kullanılmaması gereken paylaşılan ana bilgisayarlar için bir risk olduğunu hayal edebiliyorum.


1
Maalesef epeyce kullanılıyor.
Piotr Kaminski

2
Teknik olarak, PCI Güvenlik Konseyi standartlarına göre, genel bulut çok kiracılıdır, bu yüzden bile “risk” olarak kabul edilir.
Philwinkle

4

Magento yaması SUPEE-9767 APPSEC-1281'i içeriyor: Simgeler yoluyla uzaktan kod yürütme , bu nedenle evet, şablonlardaki Symlinks bir güvenlik sorunudur.

Tür:
Uzaktan Kod Yürütme (RCE)

CVSSv3 Önem derecesi:
8.8 (Yüksek)

Bilinen Saldırılar:
Evet. Saldırganlar yönetici erişimi sağladıktan sonra bir yapılandırma korumasını devre dışı bırakıyor ve kötü amaçlı kod yüklüyor.

Açıklama:
Yapılandırma ayarlarında AllowSymlinks seçeneğinin kullanılması, kötü amaçlı kod içeren bir görüntünün yüklenmesini sağlayabilir. Bu seçenek varsayılan olarak devre dışı bırakılmış olmasına rağmen, yapılandırma ayarlarını saklama erişimine sahip bir saldırgan bunu etkinleştirebilir ve uzaktan kod çalıştırabilir.

Etkilenen Ürün (ler):
1.9.3.3'ten önceki Magento CE ve 1.14.3.3'ten önceki Magento EE


Sabitleme : CE 1.9.3.3, EE 1.14.3.3, SUPEE-9767

Muhabir:
Wilko Nienhaus


0

İzin vermek tavsiye edilmez. Sembolik bağlantılar etkinken js yükleme hatalarıyla karşılaşıyordum.
Bir çok;

TypeError: $ .widget bir işlev değil

Başarıyla yüklenen sayfalar için 4-5 yenilemeyi denemek zorundayım.
Kapattıktan sonra, ilk kez yavaşça yüklenen kaynaklar yüklenmeyebilir, ancak js hataları gitti.

Not: Sembolik bağlantıyı devre dışı bıraktıktan sonra, static.php için yapılan her değişikliğin ardından dağıtılmış dosyaların bir kopyasını silmeniz gerekir.


1
Üzgünüm, anlamıyorum - işe yaramadan önce 4-5 yenilenme yapmanız gerekiyor. Bunun sembolik bağlantılar ile ne ilgisi var?
Fabian Blechschmidt

Sembolik bağlantıları devre dışı bırakmadan önce :) İngilizcem için üzgünüm.
rbostan

Magento2 hakkında mı konuşuyoruz? Sonra anlıyorum, anlamıyorum - henüz 2 hakkında hiçbir ipucu yok.
Fabian Blechschmidt
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.