JetBrains TeamCity On-Premises Kritik Kimlik Doğrulama Atlatma ve Uzaktan Kod Yürütme Güvenlik Açığı Uyarısı

JetBrains, TeamCity On-Premises sistemlerinde kritik bir kimlik doğrulama bypass güvenlik açığını duyurdu. Bu açıktan yararlanarak uzaktan kod yürütme saldırıları gerçekleştirilebilir.

I
ITWISE
0 görüntülenme
JetBrains TeamCity On-Premises Kritik Kimlik Doğrulama Atlatma ve Uzaktan Kod Yürütme Güvenlik Açığı Uyarısı

Genel Bakış

JetBrains TeamCity, CI/CD (Continuous Integration/Continuous Deployment) süreçlerinde yaygın olarak kullanılan bir otomatik build ve deployment aracıdır. Bu araç, yazılım geliştirme ekiplerinin kodlarını otomatik olarak derlemelerine, test etmelerine ve dağıtmalarına olanak tanır. 2023 yılının Eylül ayında, JetBrains tarafından TeamCity On-Premises sürümünde tespit edilen kritik bir güvenlik açığı (CVE-2023-42793) yayımlanmıştır. Bu açıklık, kimlik doğrulama bypass zafiyetine dayanmakta olup, saldırganların sistemde uzaktan kod yürütme (RCE) gerçekleştirmelerine olanak sağlamaktadır.

Bu makalede, söz konusu güvenlik açığının detayları, etkilenen sistemler, risk seviyesi ve bu açıktan korunmak için gerekli adımlar detaylı olarak ele alınacaktır. Makalenin zorluk seviyesi intermediate olarak belirlenmiş olup, temel sistem yönetimi bilgisine sahip okuyucular için faydalı olacaktır.

Etkilenen Sistemler ve Güvenlik Açığının Detayları

Etkilenen Sürümler

Aşağıdaki TeamCity On-Premises sürümleri, CVE-2023-42793 güvenlik açığından etkilenmektedir:

  • TeamCity 2023.05.1 ve öncesi
  • TeamCity 2023.05
  • TeamCity 2023.05.2

Önemli Uyarı: TeamCity Cloud sürümleri bu açıklıktan etkilenmemektedir. Sadece On-Premises (yerel kurulum) sürümleri risk altındadır. Eğer TeamCity Cloud kullanıyorsanız, herhangi bir ek işlem yapmanız gerekmez.

Açıklığın Teknik Detayları

CVE-2023-42793, kimlik doğrulama bypass zafiyetine dayanmaktadır. Bu zafiyet, saldırganların sisteme yetkisiz erişim sağlamasına ve ardından uzaktan kod yürütme gerçekleştirmesine olanak tanır. Açıklık, TeamCity'nin HTTP/HTTPS bağlantıları üzerinden gelen istekleri işlerken kimlik doğrulama kontrollerini yetersiz şekilde gerçekleştirmesinden kaynaklanmaktadır.

Aşağıdaki senaryo, açıklığın potansiyel olarak nasıl istismar edilebileceğine dair bir örnektir:

  1. Saldırgan, TeamCity sunucusuna özel olarak hazırlanmış bir HTTP isteği gönderir.
  2. Bu istek, kimlik doğrulama kontrollerini bypass eder ve saldırgana yönetici düzeyinde erişim sağlar.
  3. Saldırgan, bu erişimi kullanarak sistemde arbitrary komut çalıştırma yetkisi elde eder.
  4. Saldırgan, sistemde tüm verileri silebilir, yeni kullanıcılar oluşturabilir veya sistemin tam kontrolünü ele geçirebilir.

Risk Seviyesi

Bu güvenlik açığı, CVSS v3.1 puanı 9.8 (Kritik) olarak değerlendirilmiştir. Bu yüksek puan, açıklığın uzaktan istismar edilebilir olduğunu ve sistemde tam kontrol sağlama riski taşıdığını göstermektedir. Saldırganlar, bu açıktan yararlanarak veri hırsızlığı, hizmet reddi saldırıları veya sistem bütünlüğünün bozulması gibi ciddi sonuçlara yol açabilir.

Güvenlik Açığından Korunma Yöntemleri

Adım 1: Mevcut Sürümünüzü Kontrol Edin

Aşağıdaki komutları kullanarak TeamCity sunucunuzun hangi sürümde çalıştığını kontrol edebilirsiniz:

# TeamCity sunucusunun çalıştığı dizine gidin
cd /opt/teamcity

# Sürüm bilgisini içeren dosyayı okuyun
cat conf/buildServer.properties | grep build.number

Eğer çıktınız aşağıdaki gibi ise, sisteminiz risk altındadır:

build.number=2023.05.1
build.number=2023.05
build.number=2023.05.2

Adım 2: JetBrains'in Resmi Yama ve Güncellemelerini Uygulayın

JetBrains, bu güvenlik açığını gidermek için TeamCity'nin yeni bir sürümünü yayınlamıştır. Aşağıdaki adımları izleyerek sisteminizi güncelleyebilirsiniz:

  1. Yedekleme Yapın: Güncelleme işlemine başlamadan önce, TeamCity veritabanınızın ve yapılandırma dosyalarının yedeğini alın. Aşağıdaki komutları kullanabilirsiniz:

    # Veritabanı yedeği (örnek PostgreSQL için)
    pg_dump -U teamcity -d teamcity > teamcity_backup_$(date +%Y%m%d).sql
    
    # TeamCity dizininin yedeği
    tar -czvf teamcity_backup_$(date +%Y%m%d).tar.gz /opt/teamcity
    
  2. Güncelleme Dosyasını İndirin: JetBrains'in resmi web sitesinden en son TeamCity sürümünü indirin:

    wget https://download.jetbrains.com/teamcity/TeamCity-.tar.gz
    

    Not: <VERSION> yerine en son sürüm numarasını girin (örn. 2023.05.3).

  3. Güncellemeyi Uygulayın: Aşağıdaki adımları izleyerek TeamCity'yi güncelleyin:

    # Mevcut TeamCity dizinini durdurun
    docker stop teamcity  # Eğer Docker kullanıyorsanız
    systemctl stop teamcity  # Eğer sistem servisi olarak çalışıyorsa
    
    # Yeni sürümü kurun
    mkdir -p /opt/teamcity_new
    tar -xzvf TeamCity-.tar.gz -C /opt/teamcity_new
    
    # Veritabanı bağlantı ayarlarını yeni dizine kopyalayın
    cp /opt/teamcity/conf/buildServer.properties /opt/teamcity_new/conf/
    
    # Eski TeamCity dizinini yedekleyin ve yeni dizini aktif hale getirin
    mv /opt/teamcity /opt/teamcity_old
    mv /opt/teamcity_new /opt/teamcity
    
    # TeamCity'yi yeniden başlatın
    systemctl start teamcity  # Eğer sistem servisi olarak çalışıyorsa
    
  4. Güncellemenin Doğruluğunu Kontrol Edin: Güncelleme işleminden sonra, TeamCity arayüzüne giriş yaparak sistemin düzgün çalıştığını ve yeni sürüm numarasını doğrulayın.

İpucu: Eğer TeamCity'yi Docker konteynerinde çalıştırıyorsanız, aşağıdaki komutları kullanarak konteyneri güncelleyebilirsiniz:

docker pull jetbrains/teamcity-server

# Mevcut konteyneri durdurun ve silin
docker stop teamcity
docker rm teamcity

# Yeni konteyneri başlatın
docker run -d --name teamcity -p 8111:8111 -v /opt/teamcity/data:/data -v /opt/teamcity/logs:/logs jetbrains/teamcity-server

Adım 3: Güvenlik Duvarı ve Erişim Kontrollerini Güçlendirin

Sisteminizi sadece gerekli IP adreslerinden erişilebilir hale getirerek saldırı yüzeyini azaltabilirsiniz. Aşağıdaki adımları izleyerek güvenlik duvarı kurallarınızı güncelleyebilirsiniz:

# UFW (Uncomplicated Firewall) kullanıyorsanız
sudo ufw allow from  to any port 8111
sudo ufw deny 8111

# iptables kullanıyorsanız
sudo iptables -A INPUT -p tcp --dport 8111 -s  -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8111 -j DROP

Eğer TeamCity'ye sadece VPN üzerinden erişim sağlıyorsanız, bu da ek bir güvenlik katmanı oluşturacaktır.

Adım 4: Sistem Günlüklerini İzleyin ve Saldırı Belirtilerini Kontrol Edin

TeamCity, sistem olaylarını ve erişim denemelerini ayrıntılı olarak kaydeder. Aşağıdaki komutları kullanarak günlükleri inceleyebilir ve olağandışı aktiviteleri tespit edebilirsiniz:

# TeamCity günlüklerini görüntüleyin
cat /opt/teamcity/logs/teamcity-server.log | grep -i "authentication failed"
cat /opt/teamcity/logs/teamcity-server.log | grep -i "remote code execution"

# Son 24 saatteki olağandışı erişim denemelerini listeleyin
grep -E "(Failed login|Unauthorized access)" /opt/teamcity/logs/teamcity-server.log | tail -n 50

Uyarı: Eğer aşağıdaki belirtilerden herhangi birini tespit ederseniz, sisteminizin saldırıya uğradığını düşünebilirsiniz:

  • Bilinmeyen IP adreslerinden yapılan başarısız kimlik doğrulama denemeleri
  • Sistemde çalıştırılan bilinmeyen komutlar
  • Veritabanında yapılan yetkisiz değişiklikler
  • Sistem performansında ani düşüşler

Sıkça Sorulan Sorular (SSS)

TeamCity Cloud kullanıyorum. Bu açıklıktan etkilenir miyim?

Hayır. Bu güvenlik açığı sadece TeamCity On-Premises sürümlerini etkilemektedir. TeamCity Cloud kullanıcıları herhangi bir ek işlem yapmasına gerek yoktur.

Güncelleme yapmadan önce nelere dikkat etmeliyim?

Güncelleme işlemine başlamadan önce mutlaka veritabanı ve yapılandırma dosyalarının yedeğini alın. Ayrıca, sistemde çalışan tüm build'leri durdurun ve TeamCity servisini tamamen kapatın.

Bu açıklık nasıl tespit edilir?

Saldırganlar, bu açıklığı istismar etmek için özel olarak hazırlanmış HTTP istekleri gönderirler. Bu istekler, TeamCity sunucusunun günlüklerinde "authentication failed" veya "unauthorized access" gibi mesajlarla kaydedilir. Ayrıca, sistemde çalıştırılan bilinmeyen komutlar da bir saldırı belirtisi olabilir.

Sonuç

CVE-2023-42793, TeamCity On-Premises kullanıcıları için ciddi bir tehdit oluşturmaktadır. Bu açıklık, saldırganlara sistemde tam kontrol sağlama yetkisi vermektedir. Bu nedenle, acilen en son TeamCity sürümüne güncelleme yapılması ve güvenlik önlemlerinin güçlendirilmesi gerekmektedir. Güncelleme işlemine başlamadan önce mutlaka yedekleme yapmayı unutmayın ve sisteminizi sürekli olarak izleyin.

Eğer TeamCity On-Premises kullanıyorsanız, bu makalede verilen adımları takip ederek sisteminizi koruma altına alabilirsiniz. Unutmayın, güvenlik açıklarını önlemek, sistem bütünlüğünü korumak ve veri güvenliğini sağlamak için düzenli güncellemeler ve izleme işlemleri hayati önem taşımaktadır.