Açıkta kalan yedekleme ve referanssız dosyalar ve bunların nasıl bulunacağı
Yayınlanan: 2021-08-24WordPress'inizi güvende tutmak, sürekli bir test etme, sağlamlaştırma, izleme ve iyileştirme sürecini içerir. WordPress yöneticilerinin web sitelerinin güvenli olduğundan emin olmalarına yardımcı olmak için halledebilecekleri birkaç şey vardır. Parolaların belirli kriterleri karşılamasını sağlamaktan PHP'yi sağlamlaştırmaya kadar, bu süreçler sıkı ve temiz bir gemi çalıştırmanızı sağlamanıza yardımcı olmak için uzun bir yol kat edebilir. Gözden kaçma eğiliminde olan bir şey, açıkta kalan yedekleme ve referanssız dosyalardır. Bu dosyalar, en iyi uygulamaları izleyerek kolayca yönetilebilecek bir güvenlik riski oluşturabilir.
WordPress, bilgileri düzenlemek için dizinleri kullanır. Tüm sayfalar ve medya bu yapı içinde yer alır. Tipik bir kurulumda, bu yapı var/www/html/wordpress/wp-content gibi bir şeye benzeyecektir.
WordPress web sitelerini barındıran sunucular da dahil olmak üzere web sunucuları, genellikle müşterilere belirli bir dizinde bulunan tüm dosyaları sunmak üzere yapılandırılır. PHP dosyaları gibi birkaç istisna vardır; ancak, bir yönetici erişimi açıkça engellemediği sürece, bir istemci isterse, web sunucusunun bunu yapma olasılığı yüksektir.
Genel olarak konuşursak, bu iyi bir şeydir ve olmasını istediğiniz şey budur çünkü web sayfalarınızla ilgili CSS dosyaları, JS dosyaları ve resimler gibi dosyalar ziyaretçiye bu şekilde sunulur. Bununla birlikte, bu davranış aynı zamanda, yedekleme ve referanssız dosyalar gibi, halkın görmesini asla amaçlamadığınız dosyaları istemeden de sunabileceğiniz anlamına gelir.
Yedekleme ve referanssız dosyalar nelerdir?
Adından da anlaşılacağı gibi, yedekleme ve referanssız dosyalar, belirli dosyaların yedekleri olabilen, genellikle yapılandırma dosyaları gibi dosyalar düzenlenirken oluşturulan, hatta tam yedekler olabilen gerçek yedeklerdir. Bu yedekleme dosyalarının ne olduğunu ve nasıl oluşturulduklarını anlamak, sorunu çözmek için atmamız gereken ilk adımdır.
WordPress dosyalarını düzenlemeniz gerekebilecek birçok neden vardır. Bununla birlikte, WordPress sitenizin dosyalarını yedeklemeden düzenlemek biraz sinir gerektirir - eksik bir noktalı virgül web sitenizi çökertebilir!
Tabii ki, bu tür hataların yapılması kolay olduğundan, dosyaları doğrudan üretim web sunucularında düzenlemeniz önerilmez. En iyi uygulamalar, önce bir test veya hazırlama sunucusundaki değişiklikleri test etmemizi söyler. Değişiklikler ancak kapsamlı ve başarılı bir testten sonra canlı/üretim sunucusuna taşınabilir.
Ancak gerçek hayatta en iyi uygulamalar her zaman izlenmez. Bu, özellikle ufacık bir değişiklik olduğunda doğru olabilir. Dosyayı indirme, değişiklikleri yapma, test etme ve yeniden yükleme süreci, dosyayı canlı sunucuda düzenlemekten çok daha uzun sürebilir. Hepimiz oradaydık.
Canlı sunucuda düzenleme yapmak çok kolay olabilir. Bir SSH istemcisi ve Vi (veya geliştirilmiş sürümü tercih ederseniz Vim) ile harikalar yaratabilirsiniz. Sunucuya bağlanıp dizine gittiğinizde, ilk önce dosyanın yedeğini (ör. wp-config.php.bak) alacak, canlı dosyayı düzenleyecek, her şeyin yolunda olduğundan emin olacaksınız. ve hepsi çok güzel. Ancak, klasörde kalan bu yedekleme dosyası (her ihtimale karşı, bilirsiniz) birçok ağrının kaynağı olabilir. Muhtemelen herkes onu indirebilir ve onunla birlikte tüm konfigürasyon düz metin olarak, daha az değil.
Ayrıca, birçok WordPress yöneticisi, dosyaları Vim gibi bir dosya düzenleyici kullanarak yerinde düzenlemenin otomatik olarak yedekleme, kurtarma ve kilit dosyaları oluşturabileceğinin farkında olmayabilir. Vim, beklenmedik bir şekilde çökerse veya kapanırsa çalışmanızı kurtarmanıza izin vermek için bu dosyaları oluşturur. Bu şüphesiz sahip olunması gereken değerli bir özellik olsa da, bu aynı zamanda istemeden, hiç oluşturmayı amaçlamadığınız yedekleme dosyalarıyla web sitenizin etrafına serpilmiş ve herkesin erişmesini bekleyebileceğiniz anlamına gelir.
Aynı şekilde, bir ortak klasörde bırakılan tüm dizinlerin yedekleri de zarar verici olabilir. WordPress web sitenizin yedeklerini almak kritik olsa da, bunun yeni güvenlik riskleri oluşturmadan güvenli bir şekilde yapılması gerekir. Bu makalenin ilerleyen kısımlarında bunun hakkında daha ayrıntılı konuşacağız.
Yedekleme dosyalarının yaygın örnekleri arasında, değiştirilmiş yapılandırma dosyalarının yeniden adlandırılmış eski sürümleri, PHP dosyaları veya diğer kaynak kodları ve sıkıştırılmış arşivler (.zip, .gz veya .tar.gz arşivleri gibi) biçimindeki otomatik veya manuel yedeklemeler bulunur.
Öte yandan, başvurulmamış dosyalar, bir yapılandırma veya tasarım kararı nedeniyle ait olmadıkları bir yere giden yanlış yerleştirilmiş dosyalardır.
Riskler nelerdir?
Yanlışlıkla erişilebilir durumda bırakılan yedekleme ve referanssız dosyalar hassas bilgileri sızdırabilir. Dosyaya bağlı olarak, hassas veriler, kötü niyetli kullanıcıların web sitenizin nasıl çalıştığını daha iyi anlamasına yardımcı olan ve böylece web sitenize yönelik bir saldırı oluşturmayı kolaylaştıran yapılandırma parametreleri veya kaynak kodu içerebilir. Bazı durumlarda, saldırganlara tüm WordPress kurulumu üzerinde kontrol sağlayabilecek şifreler de sızdırılabilir.
Birinin web sunucunuzda kalan dosyaları bulmasının birkaç yolu vardır. Bazı yöntemler biraz teknik uzmanlık gerektirse de, diğerleri bir Google araması kadar basittir ve bu da maruz kalma riskini artırır. Sunucunuzda kalan dosyalarınız olup olmadığından emin değilseniz, onları nasıl arayacağınızı ve başkası bulmadan önce nasıl bulacağınızı öğrenmek için okumaya devam edin.
WordPress web sitenizde yedek dosyaları ve referanssız dosyaları nasıl bulabilirsiniz?
Birinin yedek ve referanssız dosyaları bulmak için kullanabileceği birkaç farklı yöntem vardır. Sunucu sahibi olarak, bunu daha doğrudan yapabileceğiniz için avantajınız var. Bu bölüm, bu dosyaları aramak ve kaldırmak için kullanabileceğiniz araçlardan başlayarak bu farklı araçları keşfedecektir. Ardından, meraklı bir kedinin sunucunuzdaki yedek ve referanssız dosyaları bulma konusunda nasıl davranabileceğine bakacağız.
Web sunucunuzda bırakmış olabileceğiniz yedekleme dosyalarını ararken, üç yaklaşımdan birini (veya daha fazlasını) kullanabilirsiniz. En kolay yol, dosyaları değişiklikler için izleyen bir eklenti kurmaktır. Alternatif olarak, find gibi komut satırı araçlarını kullanarak dosya sisteminde kalan yedek dosyaları aramayı deneyebilir veya fuzzing adlı bir teknik kullanarak yedek dosyaları aramayı deneyebilirsiniz.
Dosya bütünlüğü izleme eklentisi
WordPress için bir dosya bütünlüğü izleme çözümü, web sunucunuzdaki dosya değişikliklerini zahmetsizce izlemenize yardımcı olabilir ve herhangi bir şey eklendiğini, kaldırıldığını veya değiştirildiğini tespit ederse sizi uyarabilir.
Bu, Website File Changes Monitor eklentisi ile gerçekleştirilebilir. Eklenti, dizinlerinizin parmak izini alır ve ardından bunu sonraki parmak izleriyle karşılaştırır. Özünde, sağlama toplamı ile aynı ilkeler üzerinde çalışır, bu da onu son derece güvenli ve güvenilir kılar.
WordPress tarafından kullanılan tüm dizinlere özel değilseniz, bir dosya bütünlüğü izleyicisi özellikle etkili olabilir. Bu eklentinin bir diğer önemli avantajı, izlemenin otomatik olmasıdır, bu nedenle dosyaları kontrol etmeyi hatırlamanız gerekmez – eklenti bunu otomatik olarak yapar.
Bulmak
Şimdi find komutunu kullanarak yedek dosyaları nasıl bulabileceğimize bakalım. Aşağıdaki komut, yedekleme dosyaları oluştururken kullanılan yaygın olarak kullanılan birkaç dosya uzantısını arayacaktır.
find /var/www -type f \( -name '*.bak' -o -name '*.backup' -o -name '*.bac' -o -name '*.zip' -o -name '* .tar' -o -adı '*.jar' -o -adı '*.log' -o -adı '*.swp' -o -adı '*~' -o -adı '*.old' -o - isim '*.~bk' -o -adı '*.orig' -o -adı '*.tmp' -o -adı '*.exe' -o -adı '*.0' -o -adı '*. 1' -o -adı '*.2' -o -adı '*.3' -o -adı '*.gz' -o -adı '*.bz2' -o -adı '*.7z' -o - ad '*.s7z' -o -adı '*.lz' -o -adı '*.z' -o -adı '*.lzma' -o -adı '*.lzo' -o -adı '*.apk ' -o -name '*.cab' -o -adı '*.rar' -o -adı '*.war' -o -adı '*.ear' -o -adı '*.tar.gz' -o -adı '*.tgz' -o -adı '*.tar.z' -o -adı '*.tar.bz2' -o -adı '*.tbz2' -o -adı '*.tar.lzma' - o -adı '*.tlz' -o -adı '*.zipx' -o -adı '*.iso' -o -adı '*.src' -o -adı '*.dev' -o -adı '* .a' -o -adı '*.ar' -o -adı '*.cbz' -o -adı '*.cpio' -o -adı '*.shar' -o -adı '*.lbr' -o -adı '*.mar' -o -adı '*.f' -o -adı '*.rz' -o -adı '*.sfark' -o -adı '*.xz' -o -adı '*. ace' -o -name '*.afa' -o -name '*.alz' -o -adı '*.arc' -o -nam e '*.arj' -o -adı '*.ba' -o -adı '*.bh' -o -adı '*.cfs' -o -adı '*.cpt' -o -adı '*.dar ' -o -adı '*.dd' -o -adı '*.dgc' -o -adı '*.dmg' -o -adı '*.gca' -o -adı '*.ha' -o -adı '*.hki' -o -adı '*.ice' -o -adı '*.inc' -o -adı '*.j' -o -adı '*.kgb' -o -adı '*.lhz' -o -adı '*.lha' -o -adı '*.lzk' -o -adı '*.pak' -o -adı '*.partimg.' -o -adı '*.paq6' -o -adı '*.paq7' -o -adı '*.paq8' -o -adı '*.pea' -o -adı '*.pim' -o -adı '*.pit' -o -adı '*.qda' -o -adı '*.rk' -o -adı '*.sda' -o -adı '*.deniz' -o -adı '*.sen' -o -adı '*.sfx' -o -adı ' *.sit' -o -name '*.sitx' -o -name '*.sqx' -o -adı '*s.xz' -o -adı '*.tar.7z' -o -adı '*. tar.xz' -o -adı '*.uc' -o -adı '*.uc0' -o -adı '*.uc2' -o -adı '*.ucn' -o -adı '*.ur2' - o -adı '*.ue2' -o -adı '*.uca' -o -adı '*.uha' -o -adı '*.wim' -o -adı '*.xar' -o -adı '* .xp3' -o -adı '*.yz1' -o -adı '*.zoo' -o -adı '*.zpaq' -o -adı '*.zz' -o -adı '*.include' -o -adı '*_1' -o -adı '*_2' -o -adı '*_x' -o -adı '*bak' -o -adı '*_bak' -o -adı '*eski' -o -adı '*_eski' -o -adı '*_a' -o -adı '*_b' -o -adı '*_c' -o -adı '*_d' -o -adı '*_e' -o -adı '*_f' -o -adı '*inc' -o -adı '*_inc' -o -adı '*_backup' -o -adı '* – Kopyala' -o -name '* – Kopyala (2)' -o -adı '* – Kopyala (3)' -o -adı '*yedekleme' -o -adı '*-yedek' -o -adı '*-bak' -o -name '*-eski' -o -name '*-1' -o -adı '*-2' -o -adı '* – Kopyala – Kopyala' -o -adı '*( kopya)' -o -name '*(başka bir kopya)' -o -name '*(ikinci kopya)' -o -adı '*(üçüncü kopya)' -o -adı '*(dördüncü kopya)' -o - name '*(2. nüsha)' -o -name '*(3. nüsha)' -o -name '*(4. nüsha)' -o -name '* (kopya)' -o -name '* (başka bir kopya) ' -o -name '* (ikinci nüsha)' -o -name '* (üçüncü nüsha)' -o -name '* (dördüncü nüsha)' -o -name '* (2. nüsha)' -o -name ' * (3. kopya)' -o -name '* (4. kopya)' -o -name '* kopyası' -o -adı '* kopyası (2)' -o -adı '* kopyası (3)' -o -name '* Kopyasının Kopyası' -o -name 'yedekleme*' -o -adı 'yedekleme_*' -o -adı 'yedekleme-*' -o -adı 'bak*' -o -adı 'bak_ *' -o -adı 'bak-*' -o -adı'eski*' -o -adı 'eski_*' -o -adı 'eski-*' -o -adı '1*' -o -adı '1_*' -o -adı '1-*' -o -adı '2*' -o -adı '2_*' -o -adı '2-*' \)
bulanık
Aşağıdaki yöntem, WordPress dosyalarına odaklanan bir kelime listesi (düz metin olarak toplanan dosya adları ve dosya yolları listesi) ile ffuf adlı komut satırı tabanlı bir araç kullanır. ffuf, yaygın yedekleme dosya uzantılarının virgülle ayrılmış bir listesini kullanarak istekte bulunmak üzere yapılandırılabilir (bu örnek yalnızca .bak ve .backup içeren kısaltılmış bir liste kullanır, ancak gerçekte, muhtemelen çok daha uzun olacaktır).
ffuf -u http://example.com/FUZZ -w wordlist.txt -e '.bak,.backup'
Arama Motoru aramaları
Arama motorları, web sunucularında bilgi bulma ve kataloglama konusunda çok, çok iyidir. Birisi bunu, örneğin belirli bir sunucuda belirli dosya türlerini bulmak için bir sorgunun detayına inebilen gelişmiş operatörler kullanarak yapabilir.
Bu arama türü aynı zamanda Google Dorking olarak da bilinir ve gelişmiş filtreler ile çıkarımın bir kombinasyonunu kullanabilir. Çıkarsama, bir sunucuda ne olduğu hakkında hiçbir bilgisi olmayan birinin, bir sunucuda ne tür dosya ve yapıların bulunabileceğini anlamak için genel bilgileri nasıl kullandığı ve ardından bu belirli şeyleri nasıl aradığıdır.
Güvenlik tarayıcıları
Bir web sitesinin dizinlerini tarayabilen farklı tarayıcı türleri vardır. İlk tarayıcı türü, arama motorlarının web sitelerini okumak için kullandığı temel teknolojinin aynısı olan site tarayıcısı olarak adlandırılır. Ancak bu tür tarayıcılar arama motorlarına özel değildir ve ücretsiz olarak indirilebilir.
Niyetiniz iyi olsa bile, çoğu ülkede bir hedef web sitesini taramak yasa dışıdır. Bir tarayıcıyı yalnızca sahip olduğunuz web sitelerine karşı kullanabilir ve kullanmalısınız. Üçüncü taraf bir web sitesini tarıyorsanız, onayınız olduğundan emin olun. Buna rağmen, kötü niyetli biri web siteniz hakkında daha fazla bilgi edinmek ve içinde ne tür dosyalar olduğunu anlamak için bir güvenlik tarayıcısı kullanabilir.
Başka bir tarayıcı türü, bir web sitesini artık dosyalar da dahil olmak üzere güvenlik açıkları için tarayabilen bir sızma testi tarayıcısıdır.
Yedek veya referanssız dosyalar mı buldunuz? İşte yapmanız gerekenler
Yedekleme dosyalarını bir web sitesinde saklamak asla iyi bir fikir değildir. Ne yazık ki, WordPress web sitesi sahipleri ve yöneticilerinin cron işlerini (zamanlanmış görevler) veritabanı yedeklerini alacak şekilde yapılandırması, yalnızca bu yedekleri aynı sunucuda depolaması nadir değildir. Kesinlikle web sitenizin yedeğini almanız gerekirken , yedeklenen dosyaların yedeklediğiniz sistemin herhangi bir yerinde saklanmamasına dikkat etmelisiniz.
En iyi uygulamaları takip eden iyi düşünülmüş bir WordPress yedekleme stratejisine sahip olmak, yalnızca güvenlik açısından değil, aynı zamanda iş sürekliliği açısından da çok önemlidir. Sonuçta, verileri geri yüklemek için kullanamıyorsanız, yedeklemelerin pek bir değeri yoktur.
Yedek dosya numaralandırma nasıl engellenir
Bu makale boyunca gördüğümüz gibi, WordPress web sitenizde yedek dosyaları tutmak oldukça riskli olabilir. Bu nedenle, değişikliklerinizi canlı/üretim sunucusuna göndermeden önce gerçekleştirmek için her zaman bir test veya hazırlama ortamı kullanmalısınız. Yönetilen WordPress barındırma hesaplarının çoğu, kutudan çıkar çıkmaz bir hazırlama ortamıyla birlikte gelir. PC'nizde WordPress örneklerini döndürmenize izin veren Local gibi yazılımları da kullanabilirsiniz.
Yine de, yedekleme dosyalarını web sunucunuzda tutmayı seçerseniz, ideal olarak bunları web sunucunuzu hizmet verecek şekilde yapılandırdığınız dizinin dışında tutun.
Ek olarak, WordPress dosya izinlerinizi web sunucusunun kullanıcısına erişimi yasaklayacak şekilde yapılandırın - bu, yanlış yapılandırma durumunda bile web sunucusunun dosyayı isteyen bir istemciye sunmasına izin verilmemesini sağlar. Ek bir önlem olarak, herhangi bir veritabanı yedeklemesini şifrelemek ve şifreleme anahtarına web sunucusunun kullanıcısı tarafından erişilemediğinden emin olmak iyi bir fikirdir.