Eklenti (veya eklenti) ekosistemler, platformun geliştiricilere genişletilebilirliğini tamamlarken, tüm yeni bir entegrasyon olasılıkları dünyasının kilidini açar. Bununla birlikte, pratikte, genişletilebilirlik eklemek ve güvenliği korumak arasında doğru dengeyi bulmak genellikle zor olduğunu kanıtlamaktadır. Kök neden, güvenlik en iyi uygulamalarını takip etmenin eksikliğinden kaynaklanmaktadır. Örneğin, uygun izolasyon, güvenlik açıklarının ortaya çıkabileceği yeni bir saldırı yüzeyinin açılmasının ortak bir sonucu ile asla tam olarak benimsenmemiştir.
Bu makalede, web tabanlı eklenti/eklenti ekosistemlerinde test etmek için en yaygın güvenlik açıklarını araştıracağız.
Hadi dalalım!
Bir eklenti/eklenti pazarını başlatmak, erişilebilirliği artırma, genişletilebilirlik ekleme ve yeni kullanım durumlarının sonsuz olasılıklarını tanıtmak söz konusu olduğunda genellikle bir sonraki mantıklı adımdır. Son kullanıcıya verilen bir eklenti/eklenti pazarı olan şirketleri tanımlamak istiyoruz.
Bu süreç basit. Tek yapmamız gereken hedefimize göz atmak ve eklentileri etkinleştirebileceğimiz veya yükleyebileceğimiz bir yer aramak. Bazen, bu açılış sayfasında platformun ana özelliklerinden biri olarak tanıtılır.
Bir eklenti/eklenti pazarı örneği
Aşağıda, bir eklenti veya eklenti pazarını entegre eden birkaç platform ve yazılım ürünü bulunmaktadır:
-
Github Marketplace Geliştiricilerin iş akışlarını, CI/CD’yi, kod incelemelerini ve daha fazlasını otomatikleştirmesi için GitHub’ın platformuyla doğrudan entegre olan eklentiler ve araçlar sağlar.
-
Atlassian Marketplace Kullanıcıların proje yönetimi, işbirliği ve geliştirme iş akışları için eklentiler ve eklentilerle Jira, Confluence ve Bitbucket gibi ürünleri genişletmelerini sağlar.
-
Salesforce AppExchange bulut tabanlı bir müşteri ilişkileri yönetimi (CRM) platformu olan Salesforce için iş uygulamaları, entegrasyonlar ve eklentiler için bir pazardır.
-
Obsidiyen kullanıcılarının üçüncü taraf eklentileri yüklemesi ve kullanması için bir pazar sağlayan güçlü bir bilgi tabanı ve not alma uygulamasıdır.
-
Anlaşmazlık Mesajlaşma uygulamasındaki standart özellikleri genişletmek için kapsamlı bir bot ekosistemini destekleyen ücretsiz bir mesajlaşma hizmetidir.
Önceki örneklerin işaret ettiği gibi, bir eklenti ekosistemi son kullanıcıya yepyeni bir kullanım dünya durumu açabilir. Bizim için güvenlik araştırmacıları, keşfedebileceğimiz başka bir saldırı yüzeyi.
Geliştiricilerin bir eklenti pazarı tanıtırken yaşadığı en yaygın sorun, geliştiricilere yeni eklentiler geliştirmek için güçlü genişletilebilirlik özellikleri sağlamak ve son kullanıcıyı korumak için genel güvenliği korumak arasında açık bir sınır tanımlamaktır.
Hedefinizin bir eklenti pazarına sahip olduğunda test etmek için en yaygın 7 güvenlik riskine bakalım. Bu makaleyi katı bir kontrol listesi değil, bir rehber olarak kullanmanızı öneririz. Her platform farklıdır, bu nedenle bu testleri belirli hedefinizin neler yapabileceğine göre uyarlamanız gerekir.
Sandboxing, eklentilerin ana (veya ana bilgisayar) ortamına erişmesini izole etmeye yardımcı olmak için bir güvenlik önlemidir. Web tabanlı eklentilerin istenmeyen eylemler (yetkisiz ağ istekleri gerçekleştirme gibi), diğer eklentilerin verilerine erişmesi gibi korumalı API uç noktalarına ulaşmasını, hatta ana sunucuya (sunucu tarafı kod yürütülmesi desteklendiği etkinlikte) vb.
Ayrıca, eklenti (yanlışlıkla) yeni bir güvenlik açığı getirirse, ana bilgisayar web uygulamasının etkilenmesinden izole edilmesine yardımcı olur. Bu kum havuzu yetersiz uygulandığında veya eksik olduğunda, saldırganların onu atlamasına ve sunucuya yetkisiz erişim kazanmasına, hassas verileri okumasına veya uygulamanın diğer kimlik doğrulamalı kısımlarına ulaşmasına izin verebilir.
Bir araştırmacı olarak, hedefinize bağlı olarak mevcut uygulama içi ayrıcalıklarınızı genişleten bir eklenti geliştirmek istersiniz. Örneğin, diğer eklentilerin verilerine erişip erişemeyeceğinizi, mevcut eklentileri silip silmeyeceğinizi, oturum çerezlerini alıp belki de istenmeyen eylemler gerçekleştirmenize izin veren korumalı API uç noktalarına ulaşıp ulaşamayacağınızı kontrol edebilirsiniz.
Sandboxing’in yanı sıra, geliştiriciler eklentilerin yürütme ortamlarında neler yapabileceğini tanımlamak için uygun erişim kontrolleri de uygulamalıdır. Bazı durumlarda, birkaç eklentinin gerektiğinden daha fazla izin verdiğini veya talep ettiğini veya platformların en az ayrıcalık ilkesini kesinlikle uygulayamadığını fark edeceksiniz.
Platformun, bir eklenti geliştiricisi olarak, kullanıcı adına belirli işlemleri gerçekleştirmeni istemenize izin verdiğini varsayalım. Eklenti etkinken bir yayın yayınlamaya çalışırken bu izni kullanıcı olarak reddetmeye çalışın.
Aşırı izin veren eklentiler için test
Dikey erişim artış güvenlik açıkları için test edilmeye ek olarak, başka bir eklentinin ayarlarını değiştirmeye çalışmak gibi yatay erişim kontrolü sorunları için test eklemeyi de deneyin.
Eklenti ekosistemine sahip platformlar genellikle eklenti geliştiricilerine ek bir API ortaya çıkarır. Genellikle, bu API ana API ile aynı güvenlik dikkatini almaz. Bu, oran sınırlama, kimlik doğrulama ve yetkilendirme güvenlik açıklarının eksikliğini test etmemiz için başka bir saldırı yüzeyi açar.
Eklentiler ana uygulama ile aynı API kullanıyorsa, kısıtlı eylemleri başlatan bir eklenti oluşturmayı deneyin. Örneğin, bir kullanıcının şifresini sıfırlamaya veya e -posta adreslerini değiştirmeye çalışan bir eklenti oluşturun. Normalde, bu eylemler 2-FA gibi ek doğrulama gerektirir. Ancak bazen platformlar eklentilerden gelen API isteklerini ‘güvenilir’ olarak ele alır ve bu güvenlik kontrollerini atlar. Bu, eklentinizin normal arayüz boyunca güvenlik kontrollerini tetikleyecek eylemler gerçekleştirebileceği anlamına gelir. Eklentinizin 2-FA güvenlik kontrollerinin arkasındaki uç noktalara API çağrıları yapmasını sağlayarak bunu test edin ve platformun normal bir kullanıcı isteği için olduğu gibi aynı güvenlik kısıtlamalarını düzgün bir şekilde uygulayıp uygulaymadığını görün.
Bulut tabanlı eklenti ekosistemleri, eklenti kurulumu veya gelecekteki güncellemeler sırasında tedarik zinciri saldırılarına da duyarlı olabilir. Bu nedenle, bu güvenlik açığı türü için testlerin dahil edilmesi önerilir. Örneğin, eklentilerin nasıl yüklendiğini ve (otomatik olarak) güncellendiğini düşünün. Ve yeni eklentiler halka yayınlanmadan önce herhangi bir katı arka plan denetleme veya kod inceleme süreçleri varsa.
Eklenti/Eklenti Ekosistemlerinde Tedarik Zinciri Saldırıları
Hiçbir güvenlik işlemi mevcut olmadığında, eklentileri kötü amaçlı kodla yayınlamamız için açık bir nokta bırakabilir. Diğer popüler eklentilerden ödün vermek (örneğin, bir kimlik doğrulama veya başka bir yetkilendirme güvenlik açığı yoluyla) kullanıcı tabanının önemli bir yüzdesini riske atabilir.
Platform bulut tabanlı olsa bile, yeni güncellemelerin nasıl çekildiğini ve yüklendiğini inceleyin. Ve doğrulanmış eklentileri kurutmanıza izin verebilecek zayıf noktalar arayın. Bu tür güvenlik açıklarını test ederken, herhangi bir potansiyel etkiyi sınırlayabilmeniz için mümkün olduğunca test hesaplarını kullanarak program kurallarına her zaman uyulması önerilir.
Eklenti/Eklenti ekosistemleri platforma birçok yeni kullanım vakası tanıtılmasına yardımcı olabilir. Bununla birlikte, güvenlik önceliklendirilmediğinde ve en iyi uygulamalar izlenmediğinde, yararlanabileceğimiz yeni, önemli bir saldırı yüzeyi açabilir.
Bu nedenle, eklenti ekosistemlerindeki güvenlik açıklarını nasıl test edeceğinizi öğrendiniz … şu anda, becerilerinizi test etme zamanı! Korunmasız laboratuvarlar ve CTFS üzerinde pratik yaparak başlayabilir veya … Intigriti’deki 70+ genel böcek ödül programlarımıza göz atabilirsiniz ve kim bilir, belki bir sonraki gönderiminizde bir ödül kazanabilirsiniz!
Bugün Intigriti’de hacklemeye başlayın