Trojan Source, geliştiriciye görünmeyen kod değişiklikleri eklemeye izin veren saldırı

Birkaç gün önce Cambridge Üniversitesi araştırmacıları serbest bırakıldı yayınlanması kodları ustaca değiştirmek için bir teknik uygulama kaynak kodunda kötü amaçlı.

Saldırı yöntemi bunu hazırladı CVE-2021-42574 altında zaten listelenmiştir. Trojan Source adı altında gelir ve derleyici/yorumlayıcı ve kodu görüntüleyen kişiden farklı görünen metin oluşumuna dayanır.

Truva Atı Kaynağı Hakkında

Yöntem kod yorumlarında özel Unicode karakterleri uygulamaya dayanır, çift yönlü metnin görüntülenme sırasını değiştirir. Bu kontrol karakterleri yardımıyla, metnin bazı bölümleri soldan sağa, diğerleri sağdan sola görüntülenebilir.

Günlük uygulamada, bu kontrol karakterleri, örneğin bir kod dosyasına İbranice veya Arapça dizeler eklemek için kullanılabilir. Ancak, aynı satırda farklı metin yönlerine sahip satırları birleştirmek için bu karakterleri kullanırsanız, sağdan sola görüntülenen metin pasajları, soldan sağa görüntülenen mevcut normal metinle çakışabilir.

Bu yöntemle koda kötü amaçlı bir yapı eklenebilir, ancak daha sonra, kodu görüntülerken, bir sonraki yorumda veya literalin içinde sağdan sola gösterilen karakterleri ekleyerek, bu yapıya sahip metni görünmez yapın; bu, kötü amaçlı ekin üzerine tamamen farklı karakterlerin bindirilmesiyle sonuçlanacaktır. Bu tür kodlar anlamsal olarak doğru olmaya devam edecek, ancak farklı şekilde yorumlanacak ve görüntülenecektir.

İnsan görüntüleyenlerin ve derleyicilerin farklı mantık görmeleri için kaynak kod dosyalarının kodlamasını değiştirmenin yollarını keşfettik. Özellikle zararlı bir yöntem, kodu gerçek mantığının bir anagramı olarak görüntülemek için Unicode yönlü geçersiz kılma karakterlerini kullanır. Bu saldırının C, C++, C#, JavaScript, Java, Rust, Go ve Python'a karşı çalıştığını doğruladık ve diğer modern dillerin çoğunda çalışacağından şüpheleniyoruz.

Kodu incelerken, geliştirici, karakterlerin görsel düzeniyle karşı karşıya kalacak ve bir editörde şüpheli bir yorum görecektir. metin, web arayüzü veya IDE, ancak derleyici ve yorumlayıcı karakterlerin mantıksal sırasını kullanacak ve kötü amaçlı kodu işleyecektir. olduğu gibi, yorumdaki çift yönlü metinden bağımsız olarak. Çeşitli popüler kod düzenleyicileri (VS Code, Emacs, Atom) ve ayrıca depolardaki (GitHub, Gitlab, BitBucket ve tüm Atlassian ürünleri) kodu görüntüleme arabirimleri etkilenir.

Kötü amaçlı eylemleri uygulamak için yöntemi kullanmanın birkaç yolu vardır: işlev yürütmesinin zamanından önce sonlandırılmasına yol açan gizli bir "dönüş" ifadesi ekleyin; normalde geçerli yapılar olarak kabul edilen ifadelerin yorumundaki sonuç (örneğin, önemli kontrolleri devre dışı bırakmak için); Dize doğrulama hatalarına yol açan diğer dize değerlerinin atanması.

Buna ek olarak, homogliflerin kullanımını içeren başka bir saldırı seçeneği önerildi (CVE-2021-42694), görünüşte benzer görünen, ancak anlam bakımından farklı olan ve farklı Unicode kodlarına sahip olan semboller. Bu karakterler geliştiricileri yanıltmak için bazı dillerde fonksiyon ve değişken isimlerinde kullanılabilir. Örneğin, farklı eylemler gerçekleştiren ayırt edilemez adlara sahip iki işlev tanımlayabilirsiniz. Ayrıntılı analiz olmadan, belirli bir yerde bu iki işlevden hangisinin çağrıldığını hemen anlayamazsınız.

Koruma önlemi olarak, Unicode karakterleri destekleyen, bir hata veya uyarı gösteren derleyicilerde, yorumlayıcılarda ve derleme araçlarında uygulanması önerilir. yorumlarda, dize değişmezlerinde veya çıktı yönünü değiştiren tanımlayıcılarda eşleştirilmemiş kontrol karakterleri olup olmadığı. Bu karakterler ayrıca programlama dili spesifikasyonlarında açıkça yasaklanmalı ve havuzlarla çalışmak için kod editörlerinde ve arayüzlerde dikkate alınmalıdır.

bunun yanı sıra güvenlik açıkları zaten düzeltilmeye başlandı GCC, LLVM/Clang, Rust, Go, Python ve binutils için hazırlanmıştır. GitHub, Bitbucket ve Jira da GitLab ile birlikte bir çözüm hazırlığındalar.

Nihayet Bununla ilgili daha fazla bilgi edinmek istiyorsanız, danışabilirsin aşağıdaki bağlantıdaki ayrıntılar.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.