Web Site Güvenliği İçin Alınması Gereken Önlemler
Hepinize merhaba dostlarım :). Bu yazımda sizlere web sitelerinde karşılaşılan güvenlik açıkları ve bu açıklardan kurtulma yöntemlerinden bahsetmek istedim. Özellikle son zamanlarda web sitelerindeki güvenlik açıkları yüzünden birçok firma ve kuruluş zarar görebiliyor. Tabi bir programcı olarak da bu güvenlik açıklarını önceden analiz edip ona göre bir yol çizilmesi ve web sitesini programlarken herhangi bir saldırı olma ihtimaline karşı düşünceyle baz alınarak kodlanması gerek firma için gerekse programcı için ileriki aşamalarda güzel bir şekilde sonuçlanacaktır. Şimi merak ediyorsunuzdur nedir bu güvenlik açıkları :). Sözü daha fazla uzatmadan konumuza giriş yapalım
1-) XSS
Gelelim ilk web sitesi güvenlik açıklarından birisi olan xss konusuna. XSS (Cross Site Scripting) açığını ele alacak olursak dostlarım bir kötü amaçlı ziyaretçinin sitemizdeki formlara gelip script kodları basması olayı olarak açıklanabilir. Şimdi bazılarınız merak ediyordur "Web Sitesinde Form Alanlarına HTML Kodları Basan Var Mı?". Evet var :). Her insan formlara girip direk metin yazmıyor direk script kodlarını basıp bizim veri tabanımıza kayıt edilmesi işlemini hedef alıyor. Şimdi güvenlik korumasına gelecek olursak XSS ten nasıl korunuruz ondan bahsedelim.
Form kısmından verilerin geldiği yerlere eğer bir framework kullanıyorsak middleware (ara katman) kullanıp gelen verileri işleme alamadan direkt olarak html kodlarını bu formdan gelen verilerden süzebiliriz. Eğer bir framework kullanmıyorsak (core php olabilir bu) php üzerinden örnek vermemiz gerekirse script kodlarını temizleyen bir fonksiyon oluşturup bu formdan gelen her veriyi bu şekilde süzebiliriz :). Gelelim diğer bir güvenlik önlemine
2-) DDos
DDos saldırısını son zamanlarda çok sık duymuş olabilirsiniz dostlarım :). Bu web sitesi zaafiyetine değinecek olursak bir web siteniz var diye ele alalım. Bu web sitesine kötü amaçlı kişilerin gelip yoğun trafik yaşatması ve hostinginizin aşırı trafikten dolayı çökme durumunun yaşatılması olayıdır. Özellikle hostinginizin trafik sayısı düşük ise (Aylık 10000 Trafik olarak örnek verelim) kötü amaçlı kişiler gelip DDos saldırısı başlattığında ve hostingin trafik sayısını geçtiğinde artık siteniz açılmayacaktır çünkü sunucunuz (hostinginiz) çökmüştür. Peki bu durumda nasıl önlem alabiliriz diye merak ediyorsanız site koruma için CloudFlare gibi sitelerden DDos Koruması alabilir ve web sitelerinizin açılmasını ziyaretçilere bekleterek açmak sizin için faydalı olacaktır
3-) Şifre Saldırıları
Şifre saldırıları artık hemen hemen her yerde karşımıza çıkıyor artık dostlarım :). Özellikle brute force terimini son zamanlarda artık sık sık duymuşsunuzdur bu da bir şifre saldırı yöntemidir. Şimdi gelelim şifre saldırı yöntemini kköötü amaçlı kişiler nasıl yapıyor onlardan bahsedelim ve bu açıktan nasıl korunuruz ona değinelim.
Şimdi bir web sitenizin varlığını ve bu web sitenizin admin paneli düşünelim. Admin panele girmek için ne lazım email ve şifre. Şimdi siz admin panele girmek için bu şifrenizi giriyorsunuz ya atıyorum 123 diyelim şifrenize. Kötü amaçlı yazılımcıların elinde bir wordlist yani şifreleri deneme yanılma yoluyla kontrol etmek için bir wordlist oluyor ve o wordlist içindeki yazılımı sürekli ama sürekli deniyor. Eğer 123 gibi basit bir şifre koymuş iseniz sisteminize veda edin :). İşte dostlarım bu durumda korunmak için şifrenizi olabildiğince karmaşık bir hale getirin ve içerisine % $ + vs gibi karakterler kullanın ve 8 karakterden uzun olsun. Diğer bir korumaya değinecek olursak onu da bir örnekle açıklayayım. Sitenizde özellikle veri tabanının güvenliği sağlanmamışsa kötü amaçlı kişiler veri tabanınıza erişip hesap bilgilerine erişebilir. İşte bu durumda bu şifrenizi veri tabanınızda şifreleyerek giriş yaparken şifrenizi şifreleyip kontrol ettirmek mantıklıdır. Bu durum sizi biraz daha koruyabilir.
4-) SQL Injection
Adından da anlaşılacağı üzere sql enjekte etme olayı olarak bilinen bu güvenlik açığı web sitenizde kötü amaçlı kişilerin sql kodu basarak sisteminizdeki veri tabanında değişiklik yapma olayı olarak bilinir. Şimdi aklınızdan şu soru geçiyordur: "Kullanıcı Tarafından Veri Tabanı Üzerinde Nasıl Değişiklik Yapılacak Ki ?". Size şöyle açıklayayım dostlarım
Sitenize bir ziyaretçi geldi ve size mesaj gönderdi ve bu mesajı veri tabanında aldınız buraya kadar normal. Şimdi aklınıza şu soruyu getirin "Kullanıcı tarafından bize mesaj gelip veri tabanına ekleniyorken güvenlik alınmadığı takdirde veri tabanımızdaki verilere erişim sağlayabilir mi?". Cevabım Evet dostlarım. Güvenlik alınmadığı taktirde form kısmından sql kodları basılarak veri tabanı bilgilerine erişilebilir ve sisteminize zarar verilebilir.
Pekiiii bu durumda güvenlik önlemimizi nasıl alabiliriz diye soracak olursanız form kısmından gelecek olan bütün verileri bir sql sorgusu olup olmadığı kontrolünden geçirerek bu güvenliği sağlayabiliriz. Eğer bir sql sorgusu ise ziyaretçiye uyarı verdirebiliriz, ama değilse normal iyi niyetli bir ziyaretçi ise bilgileri veri tabanına kaydedebiliriz
5-) MITMF (Man In The Middle)
Man in the middle yani ortadaki adam saldırısı olarak bilinen bu açık türü ise bir web sitenizde kötü amaçlı kullanıcının istemci ve sunucu arasına yerleşip bilgileri alması ve sistemde hiçbir sorun yokmuş gibi işlem görmesi olayıdır. Örnek verecek olursak bir ziyaretçi sisteme login oluyor diyelim ama sistemde de kötü amaçlı bir kişi ortadaki adam olarak duruyor. Kullanıcı login olurken onun bilgileri öncelikle ortadaki adama gidiyor o kişi bilgilerin sunucuya gitme aşamasında kendisi de görmüş oluyor. Ziyaretçinin diğer etkinliklerini de alıyor bu arada :). Her bir click olayında gerçekleştirdiği işlemi rahatlıkla ele geçiriyor. Ne kadar tehlikeli bir durum değil mi ?
İşte bu durumda ele alacağımız güvenlik koruması ise web sitelerimizin SSL sertifikalı olmasının önemli oluşudur dostlarım. Siteniz her ne olursa olsun ssl sertifikasını almanız sizlerin man in the middle saldırısının önüne geçmenize yardımcı olacaktır. SSL sertifikası istemci ve sunucu haberleşmelerini şifreli bir şekilde sağlayıp bu ortadaki adamın verileri şifreli bir şekilde görmesine sebep olur.
Evet dostlarım bu yazımda sizlere web sitelerindeki olası güvenlik açıklarından ve bu güvenlik açıklarından kurtulmak için nasıl bir yol izlemeliyiz onlardan dilim döndüğünce bahsettim. Umarım faydalı olmuşumdur. Herhangi bir bilgi yanlışlığı varsa bunu mesaj yoluyla belirtebilirsiniz.
Sizlerden isteğim bir program yazarken bunu her türlü kötü ihtimali göz önünde bulundurarak ona göre güvenlik analizleri yapıp güvenlik duvarı yazmanızdır dostlarım :).
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)
Yazar Hakkında
Kendi Halinde Bir Backend Developer