2011-06-03 16 views
13

Anti-virüsler bir uygulamayı "sanal alan" olarak adlandırılan sanal bir ortamda çalıştırdığında, bu sanal alan tam olarak Windows çekirdeği açısından nasıl çalışır?Sandbox nedir

Böyle bir sandbox yazmak zor mu?

cevap

13

Yüksek düzeyde, bu tür sanal alanlar API'lara çağrıları engelleyen ve bu API'ların çengel kullanılarak döndürdüğü sonuçları değiştiren çekirdek sürücülerdir. Bir sandboxing çözümünün kaputun altında nasıl çalıştığı, birkaç kitabı kolayca doldurabilir.

Zorlukla ilgili olarak, muhtemelen muhtemelen yazabileceğiniz daha zor şeylerden biridir. İşletim sistemi çekirdeğinin sağladığı her şey için yalnızca kancalar sağlamanız gerekmez, aynı zamanda uygulamanın diğer işlemlerin bellek alanına erişmesini engellemeniz gerekir, bir programın yaptığı değişikliklerin durumunu kaydetmenin bir yolu olmalıdır. Programın bir sanal alan altında çalıştığını fark etmiyor. Tüm bunları C'yi kullanmanın etkili bir şekilde sınırlandıran Çekirdek modunda yapmalısınız ve farklı bellek türleriyle başa çıkmaya zorlarsınız, örn. disk belleği havuzu ve disk belleği olmayan havuz. Oh, ve tüm bu çok hızlı bir şekilde yapmalısınız, böylece kullanıcı kum havuzunuzdaki uygulamaları çalıştırmak için değerlidir. Çoğu kullanıcı tarafından% 50 + performans isabetleri tolere edilmeyecektir.

+0

Performans noktasında - yalnızca kullanıcı uygulamaları değil, bazı AV programlarının kullandığı bir strateji, incelenen kodu ortamın sanal bir kopyasında yürütmek ve şüpheli etkinliği aramaktır. Elbette, özellikle bir çok dosyayı bir kerede tararken performans gereklilikleri de vardır, ancak test edilen kodun UI yanıtı uygun değildir. –

+0

@Steve: Bu, A/V araçlarını uygulamanın bir yolu, ancak bu bir sanal alan değil. Bu bir Host tabanlı Saldırı Önleme Sistemi (HIPS). Bunlar gerçek kum havuzlarından önemli ölçüde daha az zor. –

+1

Çocuklar, bunlar gibi konular hakkında kitap var mı? – Cartesius00