Ruby on Rails uygulamaları, Ransack arama yoluyla veri hırsızlığına açık


Ben Dickson 26 Ocak 2023, 17:27 UTC

Güncellendi: 26 Ocak 2023, 17:41 UTC

Birkaç uygulama, kaba kuvvet saldırılarına karşı savunmasızdı; yüzlercesi daha risk altında olabilir

Ruby on Rails uygulamaları, Ransack arama yoluyla veri hırsızlığına açık

Güvenlik şirketi Positive Security, Ransack kitaplığının Ruby on Rails (RoR) uygulamalarına zayıf entegrasyonunun saldırganların arka uç veritabanlarından bilgi çalmasına izin verebileceği konusunda uyardı.

Ransack, geliştiricilerin Rails uygulamalarına nesne tabanlı arama eklemelerine olanak tanır. Kullanışlılığı ve esnekliği onu hem yaygın olarak kullandı hem de en azından güvenlik açısından sorunlu hale getirdi.

Arama yoluyla nesneleri çaprazlama

Varsayılan olarak Ransack, ilişkili nesneler için sorgu koşullarını destekler. Örneğin, blog gönderilerini listeleyen bir sayfada bir sorgu çalıştırıyorsanız, blog nesnesiyle ilişkilendirmesi yoluyla gönderinin yazarıyla ilgili koşulları dahil edebilirsiniz.

Ransack, sonuçları ‘ile başlar’ veya ‘içerir’ gibi operatörlerle filtrelemek için alan adlarına eklenebilen çok kullanışlı komutları da destekler. Ancak, korkuluklar olmadan kullanıldığında bu özellik, kötü niyetli aktörlerin arka uç veritabanı sistemlerine ulaşmak için etki alanlarını kolayca geçmesini sağlayabilir.

Örneğin, bir saldırgan, mesajlar tablosundan kullanıcılar tablosuna gidebilir ve bir kullanıcının parola karmasını tahmin etmeye çalışabilir. Filtreleme operatörleri, miscreant’ın hash değerini her seferinde bir karakter tahmin ederek süreci hızlandırmasını sağlar. Positive Security araştırmacıları, tek bir bcrypt parola karmasının birkaç dakika içinde ve 2.000’den az istekle çıkarılabileceğini buldu.

ŞUNLAR DA HOŞUNUZA GİDEBİLİR Trellix, açık kaynak güvenlik açıklarıyla geniş ölçekte mücadele etmeyi otomatik hale getirir

Positive Security’nin genel müdürü Lukas Euler, “Bu bir özellik ve sorun, web uygulamalarının bu özelliği, yani Ransack arama işlevini parametre olarak sınırsız kullanıcı girişiyle çağırmak, nasıl kullandığıyla ilgili” dedi. günlük yudum. “Ancak, kitaplık belgeleri kitaplığın bu şekilde kullanılmasını açıkça öneriyor.”

Yakın zamanda Ransack belgelerine, kullanıcıları “modelinizin herhangi bir sütununda arama ve sıralamaya izin verildiği” konusunda uyaran bir bildirim eklendi. Uyarı, GitHub’da bu sorun hakkında halka açık bir tartışma başladıktan sonra eklendi.

Vahşi doğada Ransack aramasından yararlanma

Araştırmacılar, URL veri kümelerinde Yağma kalıplarını arayarak potansiyel olarak savunmasız yüzlerce site buldu. Her adayı tek tek doğrulayamasalar da, düzinelerce web sitesindeki güvenlik açığını doğrulayabildiler.

Euler, “Sorundan yararlanırken kullandığımız yaygın bir model, aranabilir veri sınıfından uygulamanın kullanıcı sınıfının hassas özniteliklerine kadar ilişkilendirme zincirlerini aramak için herkese açık bir arama özelliğini kullanmaktı” dedi.

En endişe verici bulguları, yönetici hesaplarını devralmak için Ransack’i kullanabilmeleriydi. Örneğin, bilimsel bilginin paylaşıldığı bir platform olan fablabs.io’da, Ransack arama sorguları süper yönetici kullanıcının parola sıfırlama belirtecine erişim sağlayabilir (başka bir kötü tasarım kararı nedeniyle süresi dolmadı ve yeniden kullanılabilir).

En son güvenli geliştirme haberlerini takip edin

Euler, “Yönetici kullanıcı hesaplarına erişimimiz, test ettiğimiz iki Ruby on Rails uygulaması için uygulamanın tüm özel verilerini kolayca okumamıza ve değiştirmemize olanak sağladı” dedi.

Güvenlik açığı bulunan diğer popüler uygulamalar arasında CodeOcean, Pageflow, Active Admin ve openSUSE Seyahat Destek Programı yer alıyor.

Görünüşe göre satıcısı Tidelift’in Positive Security’nin e-postalarına yanıt vermediği Active Admin dışında tüm bu projelerde sorun düzeltildi. Ancak bir Tidelift temsilcisi kusurla ilgili e-postamıza yanıt vererek sorunun farkında olmadıklarını ve araştıracaklarını söyledi.

Diğer teknolojiler savunmasız

Önceki çalışmada araştırmacılar, bir GraphQL sunucu platformu olan Hasura’yı kullanan bir uygulamada benzer sorunlar bulmuşlardı. Farklı nesneler arasında çok adımlı bir ilişkilendirme zinciri yoluyla yönetici oturum belirteçlerini çıkarabildiler.

Euler, “Kütüphaneler ve çerçeveler, genellikle varsayılan olarak etkinleştirilen daha fazla özellik eklemek için zaman içinde gelişirken, aynı zamanda basit kullanım durumları için entegrasyonu ve kullanımı geliştiriciler için kolay tutmaya çalışıyor” dedi. “Sonuç olarak, geliştiriciler genellikle istemeden çok daha fazla ek özelliği entegre eder ve beklediklerinden daha fazla saldırı yüzeyi oluşturur.”

Euler dersinin, her zaman kullandığınız kitaplıkların ve çerçevelerin tüm özellik yelpazesini araştırmak ve ihtiyacınız olmayan her şeyi devre dışı bırakarak saldırı yüzeyinizi en aza indirmek için adımlar atmak olduğunu söylüyor.

Euler, “Bu, Ruby on Rails’e özel değildir, ancak RoR, ‘Konfigürasyon Üzerinden Konvansiyon’ vurgusu ve basit API arayüzlerinin arkasında güçlü özellikler sunması nedeniyle, bu gibi sorunlara diğer çerçevelerden daha yatkın olabilir,” dedi.

ŞUNLAR DA HOŞUNUZA GİDEBİLİR RubyGems, kod deposunun en son güvenlik çabasında varsayılan olarak 2FA’yı deniyor



Source link