PyTorch, tatillerde kötü amaçlı bağımlılık zinciri uzlaşmasını ifşa ediyor


pypi

PyTorch, çerçevenin ‘torchtriton’ kitaplığıyla aynı ada sahip kötü niyetli bir bağımlılık belirledi. Bu, bağımlılık karışıklığı saldırı vektörü aracılığıyla başarılı bir uzlaşmaya yol açtı.

PyTorch yöneticileri, çerçeveyi ve sahte ‘torchtriton’ bağımlılığını kaldırmaları için tatillerde her gece PyTorch’u kuran kullanıcıları uyarıyor.

Açık kaynaklı makine öğrenimi çerçevesi PyTorch, bilgisayar görüşünden doğal dil işlemeye kadar hem ticari hem de akademik alanlarda önem kazanmıştır.

Kötü amaçlı kitaplık, PyTorch-nightly kullanıcılarını hedefliyor

PyTorch ekibi, 25 Aralık ile 30 Aralık 2022 arasında, PyTorch’u her gece kuran kullanıcıların sistemlerinin tehlikeye girmediğinden emin olmaları gerektiği konusunda uyardı.

Uyarı, Python için resmi üçüncü taraf yazılım deposu olan Python Paket Dizini (PyPI) kayıt defterinde tatillerde ortaya çıkan bir ‘torchtriton’ bağımlılığını takip ediyor.

“Lütfen kaldırın ve meşale hemen yükleyin ve en son gecelik ikili dosyaları kullanın (30 Aralık 2022’den daha yeni)”, PyTorch ekibine tavsiyede bulunuyor.

PyPI'ye Kötü Amaçlı PyTorch Bağımlılığı
PyPI üzerinde kötü amaçlı PyTorch bağımlılığı ‘torchtriton’ (bilgisayarın sesi)

PyPI’ye kötü amaçlı ‘torchtriton’ bağımlılığı, PyTorch-nightly’nin deposunda yayınlanan resmi kitaplık ile aynı adı paylaşıyor. Ancak, Python ekosisteminde bağımlılıklar getirilirken, PyPI normalde önceliklidir ve PyTorch’un meşru paketi yerine kötü amaçlı paketin makinenize çekilmesine neden olur.

“PyPI dizini öncelikli olduğundan, resmi depomuzdaki sürüm yerine bu kötü amaçlı paket kuruluyordu. Bu tasarım, birinin üçüncü taraf dizininde bulunanla aynı ada sahip bir paketi kaydetmesine olanak tanıyor ve bip sürümlerini varsayılan olarak kuracak”, PyTorch ekibi dün yayınlanan bir açıklamada yazıyor.

BleepingComputer bu yazıyı yazarken, kötü niyetli ‘torchtriton’ bağımlılığının geçen hafta 2.300 indirmeyi aştığını gözlemledi.

Bu tür tedarik zinciri saldırısı, ilk kez 2021’de BleepingComputer tarafından bildirildiği üzere “bağımlılık karışıklığı” olarak bilinir, tıpkı saldırı vektörünün etik hacker tarafından popüler hale getirilmesi gibi. Alex Birsan.

PyTorch, PyTorch kullanıcıları kararlı paketler bu sorundan etkilenmez.

Hacker hassas dosyaları çalıyor, etik araştırma iddiasında bulunuyor

Kötü amaçlı ‘torchtriton’, sisteminizi temel parmak izi bilgileri (IP adresi, kullanıcı adı ve geçerli çalışma dizini gibi) için araştırmakla kalmaz, ayrıca hassas verileri de çalar:

  • Sistem bilgilerini alır
    • gelen ad sunucuları /etc/resolv.conf
    • ana bilgisayar adı gethostname()
    • şu anki kullanıcı adı getlogin()
    • geçerli çalışma dizini adı getcwd()
    • Ortam Değişkenleri
  • Aşağıdaki dosyaları okur
    • /etc/hosts
    • /etc/şifre
    • $HOME/* içindeki ilk 1.000 dosya
    • $HOME/.gitconfig
    • $ANA SAYFA/.ssh/*

Ardından, dosya içerikleri de dahil olmak üzere tüm bu verileri, wheezy.io DNS sunucusunu kullanarak şifrelenmiş DNS sorguları aracılığıyla h4ck.cfd etki alanına yükler.

PyTorch, sahte ‘torchtriton’ içinde yer alan kötü amaçlı ‘triton’ ikili dosyasının, yalnızca kullanıcı kendi yapısında ‘triton’ paketini içe aktardığında yürütüldüğünü açıklıyor. Bu, açık kod gerektirir ve PyTorch’un varsayılan davranışı değildir.

h4ck.cfd alanındaki bildirim, tüm işlemin etik araştırma olduğunu ima eder, ancak analiz güçlü bir şekilde aksini belirtir.

“Merhaba, günlüklerinizde buna rastladıysanız, bunun nedeni muhtemelen Python’unuzun yanlış yapılandırılmış olması ve bir bağımlılık karışıklığı saldırısına karşı savunmasız olmasıdır. Güvenlik açığı bulunan şirketleri belirlemek için komut dosyası, ana bilgisayar hakkındaki meta verileri (ana bilgisayar adı ve ana bilgisayar adı gibi) gönderir. geçerli çalışma dizini) bana. Kimin savunmasız olduğunu belirledikten sonra ve [reported] sunucunuzla ilgili tüm meta verilerin bulunması silinecek.”

Bildirimin ifadesinin aksine, ikili dosya yalnızca “meta verileri” toplamakla kalmaz, aynı zamanda SSH anahtarlarınız, , ,gitconfig, ana bilgisayarlar ve şifre dosyalar ve GİRİŞ dizininizdeki ilk 1.000 dosyanın içeriği.

BleepingComputer, VirusTotal’a göre yazı yazıldığı sırada temiz bir itibar gösteren kötü amaçlı ikili programın bir kopyasını aldı. Ama kanmayın.

Niyetleri ve davranışlarıyla göze çarpan çeşitli araştırma paketlerinin ve PoC istismarlarının aksine, ‘torchtriton’un tespit edilmekten kaçınmak için bilinen anti-VM tekniklerini kullandığını gözlemledik. Daha da önemlisi, kötü amaçlı yük gizlenmiştir ve tamamen ikili biçimde, yani Linux ELF dosyalarında yer alır; bunların tümü, geçmişin düz metin olarak gönderilen etik bağımlılık karışıklığı istismarlarıyla yan yana getirildiğinde kitaplığı bir aykırı değer haline getirir.

Örnek okumaları da fark ettik .bash_history veya kötü amaçlı yazılımın sergilediği başka bir özellik olan, kullanıcının terminale yazdığı komutların ve girişlerin bir listesi.

Bu, bir bilgisayar korsanının sırları dışarı sızdırırken yakalandığı gibi eylemlerinin etik araştırma teşkil ettiğini iddia etmesi de ilk kez olmayacak.

2022’nin ortalarında, oldukça popüler Python ve PHP kitaplıkları, sırasıyla “ctx” ve “PHPass” kaçırıldı ve AWS anahtarlarını çalmak için değiştirildi. Saldırının arkasındaki araştırmacı daha sonra bunun etik bir araştırma olduğunu iddia etti.

Şüpheye mahal vermemek adına, yorum için h4ck.cfd’nin sahibine başvurduk. Kamuya açık kayıtlar, alanın 21 Aralık’ta, bu olaydan sadece birkaç gün önce Namecheap’e kaydedildiğini gösteriyor.

Azaltmalar

PyTorch ekibi, ‘torchtriton’ bağımlılığını ‘pytorch-triton’ olarak yeniden adlandırdı ve benzer saldırıları önlemek için PyPI üzerinde sahte bir paket ayırdı. Grup, mevcut saldırıyı dağıtmak için PyPI’deki mevcut ‘torchtriton’un sahipliğini talep etmeye çalışıyor.

PyTorch, daha fazla saldırıyı önlemek için bağımlılığı yeniden adlandırdı
PyTorch, daha fazla saldırıyı önlemek için bağımlılığı yeniden adlandırdı (bilgisayarın sesi)

Kötü amaçlı bağımlılık zincirini kaldırmak için kullanıcılar aşağıdaki komutu çalıştırmalıdır:

$ pip3 uninstall -y torch torchvision torchaudio torchtriton
$ pip3 cache purge

Aşağıdaki komutu çalıştırmak, kötü amaçlı ikili dosyaların varlığını arayacak ve etkilenip etkilenmediğinizi ortaya çıkaracaktır:

python3 -c "import pathlib;import importlib.util;s=importlib.util.find_spec('triton');
affected=any(x.name == 'triton' for x in (pathlib.Path(s.submodule_search_locations[0] 
if s is not None else '/' ) / 'runtime').glob('*'));
print('You are {}affected'.format('' if affected else 'not '))"

‘Triton’ ELF ikilisinin SHA256 karması şu şekildedir: 2385b29489cd9e35f92c072780f903ae2e517ed422eae67246ae50a5cc738a0e.





Source link