CVE-2020-7961: Liferay Portal Deserialization of Untrusted Data Vulnerability
Zorluk Seviyesi: Orta | Kaynak: CISA KEV
Zafiyet Analizi ve Giriş
Liferay Portal, geniş bir kullanıcı kitlesine sahip olan bir açık kaynaklı içerik yönetim sistemidir. Ancak 2020 yılında keşfedilen CVE-2020-7961 kodlu zafiyet, sitemizin güvenliğini tehdit eden ciddi bir sorun haline gelmiştir. Bu zafiyet, Liferay Portal'ın JSON web hizmetleri aracılığıyla gerçekleştirdiği "deserialization of untrusted data" (güvenilmez verinin tersine çevrilmesi) işleminin bir sonucudur. Bu tür zafiyetler genelde "Remote Code Execution" (Uzaktan Kod Çalıştırma) gibi kritik durumlara yol açabilir.
CVE-2020-7961 zafiyeti, Liferay Portal’ın temel bir fonksiyonu olan JSON verilerini işlerken güvenlik açığı yaratmaktadır. Özellikle, sistemin "deserialization" işlemi sırasında kötü niyetli bir kullanıcının oluşturmuş olduğu zararlı bir veri yapısı gönderildiğinde, sunucu bu veriyi çözümleyerek sanki güvenli bir kaynak tarafından geliyormuş gibi tepkime verebilmektedir. Bu durum, saldırganlara yalnızca kod işleyebileceği bir ortam sunmakla kalmaz, aynı zamanda yetkisiz bilgi erişimlerine de kapı aralayabilir.
Bu zafiyetin tarihçesi incelendiğinde, Liferay Portal'ın 2020 yılında düzgün bir şekilde güncellenmediği gözlemlenmektedir. Hakeza bu güncellemeler sırasında, belirli kütüphanelerin eksikliği ve yetersiz veri kontrolü özellikle dikkat çekmektedir. Liferay'ın kullanmış olduğu "Jackson" kütüphanesinde meydana gelen hatalar, bu tür zafiyetlere yol açan en büyük sebeplerden birisidir. Kötü niyetli kullanıcılar, bu zayıf noktaları kullanarak sistemin üzerinde kötü amaçlı kodlar çalıştırmakta ve veri hırsızlıklarına yol açabilecek açık kapılar bırakmaktadır.
CVE-2020-7961, yalnızca birkaç güvenlik açığı ile sınırlı kalmamış, dünya genelinde birçok sektörü etkilemiştir. Özellikle finans, sağlık hizmetleri ve devlet kurumları gibi veri güvenliğinin hayati önem taşıdığı alanlarda ciddi endişelere yol açmıştır. Hedef alınan sistemlerin çoğu, kurumsal işlemlerin yürütüldüğü yerler olduğu için, yaşanan zafiyetler yalnızca şirket içi güvenliğe değil, aynı zamanda müşteri güvenine de büyük zararlar vermiştir. Bu tür zafiyetler, özellikle büyük veri setleri ve hassas bilgilerin işlendiği sistemlerde, "Data Breach" (veri ihlali) riskini önemli oranda artırmaktadır.
Gerçek dünya senaryoları incelendiğinde, benzer zaafiyetleri kullanan siber saldırılar, kurumsal verilerin çalınmasına veya sistemlerin tamamen çökmesine neden olmuştur. Örneğin, büyük bir finans kurumunun Liferay Portal üzerinde çalıştığı bir senaryoda, zararlı bir JSON verisi gönderilerek sisteme sızılması durumunda, müşterilerin finansal bilgilerine erişim sağlanması mümkün olabilmiştir. Dolayısıyla, bu zafiyetin etkileri göz ardı edilemeyecek kadar ciddi ve tehlikeli olmaktadır.
Sonuç olarak, CVE-2020-7961 gibi zafiyetlerden korunmak için, güncellemelerin aksatılmadan yapılması, güvenlik önlemlerinin sürekli olarak gözden geçirilmesi ve kullanıcıların eğitilmesi büyük önem taşımaktadır. Açık kaynaklı yazılımlarda karşılaşılan zafiyetlerin, kurumsal yapılara entegre edilebilecek en iyi uygulamalarla minimize edilmesi, siber güvenlik alanında gelecekteki tehditlerin önüne geçmek açısından kritik bir adımdır.
Teknik Sömürü (Exploitation) ve PoC
Liferay Portal, güçlü bir içerik yönetim sistemi olmasına karşın, CVE-2020-7961 zafiyeti ile birlikte bazı güvenlik açıklarına da maruz kalmaktadır. Bu zafiyet, uzaktan saldırganların JSON web servisleri aracılığıyla kod çalıştırmasına (RCE - Uzaktan Kod Yürütme) olanak tanımaktadır. Bu bölümde, bu zafiyetin nasıl sömürülebileceğine dair adım adım bir yaklaşım sunulacak ve örnek senaryolar ile teknik detaylar verilecektir.
Bir saldırı senaryosu düşünelim: Bir kuruluş, Liferay Portal'ı kurmuş ve çeşitli hizmetler sunmak için yapılandırmıştır. Saldırgan, bu kuruluştaki bir güvenlik açığını kullanarak, uzaktan kod çalıştırma yeteneğine sahip olabilir. Bu bağlamda, ilk adım zafiyetin varlığını tespit etmektir. Saldırgan, hedef sistemin Liferay versiyonunu belirlemek için belirli HTTP istekleri yapabilir. Aşağıda, bu tür bir istek için örnek bulunmaktadır:
GET /api/jsonws/user/get-user-by-id?userId=1 HTTP/1.1
Host: hedef-sistem.com
Elde edilen yanıt, platformun versiyon bilgisini içerebilir ve zafiyetin mevcudiyetini doğrulamak adına önemli bir veri sunabilir. Eğer Liferay sürümü CVE-2020-7961'den etkileniyorsa, saldırgan bir sonraki aşamaya geçebilir.
Sıradaki adım, hedef sistemdeki JSON web servislerini manipüle ederek zararlı bir yük (payload) göndermektir. Liferay içerisinde, deserialization (serileştirme) işlemi ile verilerin yeniden yapılandırılması sırasında, kötü niyetli verilerin işlenmesi mümkündür. Saldırgan, bir nesne yaratma isteği göndererek bu işlemi gerçekleştirebilir. Aşağıda, örnek bir payload yer almaktadır:
{
"type": "com.liferay.portal.kernel.repository.model.FileEntry",
"title": "Malicious Code",
"content": "Zararlı içerik burada yer alacak."
}
Bu payload'u göndermek için gerekli HTTP isteği aşağıda verilmiştir:
POST /api/jsonws/MyService/method HTTP/1.1
Host: hedef-sistem.com
Content-Type: application/json
{ "json": "<Yukarıdaki JSON payload>" }
Yanıt olarak, eğer zafiyet başarılı bir şekilde sömürülürse, hedef sistem zararlı kodu çalıştıracaktır. Bu durumda, saldırganın belirlediği kötü niyetli script sisteme dahil edilir ve yürütülmeye başlanır. Bu tür bir RCE durumu, saldırganın hedef sistemde uzaktan yetki kazanmasına (Authorization Bypass - Yetki Atlama) neden olabilir.
Saldırgan, bu aşamadan sonra sistem üzerinde tam yetki elde ederek, veri çalmak ya da başka zararlı faaliyetler gerçekleştirmek için belirli komutlar gönderebilir. Örneğin, dosya sistemine erişim sağlamak veya veri tabanına kötü niyetli sorgular göndermek gibi işlemler yapılabilir. Aşağıda, potansiyel bir zararlı script örneği verilmiştir:
# Malicious Code Example
import os
def execute_command(command):
os.system(command)
execute_command("rm -rf /") # Tehlikeli bir komut
Sonuç olarak, CVE-2020-7961 zafiyeti ile ilgili teknik sömürü aşamaları, Liferay Portal üzerinde ciddi bir güvenlik tehditleri oluşturabilir. Bu tür zafiyetlerin farkında olmak ve bunlara karşı gerekli önlemleri almak, kurumların siber güvenlik stratejilerinin önemli bir parçası olmalıdır. Deserialization saldırıları konusunda her zaman dikkatli olunmalı ve güvenlik yamaları zamanında uygulanmalıdır. White Hat hacker'lar olarak, bu bilgi ve teknikleri kullanarak sistemlerin güvenliğini artırmak için çalışmalıyız.
Forensics (Adli Bilişim) ve Log Analizi
Liferay Portal gibi popüler içerik yönetim sistemleri, kullanıcı etkileşimlerini ve veri yönetimini kolaylaştıran özellikler sunarken, aynı zamanda çeşitli güvenlik zafiyetlerine de maruz kalabilir. CVE-2020-7961 olarak bilinen ve Liferay Portal'da bulunan "deserialization of untrusted data" (güvensiz verinin ayrıştırılması) zafiyeti, uzaktan saldırganların JSON web servisleri aracılığıyla kod çalıştırmasına (RCE - Uzak Kod Çalıştırma) olanak tanır. Bu tür bir zafiyet, bir sistemin güvenliğini ciddi şekilde tehdit edebilir. Özellikle, kötü niyetli bir oyuncunun sistem üzerinde yetkisiz erişim sağlaması ve bu sayede kullanıcı verilerini ele geçirmesi veya diğer zararlı faaliyetlerde bulunması mümkündür.
Bir siber güvenlik uzmanı olarak, bu tür bir saldırının gerçekleşip gerçekleşmediğini tespit etmek için SIEM (Security Information and Event Management - Güvenlik Bilgi ve Olay Yönetimi) sistemleri ve log dosyalarını (Access log ve error log gibi) dikkatlice analiz etmek önemlidir. Özellikle JSON verileriyle etkileşimde bulunan web servisleri ile ilgili loglar dikkate alınmalıdır.
Olayların izlenmesi ve log analizi süreci, potansiyel olarak şüpheli aktivitelerin tespitini içermelidir. Aşağıda, dikkat edilmesi gereken belirli işaretler ve imzalar listelenmiştir:
- Şüpheli JSON Hedeflerine Yönelik HTTP İstekleri: Kullanıcıların veya hizmetlerin gönderdiği isteklerde anormal veya kod içeren JSON nesneleri aramalısınız. Örneğin, kullanıcıdan beklenmeyen veya şüpheli karakter dizesi içeren istekler:
{
"user": "admin",
"command": "java.lang.Runtime",
"args": ["exec", "rm -rf /"]
}
Bu tür istekler, bir "Remote Code Execution" (RCE) saldırısının belirtisi olabilir.
- Gizli Bilgilere Erişim İstekleri: Kullanıcıların erişim hakları ile çelişen veya yetkisiz kaynaklara yönelik erişim talepleri. Örneğin, normalde bir kullanıcının erişim iznine sahip olmadığı dosyalara erişim talepleri:
GET /admin/user/secretFile
Hata Logları: Hedef sistemdeki hata logları, anormal bir durum veya hatalı bir işlem tespit edildiğinde uyarılar verebilir. Liferay gibi platformlarda, hatalı JSON ayrıştırma işlemleri sıklıkla loglanır. Hata mesajları arasında "SerializationException" veya "DeserializeException" gibi ifadeleri aramak, bu tip bir saldırının belirtisi olabilir.
Tekrar Eden ve Anormal İstekler: Belirli bir zaman diliminde çok sayıda, benzer veya tekrarlayan istek gibi anormal trafiği izlemek önemlidir. Özellikle aynı kullanıcının veya IP adresinin sürekli hata vermesi veya çok fazla istek atması durumları şüpheli kabul edilmelidir.
Zaman ve Durum Bilgileri: Ürün güncellemeleri veya kurumsal güvenlik politikalarının uygulanması sonrasında loglar artırılmış kullanıcı izinleri ya da değişiklikleri içerebilir. Bunları takip etmek, potansiyel bir güvenlik açığını yakalamak için kritik öneme sahiptir.
Sonuç olarak, Liferay Portal'da CVE-2020-7961 zafiyetine karşı dikkatli bir izleme ve analiz çalışması, siber güvenlik uzmanlarının sistemlerini korumalarında hayati bir rol oynar. Güvenlik teknolojilerine yatırım yapmak ve düzenli log analizi yapmak, bu tür saldırıların önlenmesine yardımcı olur. Aksi takdirde, güvenlik açıkları ciddi sonuçlar doğurabilir ve kurumların itibarına zarar verebilir.
Savunma ve Sıkılaştırma (Hardening)
Liferay Portal, web tabanlı içerik yönetim sistemleri arasında popülarite kazanan bir platformdur. Ancak, CVE-2020-7961 olarak bilinen güvensiz veri serileştirmesi (deserialization of untrusted data) zafiyeti, siber güvenlik açısından ciddi bir risk taşımaktadır. Uzaktan saldırganların JSON web hizmetleri aracılığıyla kötü niyetli kod çalıştırabilmesi (RCE - Uzaktan Kod İcraatı) bu açığın en büyük tehlikesidir. Bu tür bir zafiyet, kullanıcı verilerini tehlikeye atabilir ve sistemin kontrolünü elde etme fırsatı sunabilir.
Bu tür zafiyetlerden korunmak adına, web uygulamalarınızı sıkılaştırmak (hardening) ve savunma önlemlerini güçlendirmek son derece önemlidir. İlk olarak, yazılım güncellemelerini ve yamalarını düzenli bir şekilde takip etmek ve uygulamak gerekir. Liferay Portal gibi platformlar, güvenlik açıklarını minimize etmek için sık sık güncellemeler yayınlamaktadır. Örneğin, bu zafiyetin keşfi sonrası Liferay, daha güvenli olan yeni sürümler çıkararak bu açığın etkisini azaltmayı hedeflemiştir.
Diğer bir önlem, güvenli kodlama uygulamalarını benimsemektir. Deserialization (Serileştirme) süreçlerinde, her zaman verilerin kontrol edilmesi ve doğrulanması gereklidir. Aşağıdaki gibi bir kod bloğu ile verilerin güvenli bir şekilde deserialized edilmesi sağlanabilir:
// Güvensiz veri deserialization'ı yerine güvenli bir alternatif
public Object safeDeserialize(String jsonData) {
Gson gson = new Gson();
// Belirli bir sınıfa ya da nesne tasarımına odaklanarak deserialization işlemi
return gson.fromJson(jsonData, SecureClass.class);
}
Web Uygulama Güvenlik Duvarı (WAF) kullanımı da büyük önem taşır. WAF, gelen verileri analiz ederek kötü niyetli talepleri engelleyebilir. Örneğin, aşağıdaki gibi özel WAF kuralları tanımlayarak bu tür atakların önüne geçebilirsiniz:
SecRule REQUEST_HEADERS:Content-Type "application/json" "phase:2,id:1000001,t:none,pass,nolog,ctl:requestBodyAccess=On"
SecRule REQUEST_BODY "@rx (malicious payload|another known signature)" "phase:2,id:1000002,deny,status:403"
Bu kurallar, JSON içerikli istekleri kontrol eder ve bilinen kötü niyetli yüklerle eşleşen talepleri reddeder.
Kalıcı sıkılaştırma önerileri arasında şunlar yer almaktadır:
Geliştirme ortamlarında en düşük ayrıcalık ilkesine bağlı kalmak. Kullanıcıların sadece ihtiyaç duyduğu izinlerle yetkilendirilmesi gerekir.
İçerik yönetim sistemlerinde gerekli tüm bileşenlerin kapatılması, gereksiz modüllerin, eklentilerin ve uzantıların devre dışı bırakılması.
Uygulama güncellemeleri sonrası sistemlerin doğrulanması ve güvenlik testlerinin yapılması. Özellikle, entegre pentesting (sızma testi) süreçleri, potansiyel zafiyetlerin erkenden tespit edilmesini sağlar.
Sonuç olarak, Liferay Portal gibi platformlarda CVE-2020-7961 zafiyetinden korunmak için uygulamanız gereken birçok strateji bulunmaktadır. Kod güvenliği, WAF kullanımı ve kalıcı güvenlik sağlamanın önemi, modern web tabanlı sistemlerin güvenliğini sağlamak için kritik öneme sahiptir. Unutulmamalıdır ki, güvenlik sürekli bir süreçtir ve proaktif önlemler almak her zaman en etkili yaklaşımdır.