PyPI Paketlerinde Truva Atı Tehdidi: Telegram Bot Sunucularının Kontrol Altına Alınması

Kasım 2023'ten beri devam eden saldırıda, Pyrogram çatallarına Truva atı eklenerek Python geliştiricilerinin Telegram bot sunucuları hedef alınıyor. Saldırganlar, saldırıya uğramış sunucularda rastgele dosyaları okuyabiliyor.

B
Bleeping Computer Tutorials
1 görüntülenme
PyPI Paketlerinde Truva Atı Tehdidi: Telegram Bot Sunucularının Kontrol Altına Alınması

Sorun Tanımı

Kasım 2023'ten beri aktif olan bir saldırı kampanyası, Python geliştiricilerini hedef almaktadır. Saldırganlar, Pyrogram kütüphanesinin Truva atı eklenmiş versiyonlarını PyPI (Python Package Index) deposuna yükleyerek, geliştiricilerin Telegram bot sunucularını ele geçirmeyi amaçlamaktadır. Bu Truva atı versiyonlar, saldırganlara saldırıya uğramış sunucularda rastgele dosyaları okuma yetkisi vermektedir.

Pyrogram, Telegram botları oluşturmak için yaygın olarak kullanılan bir Python kütüphanesidir. Saldırganlar, bu kütüphanenin orijinal versiyonunu değiştirerek, içerisine kötü amaçlı kodlar eklemiş ve PyPI'ye pyrogram[bot] gibi yanıltıcı isimlerle yayınlamışlardır. Geliştiriciler bu paketleri indirip kurduklarında, bot sunucuları saldırganların kontrolüne geçmektedir.

Etkilenen Sistemler ve Kullanıcılar

  • Etkilenen Kütüphaneler: pyrogram, pyrogram[bot], pyrogram[asyncio] ve benzeri paketler.
  • Hedeflenen Kullanıcılar: Python geliştiricileri, özellikle Telegram botları geliştirenler.
  • Etki: Saldırganlar, saldırıya uğramış sunucularda dosya okuma, komut çalıştırma ve bot sunucularını kontrol etme yetkisine sahip olmaktadır.

Çözüm Adımları

1. Mevcut Paketlerin Kontrolü ve Temizlenmesi

  1. PyPI Paketlerinin Listelenmesi: Sistemdeki PyPI paketlerini listeleyerek, Truva atı olabilecek paketleri tespit edin.

    pip list --format=json | jq '.[].name'

    Not: jq aracı yüklü değilse, pip list komutunu kullanabilirsiniz.

  2. Truva Atı Paketlerinin Tespiti: Aşağıdaki komutları kullanarak, PyPI'de bulunan ve sistemde yüklü olan Pyrogram paketlerinin versiyonlarını karşılaştırın.

    pip show pyrogram
    pip search pyrogram | grep -i "pyrogram"
    

    Uyarı: PyPI'de pyrogram[bot] gibi yanıltıcı isimlerle yayınlanan paketlere dikkat edin. Orijinal Pyrogram paketi pyrogram olarak yayınlanmaktadır.

  3. Truva Atı Paketlerinin Kaldırılması: Sistemde Truva atı olduğundan şüphelenilen paketleri kaldırın.

    pip uninstall pyrogram pyrogram[bot] pyrogram[asyncio]

2. Güvenilir Kaynaklardan Pyrogram'ın Yeniden Yüklenmesi

  1. Orijinal Pyrogram Paketinin İndirilmesi: PyPI'de bulunan orijinal Pyrogram paketini indirin ve kurun.

    pip install --upgrade pyrogram

    Not: Pyrogram'ın orijinal deposu GitHub adresinde bulunmaktadır. Geliştiriciler, paketi doğrudan bu kaynaktan da indirebilirler.

  2. Bağımlılıkların Kontrolü: Pyrogram'ın bağımlılıklarını kontrol edin ve güvenilir kaynaklardan indirin.

    pip check

3. Saldırıya Uğramış Sunucunun Güvenliğinin Sağlanması

  1. Sunucunun İzole Edilmesi: Saldırıya uğramış sunucuyu diğer sistemlerden izole edin ve ağ bağlantılarını kesin.

  2. Dosya ve Veri Yedeklerinin Kontrolü: Sunucudaki dosyaların ve verilerin yedeklerini alın. Saldırganlar tarafından değiştirilmiş dosyaları tespit edin.

    find / -type f -mtime -7 -exec ls -la {} \;

    Not: Son 7 gün içinde değiştirilmiş dosyaları listeleyerek, saldırıya uğramış dosyaları tespit edin.

  3. Sistem Güncellemeleri: Sunucunun işletim sistemini ve tüm yazılımları güncelleyin.

    sudo apt update && sudo apt upgrade -y
    
  4. Güvenlik Duvarı Kuralları: Güvenlik duvarı kurallarını gözden geçirin ve gereksiz portları kapatın.

    sudo ufw status
    sudo ufw deny 
  5. Kullanıcı Hesaplarının Kontrolü: Sistemdeki kullanıcı hesaplarını kontrol edin ve şüpheli hesapları devre dışı bırakın.

    sudo cat /etc/passwd
    sudo userdel 

4. Gelecekteki Saldırılardan Korunma

  1. Paket Yöneticisi Ayarlarının Kontrolü: PyPI paket yöneticisi ayarlarını kontrol edin ve sadece güvenilir kaynaklardan paket indirin.

    pip config set global.trusted-host pypi.org files.pythonhosted.org
  2. Çevrimiçi Depolarda Doğrulama: PyPI gibi çevrimiçi depolarda yayınlanan paketleri indirmeden önce, paketin imzasını ve doğrulamasını kontrol edin.

    pip install --require-hashes -r requirements.txt

    İpucu: requirements.txt dosyasındaki paketlerin SHA-256 hash'lerini kontrol ederek, paketlerin bütünlüğünü doğrulayın.

  3. Güvenlik Araçlarının Kullanılması: Sistemde güvenlik taramaları yapmak için araçlar kullanın. Örneğin, pip-audit aracı ile yüklü paketlerdeki güvenlik açıklarını tespit edin.

    pip install pip-audit
    pip-audit
  4. Eğitim ve Farkındalık: Geliştiricilere ve sistem yöneticilerine, Truva atı ve kötü amaçlı paketler hakkında eğitim verin. Güvenilir kaynaklardan paket indirilmesi ve kullanılması konusunda bilinçlendirme yapın.

Örnek Senaryo: Saldırıya Uğramış Bir Sunucunun Kurtarılması

Aşağıda, saldırıya uğramış bir sunucunun kurtarılması için adım adım bir senaryo sunulmaktadır:

  1. Saldırı Tespiti: Geliştirici, bot sunucusunda olağandışı aktiviteler olduğunu fark eder. Örneğin, botun beklenmedik komutları çalıştırdığı veya dosyaları okuduğu görülür.

  2. Sunucunun İzole Edilmesi: Geliştirici, sunucuyu diğer sistemlerden izole eder ve ağ bağlantılarını keser.

  3. PyPI Paketlerinin Kontrolü: Geliştirici, sistemdeki PyPI paketlerini listeleyerek, Truva atı olabilecek paketleri tespit eder. Örneğin, pyrogram[bot] paketinin yüklü olduğunu görür.

    pip list | grep pyrogram
  4. Truva Atı Paketinin Kaldırılması: Geliştirici, Truva atı olduğundan şüphelendiği paketleri kaldırır.

    pip uninstall pyrogram[bot]
  5. Orijinal Pyrogram'ın Yeniden Yüklenmesi: Geliştirici, orijinal Pyrogram paketini PyPI'den indirir ve kurar.

    pip install pyrogram
  6. Dosyaların Kontrolü: Geliştirici, sunucudaki dosyaları kontrol eder ve saldırganlar tarafından değiştirilmiş dosyaları tespit eder. Değiştirilmiş dosyaları orijinal halleriyle değiştirir.

  7. Sunucunun Güvenliğinin Sağlanması: Geliştirici, sunucunun güvenliğini sağlamak için gerekli adımları atar. Örneğin, sistem güncellemeleri yapar, güvenlik duvarı kurallarını gözden geçirir ve kullanıcı hesaplarını kontrol eder.

Önemli Uyarı: Saldırıya uğramış bir sunucuya müdahale ederken, sistemdeki tüm verilerin ve dosyaların yedeklerini aldığınızdan emin olun. Saldırganlar, sistemdeki verileri ve dosyaları değiştirmiş olabilir. Saldırıya uğramış sistemleri temizlemek için profesyonel yardım alın.

Sonuç

PyPI paketlerinde Truva atı saldırıları, Python geliştiricileri ve sistem yöneticileri için ciddi bir tehdit oluşturmaktadır. Bu saldırılar, geliştiricilerin bot sunucularını kaybetmesine ve saldırganların hassas verileri ele geçirmesine neden olabilir. Bu nedenle, geliştiricilerin ve sistem yöneticilerinin, PyPI paketlerini indirirken ve kullanırken dikkatli olmaları gerekmektedir.

Yukarıda belirtilen adımları takip ederek, geliştiriciler ve sistem yöneticileri, PyPI paketlerinde Truva atı saldırılarından korunabilir ve saldırıya uğramış sistemleri kurtarabilirler. Ayrıca, gelecekteki saldırılardan korunmak için güvenlik önlemlerini almaları ve geliştiricilere eğitim vermeleri önemlidir.