Barındırma Paylaşıldı mı ve Güvenlik Konusunda Endişeli Mi? İşte Bilmeniz Gerekenler

  • Michael Cain
  • 0
  • 1906
  • 180
reklâm

Paylaşılan Evsahipliği. Bu ucuz seçenek değil mi? Nüfusun büyük bir bölümü için, web sitelerine veya web uygulamalarına ev sahipliği yapmak için ihtiyaç duyacakları tek şey budur. İyi yapıldığında, paylaşılan barındırma ölçeklenebilir, hızlı ve güvenlidir.

Ama iyi yapılmazsa ne olur??

Tehlikeli güvenlik sorunları ortaya çıkmaya başladığında, sitenizin tahrip olma riski veya sızdırılmış tutulan özel verileriniz söz konusu olduğunda. Ama üzülme. Web ana bilgisayarlarının büyük çoğunluğu iyi güvenlik önlemlerine sahiptir. Dikkatli olmanız gereken sadece geceleri uçabilen, pazarlık yapan bodrum katındakiler..

InMotion Hosting'in SSD depolama ile paylaşılan hostingini tavsiye ediyoruz.

Paylaşılan barındırma hakkındaki güvenlik sorunlarını inceleyeceğiz. Ama önce paylaşılan bir barındırma platformunu güvenli kılan şey hakkında konuşalım.

Güvenli Web Host Nedir?

Paylaşılan barındırma konusunda yapılması gereken bazı göze çarpmayan güvenlik hususları vardır.

  • Sunucudaki her kullanıcı diğer kullanıcılardan izole edilmeli ve diğer kullanıcıların dosyalarına erişememeli veya bunları değiştirememelidir.
  • Sunucuda barındırılan bir web sitesinin mantığındaki güvenlik açığı, diğer kullanıcıları etkilememelidir.
  • Sunucu, mimari güvenlik sorunlarını gidermek için düzenli olarak eklenir, güncellenir ve izlenir.
  • Her kullanıcının kendi izole edilmiş veritabanı erişimine sahip olması ve diğer kullanıcıların depolanan kayıtlarında veya tablo izinlerinde değişiklik yapmasına izin verilmemelidir..

Yine çoğu web sunucusu, paylaşılan teklifleri için bu gereksinimleri karşılar. Ancak, tek bir sunucuda birden fazla web sitesi barındırma arıyorsanız veya barındırma şirketinizin nasıl yerleştiğini görmek veya kendi barındırma şirketinizi başlatmayı düşünmek ve kullanıcılarınızı nasıl güvence altına almak için istekli olduklarını merak ediyorsanız, lütfen okuyun üzerinde.

Ama Önce Bir Feragatname

Paylaşılan barındırma düzeyindeki genel saldırılara bakma etine başlamadan önce, bu yazının potansiyel güvenlik sorunlarının ayrıntılı bir listesi olmayacağını (ve böyle okunmaması gerektiğini) belirtmek istiyorum..

Güvenlik, bir anlamda, büyük. Bir siteyi tehlikeye atabileceğiniz birçok yol vardır. Bu paylaşılan barındırma için iki katına çıkar. Onları tek bir makalede örtmek hiçbir zaman kartların üzerinde değildi..

Güvenliğiniz hakkında paranoyaksanız, bir VPS veya özel bir sunucu edinin. Bunlar, içinde olanlar için (çoğunlukla) mutlak kontrole sahip olduğunuz ortamlardır. Farklı web barındırma türlerinden emin değilseniz, bu yazıya göz atın Web Sitesi Barındırma Formlarının Çeşitli Formları Açıklandı [Teknoloji Açıklaması] Web Sitesi Barındırma Formlarının Çeşitli Formları [Teknoloji Açıklaması] meslektaşım James Bruce.

Ayrıca, bu gönderinin paylaşılan barındırma saldırısı olarak görülmemesi gerektiğini vurgulamalıyım. Aksine, bu web barındırma kategorisini çevreleyen güvenlik sorunlarına tamamen akademik bir bakış..

Dizin Geçişi

Dizin geçişi (genellikle 'yol geçişi' olarak bilinir) saldırılarıyla başlayalım. Bu tür bir saldırı web kökünün dışında depolanan dosya ve dizinlere erişmenizi sağlar.

Sade ingilizce? Diyelim ki Alice ve Bob'un web sitelerini barındırırken aynı sunucuyu kullandıklarını düşünelim. Alice'in dosyaları / var / www / alice'de saklanırken, Bob'un belgeleri / var / www / bob'da bulunabilir. Ayrıca, sunucuda, sistem kullanıcı adlarını ve şifrelerini içeren şifrelenmemiş bir düz metin dosyasını (/ usr / crappyhosting / myfolder) tutan (/ usr / crappyhosting / myfolder) başka bir klasör olduğunu varsayalım..

Benimle şimdiye kadar mı? İyi. Şimdi, Bob’un web sitesinde yerel olarak üretilen PDF dosyalarını sunduğunu ve yerel dosyaya URL’de başvurulduğunu düşünelim. Gibi bir şey:

http://example.com/file?=report.pdf

'Report.pdf' dosyasını dizini değiştiren bazı UNIX parametreleriyle değiştirirsem ne olur??

http://example.com/file?=… / alice /

Sunucu yanlış yapılandırılmışsa, bu Alice'in belge kökünü görmenize izin verir. İlginç, ama bu sulu pasaport dosyasına çok daha fazla ilgi duyuyoruz.. Accio şifreleri!

http://example.com/file?=… /… /… / usr/crappyhosting/myfolder/pwd.txt

Gerçekten bu kadar kolay. Fakat bununla nasıl başa çıkacağız? Bu kolay.

Hiç bilinen küçük bir Linux yardımcı programını duydunuz mu? chroot? Muhtemelen ne yaptığını tahmin etmişsindir. Linux / UNIX kökünü isteğe bağlı bir klasöre ayarlayarak kullanıcıların ondan çıkmasını imkansız hale getirir. Etkili, dizin geçişi saldırılarını izlerinde durdurur.

Ev sahibinizin bu yasayı ihlal etmeden yerinde olup olmadığını söylemek zor. Sonuçta, test etmek için erişim izniniz olmayan sistemlere ve dosyalara erişiyor olacaksınız. Bunu göz önünde bulundurarak, belki de web sunucunuzla konuşmanız ve kullanıcılarını birbirlerinden nasıl izole ettikleri hakkında bilgi almanız mantıklı olacaktır..

Kendi paylaşılan barındırma sunucunuzu mu işletiyorsunuz ve kullanıcılarınızı korumak için chroot kullanmıyor musunuz? Kuşkusuz, ortamlarınızı gizlemek zor olabilir. Neyse ki, bunu kolaylaştıran birçok eklenti var. Özellikle mod_chroot'a bir göz atın.

Komut Enjeksiyonu

Alice ve Bob'a geri dönelim. Yani, Bob'un web uygulamasının birkaç tane olduğunu biliyoruz… Ahem… İçinde güvenlik sorunları var. Bunlardan biri, rasgele sistem komutlarını çalıştırmanıza izin veren komut enjeksiyonu güvenlik açığıdır. Linux Komut Satırına Başlamak İçin Hızlı Kılavuz Linux Komut Satırına Başlamak İçin Hızlı Kılavuz Linux Komut Satırlarına Başlamak İçin Hızlı Kılavuz ve öğrenmek gerçekten zor değil. .

Bob'un web sitesi, başka bir web sitesinde whois sorgusu çalıştırmanızı ve ardından tarayıcıda görüntülenmesini sağlar. Etki alanı adını kabul eden ve ardından whois system komutunu çalıştıran standart bir HTML giriş kutusu vardır. Bu komut system () PHP komutu çağırılarak çalıştırılır.

Birisi aşağıdaki değeri girerse ne olur??

example.com && cd… / alice / && rm index.html

Hadi onu parçalayalım. 'Linux'a Başlarken Kılavuzunu' okuduysanız, bunlardan bazıları size tanıdık gelebilir. Linux'a Başlarken Kılavuzu Linux'a Başlarken Kılavuzu Linux'a Yeni Başlayanlar için Linux'a Başlarken Kılavuzu! Muhtemelen Microsoft'u zorlayan ücretsiz, açık kaynaklı işletim sistemi olan Linux'u duymuşsunuzdur. 2010'da daha önce yayınladığımız veya Linux Komut Satırı Hile Sayfamıza genel bakışımız olan e-kitap.

İlk olarak example.com'da bir whois sorgusu çalıştırır. Ardından mevcut çalışma dizinini Alice'in belge köküne değiştirdi. Sonra kendi web sitesine dizin sayfası olan 'index.html' adlı dosyayı kaldırır. Bu iyi değil. Hayır efendim.

Peki, sistem yöneticileri olarak, buna karşı nasıl hafifletebiliriz? Önceki örneğe geri dönersek, her kullanıcıyı kendi yalıtılmış, temizlenmiş, çevrelenmiş ortamlarına koyabiliriz..

Buna dil seviyesinden de yaklaşabiliriz. İşlev bildirimlerini dillerden genel olarak kaldırmak mümkündür (bununla birlikte bazı şeyleri bozabilir). Yani, işlevselliği kullanıcıların erişebildiği dillerden kaldırmak mümkündür..

PHP'ye özellikle baktığımızda, dilin işlevselliğini değiştirmek için PHP'nin resmi araç seti Runkit ile işlevselliği kaldırabilirsiniz. Dışarıda bir sürü belge var. İçine okumak.

Ayrıca, korsanların sıklıkla suistimal ettiği işlevleri devre dışı bırakmak için PHP'nin yapılandırma dosyasını (php.ini) değiştirebilirsiniz. Bunu yapmak için sunucunuzda bir terminal açın ve php.ini dosyanızı bir metin düzenleyicide açın. VIM kullanmaktan zevk alıyorum, ancak NANO da kabul edilebilir.

Disable_functions ile başlayan satırı bulun ve yasaklamak istediğiniz işlev tanımlarını ekleyin. Bu durumda, exec, shell_exec ve system olur, ancak bilgisayar korsanları tarafından sömürülebilen başka yerleşik fonksiyonlar olduğuna dikkat çekmeye değer..

disable_functions = exec shell_exec, sistem

Dil ve Tercüman Tabanlı Saldırılar

Öyleyse, PHP'ye bakalım. Şaşırtıcı sayıda web sitesine güç veren dil budur. Aynı zamanda bir dizi deyim ve garip davranışlarla birlikte geliyor. Bunun gibi.

PHP genellikle Apache web sunucusu ile birlikte kullanılır. Çoğunlukla, bu yapılandırma ile dilin birden çok sürümünü yüklemek imkansız.

Bu neden bir problem? Diyelim ki Bob'un web uygulaması aslen 2002'de inşa edildi. Bu çok uzun zaman önceydi. Bu, Michelle Branch'in hala tabloları doldururken, Michael Jordan hala Washington Büyücüleri için çalıyordu ve PHP çok farklı bir dildi..

Ama Bob'un web sitesi hala çalışıyor! Durdurulan ve kullanımdan kaldırılmış PHP işlevlerinin bir demetini kullanır, ancak işe yarar! PHP'nin modern bir sürümünü kullanmak, Bob'un web sitesini etkili bir şekilde kıracak ve Bob neden web sitesinin kaprislerine hitap etmek için web sitesini yeniden yazmalı??

Bu size bazı web host yüzlerinin ikilem hakkında bir fikir vermelidir. Mimari olarak sağlam ve güvenli bir hizmet sunmayı dengelemeleri gerekirken, ödeme yapan müşterilerin mutlu olmalarını sağlamak.

Sonuç olarak, daha küçük, bağımsız ana bilgisayarların PHP'nin eski sürümlerini (veya bu konuda herhangi bir dilde) tercüman kullandığını görmek nadir değildir..

Daha küçük, bağımsız ana bilgisayarların PHP'nin eski sürümlerini kullandığını ve potansiyel olarak kullanıcıları güvenlik risklerine maruz bıraktığını görmek nadir değildir..

Bu neden kötü bir şey? Öncelikle, kullanıcıları bir dizi güvenlik riskine maruz bırakacaktır. Çoğu büyük yazılım paketi gibi, PHP de sürekli olarak keşfedilen (ve ifşa edilen) güvenlik açıkları bolluğunu ele almak için sürekli güncellenmektedir..

Ayrıca, kullanıcıların en yeni (ve en mükemmel) dil işlevlerini kullanamayacağı anlamına gelir. Ayrıca, bir sebepten dolayı kullanımdan kaldırılmış olan fonksiyonların kaldığı anlamına gelir. PHP programlama dili söz konusu olduğunda, bu, MySQL İlişkisel Veri Tabanı Sistemi ile etkileşime girmek için kullanılan, korkunç derecede korkunç (ve son zamanlarda kullanımdan kaldırılan) mysql_ işlevlerini ve kullanıcıların kendi dil uzantılarını içe aktarmalarına olanak sağlayan dl () işlevlerini içerir..

Bir kullanıcı olarak, hizmetinizde hangi tercüman sürümünün çalıştığını görebilmeniz gerekir. Eskiyse veya bir dizi güvenlik açığı varsa, ana makinenize başvurun.

Peki ya sysadmins? Burada bir kaç seçeneğin var. İlki (ve en umut verici), kullanıcılarınızın her biri için Docker'ı kullanmaktır. Docker, başka bir işletim sistemini çalıştırmak zorunda olmasa da, bir sanal makinenin yaptığı gibi, aynı anda birden fazla yalıtılmış ortamı çalıştırmanıza izin verir. Sonuç olarak, bu hızlı. Gerçekten, gerçekten hızlı.

Sade ingilizce? Kullanıcılarınızın çoğu için en son ve en büyük kanama tercümanını çalıştırabilirken, eski, kullanımdan kaldırılmış tercümanları kullanan eski uygulamaları kullanan müşteriler bunu yaparken diğer kullanıcılardan ödün vermeden kullanabilirsiniz..

Bu aynı zamanda agnostik dil olma avantajına sahiptir. PHP, Python, Ruby. Her neyse. Hepsi aynı.

Kabus yok.

Bu yazı birkaç şey yapmaya yönelikti. İlk olarak, web hosting firmalarının, müşterilerinin ve verilerinin güvenliğini sağlamak için karşı karşıya kalmaları gereken güvenlik sorunlarının sayısını dikkatinize sunmak oldu..

Aynı sunucuda barındırılan sitelerin birbirlerini nasıl etkileyebileceğini göstermesi de amaçlanmıştır. Buna bir diş koymak ister misin? İyi ve güvenli kodlama standartlarına uymaya başlayın. Özellikle, girişlerinizi hem ön ucunda hem de arka ucunda temizlemeye başlayın.

Yeni bir HTML5 form doğrulama işlevselliği ile iyi bir başlangıç. Bunu daha önce HTML5 rehberimizde konuştuk. Toplu olarak, daha iyi, daha bilinçli programcılar olarak web sitelerini daha güvenli hale getirebiliriz.

Her zamanki gibi, düşüncelerini duyduğum için hazırım. Bana aşağıya bir yorum bırakın.

Fotoğraf Kredisi: Herkesin Hacker'a İhtiyacı Var (Alexandre Dulaunoy), Taksi Penceresinde Etiket (Cory Doctorow), Sunucu odası (Torkild Retvedt), Linux Kitapları ve Dergileri (library_mistress), PHP Elephant (Markus Tacker)




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.