Bilgisayar korsanları, güvenlik zayıflıklarından yararlanmak, hassas verilere yetkisiz erişim sağlamak veya sistemi manipüle etmek için Salesforce’taki Apex kodu güvenlik açıklarını hedef alır.
Apex, Salesforce’un Java benzeri sözdizimi ile özelleştirilmesini sağlayan güçlü bir dildir. Mantığı yürütür, işlemleri kontrol eder ve sistem olaylarına yanıt verir.
Bu öncelikle iş mantığı için kullanılır ve web hizmetleri ve nesne olayları tarafından tetiklenir.
Varonis Threat Labs’taki siber güvenlik araştırmacıları yakın zamanda birçok Fortune 500 şirketi ve devlet kurumunda ciddi Apex güvenlik açıkları keşfetti.
Araştırmacılar etkilenen şirketleri derhal raporlayıp uyarırken, güvenlik açıkları yüksek ve kritik önem derecesine sahip etiketlerle işaretlendi.
Canlı saldırı simülasyonu Web Semineri, hesap ele geçirmenin çeşitli yollarını gösterir ve web sitelerinizi ve API’lerinizi ATO saldırılarına karşı korumaya yönelik uygulamaları gösterir.
Yerinizi Ayırın
Apex Kodu Güvenlik Açıkları
Apex kodu iki farklı modda çalıştırılabilir: –
Apex’teki ‘Paylaşımsız’ seçeneği, sınırsız erişim ve değişiklik sağlayan kullanıcı izinlerini göz ardı eder.
‘Paylaşımlı’, nesne ve alan düzeyindeki kısıtlamaları gözden kaçırırken kayıt düzeyindeki izinlere saygı gösterir.
Apex sınıflarını ‘paylaşmadan’ çalıştırmak güçlü yetenekler sağlar ancak riskleri artırır. Varonis, bunun güvenli olmayan veri erişimine (IDOR) ve SOQL enjeksiyonu gibi güvenlik açıklarına yol açabileceğini söyledi.
Bunun yanı sıra, harici kullanıcılar veya misafirler tarafından kötüye kullanılması da veri bütünlüğüne yönelik tehditler oluşturmaktadır. VTL, kullanıcı verilerine izinsiz erişmek için Apex güvenlik açıklarından yararlanıldığını gösteriyor.
Gerçek kod sorunları olan bir Salesforce ortamı kullanan örnek, saldırganların keşif amacıyla aura yöntemlerini nasıl kötüye kullanabileceğini gösteriyor.
Bu, telefon veya sosyal güvenlik numaraları gibi hassas verilerin çıkarılmasını sağlar.
‘VerySecretFlag__c’ özel alanına rağmen kullanıcılar başkalarının verilerine erişemez. ‘CreatedBy.VerySecretFlag__c’ bile başarısız oluyor ve misafirlerin de erişimi yok.
Bunu atlamak için araştırmacılar, istenen alan dönüşlerini belirten, Aura ile çağrılabilen özel bir Apex sınıfı aracılığıyla ‘apex://CaseCreationController/ACTION$createCaseR’den yararlandılar.
Yalnızca Apex aracılığıyla alınan kasaya, ‘paylaşmadan’ modunu ima eden başka yollarla erişilemez. Saldırgan, ‘VerySecretFlag’e erişmek için, diğer nesnelerden verilere erişerek aşırı izin veren bir sınıf aracılığıyla ‘CreatedBy.VerySecretFlag__c’ gibi istenen alanları belirleyerek bundan yararlanır.
Apex, Salesforce’ta çok önemlidir, ancak sınıfları özellikle ‘paylaşmadan’ incelemek, manuel kontroller zaman aldığından güvenliği artırır.
Erişimin belirlenmesi için hem Profillerin hem de İzin Setlerinin incelenmesi gerekir. Salesforce kurulumu aracılığıyla kuruluma erişin ve ardından Profiller’e gidin.
Bunun yanı sıra, her profilin ‘Etkinleştirilmiş Apex Sınıfı Erişimi’ bölümünü inceleyin.
Erişimi doğrulamak için her girişe ilişkin İzin Kümelerini kontrol edin. Profillere ve İzin Kümelerine atanan kullanıcıları inceleyin. ‘Paylaşmadan’ bildirimi için sınıf kaynak kodunu inceleyin.
Olay İzleme ile kullanıcı çağrılarını izleyin ve izinleri ayarlayın. Enjeksiyonu önlemek için SOQL’de ‘:queryName’ sözdizimini kullanmak gibi güvenli kodlama uygulamalarını sağlayın.
Ayrıca, nesne ve alan düzeyinde izinleri zorunlu kılmak için sorgularınıza “WITH SHARING_ENFORCED” ifadesini eklemeyi düşünün. “WITH SHARING_ENFORCED” eklenmesi yalnızca SELECT yan tümcelerini etkiler, WHERE yan tümcelerini etkilemez.
Truva atları, fidye yazılımları, casus yazılımlar, rootkitler, solucanlar ve sıfır gün açıklarından yararlanmalar dahil olmak üzere kötü amaçlı yazılımları engelleyebilirsiniz. Perimeter81 kötü amaçlı yazılım koruması. Hepsi son derece zararlıdır, hasara yol açabilir ve ağınıza zarar verebilir.
Siber Güvenlik haberleri, Teknik İncelemeler ve İnfografiklerden haberdar olun. Bizi LinkedIn’de takip edin & heyecan.