Process injection kötü amaçlı yazılım saldırısında önemli bir yapı taşıdır. Kulağa şaşırtıcı gelse de, Process injection
iyi bilinirken, bu tür tekniklerin tek bir deposu veya koleksiyonu mevcut değildir ve teknikleri kapsamlı bir şekilde analiz eden ve bunları karşılaştıran hiçbir belge yoktur.
Basit bir anlatımla Process injection, kötü amaçlı kodun yürütülmesini ve bunun başka bir geçerli işleme enjekte edilmesini içerir, böylece sürecin şüpheyi önlerken ve tespit edilmekten kaçarken kodu yürütmesine neden olur. Bu, kötü amaçlı kodun işlemin belleğini, kaynaklarını ve yükseltilmiş ayrıcalıklarını kullanarak çalışmasına izin verir. Ek olarak, kod geçerli bir işlem altında çalıştığı için, kodun ana bilgisayar tabanlı güvenlik duvarları, antivirüs, EDR'ler vb. Gibi güvenlik çözümlerinden potansiyel olarak şüphelerden kaçmasına izin verir.
Birçok işlem enjeksiyon tekniği, eski x86 CPU mimarisi (32 bit) göz önünde bulundurularak Windows 10 öncesinde geliştirildi, bu nedenle belirli bir tekniğin Windows 10 x64 (64 bit) için geçerli olup olmadığı her zaman net değildir. Windows 10, özellikle uzaktan istismarı engellemeye çalışan ancak aynı zamanda process injection üzerinde ciddi bir etkisi olan birkaç yeni koruma tekniği (örn. CFG, CIG) içerir. Günümüzde, Process injection tekniklerini gerçekleştirmek için saldırganlar ve kötü amaçlı yazılımlar tarafından kullanılan çeşitli yöntemler bulunmaktadır. Aşağıda bu tekniklerden bazıları açıklanmaktadır.
Classic DLL injection: Bu yöntemde, kötü amaçlı yazılım diskte bir DLL oluşturur ve yol dizesini hedef sürecin sanal adres alanına bağlayarak işlemin onu yürütmesini sağlar. DLL daha sonra hedef işlem olarak tüm nesnelere ve kaynaklara aynı erişimi devralır. Ek olarak, kötü amaçlı yazılım diskte bir DLL oluşturduğundan, güvenlik ürünleri tarafından algılanmaya açık hale getirir.
Process hollowing: Bu yöntemde, kötü amaçlı yazılım, hedef sürecin bellek alanının üzerine yazarak ve onu kötü amaçlı kodla değiştirerek hedef sürecin yeni bir örneğini oluşturur. Bu teknik, süreç boşaltma olarak bilinir ve kötü amaçlı yazılımı, geçerli bir süreç gibi hissettirdiği için klasik DLL enjeksiyonundan daha gizli hale getirir.
Portable executable (“PE”) injection: Bu yöntemde kötü amaçlı yazılım, zararlı kodunu hedef sürecin sanal adres alanına kopyalar ve bir kabuk kodu veya CreateRemoteThread işlevi aracılığıyla yürütülmesine neden olur. Kötü amaçlı yazılım, hedef süreçte bellek ayırır ve klasik DLL enjeksiyonunda olduğu gibi, yol dizesini bağlamak yerine kötü amaçlı kodunu ona yükler. Ek olarak, bu, hedef sürecin kendisi aracılığıyla iki (2) farklı kod (yasal süreç ve kötü amaçlı yazılım) çalıştırdığı ve Windows API'lerine dayandığı anlamına gelir.