Kötü amaçlı kodu gizlemenize izin veren çok sayıda derleyicide güvenlik açığı keşfedildi

Cambridge Üniversitesi'nden uzmanlar, tehlikeli bir güvenlik açığı hakkında bilgi yayınladı (CVE-2021-42574), hemen hemen hepsini etkileyenmodern kaynak kodu derleyicileri. Truva Atı Kaynağı makalesi, bilgisayar korsanlarının çeşitli programların kaynak kodunda kötü amaçlı kod saklamasına olanak tanıyan sinsi bir saldırıyı açıklar.

Saldırı, derleyicilerin nasıl çalıştığına dayanmaktadır.metin yönünü belirlemek için kullanılan benzersiz tanımlayıcıları yönetin – soldan sağa veya sağdan sola. Zayıflık, sağdan sola ve soldan sağa yazılan kelimelerin bir arada kullanılmasına izin veren Unicode Bidi algoritmasında yatmaktadır. Bu algoritma sayesinde Arapça ve İngilizce kelimeleri birleştirebilirsiniz. Bu, sağdan sola, soldan sağa ve soldan sağa yazılan metni okumanıza olanak tanır.

Bazı durumlarda algoritmanın yetenekleriUnicode Bidi bu kelimelerin görüntülenme şeklini değiştirmek için yeterli değildir ve bu gibi durumlarda özel kontrol karakterleri kullanılır. Bununla birlikte, aynı satır farklı metin yönlerine sahip kelimeleri birleştiriyorsa, bu kontrol karakterlerini kullanarak derleyicinin o metni okuduğu yönü değiştirebilir ve örneğin yorumlara benzeyen satırların çalıştırılabilir kod gibi davranmasını sağlayabilirsiniz.


</ img>

Bu yöntemi kullanarak kötü amaçlı yazılım ekleyebilirsiniz.Talimatı normal kaynak koduna aktarın ve sonraki yorumu kullanarak kodu görüntülerken bu talimatın metnini görünmez yapın. Bu, aslında rastgele kod olabilecek tamamen farklı karakterler ekleyecektir. Nihai kaynak kodu anlamsal olarak doğru kalır, ancak derlendikten sonra tamamen farklı bir şey olur.

Bu tür kaynak kodunu görüntülerken ve analiz ederkenprogramcı herhangi bir şüphe uyandırmayan yorumların bulunduğu kodu görecektir, ancak derleyici veya yorumlayıcı sembollerin mantıksal sırasını tersine çevirecek ve masum yorum programa eklenen ek koda dönüşecektir. Hata hemen hemen tüm derleyicilerde mevcut &#8211; programlama dilleri için C, C++ (gcc ve clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go ve Python; VS Code, Emacs, Atom dahil olmak üzere çeşitli popüler kod düzenleyicilerinde ve GitHub, Gitlab, BitBucket ve tüm Atlassian ürünlerindeki kaynak kodu görüntüleme arayüzlerinde.

Kaynak: trojansource, zdnet

</ p>