• 02-06-2020, 22:26:05
    #1
    Türkçesi sitelerarası istek sahte-karlığı olan Cross Site Request Forgery birçok kişi tarafından Session Riding olarak da bilinmektedir ve XSRF ya da CSRF olarak kısaltılmaktadır. Websitelerini hedef alan Cross Site Request Forgecy websitesine güvendiği bir kullanıcı üzerinden izin verilmeyen ya da kullanıcının farkında olmadığı komutlar gönderen kötü niyetli bir exploit türü olarak bilinmektedir.

    CSRF'ye Nasıl Önlem Alınır?
    CSRF'nin websitesine verebileceği zararları önlemek için bazı önlemler bulunmaktadır. Bu önlemleri sistem tarafından alınması gereken önlemler ve kullanıcı tarafından alınması gereken önlemler olarak iki kısma ayırabiliriz. Aslında kullanıcının alacağı önlemler oldukça basittir. Çerezleri ve site verilerini belirli periyotlarla temizleyip, bilmediğiniz bağlantılara ve güvenli görmediğiniz maillere tıklamadığınız sürece CSRF saldırılarının önüne geçmiş olursunuz. Bu işin kolay gözüken kısmıdır. Asıl zor olan ve dikkat edilmesi gereken kısım sistem tarafından alınması gereken önlemlerdir bu önlemleri de sıralamak gerekirse;
    • Öncelikle post metoduna dikkat edilmelidir. Kullanıcıların sisteme göndermiş oldukları talepler post metoduyla alınmalıdır.
    • CSRF token modeline geçilmelidir. Token sistemi CSRF saldırılarının önüne büyük ölçüde geçecektir. Bu sistemi kısaca anlatmak gerekirse web sunucusu bir token oluşturmaktadır. Token formda gizli bilgi olarak depolanırken token bilgileri post verilerine dahil edilir. Bunun CSRF saldırılarının önüne geçmesindeki mantık şu şekildedir. Web uygulaması sistem tarafından oluşturulan token ile talepte gönderilen token'ı karşılaştırır. Bu token verileri eşleşmesi durumunda talebin gerçek kullanıcından geldiği anlaşılır ve kabul edilir aksi durumda CSRF saldırısı olduğu anlaşılarak reddedilir. Bu sayede CSRF saldırlarının önüne geçilmiş olunur.
    Token modeline geçtikten sonra CSRF saldırısının başarılı olabilmesi için kullanıcının token bilgilerini tahmin etmesi gerekmektedir bu da neredeyse imkansızdır. Aynı zamanda web sitesi sahibi de token oluştururken bu token bilgilerinin belirli bir süre için geçerli olmasını ve kullanıcının oturumu kapattıktan sonra bu token bilgilerini geçersiz hale getirmesi gerekmektedir.

    CSRF Saldırısı Nasıl Yapılır ve Tespit Edilebilir Mi?
    CSRF saldırısı yukarıda anlattığımız şeylere dikkat etmediğiniz takdirde maalesef basit bir şekilde yapılmaktadır. Gün içinde birçoğumuz internette gezinirken birçok sekme açarak geziniriz. Eğer saldırganlar tarafından zararlı bir link gönderilirse ve bu linke tıklarsak maalesef CSRF saldırısı başlar. Yan sekmelerde banka bilgilerine bakıyorsanız siz farkında olmadan para transferi, kredi çekme gibi birçok işlemi saniyeler içinde gerçekleştirir. Maalesef yalnızca bu tarz işlemler linke tıklamanız halinde gerçekleşmez. Eğer CSRF saldırısı altında bir siteye girmişseniz saldırganlar kullanıcıların oturumuna sızabilmektedir. Bu sebeple güvenmediğiniz sitelere girmemenizi öneririz. Zaten birçok büyük site CSRF saldırısına karşı gerekli önlemleri almaktadır.

    Peki bu CSRF saldırılarını önceden tespit edip önlem almak mümkün müdür diye soracak olursanız cevabımız maalesef olumsuz olacaktır. Çünkü kullanıcı tarafından gönderilmiş olan HTTP talebinin gerçek kullanıcıda mı saldırgandan mı geldiğini anlamanızın pek de bir imkânı bulunmamaktadır. Web sitesine giren kullanıcıya sürekli kimlik doğrulatmak da kullanıcı için oldukça sıkıcı bir işlem olacaktır. Bu sebeple token yöntemi kullanılmalı ve kullanıcının da sürekli kimlik doğrulama gibi işlemler yapmasının önüne geçilmelidir. Zaten token sistemini kullanıcı anlamaz otomatik bir şekilde kendisi yapar. Eğer token ya da başka bir kontrol sistemi yapılmazsa site CSRF saldırılarına tamamen korunmasız hale gelecektir. Bu sebeple site sahipleri bu sistemleri kesinlikle kullanmalıdır.

    Anlattığımız gibi CSRF saldırılarının önüne geçmek aslında oldukça basittir siz de gerekli önlemleri alarak bu saldırılardan korunabilir ve güvenli bir şekilde internette gezinebilirsiniz.
  • 02-06-2020, 22:34:09
    #2
    Ellerine sağlık hocam forum da olması gereken bir konu Bir çok yazılımcı arkadaş bu hataları yapıyor
  • 03-06-2020, 17:38:19
    #3
    🤖 AI Developer
    Anlatım çok güzel, elinize sağlık.
  • 03-06-2020, 17:42:02
    #4
    rimde06 adlı üyeden alıntı: mesajı görüntüle
    Türkçesi sitelerarası istek sahte-karlığı olan Cross Site Request Forgery birçok kişi tarafından Session Riding olarak da bilinmektedir ve XSRF ya da CSRF olarak kısaltılmaktadır. Websitelerini hedef alan Cross Site Request Forgecy websitesine güvendiği bir kullanıcı üzerinden izin verilmeyen ya da kullanıcının farkında olmadığı komutlar gönderen kötü niyetli bir exploit türü olarak bilinmektedir.

    CSRF'ye Nasıl Önlem Alınır?
    CSRF'nin websitesine verebileceği zararları önlemek için bazı önlemler bulunmaktadır. Bu önlemleri sistem tarafından alınması gereken önlemler ve kullanıcı tarafından alınması gereken önlemler olarak iki kısma ayırabiliriz. Aslında kullanıcının alacağı önlemler oldukça basittir. Çerezleri ve site verilerini belirli periyotlarla temizleyip, bilmediğiniz bağlantılara ve güvenli görmediğiniz maillere tıklamadığınız sürece CSRF saldırılarının önüne geçmiş olursunuz. Bu işin kolay gözüken kısmıdır. Asıl zor olan ve dikkat edilmesi gereken kısım sistem tarafından alınması gereken önlemlerdir bu önlemleri de sıralamak gerekirse;
    • Öncelikle post metoduna dikkat edilmelidir. Kullanıcıların sisteme göndermiş oldukları talepler post metoduyla alınmalıdır.
    • CSRF token modeline geçilmelidir. Token sistemi CSRF saldırılarının önüne büyük ölçüde geçecektir. Bu sistemi kısaca anlatmak gerekirse web sunucusu bir token oluşturmaktadır. Token formda gizli bilgi olarak depolanırken token bilgileri post verilerine dahil edilir. Bunun CSRF saldırılarının önüne geçmesindeki mantık şu şekildedir. Web uygulaması sistem tarafından oluşturulan token ile talepte gönderilen token'ı karşılaştırır. Bu token verileri eşleşmesi durumunda talebin gerçek kullanıcından geldiği anlaşılır ve kabul edilir aksi durumda CSRF saldırısı olduğu anlaşılarak reddedilir. Bu sayede CSRF saldırlarının önüne geçilmiş olunur.
    Token modeline geçtikten sonra CSRF saldırısının başarılı olabilmesi için kullanıcının token bilgilerini tahmin etmesi gerekmektedir bu da neredeyse imkansızdır. Aynı zamanda web sitesi sahibi de token oluştururken bu token bilgilerinin belirli bir süre için geçerli olmasını ve kullanıcının oturumu kapattıktan sonra bu token bilgilerini geçersiz hale getirmesi gerekmektedir.

    CSRF Saldırısı Nasıl Yapılır ve Tespit Edilebilir Mi?
    CSRF saldırısı yukarıda anlattığımız şeylere dikkat etmediğiniz takdirde maalesef basit bir şekilde yapılmaktadır. Gün içinde birçoğumuz internette gezinirken birçok sekme açarak geziniriz. Eğer saldırganlar tarafından zararlı bir link gönderilirse ve bu linke tıklarsak maalesef CSRF saldırısı başlar. Yan sekmelerde banka bilgilerine bakıyorsanız siz farkında olmadan para transferi, kredi çekme gibi birçok işlemi saniyeler içinde gerçekleştirir. Maalesef yalnızca bu tarz işlemler linke tıklamanız halinde gerçekleşmez. Eğer CSRF saldırısı altında bir siteye girmişseniz saldırganlar kullanıcıların oturumuna sızabilmektedir. Bu sebeple güvenmediğiniz sitelere girmemenizi öneririz. Zaten birçok büyük site CSRF saldırısına karşı gerekli önlemleri almaktadır.

    Peki bu CSRF saldırılarını önceden tespit edip önlem almak mümkün müdür diye soracak olursanız cevabımız maalesef olumsuz olacaktır. Çünkü kullanıcı tarafından gönderilmiş olan HTTP talebinin gerçek kullanıcıda mı saldırgandan mı geldiğini anlamanızın pek de bir imkânı bulunmamaktadır. Web sitesine giren kullanıcıya sürekli kimlik doğrulatmak da kullanıcı için oldukça sıkıcı bir işlem olacaktır. Bu sebeple token yöntemi kullanılmalı ve kullanıcının da sürekli kimlik doğrulama gibi işlemler yapmasının önüne geçilmelidir. Zaten token sistemini kullanıcı anlamaz otomatik bir şekilde kendisi yapar. Eğer token ya da başka bir kontrol sistemi yapılmazsa site CSRF saldırılarına tamamen korunmasız hale gelecektir. Bu sebeple site sahipleri bu sistemleri kesinlikle kullanmalıdır.

    Anlattığımız gibi CSRF saldırılarının önüne geçmek aslında oldukça basittir siz de gerekli önlemleri alarak bu saldırılardan korunabilir ve güvenli bir şekilde internette gezinebilirsiniz.
    Bazı PHP frameworklerinde mevcutta bu protection geliyor fakat sizin form ile göndermeniz vb. gerekiyor. Bakınız: CodeIgniter, Laravel

    Güzel anlatımın için teşekkür ederim. Bir çok PHP ile yazılmış yazılımda görmedim ben bu önlemi.
    • rimde06
    rimde06 bunu beğendi.
    1 kişi bunu beğendi.