Hayır
Başlangıçta tarif edildiği gibi saldırı asla bir tehdit değildi. Bir derleyici bunu teorik olarak yapabilirken, gerçekte saldırıyı kaldırmak derleyicinin programlanmasını gerektirir.
- Derlenmekte olan kaynak kodun bir derleyicide olduğu zamanları ve
- Korsanlığı içine eklemek için isteğe bağlı kaynak kodunu nasıl değiştireceğinizi öğrenin.
Bu, derleyicinin kaynak kodundan nasıl çalıştığını, bozulmadan değiştirebilmesi için nasıl çalıştığını anlamayı gerektirir.
Örneğin, linkleme formatının veri uzunluklarını veya derlenmiş makine kodunun ofsetini yürütülebilir bir yerde sakladığını hayal edin. Derleyicinin, bunlardan hangisinin ve hangisinin istismar yükünü yerleştirirken güncellenmesi gerektiğine karar vermesi gerekecektir. Derleyicinin sonraki sürümleri (zararsız sürüm) bu biçimi keyfi olarak değiştirebilir; bu nedenle, yararlanma kodunun bu kavramları etkili bir şekilde anlaması gerekir.
Bu yüksek seviyeli, kendi kendini yönlendiren bir programlama, zorlu bir AI problemi (en son kontrol ettiğimde, sanatın türü, pratikte türleri tarafından belirlenen bir kod üretiyordu). Bakın: birkaç insan bunu bile yapabilir; önce programlama dilini öğrenmeli ve ilk önce kod temelini anlamalısınız.
AI problemi çözülse bile, insanlar minik derleyicilerini derlemenin ona bağlı devasa bir AI kütüphanesiyle bir ikili olarak sonuçlanıp sonuçlanmadığını fark edeceklerdir.
Benzer saldırı: bootstrapping güven
Ancak, saldırının genelleştirilmesiyle ilgilidir. Temel sorun, güven zincirinizin bir yerden başlaması gerektiğidir ve birçok alanda kökeni, tüm zinciri tespit edilmesi zor bir şekilde altüst edebilir.
Gerçek hayatta kolayca çıkarılabilecek bir örnek
Ubuntu Linux işletim sisteminiz, indirilen güncelleme paketlerini havuzun imzalama anahtarına (genel anahtar şifrelemesi kullanarak) karşı kontrol ederek güncellemelerin güvenliğini sağlar. Ancak bu, yalnızca imzalama anahtarının yasal bir kaynağa ait olduğunu kanıtlamanız durumunda güncellemelerin orijinalliğini garanti eder .
İmza anahtarını nereden aldın? İşletim sistemi dağıtımını ilk indirdiğinizde.
Güven zincirinizin kaynağının, bu imzalama anahtarının kötü olmadığına güvenmelisiniz.
Sizinle Ubuntu indirme sunucusu arasındaki İnternet bağlantısını MITM yapabilen herhangi biri - bu ISS'niz olabilir, İnternet erişimini kontrol eden bir hükümet (örneğin Çin) veya Ubuntu'nun hosting sağlayıcısı bu işlemi kaçırmış olabilir:
- Ubuntu CD görüntüsünü indirdiğinizi tespit edin. Bu basittir: talebin (genel olarak listelenen) Ubuntu aynalarından herhangi birine gideceğini ve ISO görüntüsünün dosya adını istediğini görün.
- İsteği kendi sunucularından göndererek size saldırganın ortak anahtarını ve Ubuntu yerine depo konumunu içeren bir CD görüntüsü verin.
Bundan böyle, güncellemelerinizi saldırganın sunucusundan güvenli bir şekilde alacaksınız. Güncellemeler kök olarak çalışır, böylece saldırganın tam kontrolü vardır.
Orijinalin orijinal olduğundan emin olarak saldırıyı önleyebilirsiniz. Ancak bu, indirilen CD görüntüsünü bir karma kullanarak doğrulamanızı gerektirir ( birkaç kişi bunu gerçekten yapar ) - ve hash'in kendisi, örneğin HTTPS üzerinden güvenli bir şekilde indirilmesi gerekir. Eğer saldırganınız bilgisayarınıza bir sertifika ekleyebilir (şirket ortamında yaygın olarak bulunur) veya bir sertifika yetkilisini (örneğin Çin) denetlerse, HTTPS bile koruma sağlamaz.