CVE-2024-29824 · Bilgilendirme

Ivanti Endpoint Manager (EPM) SQL Injection Vulnerability

Ivanti Endpoint Manager'daki CVE-2024-29824 zafiyeti, ağ içindeki bir saldırganın kod çalıştırmasını sağlıyor.

Üretici
Ivanti
Ürün
Endpoint Manager (EPM)
Seviye
Orta
Yayın Tarihi
02 Nisan 2026
Okuma
8 dk okuma

CVE-2024-29824: Ivanti Endpoint Manager (EPM) SQL Injection Vulnerability

Zorluk Seviyesi: Orta | Kaynak: CISA KEV

Zafiyet Analizi ve Giriş

Ivanti Endpoint Manager (EPM) yazılımında tespit edilen CVE-2024-29824 SQL injection (SQL enjeksiyonu) zafiyeti, siber güvenlik alanında dikkat çeken bir tehdit olarak öne çıkmaktadır. Bu zafiyet, Core server'da infilak eden bir SQL enjeksiyon açığından kaynaklanmakta ve saldırganların önemli verilere erişim sağlamak, veri tabanında değişiklik yaparak kötü niyetli kod çalıştırmak gibi işlemleri gerçekleştirmesine olanak tanımaktadır. Özellikle, kimlik doğrulaması gerektirmeden, aynı ağ üzerinde bulunan bir saldırganın bu açığı kullanarak hedef sistemde uzaktan kod çalıştırması (Remote Code Execution - RCE) mümkündür.

Zafiyetin tarihçesi incelendiğinde, Ivanti Endpoint Manager'ın, güvenlik açıklarını çok sıkı bir şekilde izlemeyen sıklıkla güncellenmeyen bir program olduğu görülüyor. Bu durum, siber saldırganlar için vazgeçilmez bir fırsat oluşturuyor. SQL enjeksiyonu, çoğunlukla kullanıcı girdileri üzerindeki yetersiz doğrulama ve filtreleme ile ortaya çıkan bir zayıflıktır. Ivanti'nin yazılımı, belirli sorguları dinamik olarak oluştururken yeterince güvenli bir yaklaşım benimsemediği için bu tür bir açığın oluşmasına neden olmuştur.

Zafiyetin temel alanı, SQL sorgularının oluşturulmasında yeterli şekilde ayrıştırılmış olmamasıdır. Bu, saldırganların, belli bazı HTTP isteği parametreleri aracılığıyla doğrudan veri tabanına zarar verebilecek SQL komutları enjekte etmelerine olanak tanır. Bir saldırgan, örneğin belirli veri tabanı tablolarına erişim sağlayarak bu tablolardaki verileri değiştirebilir veya silebilir. Böyle bir senaryoda, söz konusu zafiyetin istismar edilmesi halinde, örneğin bir şirketin müşteri verileri veya gizli finansal bilgileri tehlikeye girebilir.

CVE-2024-29824 zafiyeti dünya genelinde özellikle finans, sağlık ve eğitim sektörlerindeki kuruluşları etkilemiştir. Bu sektörlerde genellikle büyük miktarda hassas veri işlenmekte ve saklanmaktadır. Sağlık kuruluşları, hastaların kişisel ve sağlık bilgilerinin güvenliğini sağlamak zorundadır; finansal kuruluşlar ise müşteri hesap bilgilerini korumak ve güvenliği sağlamakla yükümlüdür. Eğitim sektörü de öğrenci verileri ve akademik bilgiler açısından benzer derecede hassas veriler içermektedir.

Gerçek dünya senaryolarında, bir siber suçlu CVE-2024-29824 zafiyetini hedef alarak belirli bir yerel ağ içerisindeki bir EPM sunucusuna saldırı gerçekleştirebilir. Bu tür bir saldırının sonuçları yıkıcı olabilir, zira saldırganın veri tabanına erişim sağlaması durumunda kritik veriler sızdırılabilir ya da değiştirilebilir. Ayrıca, zararlı yazılımlar yüklenebilir veya ağ üzerindeki diğer sistemlere de yayılabilir hale getirilebilir.

Sonuç olarak, CVE-2024-29824 gibi SQL injection zafiyetlerini önlemek için veri girişlerinin dikkatlice doğrulanması ve güvenlik güncellemelerinin düzenli aralıklarla yapılması elzemdir. Saldırganların bu açıkları istismar etmelerini engellemek için doğru stratejilerin uygulanması, siber güvenlik politikalarının geliştirilmesi ve mevcut sistemlerin güvenlik testlerinin yapılması gerekmektedir. Kapsayıcı bir güvenlik yaklaşımı, kuruluşların bu tür tehditlere karşı daha dayanıklı olmasını sağlayacaktır.

Teknik Sömürü (Exploitation) ve PoC

Ivanti Endpoint Manager (EPM) üzerinde tespit edilen SQL Injection (SQL enjeksiyonu) zafiyeti, saldırganların sistemi istismar etmeleri için ciddi bir fırsat sunmaktadır. Söz konusu zafiyet, Core sunucusunda bulunmakta ve ağ içinde kimlik doğrulaması gerektirmeden kötü niyetli kod yürütülmesine (RCE - Remote Code Execution) imkan tanımaktadır. Bu yazıda, bu tür bir zafiyeti nasıl sömürebileceğinize dair adım adım bir rehber sunacağız.

Öncelikle, bir zafiyetin sömürülebilmesi için gerekli olan temel bilgileri toplamak ile başlayalım. Hedef sunucunun IP adresini ve EPM'nin hangi versiyonunu kullandığını belirlemek oldukça önemlidir. Gerekirse VLAN yapılandırmalarını ve ağ segmentlerini gözden geçirerek hedefin içinde bulunduğu ağa ulaşım sağlamamız gerekebilir.

İlk olarak, hedef sitenin SQL sorgularını nasıl oluşturduğunu anlayabilmek için bir bilgi toplama aşamasına geçiyoruz. Bu aşamada, muhtemel giriş noktalarını belirlemek için çeşitli tarama araçları kullanılabilir. Araçlardan biri, sqlmap aracıdır. Bu araç, belirtilen URL'lerde geçerli SQL enjeksiyonu noktalarını tespit etmede oldukça etkilidir.

sqlmap -u "http://hedef-sunucu.com/sql_endpoint" --dbs

Bu komut, hedef sunucudaki veritabanlarını listeleyecektir. İşlem tamamlandıktan sonra, potansiyel veritabanı isimlerini not etmek önemlidir. Örneğin, users veritabanı, kullanıcı bilgilerini barındırıyor olabilir ve bu veriler sızdırıldığında daha büyük zafiyetlere yol açabilir.

Veritabanlarını inceledikten sonra, belirli bir veritabanına erişimi deneyebiliriz. Bu aşamada, eğer sistemde bir kullanıcı hesabı ve cinsiyet bilgisi varsa eldeki SQL enjeksiyonu ile bu verilere ulaşmanın yollarını arayacağız. Hedefimiz, aşağıdaki HTTP isteğini göndermek olabilir:

POST /sql_endpoint HTTP/1.1
Host: hedef-sunucu.com
Content-Type: application/x-www-form-urlencoded

id=1' OR '1'='1

Bu istekte, 'OR '1'='1' ifadesi, SQL sorgusunu yanıltarak tüm kayıtları almayı sağlar. Eğer bu istek başarılı olursa, sistemden tüm kullanıcı bilgilerine erişim sağlanabilir.

Sonraki aşama, elde edilen kullanıcı bilgilerinin veya veritabanının exploit edilmesidir. Bunun için yine SQL enjeksiyonunu kullanarak, dışarıdan komutlar çalıştırabilmek adına bir payload hazırlayabiliriz. Örnek bir payload şu şekilde olabilir:

GET /sql_endpoint?id=1; DROP TABLE users; -- HTTP/1.1
Host: hedef-sunucu.com

Bu isteği gönderdiğimizde, eğer sistem açıklarını yeterince iyi kullanabilirsek, users tablosunu silmek gibi felaket sonuçlara neden olacak bir işlemi gerçekleştirebiliriz.

Son olarak, eğer daha fazla erişime ihtiyaç varsa, elde edilen veriler üzerinden diğer yetkilendirme bypass (Auth Bypass) yöntemleriyle yeni saldırı senaryoları oluşturabiliriz. Kullanıcı şifrelerini ele geçirerek, oturum açabilir veya yeni kullanıcılar oluşturup sistemde kalıcılığımızı arttırabiliriz.

Bu teknik eğitim içeriği, Ivanti Endpoint Manager üzerindeki SQL Enjeksiyonu zafiyetini temel alarak, siber güvenlik alanındaki bilgilerimizi pekiştirip uygulamada kullanmamız için bir yol haritası sunmaktadır. Unutulmamalıdır ki, bu tür eylemler yalnızca izin alınmış sistemlerde etik hacking amacıyla uygulanmalıdır. Aksi takdirde, yasal sonuçlarla karşılaşmanız kaçınılmazdır.

Forensics (Adli Bilişim) ve Log Analizi

Ivanti Endpoint Manager (EPM) üzerinde tespit edilen CVE-2024-29824 SQL Injection (SQL Enjeksiyonu) zafiyeti, siber güvenlik uzmanlarının dikkat etmesi gereken önemli bir konudur. Bu zafiyet, Core sunucusunda mevcut olup, aynı ağda bulunan unauthenticated (kimlik doğrulaması yapılmamış) bir saldırganın, yetkisiz erişim elde ederek arbitrary code execution (RCE - rastgele kod çalıştırma) gerçekleştirmesine olanak tanır. Bu paragrafa dayanarak, bu tür bir saldırının nasıl tespit edilebileceğine ve log analizi süreçlerine odaklanacağız.

İlk olarak, bu tür bir SQL Enjeksiyonu saldırısının belirtilerini anlamak için doğru log dosyalarını taramak gereklidir. Güvenlik bilgi ve olay yönetimi (SIEM - Security Information and Event Management) sistemleri, bu sürecin en temel bileşenlerinden birini oluşturur. Özellikle Access log (Erişim Logu) ve error log (Hata Logu) gibi log türleri, bir saldırının izlerini ortaya koyabilir.

Bir saldırgan, SQL Enjeksiyonu aracılığıyla sistemde zararlı kodlar çalıştırmaya çalıştığında, genellikle log dosyalarında aşağıdaki izleri bulabilirsiniz:

  1. Şüpheli SQL Sorguları: Hedef sistemde alışılmadık sorguların görünmesi, saldırının ilk işareti olabilir. Örneğin, SELECT * FROM users WHERE id = '1' OR '1'='1'; gibi sorgular, SQL enjeksiyonu belirtisi olarak kabul edilebilir. Bu tür sorgular, usual (alışılmış) uygulama davranışından sapma gösterir ve kullanıcı etkileşimleriyle uyumsuzluk arz eder.

  2. Hata Mesajları: Log dosyalarındaki hata mesajları, SQL enjeksiyonuna dair bilgiler sunabilir. Örneğin, SQL syntax error veya unexpected token gibi ifadeler, gerçekleşen bir SQL hatasını işaret eder ve sistemin bir SQL Enjeksiyonu girişimini algıladığına dair bir belirti olabilir.

  3. Frekans Analizi: Log dosyalarındaki belirli sorguların tekrarlanma sıklığı, bir saldırının devam ettiğini gösterebilir. Örneğin, birbirini takip eden kısa zaman dilimleri içinde artan sorgu sayıları, bir saldırganın kıskaca aldığını gösterebilir.

  4. Kullanıcı IP Adresi: Unauthenticated bir saldırganın kullandığı IP adreslerinin izlenmesi de önemlidir. Şüpheli davranışlar sergileyen veya bilinen kötü niyetli IP adreslerinden gelen istekler, olayın ciddiyetini artırır.

  5. Zaman Damgaları: Birçok SQL enjeksiyonu saldırısı, belirli zaman dilimlerinde yoğunlaşabilir. Log dosyalarındaki bu zaman dilimlerini analiz ederek, olası bir saldırı zamanlamasını çıkartabilirsiniz.

Bir güvenlik uzmanı olarak, yukarıdaki tüm parametreleri değerlendirerek potansiyel bir SQL Enjeksiyonu saldırısını tespit etmek, kurumun siber güvenlik duruşunu güçlendirmek açısından kritik bir adımdır. Anomalilerin ve şüpheli aktivitenin izlenmesi, hızla müdahale edilmesini sağlar ve sisteme yönelik tehditleri minimize eder. Ek olarak, belirli imza (signature) tanımlamaları oluşturarak, olası saldırı girişimlerini önceden tespit etmek için SIEM çözümlerinde kullanılabilir.

Sistem yöneticileri için, bir SQL Enjeksiyonu zafiyeti tespit edildikten sonra, hemen patrondan (patch) güncellemelerin uygulanması ve daha sağlam güvenlik önlemleri alınması gerekir. Güçlü bir log analizi de dahil olmak üzere, bütün bu süreçler kurumların siber güvenliklerini artırmada büyük önem taşımaktadır.

Savunma ve Sıkılaştırma (Hardening)

Ivanti Endpoint Manager (EPM) üzerinde tespit edilen CVE-2024-29824 SQL Injection (SQL Enjeksiyonu) zafiyeti, siber güvenlik dünyasında önemli bir tehdit oluşturmakta. Bu tür bir zafiyet, bir saldırganın gerekli kimlik bilgilerine sahip olmadan, yalnızca ağ içinde bulunarak sistemdeki verilere veya sistemin işlevselliğine zarar vermesine olanak tanır. Bu kapsamda, bu yazıda, bu açığın kapatılması için uygulanabilecek savunma ve sıkılaştırma yöntemlerine değineceğiz.

SQL enjeksiyonu, genellikle uygulamanın yeterince sterilize edilmemiş kullanıcı giriş verileri üzerinde SQL sorguları oluşturarak olumsuz etkiler yaratır. Bir saldırgan, belirli bir veri tabanı sorgusunu değiştirmek için zararlı SQL komutlarını sisteme enjekte edebilir. Örneğin:

' OR '1'='1';

Yukarıdaki örnekle, bir saldırgan yetkisiz olarak tüm kayıtları görüntüleyebilir veya sistem üzerinde zararlı işlemler gerçekleştirebilir. Zafiyet, Core server'da bulunmakta ve bu, ağ içinde bir saldırganın, potansiyel olarak uzak bir komut çalıştırma (RCE - Remote Code Execution) işlemi gerçekleştirebileceği anlamına geliyor.

Zafiyeti kapatmanın en etkili yollarından biri, giriş verilerinin sıkı bir şekilde doğrulanmasıdır. Aşağıda bu tip bir SQL enjeksiyonunun önlenmesine yönelik bazı yararlı teknikleri sunmakta:

  1. Parametrik Sorgular Kullanımı: Uygulama geliştirme sürecinde, SQL sorgularınızda parametrik sorgular kullanmalısınız. Bu sayede kullanıcıdan alınan veriler doğrudan SQL sorgularına eklenmez ve bu durum SQL enjeksiyonuna karşı bir bariyer oluşturur. Örnek:
   cursor.execute("SELECT * FROM kullanıcılar WHERE kullanıcı_adı = %s", (kullanici_adi,))
  1. Gelişmiş Giriş Doğrulaması: Kullanıcıdan alınan verilerin sadece belirli formatlara izin verecek şekilde sıkı doğrulama kuralları uygulanmalıdır. Örneğin, e-posta adresleri, telefon numaraları gibi belirli şekillerde doğrulama yapılması, gereksiz verilerin sisteme girmesini engeller.

  2. Web Uygulama Güvenlik Duvarı (WAF) Kullanımı: Alternatif bir güvenlik katmanı olarak, WAF'lar (Web Application Firewalls) kullanılabilir. WAF'lar, kötü niyetli trafigi izleyip engelleme yeteneğine sahip olduğu için, SQL enjeksiyon girişimlerinin tespit edilmesini ve engellenmesini sağlayabilir. Bu bağlamda, belirli kurallar oluşturarak zararlı parametreleri ve istekleri filtrelemek oldukça önemlidir.

  3. Güncellemeleri Takip Etme: Ürünlerini güncel tutmak da zafiyetlerin kapatılması konusunda kritik öneme sahiptir. Ivanti Endpoint Manager'ın güncellemelerini düzenli olarak kontrol edip uygulamak, yeni tespit edilen güvenlik açıklarının sisteminize zarar vermesini önler.

  4. Güvenlik Testi ve Penetrasyon Testleri Uygulama: Gerçek dünya senaryolarında, sisteminizi sürekli test edecek bir güvenlik ekibi oluşturmak ve farklı saldırı senaryoları deneyerek potansiyel zafiyetleri tespit etmek oldukça yararlı olacaktır. Penetrasyon testleri, sisteminizdeki güvenlik açıklarını daha gerçekçi bir ortamda tespit etmek için etkili bir yöntemdir.

Bu yöntemler, Ivanti Endpoint Manager'daki SQL enjeksiyon zafiyetinin kapatılmasında önem arz etmektedir. Siber güvenlik, sürekli bir mücadele gerektiren bir alan olduğundan, sürekli dikkat ve güncellemelerle sistemlerin güvenliğini artırmak gerekmektedir. Unutmayın, güvenlik, bir defalık bir işlem değil, sürekli bir süreçtir.