Web Sitesi Güvenliğini Geliştirmek İçin 10 İpucu

HAZİRAN 16, 2015 KESİNLİKLE KESİM

Son yıllarda, web geliştirme alanında büyük araçlar ve hizmetler yaygınlaştı. WordPress, Joomla !, Drupal ve diğerleri gibi içerik yönetim sistemleri (CMS), işletme sahiplerinin çevrimiçi bir varlığı hızlı ve verimli bir şekilde oluşturmasına olanak tanır. Oldukça genişletilebilir mimarileri, zengin eklentileri, modülleri ve uzantısı ekosistemleri, yıllarca öğrenme gerekmeksizin bir web sitesi hazırlamak ve çalıştırmak için her zamankinden daha kolay hale geldi.

Şüphesiz bu harika bir şey; Ancak, talihsiz bir yan etkisi şu anda web sitelerinin güvenli olduğundan emin olmasını anlamayan pek çok web yöneticisinin olması veya web sitelerini güvence altına alma konusundaki önemini anlamaları. Bu yazıda, web yöneticilerinin ve web sitesi sahiplerinin web sitelerini güvende tutmak için yapabilecekleri (ve yapmaları gereken) en iyi 10 adımın sizinle paylaşmak istiyorum.

1 – Güncelleme, Güncelleme, Güncelleme!

Bu, Sucuri’de yeterince stres veremediğimiz bir şey. Sayısız web sitesi, bunları çalıştırmak için kullanılan eski ve güvensiz yazılımlar nedeniyle her gün tehlikeye düşüyor. Yeni bir eklenti veya CMS sürümü mevcut olduğunda sitenizi güncellemek son derece önemlidir. Bu günlerde gerçekleştirilen çoğu saldırı tamamen otomatiktir. Botlar, sömürü fırsatları için ellerinden gelen her siteyi sürekli olarak tarıyorlar. Güncelleme gününüzde ayda bir kez veya haftada bir kez güncellemek yeterli değildir, çünkü botlar düzeltme ekini düzeltmeden önce güvenlik açığı bulma olasılığı yüksektir. Bir web sitesi güvenlik duvarı çalıştırmıyorsanız, güncellemeler piyasaya çıktığında en kısa zamanda güncelleştirmeniz gerekir. WordPress’i çalıştırıyorsanız, şahsen, ‘WP Updates Notifier’ eklentisini öneriyorum. Bir eklenti veya WordPress çekirdeği güncellemesi ne zaman mevcut olduğunu size bildirmenizi emrediyor. Ayrıca, önemli güncellemeler ve güvenlik uyarıları hakkında bilgilendirilmek için Twitter’da @sucuri_security adresini takip etmeniz gerekmektedir.

2 – Parolalar

İstemci sitelerinde çalışmak için genellikle kendi yönetici kullanıcı ayrıntılarını kullanarak kendi sitelerine / sunucusuna giriş yapmam gerekiyor ve kök şifrelerinin ne kadar güvensiz olduğundan sık sık rahatsız oluyorum. Bunu söylemek zorundayım, ancak admin / admin güvenli bir kullanıcı adı ve şifre kombinasyonu değildir. Şifreniz bu en yaygın şifre listesinde görünüyorsa, sitenizin bir noktaya saldırıya uğraması garanti edilir.

Parolanız listede yoksa bile, “güçlü” parolalar hakkında bir çok yanılgı var. Çoğu şifre kuvvet ölçüm cihazında gevşek gereklilikler sorunun bir parçasıdır. WP Engine’deki arkadaşlarımız, şifreleri çevreleyen efsanelerden birçoğunu çıkartan ilginç bir araştırma yapmışlardır.

Bir şifre seçerken her zaman takip edilmesi gereken 3 önemli şart vardır (CLU – Complex, Long, Unique):

KOMPLEKS: Parolalar rasgele olmalıdır. Birisinin hesabınızı kesmesine izin vermeyin, sadece doğum tarihinizi veya favori spor takımınızı bulabileceklerinden dolayı. Şifreyi kıran programlar milyonlarca parolayı birkaç dakika içinde tahmin edebilir. Şifrenizde gerçek kelimeler varsa, rasgele değildir. Leetspeak’ı (harfler L1K3 TH15 karakterleriyle değiştirilir) kullanmanın zekice olduğunu düşünebilirsiniz, ancak bunlar bile tamamen rasgele karakter dizisi kadar güvenli değildir. Hackerlar şifreleri çatlamak için ciddi derecede etkileyici kelime listeleri derlediler.
UZUN: Parolalar 12+ karakter uzunluğunda olmalıdır. Güvenlik camiasındaki bazılarının 12 karakterden oluşan bir parolayı karıştırıp parolaların daha uzun süre ısrar edeceğini biliyorum. Bununla birlikte, çevrimiçi giriş sistemleri söz konusu olduğunda, basit güvenlik kurallarını takip eden herhangi bir sistem başarısız giriş girişimleri sayısını sınırlamalıdır. Başarısız oturum açma girişimleri sayısı üzerinde bir sınır varsa, 12 karakterlik bir şifre, onu yalnızca bir kaç denemede tahmin etmesini kolayca durdurur. Bunu söyleyerek, şifre ne kadar uzun olursa, o kadar iyi olur.
EŞSĠKA: Parolaları tekrar kullanmayın! Sahip olduğunuz her şifrenin benzersiz olması gerekir. Bu basit kural, herhangi bir parolanın tehlikeye atıldığı etkisini önemli ölçüde sınırlar. Birisi FTP şifrenizi öğrenmek için onlara e-posta veya internet bankacılığı hesabınıza giriş yapmalarını sağlamamalıdır. Popüler inancın aksine kendimize inanmamız kadar benzersiz değiliz; Rastgele şifre üretirseniz, daha da iyi.
Şimdi, “tüm 12 karakter uzunluğunda 10 adet rastgele şifreyi nasıl hatırlamalıyım?” Diye sorduğunuzu duyabiliyorum. İyi haber şu ki hepsini hatırlamanıza gerek yok ve aslında denemelisiniz. Cevap, “LastPass” (çevrimiçi) ve “KeePass 2” (çevrimdışı) gibi bir şifre yöneticisi kullanmaktır. Bu parlak araçlar, tüm şifrelerini şifrelenmiş bir biçimde saklar ve bir düğmeyi tıklatarak kolayca rasgele şifreler oluşturabilir. Parola yöneticileri, iyi şifrelerden birkaçını ezberlemekten çok, güçlü parolaları kullanmayı çok daha kolay hale getirir.

Evet, bu şifre yöneticileri zorlukları ve muhtemel bir zayıf nokta gösterebilir. Sadece bu hafta LastPass bir uzlaşma duyurdu. Her ne kadar tüm uzlaşmalar aynı değildir (daha başka bir zamanda).

3 – Bir Site = Bir Konteyner

Cazibeyi anlıyorum. ‘Sınırsız’ bir web barındırma planınız var ve sayısız sitenizi tek bir sunucuda barındırmamaya niçin vazgeçersiniz. Ne yazık ki, sık karşılaştığım en kötü güvenlik uygulamalarından biri. Birçok siteyi aynı yerde barındırmak, çok büyük bir saldırı yüzeyi oluşturur.

Örneğin, bir siteyi içeren bir sunucu, potansiyel olarak bir saldırganın hedef alabileceği bir temaya ve 10 eklentiye sahip tek bir WordPress yüklemesine sahip olabilir. Tek bir sunucuda 5 siteye ev sahipliği yapıyorsanız, bir saldırganın potansiyel hedef olabilecek üç WordPress yüklemesi, iki Joomla yüklemesi, beş teması ve 50 eklentisi olabileceğini unutmayın. Daha da kötüsü, bir saldırgan bir sitede bir exploit bulduğu zaman, enfeksiyon çok kolay yayılabilir.

Bu, tüm sitelerinizin aynı anda saldırıya uğramasına neden olmakla kalmaz, aynı zamanda temizleme işlemini çok daha fazla zaman alır ve zorlaştırır; Virüs bulaşmış siteler birbirlerini sonsuz döngü içinde tekrar enfekte edebilirler.

Temizleme başarılı olduktan sonra, artık şifrelerinizi sıfırlamaya gelince çok daha büyük bir göreve sahipsiniz. Sadece bir site yerine, onlardan bir miktarınız var. Sunucu üzerindeki tüm web siteleri ile ilişkili her bir şifre, enfeksiyon geçtikten sonra değiştirilmelidir: tüm İçerik Yönetim Sistemi (CMS), veritabanı ve Dosya Aktarım Protokolü (FTP) kullanıcılarının tümü bu web siteleri için değiştirilmelidir. Bu adımı atlarsanız, web sitelerinin hepsi yeniden enfekte olabilir ve birinci kare dönersiniz.

4 – Akılcı Kullanıcı Erişimi

Bu kural yalnızca birden çok oturum açmış siteler için geçerlidir. Her kullanıcının kendi görevini yapmak için gerekli uygun iznine sahip olması önemlidir. Bir kere yükseltilmiş izinlere ihtiyaç duymaları durumunda, izin verin, ardından iş tamamlandıktan sonra azaltın. Bu, En Az Ayrıcalıklı olarak bilinen bir kavramdır.

Örneğin, sizin için bir misafir blog yazısı yazmak isteyen bir arkadaşınız varsa, hesabının tam yönetici ayrıcalıklarına sahip olmadığından emin olun. Arkadaşlarınızın hesabı yalnızca, yeni mesajlar oluşturabilir ve kendi yayınlarını düzenleyebilir, çünkü web sitesi ayarlarını değiştirebilmelerine gerek yoktur.

Dikkatle tanımlanmış erişimin olması, yapılabilecek hataları sınırlar. Bu, ele geçirilen hesapların ortaya çıkmasını azaltır ve “haydut” kullanıcılar tarafından yapılan hasarlara karşı koruma sağlayabilir. Bu, kullanıcı yönetiminin göz ardı edilen bir parçasıdır: hesap verebilirlik ve izleme. İnsanlar bir kullanıcı hesabı paylaşıyorsa ve o kullanıcı tarafından istenmeyen bir değişiklik yapılmışsa, ekibinizde hangi kişinin sorumlu olduğunu nasıl buluyorsunuz?

Her kullanıcı için ayrı kullanıcı hesaplarınız olduktan sonra günlükleri gözden geçirerek ve normal davranışını (web sitesine nerede ve ne zaman eriştikleri) bilerek kullanıcı davranışlarını izleyebilirsiniz; böylece anomalileri tespit edebilir ve hesaplarının bulunduğu kişiyle onaylayabilirsiniz. Ödün verilmedi.

5 – Varsayılan CMS Ayarlarını Değiştirin!

Günümüzün CMS uygulamaları, kullanımı kolay olmasına rağmen, son kullanıcılar için güvenlik açısından oldukça korkunçtur. Şimdiye kadar web sitelerine yönelik en yaygın saldırılar tamamen otomatiktir ve bu saldırıların birçoğu varsayılan ayarlara dayanmaktadır. Bu, seçtiğiniz CMS’yi yüklerken varsayılan ayarları değiştirerek çok sayıda saldırıdan kaçınabileceğiniz anlamına gelir.

Örneğin, bazı CMS uygulamaları kullanıcı tarafından yazılabilir; böylece bir kullanıcının istediği uzantıları kurmasına izin verir. Yorumları, kullanıcıları ve kullanıcı bilgilerinizin görünürlüğünü denetlemek için ayarlamak istediğiniz ayarları vardır. Daha sonra tartışacağımız dosya izinleri, sertleşebilecek varsayılan bir ayarın başka bir örneğidir.

CMS’nizi yüklerken bu varsayılan ayrıntıları değiştirmek genellikle en kolalı, ancak daha sonra değiştirilebilir.

6 – Uzantı Seçimi

Günümüzün CMS uygulamalarıyla ilgili güzel şeylerden biri de genişletilebilirliğidir. Ancak en çok farkında olmayan şey, aynı genişletilebilirliğin en büyük zayıflık olmasıdır. Tahmin edebileceğiniz neredeyse tüm işlevleri sağlayan çok sayıda eklenti, eklenti ve uzantı bulunmaktadır. Bununla birlikte, gerçek şu ki, zaman zaman muazzam sayıda uzantı, iki taraflı bir kılıç olabilir. Benzer işlevleri sunan birden çok uzantı vardır, hangisini yükleyeceğinizi nereden biliyorsunuz? Hangi uzantıları kullanmaya karar verirken her zaman baktığım şeyler aşağıda.

Aradığım ilk şey, uzantının son güncellendiği zamandır. Son güncelleme bir yıldan fazla sürmüş olsaydı, yazarın üzerinde çalışmayı bıraktığından endişe ederim. Aktif olarak geliştirilmekte olan uzantıları kullanmayı tercih ediyorum çünkü yazar herhangi bir güvenlik sorunu keşfedildiğinde veya rapor edildiğinde en azından bir düzeltme yapmaya gönüllü olacağını belirtmektedir. Dahası, bir uzantı yazar tarafından desteklenmiyorsa, Web siteniz için herhangi bir zamanda çalışmayı bırakması pek de mantıklı değil.

Ayrıca uzatma yaşına ve kurulum sayısına bakmak istiyorum. Kurulu bir yazar tarafından çok sayıda yüklemeye sahip olan bir uzantı, 100 kurulumdan daha güvenilirdir ve ilk kez bir geliştirici tarafından serbest bırakılmıştır. Deneyimli geliştirici, en iyi güvenlik uygulamaları hakkında iyi bir fikre sahip olma ihtimalini artırmakla kalmaz, aynı zamanda, uzantılarına kötü amaçlı kodlar ekleyerek itibarlarına zarar verme olasılığı çok daha düşüktür. Daha da önemlisi, kullanıcı tabanı ne kadar büyük olursa, saldırganların daha teşvik edici saldırılarını kırmaya çalışması gerekir.

Tüm uzantılarınızı ve temalarınızı meşru kaynaklardan indirmeniz son derece önemlidir. Normalde premium olan ve indirmek için ödeme yapılması gereken ‘ücretsiz’ sürümler sunan birçok site var. Bu ‘ücretsiz’ sürümler korsan ve sık sık kötü amaçlı yazılım bulaşmış durumda. Bu ‘ücretsiz’ sürümleri sunan web siteleri, yalnızca bir amaçla kurulmuştur: malware’leriyle olabildiğince çok web sitelerine bulaş.

7 – Yedeklemeler

Dijital dünyadaki herhangi bir şey gibi, hepsi bir felaket olayında kaybolabilir. Sık sık yedekleme yapmıyoruz, ancak web siteniz için en iyi web sitesi yedekleme çözümlerini düşünmek için biraz zaman ayırırsanız, kendinize teşekkür edeceksiniz.

Web sitenizin yedeklemelerini yapmak çok önemlidir, ancak bu yedeklemeleri web sunucunuza kaydetmek büyük bir güvenlik riski altındadır. Bu yedeklemeler her zaman, bilgisayar korsanınızın yamatsız sürümlerini ve hacker’lara sunucunuza kolay erişim sağlayarak herkese açık olan uzantıları içerir.

Web sitenizin güvenilir ve güvenli yedeklerini nasıl yapacağınızı öğrenmek istiyorsanız, web sitemize yedekleme stratejisi kılavuzunu okumanızı öneririm.

8 – Sunucu Yapılandırma Dosyaları

Web sunucusu yapılandırma dosyalarını gerçekten öğrenmelisiniz. Apache web sunucuları .htaccess dosyası, Nginx sunucuları nginx.conf ve Microsoft IIS sunucuları web.config kullanır. Çoğu kök web dizininde bulunur, bu dosyalar çok güçlüdür. Bu dosyalar, web sitenizin güvenliğini artıran yönergeler de dahil olmak üzere sunucu kurallarını yürütmenizi sağlar.

Hangi web sunucusunu kullandığınızdan emin değilseniz, Sitecheck aracılığıyla web sitenizi çalıştırabilir ve Web Sitesi Ayrıntıları sekmesini tıklayabilirsiniz.

Aşağıda, belirli web sunucunuz için araştırma yapmanız ve eklemenizi önerdiğim birkaç kural vardır:

Dizine göz atmayı önle: Bu, kötü niyetli kullanıcıların web sitesindeki her dizinin içeriğini görüntülemelerini engeller. Saldırganlara sunulan bilgilerin sınırlandırılması daima yararlı bir güvenlik önlemidir.
Görüntü bağlantısını engelleyin: Bu kesinlikle bir güvenlik gelişimi değil, diğer web sitelerinin web sunucunuzda barındırılan resimleri görüntülemesini engellemektedir. İnsanlar sunucunuzdan görüntüleri hotlinking etmeye başlarsa, barındırma planınızın bant genişliği parası hızlı bir şekilde başkalarının siteleri için görüntü gösteren yenilgiye uğrayabilir.
Hassas dosyaları koruyun: Belirli dosyaları ve klasörleri korumak için kurallar koyabilirsiniz. CMS yapılandırma dosyaları, düz metin olarak veritabanı oturum açma ayrıntılarını içerdikleri için web sunucusunda depolanan en hassas dosyalardan biridir. Yönetilebilir alanlar gibi kilitlenebilen başka yerler olabilir. Ayrıca, PHP yürütülmesini resim tutan ya da yüklemelere izin veren dizinlerde kısıtlayabilirsiniz.
Web sunucusu yapılandırma dosyanız için daha fazla kural ve seçenek bulabilirsiniz. CMS’nizi, web sunucunuzu ve “güvenlik” adınızı arayabilir, ancak hiçbir şeyi uygulamadan önce bulgularınızın meşru olduğunu onaylamayı ihmal etmeyin. Bazı insanlar kötü bilgileri kötüye kullanma niyetiyle çevrimiçi hale getirir.

9 – SSL’yi Kur

Aslında, bu noktanın eklenip eklenip eklenmeyeceği konusunda iki fikrim var, çünkü SSL yüklemenin tüm güvenlik sorunlarınızı çözeceğini gösteren yanlış yazılmış çok sayıda makale var. SSL, sitenizi herhangi bir kötü amaçlı saldırıya karşı korumak için hiçbir şey yapmaz veya kötü amaçlı yazılım dağıtmasını durdurur. SSL, Web sitesi sunucusu ve tarayıcı olan Nokta A ve Nokta B arasındaki iletişimleri şifreler. Bu şifreleme, belirli bir nedenle önemlidir: Herkesin Orta (MITM) saldırısında bir Adam olarak bilinen bu trafiği engelleyebilmesini engeller.

SSL, E-Ticaret web sitesi güvenliği ve hassas kullanıcı verileriyle veya Kişisel Tanıtıcı Bilgilerle (PII) form gönderilerini kabul eden herhangi bir web sitesi için özellikle önemlidir. SSL sertifikası, ziyaretçinizin bilgilerini transit olarak korur; bu da PCI DSS’ye uyumsuz olarak bulunmanın getirdiği cezalar sizi korur.

10 – Dosya İzinleri

Dosya izinleri, dosyaya kimlerin ne yapabileceğini tanımlar.

Her dosya mevcut 3 izin sahibiyken her izin bir sayı ile gösterilir:

‘Oku’ (4): Dosya içeriğini görüntüleme.
‘Yaz’ (2): Dosya içeriğini değiştirin.
‘Execute’ (1): Program dosyasını veya komut dosyasını çalıştırın.
Birden fazla izin vermek istiyorsanız, yalnızca sayıları birlikte eklemeniz gerekir; ör. Okuma (4) ve yazma (2) ‘ye izin vermek için kullanıcı iznini 6’ya ayarlayın. Bir kullanıcının bir okuma (4), yazma (2) ve yürütme (1) vermesine izin vermek istiyorsanız, kullanıcı iznini 7’ye ayarlayın.

Ayrıca 3 kullanıcı tipi vardır:

Sahibi – Genellikle dosyanın yaratıcısıdır, ancak bu değiştirilebilir. Sahibi yalnızca bir kullanıcı olabilir.
Grup – Her dosyaya bir grup atanır ve o grubun üyesi olan herhangi bir kullanıcı bu izinleri alacaktır.
Herkese açık – Herkes.
Böylece, sahibin okuma ve yazma erişimi, grubun yalnızca okuma erişimi ve genel erişime sahip olmasını istemiyorsanız, dosyanın izin ayarları olmalıdır:

Write Read Execute
Owner 2 4 0
Group 0 4 0
Public 0 0 0

When you view the file permissions this will be shown as 640.

Dosya izinlerini görüntülediğinizde bu 640 olarak gösterilecektir.

Klasörler aynı izin yapılarına sahiptir; Tek fark ‘yürüt’ bayrağı dizini çalışma dizininize yapmanıza izin verir (dolayısıyla genelde onu çalıştırmak istersiniz).

Çoğu CMS yüklemesinin tüm izinleri varsayılan olarak doğru şekilde yapılandırılmıştır, bu yüzden neden izinlerin nasıl çalıştığını açıklayan çok fazla zaman harcadım? İzin hatalarına karşı çözüm ararken, web’in her yerinde dosya izinlerini 666’ya veya klasör izinlerini 777’ye değiştirmenizi tavsiye ederim. Bu tavsiye genellikle herhangi bir izin hatasını düzeltecektir, ancak bir güvenlik perspektifinden korkunç bir tavsiyetir. 666’ya bir dosya izini, 777’ye klasör izni ayarlarsanız, * herkesin * kötü amaçlı kod eklemesine veya dosyalarınızı silmesine izin verdiniz!

Sonuç

İşte elinizde! Web sitenizin güvenliğini önemli ölçüde artırmak için kullanabileceğiniz görece basit olan en iyi 10 adım. Bu adımlar tek başına sitenizin saldırıya uğramış olmasını garanti etmez, ancak onları takip etmeniz genel saldırı riskini azaltacak şekilde otomatik saldırıların çoğunu durduracaktır.

Bu konulardan haberdar olmak ve bunları anlamak, size temel alınan teknolojinin nasıl çalıştığına dair değerli bilgiler sağlayacak ve size daha iyi web yöneticisi / site operatörü olmasına yardımcı olacaktır.

Leave a Reply

Your email address will not be published. Required fields are marked *