SUPEE-9767, modman ve semboller


16

SUPEE-9767 ile bir Magento mağazasını düzeltmek istiyorum. SUPEE-9767 için dokümantasyon yama uygulamadan önce ayarını devre dışı Symlinks söyleyene:

Düzeltme ekini uygulamadan veya en son sürüme yükseltmeden önce Symlinks ayarını devre dışı bıraktığınızdan emin olun ... Bu ayar etkinleştirilirse yapılandırma dosyası ayarını geçersiz kılar ve değiştirmek için doğrudan veritabanı değişikliği gerekir.

Ancak modülleri yönetmek için modman kullanıyorum ve bazı modüller şablon dosyaları kullandığından, Symlinks ayarı modman'ın README'sindeki öneriye göre etkinleştirildi. Güvenlik Yaması SUPEE-9767 - Olası sorunlar konusundaki mesajlardan biri olarak Symlinks ayarını etkin bırakmak güvenli mi? (Yeni bir kullanıcı olduğum için henüz yayınlara yorum yapamıyorum)?

Magento 1.x modüllerini yönetmek için modman kullanan kullanıcılar, modman modüllerini devre dışı bırakacağından sembolik bağlantıları devre dışı bırakmadıklarından emin olmalıdır.

Symlinks ayarını etkin bırakırsam mağaza APPSEC-1281: Symlinks üzerinden uzaktan kod yürütmeye maruz kalmaz mı , bu düzeltme ekinin düzeltmesi gereken bir güvenlik tehdidi mi?

Bu düzeltme ekinden sonra modman'ı şablon dosyalarıyla kullanmanın başka yolları var mı? (Modman'ın README'sinin bahsettiği "Mage / Core / Block / Template.php" nin yamalı sürümünü biliyorum, ancak bir çekirdek dosyayı yamalamak tehlikeli görünüyor.)


1
Projelerimde Modman ve Composer kullanıyorum. Uzun yıllar inanamıyorum Magento'daki Symlinks seçeneği bomba sayılmazdı. Aniden bomba! Herhangi bir bildirim ve açıklama yapılmadan yapılan bu değişiklik, birçok insan için çok fazla sorun yaratacaktır. Magento'daki Modman ve Besteci geleceği için üzücü.
ADDISON74

1
Bu oldukça zor. Yatırım yapmaya hazırsanız, birleştirilmiş (sembolik olmayan) bir yapı oluşturan bir oluşturma işlemi oluşturmak gerçekten güzel bir yoldur.
Joseph SwiftOtter'da

Bununla ilgili harika bir makale tomlankhorst.nl/… adresinde bulunabilir. Burada ayrıca Magento 1.9.3.4'te sunulan "Symlinks etkinleştirildi" uyarısından nasıl kurtulacağını açıklar.
ehannes

Yanıtlar:


14

İşte bu değişiklikle ilgili bazı açıklamalar:

İlk önce Peter O'Callaghan'ın bu açıklamasını okumanız size büyük bir anlayış kazandıracaktır: https://peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/

Ayrıca ilginç bir okuma daha Max Chadwick bu yazı https://maxchadwick.xyz/blog/what-allow-symlinks-actually-does

Bu değişiklik, şablon yönergeleri aracılığıyla yüklenebilir içeriği (resimler gibi) çağırmakla ilgilidir.

Sembolik bağlantılarla ilgili sorun yalnızca yönetici erişimi ile kullanılabilir ve Magento, resim yüklemelerine de biraz daha koruma ekledi.

Bunların, ayarın kendisine ek olarak, bilinen yollardan yararlanmaya karşı bazı korumalar olduğunu lütfen unutmayın.

Dolayısıyla, ilgili riski anlarsanız, sembol bağlantılarını etkin durumda bırakabilirsiniz.

Yeni bir yükleme için etkinleştirmeniz gerekiyorsa şunları çalıştırabilirsiniz:

UPDATE core_config_data SET value = 1 WHERE path = "dev/template/allow_symlink";

Sembolik bağlantıları etkin bırakırsam, dükkanı "APPSEC-1281: Sembolik kodlarla uzaktan kod yürütme" ne karşı nasıl koruyabilirim?
ehannes

@ehannes, istismar arka uç erişimi gerektirdiğinden, arka ucunuza erişimi koruyarak başlar. Bunun da ötesinde, resim yüklemesinde artık ek bir geri arama doğrulaması var.
Raphael, Dijital Piyanizm'de

3
yönetici erişimi elde etmek, tüm Magento arka uç arayüzüne erişebileceğiniz anlamına gelir. kim bu aşamada bir yükleme görüntü komut dosyasında bulunan bir istismar umurunda? Kötü niyetli kullanıcılar tüm ürünlerinizi silebilir, düşünülemez şeyler yapabilir. "Bu kullanıcı yönetici haklarına sahipse, çünkü gerçek yönetici arka
ucunu


2
Peter O'Callaghan şöyle yazıyor: "Bu nedenle, birisi yönetici panelinize erişmeyi başarırsa, RCE'ye ulaşmak için kötü niyetli bir içerme gerçekleştirebilir.". Bu tartışmadaki ortak sonuç gibi görünüyor. Daha önce de belirtildiği gibi, kötü niyetli bir kullanıcının yönetici panelinize erişimi varsa, RCE'den endişelenecek başka şeyler de vardır. Tartışmaya eklenecek bir şey varsa, lütfen yapın. Her neyse, @RaphaelatDigitalPianism'i daha net hale getirdiğinizi düşünüyorum ve bu yanıtı kabul edeceğim.
ehannes

6

Sorun sembolik değil, sorun gibi seviyelere ulaşan yollardır ../../../../../media/tmp/hahaha.png. Eğer bu konuda yanılıyorsam, lütfen beni aydınlatın. "Düzeltme", "Sembollere izin ver" olarak adlandırıldı ve bu etkinleştirildiğinde, kullanılarak uygulanan denetim devre dışı bırakıldı realpath(). Bence sadece güvenli daha fazla ölçülebilir ve kısa yollarda hala uyumlu olarak bir düzeltme kullanmaktır strpos($path, '..')ve / veya kontrol etmek realpath()gibi belirli riskli dizinleri maçları mediave var. Bu şekilde uygulanırsa, yapılandırılabilir olması gerekmez, her zaman etkinleştirilebilir ve yine de binlerce mağaza kırılmaz.

Ne olursa olsun, web sunucusu kullanıcınızın kaynak kod dizinlerine (Magento Connect'in yaptığı gibi ...) dosya yazma erişimi olmamalıdır, bu nedenle kötü amaçlı kodun bir yere yazılmasını ve bir blok şablonu olarak yürütülmesini önlemenin başka bir yoludur.

Yani, sembolik bağlantılara yönelik bu saldırı sadece yanlış yönlendirilir ve daha iyi bir düzeltme vardır. Aslında, bir tane sağlanan bir yıl önce ve ModMan github README kendisine bile bir bağlantı vardır.


0

Besteci dosyanızın ekstralarında, dosyalarınızı kopyalamak için magento-deploystrategy ayarladıysanız, Symlinks yerine satıcı klasöründen kopyalanacaktır.

    "extra":{
        "magento-root-dir":"./",
        "magento-deploystrategy":"copy",
        "magento-force": true
    }

Daha sonra, dev / template / allow_symlink değerini 0 olarak ayarlamak için core_config_data'nızı değiştirebilirsiniz.

Bilgi Kaynağı


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.