Sürekli gelişen siber güvenlik ortamında, geliştirme ortamlarının güvenliğinin sağlanması, özellikle yazılımın modern toplumsal altyapılarda her yerde mevcut olması göz önüne alındığında, büyük bir endişe konusu haline geldi. Microsoft’un Visual Studio IDE güvenliğine ilişkin yakın zamanda artan endişeler, tek tıklamayla zararlı olabilecek bir istismarın yayımlanmasıyla daha da güçlenerek, yazılım geliştirme süreçlerinin korunmasında araç bütünlüğünün kritikliğinin altını çiziyor.
Visual Studio projeleri için özellikle aşağıdakilere odaklanan yeni bir kullanım tekniği araştırıyor: .sln
Dosyalar. Kimlik avı saldırıları için kod projelerini kullanma kavramı yeni değil. Örneğin, 2021’in başlarında Lazarus APT grubu, Visual Studio proje dosyalarına kötü amaçlı olay komutları yerleştirdikleri ve proje derlemesi sırasında zararlı kodların yürütülmesine izin veren bir teknik kullandı. Bu olay, Visual Studio ve JetBrains’in IDE’leri ve VSCode gibi diğer IDE’lerle ilgili güvenlik endişelerini vurguladı; bunlar aynı zamanda güvenli olmayan projeleri açarken güvenlik açıklarına da sahiptir. Bu ürünler, kullanıcıları korumak amacıyla güvenilmeyen ortamlarda belirli riskli işlevleri devre dışı bırakmak için güven bölgesi mekanizmaları getirmiştir. Sangfor’dan saygın baş güvenlik araştırmacısı Zhiniang Peng tarafından tasarlanan bu açık, Visual Studio’nun bir güvenlik önlemi olan “güvenilir konumlar” özelliğindeki olası güvenlik açıklarına ışık tutuyor 2021’deki kötü şöhretli Lazarus grup saldırısının ardından kuruldu.
Bu özellik, Visual Studio projelerinin kötü amaçlı uzaktan kod yürütme (RCE) girişimleri için kullanılmasına karşı dikkate değer bir önlem olsa da, şaşırtıcı bir şekilde varsayılan olarak etkinleştirilmiyor ve bu nedenle bir dizi geliştiriciyi farkında olmadan tehditlere açık hale getiriyor. Bu istismar aldatıcı bir basitlikle çalışır: Görünüşte zararsız bir proje indirilir ve içinde gizlice kötü amaçlı bir .suo ikili dosyası bulunur. Proje açıldığında bir .vs klasöründe gizlice otomatik olarak oluşturulan dosya, bir noktayla başlayan klasörlerin/dosyaların gizli doğasından yararlanarak saldırının merkez üssü haline gelir.
Teknik Operasyon
Depo, Visual Studio projeleri için yeni bir kullanım tekniği sunar ve bir kavram kanıtı sağlar. Amaç, ilgili potansiyel riskler hakkında farkındalık yaratmak ve bireylerin saldırıya uğramasını önlemektir. Sömürme tekniği şu konular etrafında döner: .sln
veya .csproj
proje dosyaları. Bir proje açıldığında Visual Studio otomatik olarak bir .vs
Projenin kök dizinindeki, adı verilen özel bir ikili dosya içeren klasör .suo
. Visual Studio belgelerine göre, ortam bir dosya açtığında .suo
dosyası, şu anda yüklü olan tüm VSPackages’i numaralandırır. Bir VSPackage uygularsa IVsPersistSolutionOpts
arayüz, daha sonra ortam çağırır LoadUserOptions
VSPackage’deki yöntemi kullanarak dosyadaki tüm verilerini yüklemesini isteyin.
Kavramın ispatı
Kavramın kanıtlanması şunları içerir: ysoserial.net
bir veri yükü oluşturmak ve onu yazmaya çalışmak için .suo
dosya. Projeyi Visual Studio’da açarken, kötü amaçlı yazılım .suo
dosya otomatik olarak yüklenecek ve bellekte isteğe bağlı kodun yürütülmesini tetikleyecektir. Depo aşağıdaki gibi örnek bir kötü proje yapısı sağlar:
$ tree -a
├── App1
│ └── Form1.cs
├── App1.sln
└── .vs
└── App1
└── v17
└── .suo
Açık riske rağmen Microsoft bunu bir güvenlik sorunu olarak görmüyor. Microsoft’un resmi yanıtı, outflank’ın blogunda verilen yanıtla uyumlu olarak “Visual Studio projesi açmak güvenli olmayan bir işlemdir” şeklindedir. Bu nedenle bu istismar düzeltilmeyecektir. Ancak deponun yazarları, bir projeyi açtığınızda otomatik olarak yüklenen daha fazla açıklanmamış dosya olduğuna ve böyle bir projeyi açmanın makinenizin güvenliğini tehlikeye atmak için yeterli olduğuna inanıyor.
İstismar Ortamında Gezinmede Koruyucu Adımlar:
- Güvenilen Konumları Etkinleştirme: Microsoft’un “Visual Studio 2022 ile geliştirici güvenliğini artırma” anlatımından elde edilen bilgilerle uyumlu olarak, güvenilir konumların etkinleştirilmesi zorunludur; Visual Studio 2022 içindeki içeriğin, ‘güvenilir konumlar’ listesine açıkça eklenmediği sürece güvenilmez olarak değerlendirilmesi zorunludur.
- Dikkatli Proje Yönetimi: Geliştiriciler, alışılmadık projelere karşı doğal bir şüphecilik benimsemelidir. Bu tür varlıkların Visual Studio’da veya herhangi bir geliştirme ortamında açılması, doğası gereği siber güvenlik riskleriyle dolu bir yolda ilerlemektedir.
Diyaloğu siber güvenlik topluluğuna genişletirken, bu istismarın diğer geliştirme ortamlarındaki daha geniş etkilerini ve potansiyel uyarlamalarını kabul etmek çok önemlidir. JetBrains’in IDE’leri, VSCode ve çeşitli metin düzenleyicileri, kendi güven bölgesi mekanizmalarını dağıtırken, özellikle doğrulanmamış projeleri yönetirken, doğası gereği güvenlik açıklarına karşı dayanıklı değildir. Burada hem yazılım geliştirme hem de siber güvenlik profesyonelleri için üstü kapalı bir eylem çağrısı yatıyor: küresel dijital altyapıların bütünlüğünü korumak amacıyla geliştirme araçlarının kendine özgü güvenlik mekanizmalarını geliştirmeye yönelik birleşik, proaktif bir duruş. Dahası, kolektif bilgi paylaşımına ve potansiyel tehdit vektörlerine karşı uyanıklığa dayalı bir ortamın teşvik edilmesi, dijital çağımızın çok yönlü siber güvenlik zorluklarının aşılmasında hayati önem taşıyor.
Toplu olarak, dijital üretim araçlarımızın yalnızca işlevsel açıdan sağlam olmasını değil aynı zamanda dijital gölgelerde sürekli olarak beliren sayısız siber güvenlik tehdidine karşı da güçlendirilmiş olmasını sağlayarak stratejik bir uyanıklık yoluna girmeliyiz.
Kendisi siber güvenlik ve kötü amaçlı yazılım araştırmacısıdır. Bilgisayar Bilimleri okudu ve 2006 yılında siber güvenlik analisti olarak çalışmaya başladı. Aktif olarak siber güvenlik araştırmacısı olarak çalışmaktadır. Ayrıca farklı güvenlik şirketlerinde çalıştı. Günlük işi arasında yeni siber güvenlik olaylarını araştırmak yer alıyor. Ayrıca kurumsal güvenlik uygulamaları konusunda derin düzeyde bilgi birikimine sahiptir.