Ruby On Rails Güvenlik Açığı, CSRF koruma bypass’a izin verir


Ruby on Rails’in siteler arası istek amptör (CSRF) koruma mekanizmasında kritik bir güvenlik açığı tanımlanmıştır, bu da 2022/2023 “düzeltme” nden bu yana tüm sürümleri etkilemekte ve mevcut uygulamada devam etmektedir.

Bu kusur, çerçevenin CSRF saldırılarına karşı uygulamaları güvence altına alma yeteneğini zayıflatır, potansiyel olarak saldırganların jetonları dövmesine veya tekrar oynamasına ve kullanıcılar adına yetkisiz eylemler yürütmesine izin verir.

Maruz kalan csrf jeton mekanizması

Sorunun kökü, rayların CSRF jetonlarını nasıl ürettiği ve idare ettiği konusunda yatmaktadır.

– Reklamcılık –
Google Haberleri

Rails, bir “tek seferlik ped” (OTP) kullanır-rastgele değere, “ham belirteci” maskesine, küresel bir jeton veya form başına bir jeton olabilen CSRF korumalarının etkin olup olmadığına bağlı olarak.

OTP, “şifrelenmiş” bir versiyon oluşturmak için ham jetonla xored ve hem OTP hem de ortaya çıkan şifreli jeton “maskelenmiş bir jeton” oluşturmak için birleştirildi.

Bu maskeli jeton daha sonra baz64 kodlu ve kullanıcıya gönderilir. Jetondaki şifrelenmiş verilerin yanı sıra OTP (esasen şifreleme anahtarı) dahil kritik olarak, sömürü mekanizmasını ortaya çıkarır.

Saldırganlar Base64 dizesini kolayca kodlayabilir, OTP’yi çıkarabilir ve çiğ jetonu kurtarmak için şifrelenmiş kısımla xor olabilir.

Bununla, kendi OTP’lerini üreterek ve ham jetonu yeniden şekillendirerek veya jetonu kötü niyetli isteklerde tekrarlayarak yeni bir jeton oluşturabilirler.

Bu tasarım kusuru, maskelemeyi bir güvenlik önlemi olarak etkisiz hale getirir, çünkü jetonun maskesini kaldırmak için gereken anahtar, jetonun kendisinde önemsiz bir şekilde erişilebilir.

İstismarın teknik dökümü

Rails kod tabanının daha fazla incelenmesi, özellikle request_forgery_protection.rbişlevleri ortaya çıkarır mask_token Ve masked_authenticity_token Bu kusurlu sürecin düzenlenmesi.

. mask_token Yöntem, OTP’yi kullanarak SecureRandom.random_bytes ve diğer yöntemler HMAC-SHA256 kullanarak form başına veya küresel bağlamlar için jeton üretimini işlerken, şifrelenmiş çiğ jeton ile birleştirir.

Bununla birlikte, OTP’yi şifreleme metniyle bir araya getirmenin temel hatası devam ederek sistemi konfigürasyondan bağımsız olarak savunmasız bırakır.

Kavram kanıtı JavaScript aracı, sömürü kolaylığını gösterir.

Çalınan bir CSRF jetonunu kodlayarak, OTP ve çiğ jetonu XOR işlemleri yoluyla çıkararak ve değiştirilmiş bir OTP ile yeni bir jeton hazırlayarak, saldırganlar rayların doğrulamasını geçen geçerli belirteçler üretebilir.

SecListes raporuna göre, bu araç, rayların korumalarını atlamanın basitliğinin altını çizerek, bir sahtecilik oluşturmak için hedeflenen bir uygulamadan sadece bir jetona erişim gerektirir.

Bu güvenlik açığı, çerçevenin jeton maskeleme yoluyla ihlal gibi saldırıları hafifletme girişimini ortadan kaldırdığı için Rails’in yerleşik CSRF korumalarına dayanan uygulamalar için önemli bir risk oluşturmaktadır.

Geliştiriciler, sağlam bir düzeltme verilinceye kadar özel jeton doğrulaması veya daha katı oturum işlemesi gibi ek korumalar uygulamaları istenir.

Rails topluluğu ve bakımcılar, OTP’nin istemci tarafı jetonuna dahil edilmesinden veya daha güvenli bir şifreleme yöntemi benimseyerek jeton maskelemesini potansiyel olarak yeniden düşünerek bu tasarım kusurunu ele almalıdır.

Şu an itibariyle, bu sorun, en yaygın kullanılan web çerçevelerinden birinde göze çarpan bir güvenlik boşluğu olmaya devam ediyor ve dünya çapında sayısız web uygulamasını potansiyel sömürüden korumak için acil ilgi ve iyileştirme ihtiyacını vurgulamaktadır.

Bu haberi ilginç bul! Anında güncellemeler almak için bizi Google News, LinkedIn ve X’te takip edin!



Source link