Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows 8.1, kötü amaçlı yazılımların sık sık saldırı hedefi olan kötü amaçlı yazılımdan koruma hizmetlerini korumak için yeni bir korumalı hizmetler kavramını kullanıma sunmdu.
Kötü amaçlı yazılımdan koruma () kullanıcı modu hizmetlerini koruma ve bu özelliği kötü amaçlı yazılımdan koruma hizmetinize eklemeyi nasıl seçebileceğinizi öğrenin.
Bu bilgiler aşağıdaki işletim sistemleri ve bunların ardılları için geçerlidir:
- Windows 8.1
- Windows Server 2012 R2
Burada ele alınan başvurular ve kaynaklar bu konunun sonunda listelenmiştir.
Giriş
Kötü amaçlı yazılımdan koruma çözümlerinin çoğu, kötü amaçlı yazılımları algılamak ve sistemden kaldırmak için özel işlemler gerçekleştiren bir kullanıcı modu hizmeti içerir. Bu kullanıcı modu hizmeti sık sık en son virüs tanımlarını ve imzalarını indirmekten de sorumludur. Bu kullanıcı modu hizmeti, sistemde korumayı devre dışı bırakmanın tek hata noktası olduğundan kötü amaçlı yazılımların sık sık hedef haline gelir. Kullanıcı modu hizmetine yönelik saldırılara karşı savunmak için kötü amaçlı yazılımdan koruma satıcılarının yazılımlarına birçok işlevsellik ve buluşsal özellik eklemesi gerekir. Ancak, bu tür teknikler tamamen kusursuz değildir ve Windows'un kendi hizmetinde gerçekleştirdiği işlevleri tanımlamaları ve bu işlevselliği seçmeli olarak etkinleştirmeleri gerektiğinden hataya eğilimlidir.
Windows 8.1'de, kötü amaçlı yazılımdan koruma kullanıcı modu hizmetlerinin korumalı hizmet olarak başlatılmasına izin veren yeni bir korumalı hizmet kavramı kullanıma sunulmuştur. Hizmet korumalı olarak başlatıldıktan sonra, Windows yalnızca güvenilen kodun korumalı hizmete yüklenmesine izin vermek için kod bütünlüğünü kullanır. Windows ayrıca bu işlemleri kod eklemeye ve diğer saldırılara karşı yönetici işlemlerinden korur.
Bu belgede, Erken Başlatılan Kötü Amaçlı Yazılımdan Koruma (ELAM) sürücüsüne sahip bir kötü amaçlı yazılımdan koruma satıcısının bu özelliği nasıl kabul edip kötü amaçlı yazılımdan koruma hizmetini korumalı bir hizmet olarak başlatabileceği açıklanmaktadır.
Sistem korumalı işlem
Windows 8.1'den başlayarak, sistem açısından kritik bileşenlere yönelik kötü amaçlı saldırılara karşı daha iyi savunmak için çekirdekte yeni bir güvenlik modeli yerleştirildi. Bu yeni güvenlik modeli, DRM içeriğini yürütme gibi belirli senaryolar için kullanılan korumalı işlem altyapısının önceki sürümlerini üçüncü taraf kötü amaçlı yazılımdan koruma satıcıları tarafından kullanılabilecek genel amaçlı bir modele genişletir. Korumalı işlem altyapısı yalnızca güvenilir, imzalı kodun yüklenmesine izin verir ve kod ekleme saldırılarına karşı yerleşik savunmaya sahiptir.
Not
CodeIntegrity tarafından korumalı bir işlem içinde, doğrudan veya dolaylı olarak yüklense bile, AuthentiCode aracılığıyla betik imzalarını kontrol etmek için WinVerifyTrust veya WinVerifyTrustEx gibi yöntemlerle aşağıdaki betik DLL'leri yasaktır: scrobj.dll, scrrun.dll, jscript.dll, jscript9.dllve vbscript.dll.
Korumalı işlemler hakkında daha fazla bilgi için bkz. Windows Vista'da Korumalı İşlemler .
Yeni güvenlik modeli, koruma işlemi altyapısının sistem korumalı işlem olarak adlandırılan biraz farklı bir değişkenini kullanır ve bu da DRM içeriğini ayrı tuttuğundan bu özellik için daha uygundur. Her sistem korumalı işlemin, işlem içinde yüklenmesine izin verilen imzalı kodun imza ilkesini gösteren ilişkili bir düzeyi veya özniteliği vardır. Kötü amaçlı yazılımdan koruma hizmetleri korumalı hizmet moduna geçtikten sonra, bu işlemde yalnızca Windows imzalı kodun veya kötü amaçlı yazılımdan koruma satıcısının sertifikalarıyla imzalanan kodun yüklenmesine izin verilir. Benzer şekilde, diğer korumalı işlem düzeylerinin Windows'un uyguladığı farklı kod ilkeleri bulunmaktadır.
Gereksinimler
Kötü amaçlı yazılımdan koruma kullanıcı modu hizmetinin korumalı hizmet olarak çalışması için, kötü amaçlı yazılımdan koruma satıcısının Windows makinesinde yüklü bir ELAM sürücüsü olmalıdır. Mevcut ELAM sürücü sertifikası gereksinimlerine ek olarak, sürücüde kullanıcı modu hizmet ikili dosyalarını imzalamak için kullanılan sertifikaların bilgilerini içeren ekli bir kaynak bölümü olmalıdır.
Önemli
Windows 8.1'de, sertifika zincirinin ya sürücü doğrulaması tarafından belirlenen kök sertifikaya dayanması ya da kök sertifikanın dahil edilmesi gerekir.
Önyükleme işlemi sırasında bu kaynak bölümü, sertifika bilgilerini doğrulamak ve kötü amaçlı yazılımdan koruma hizmetini kaydetmek için ELAM sürücüsünden ayıklanır. Kötü amaçlı yazılımdan koruma hizmeti, bu belgenin ilerleyen bölümlerinde açıklandığı gibi özel bir API çağrılarak kötü amaçlı yazılımdan koruma yazılımı yükleme işlemi sırasında da kaydedilebilir.
Kaynak bölümü ELAM sürücüsünden başarıyla ayıklandıktan ve kullanıcı modu hizmeti kaydedildikten sonra hizmetin korumalı hizmet olarak başlatılmasına izin verilir. Hizmet korumalı olarak başlatıldıktan sonra sistemdeki diğer korumalı olmayan işlemler iş parçacığı eklemez ve korumalı işlemin sanal belleğine yazmalarına izin verilmez.
Ayrıca, korumalı işleme yüklenen Windows dışı DLL'ler uygun bir sertifikayla imzalanmalıdır.
ELAM sürücüleri hakkında daha fazla bilgi için bkz. Erken başlatma kötü amaçlı yazılımdan koruma.
Kötü amaçlı yazılımdan koruma hizmeti imzalama gereksinimleri
Korumalı olarak başlatılması gereken kullanıcı modu hizmetinin geçerli sertifikalarla imzalanması gerekir. HIZMET EXE'sinin sayfa karması imzalı olması ve hizmete yüklenen Windows dışı DLL'lerin de aynı sertifikalarla imzalanması gerekir. Bu sertifikaların karması, ELAM sürücüsüne bağlanacak kaynak dosyasına eklenmelidir.
Not
SHA256 dosya/sayfa karmaları kullanılmalıdır, ancak sertifikalar SHA1 olmaya devam edebilir.
Birincil imza (önerilen)
Kötü amaçlı yazılımdan koruma satıcılarının kötü amaçlı yazılımdan koruma hizmeti ikili dosyalarını imzalamak için mevcut Authenticode sertifikalarını kullanmalarını ve hizmet ikili dosyalarını imzalamak için kullanılan sertifikayı belirtmek için bu Authenticode sertifikasının karması kaynak bölümüne eklenmesini öneririz. Bu sertifikayı güncelleştirirseniz, güncelleştirilmiş sertifika karmalarıyla ELAM sürücüsünün daha yeni bir sürümü yayınlanmalıdır.
İkincil imza (isteğe bağlı)
Kötü amaçlı yazılımdan koruma satıcıları, özel bir CA ayarlama ve kötü amaçlı yazılımdan koruma hizmeti ikili dosyalarını ikincil imza olarak kod olarak imzalamak için bu CA'dan sertifikalar kullanma seçeneğine sahiptir. Özel CA'yı kullanmanın temel avantajı, satıcıların aynı satıcıdan gelen birden çok ürünü ayırt etmek için kullanılabilen özel bir EKU özelliğine sahip sertifikalar oluşturmasına olanak tanır. Ayrıca, özel CA sertifikaları genellikle daha uzun süre sonu tarihlerine sahip olduğundan sertifika süre sonu nedeniyle ELAM sürücünüzü güncelleştirme gereksinimini azaltır.
Hizmet ikili dosyaları özel CA sertifikalarıyla imzalanırsa, ikili dosyaların da mevcut Authenticode sertifikalarıyla çift imzalı olması gerektiğini unutmayın. İkili dosyalar iyi bilinen bir güvenilen CA (örneğin VeriSign) tarafından imzalanmamışsa, makine kullanıcısının özel CA'ya güvenemediği için ikili dosyalara güveni olmaz. İkili dosyaları mevcut Authenticode sertifikasıyla çift imzalama, ikili dosyaların alt düzey işletim sistemlerinde çalışmasını da sağlar.
Sertifika Yetkilisi'ni ayarlama ve yükleme hakkında daha fazla bilgi için bkz; Sertifika Yetkilisi'ni Ayarlama ve Sertifika Yetkilisi'ni Yükleme.
Not
Windows Vista veya Windows XP (veya SHA2 düzeltme eki olmayan Windows 7) ile uyumluluk için, ikili dosyalarınızı SHA256 dosya/sayfa karmalarıyla SignTool.exe imzalarken "/as" anahtarını kullanabilirsiniz. Bu işlem, imzayı dosyaya ikincil imza olarak ekler. Windows XP, Windows Vista ve Windows 7 yalnızca ilk imzayı göreceğinden, SHA1 dosyayı ilk olarak imzalar.
DLL imzalama gereksinimleri
Daha önce belirtildiği gibi, korumalı hizmete yüklenen Windows dışı DLL'ler, kötü amaçlı yazılımdan koruma hizmetini imzalamak için kullanılan sertifikayla imzalanmalıdır.
Katalog imzalama
Kötü amaçlı yazılımdan koruma satıcıları, ikili imzaları güncelleştirmeden diğer şirketler tarafından geliştirilen paketleri içerebilir. Bu, ikili dosyaları Authenticode sertifikasıyla imzalanan bir kataloğa ekleyerek elde edilebilir ve aşağıdaki adımlar izlenerek gerçekleştirilebilir:
- MakeCat kullanarak katalog oluşturma
- Uygun bir imzası olmayan tüm ikili dosyaları kataloğa ekleyin
- Diğer ikili dosyalarda olduğu gibi, kataloğu Authenticode sertifikasıyla imzalayın
- Kataloğu uygulamaya eklemek için katalog ekleme işlevini kullanın.
Kod bütünlüğü uygun bir imza olmadan paketlerde karşımıza çıktığında, onaylı imzaya sahip bir katalog arar. Bu adımlar izlendiği ve uygulamayla birlikte yüklendiği sürece bu kataloğu bulur.
Kaynak dosya bilgileri
Bir kaynak dosyası oluşturulup ELAM sürücüsüne bağlanmalıdır. Sertifikanın karması ve diğer sertifika bilgileri kaynak dosyasına eklenmelidir.
Sistemin ikili görüntüden kaynakları başarıyla ayıklaması ve eklenmiş sertifika bilgilerini doğrulaması için kaynak bölümü aşağıdaki düzende olmalıdır.
MicrosoftElamCertificateInfo MSElamCertInfoID
{
3, // count of entries
L”CertHash1\0”,
Algorithm,
L”EKU1\0”,
L”CertHash2\0”,
Algorithm,
L”\0”, //No EKU for cert hash 2
L”CertHash3\0”,
Algorithm,
L”EKU3a;EKU3b;EKU3c\0”, //multiple EKU entries supported (max: 3)
}
Kullanıcı tanımlı kaynak dosyası hakkında daha fazla bilgi için bkz. kaynak User-Defined.
CertHash
Kötü amaçlı yazılımdan koruma hizmetini imzalamak için kullanılan sertifikanın karması. Windows SDK'sında bulunan CertUtil.exe aracı, karma değerini elde etmek için kullanılabilir.
certutil.exe –v <path to the signed file>
Örneğin:
Algoritma
Algoritma değeri, sertifikanın algoritmasını temsil eder. Bu algoritma değerleri desteklenir:
- 0x8004 – SHA1 0x800c – SHA256 0X800d – SHA384 0x800e – SHA512
Algoritmanın gerçek adını değil, algoritmanın değerini (yukarıda gösterildiği gibi) eklemeyi unutmayın. Örneğin sertifika SHA256 algoritmasını temel alıyorsa kaynak bölümüne 0x800c ekleyin.
EKU
EKU nesnesi, bir sertifikanın tek bir genişletilmiş anahtar kullanımı (EKU) özelliğini temsil eder. Bu isteğe bağlıdır ve sertifikayla ilişkilendirilmiş EKU'lar yoksa "\0" belirtilmelidir. Aynı sistemde çalışan tek bir kötü amaçlı yazılımdan koruma satıcısının birden çok ürün ve hizmetinin olması durumunda, kötü amaçlı yazılımdan koruma satıcısı bir hizmeti diğerinden ayırt etmek için özel CA sertifikasının EKU özelliğini kullanabilir. Örneğin, sistemde aynı kötü amaçlı yazılımdan koruma satıcısı tarafından çalıştırılan ve aynı CA tarafından imzalanan iki hizmet varsa, korumalı olarak başlatılması gereken hizmet, CA tarafından verilen ve özel bir EKU içeren bir sertifikayla imzalanabilir. Bu EKU kaynak bölümüne eklenmelidir. EKU daha sonra sistem tarafından kaydedilir ve hizmetin korumalı olarak doğrulanması ve başlatılması için sertifika karması ile eşleştirilir.
Sertifika zincirinin Kod İmzalama EKU'sunu (1.3.6.1.5.5.7.3.3) içermesi gerektiğini, ancak bu EKU'nun ELAM sürücüsünün kaynak bölümüne dahil edilmemesi gerektiğini unutmayın.
Not
EKU bilgileri ELAM sürücüsünün sertifika bilgilerine dahil edilirse, ikili dosyalarınızı imzalarken aynı EKU kullanılmalıdır.
Not
Windows kod bütünlüğünün EKU'daki bir OID'nin dize gösterimi, sıfır sonlandırma karakteri de dahil olmak üzere en fazla 64 karakter uzunluğundadır.
Not
Birden çok EKU belirtirseniz, bunlar AND mantıkla değerlendirilir. Son varlık sertifikası, verilen giriş için ELAM kaynağı bölümünde belirtilen tüm EKU'ları karşılamalıdır.
Saymak
Kötü amaçlı yazılımdan koruma hizmeti ikili dosyası Authenticode sertifikasıyla ve özel CA sertifikasıyla imzalıysa, kaynak bölümüne yalnızca özel CA sertifika bilgileri eklenmelidir.
Kötü amaçlı yazılımdan koruma hizmetlerini korumalı olarak başlatma
Hizmeti kaydetme
Kötü amaçlı yazılımdan koruma hizmetinin korumalı olarak başlatılabilmesi için sisteme kayıtlı olması gerekir. Kötü amaçlı yazılımdan koruma yazılımının yüklenmesi sırasında yükleyici ELAM sürücüsünü yükleyebilir ve hizmeti otomatik olarak kaydetmek için sistemi yeniden başlatabilir. Sistem, ELAM sürücüsüne bağlı yukarıda belirtilen kaynak dosyasından sertifika bilgilerini ayıklayarak hizmeti önyükleme zamanında kaydeder.
Yükleme aşamasında, ELAM sürücüsünün yüklenmesi ve sistemin durumunun doğrulanması için sistemin yeniden başlatılması kesinlikle önerilir. Ancak, yeniden başlatmanın önlenmesi gereken durumlarda Windows, kötü amaçlı yazılımdan koruma yükleyicisinin hizmeti API kullanarak korumalı olarak kaydetmesi için bir mekanizma da kullanıma sunar.
Sistemi yeniden başlatmadan hizmeti kaydetme
Yükleme sırasında, kötü amaçlı yazılımdan koruma yazılım yükleyicisi InstallELAMCertificateInfo API'sini çağırabilir ve ELAM sürücü dosyasına bir tanıtıcı sağlayabilir. Sistem ELAM sürücüsünü açar, ELAM sürücüsünün düzgün imzalandığından emin olmak için iç yordamları çağırır ve ELAM sürücüsüyle ilişkili kaynak bölümünden sertifika bilgilerini ayıklar. İşlev söz dizimi için bkz. installELAMCertificateInfo.
Kod örneği:
HANDLE FileHandle = NULL;
FileHandle = CreateFile(<Insert Elam driver file name>,
FILE_READ_DATA,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (InstallElamCertificateInfo(FileHandle) == FALSE)
{
Result = GetLastError();
goto exitFunc;
}
Hizmeti korumalı olarak başlatma
Yükleyici, hizmeti korumalı olarak oluşturmak, yapılandırmak ve başlatmak için şu adımları izleyebilir:
Bir hizmet nesnesi oluşturmak ve bunu hizmet denetim yöneticisi (SCM) veritabanına eklemek için CreateService API'sini çağırın.
1. adımda oluşturulan hizmet nesnesinin güvenlik tanımlayıcısını ayarlamak için SetServiceObjectSecurity API'sini çağırın.
Hizmeti korumalı olarak işaretlemek için ChangeServiceConfig2 API'sini çağırın ve Winsvc.h'ye (Windows 8.1'den itibaren) eklenen yeni SERVICE_CONFIG_LAUNCH_PROTECTED numaralandırma değerini belirtin.
Kod örneği:
SERVICE_LAUNCH_PROTECTED_INFO Info; SC_HANDLE hService; Info.dwLaunchProtected = SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT; hService = CreateService (/* ... */); if (ChangeServiceConfig2(hService, SERVICE_CONFIG_LAUNCH_PROTECTED, &Info) == FALSE) { Result = GetLastError(); }Hizmeti başlatmak için StartService API'sini çağırın. SCM, hizmeti korumalı olarak başlatırken sertifika bilgilerini doğrulamak için Kod Bütünlüğü (CI) alt sistemiyle denetimler gerçekleştirir. Sertifika bilgileri CI tarafından doğrulandıktan sonra, SCM hizmeti korumalı olarak başlatır.
- InstallELAMCertificateInfo API'sini çağırarak hizmeti kaydettirmezseniz bu adımın başarısız olduğunu unutmayın.
- Hizmet, sistem başlatma aşamasında otomatik olarak başlatacak şekilde yapılandırılmışsa, bu adımı önleyebilir ve sistemi yeniden başlatabilirsiniz. Yeniden başlatma sırasında sistem hizmeti otomatik olarak kaydeder (ELAM sürücüsü başarıyla başlatılırsa) ve hizmeti korumalı modda başlatır.
- Hizmet başlatılamazsa, Kod bütünlüğü olay günlüğü ve sistem denetimive aşağıdaki konular başlığındaki bilgilere bakın. Burada, Kod bütünlüğü sisteminin hizmetin başlatılmasını neden engellediğini açıklayan daha ayrıntılı hata iletileri bulacaksınız. Bu günlükler, hizmetin yüklemeye çalıştığı ancak yükleyemediği DLL'leri belirlemenize de yardımcı olabilir.
Bir alt işlemi korumalı olarak başlatma
Yeni güvenlik modeli, kötü amaçlı yazılımdan korunan hizmetlerin alt işlemleri korumalı olarak başlatmasına da olanak tanır. Bu alt işlemler, ana hizmetle aynı koruma düzeyinde çalışır ve ikili dosyalarının ELAM kaynak bölümü aracılığıyla kaydedilmiş olan sertifikayla imzalanması gerekir.
Kötü amaçlı yazılımdan korunan hizmetin alt işlemi korumalı olarak başlatabilmesi için, PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL, yeni bir genişletilmiş öznitelik anahtarı kullanıma sunulmuş olup, UpdateProcThreadAttribute API'si ile kullanılmalıdır. PROTECTION_LEVEL_SAME öznitelik değerine ilişkin işaretçi, UpdateProcThreadAttribute API'sine geçirilmelidir.
Notlar:
- Bu yeni özniteliği kullanmak için, hizmetin CreateProcess çağrısının işlem oluşturma bayrakları parametresinde de CREATE_PROTECTED_PROCESS belirtmesi gerekir.
- Bilinen bir CA'ya zincirleme yapmak üzere çapraz sertifikayı dahil etmek için hizmet ikililerinizin /ac anahtarı kullanılarak imzalı olması gerekir. Kendi kendine imzalanmış sertifika, bilinen bir kök CA ile uygun şekilde zincirlenmezse çalışmaz.
Kod örneği:
DWORD ProtectionLevel = PROTECTION_LEVEL_SAME;
SIZE_T AttributeListSize;
STARTUPINFOEXW StartupInfoEx = { 0 };
StartupInfoEx.StartupInfo.cb = sizeof(StartupInfoEx);
if (InitializeProcThreadAttributeList(NULL,
1,
0,
&AttributeListSize) == FALSE)
{
Result = GetLastError();
goto exitFunc;
}
StartupInfoEx.lpAttributeList = (LPPROC_THREAD_ATTRIBUTE_LIST) HeapAlloc(
GetProcessHeap(),
0,
AttributeListSize
);
if (InitializeProcThreadAttributeList(StartupInfoEx.lpAttributeList,
1,
0,
&AttributeListSize) == FALSE)
{
Result = GetLastError();
goto exitFunc;
}
if (UpdateProcThreadAttribute(StartupInfoEx.lpAttributeList,
0,
PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL,
&ProtectionLevel,
sizeof(ProtectionLevel),
NULL,
NULL) == FALSE)
{
Result = GetLastError();
goto exitFunc;
}
PROCESS_INFORMATION ProcessInformation = { 0 };
if (CreateProcessW(ApplicationName,
CommandLine,
ProcessAttributes,
ThreadAttributes,
InheritHandles,
EXTENDED_STARTUPINFO_PRESENT | CREATE_PROTECTED_PROCESS,
Environment,
CurrentDirectory,
(LPSTARTUPINFOW)&StartupInfoEx,
&ProcessInformation) == FALSE)
{
Result = GetLastError();
goto exitFunc;
}
Güncelleştirmeler ve bakım
Kötü amaçlı yazılımdan koruma hizmeti korumalı olarak başlatıldıktan sonra, diğer korumalı olmayan işlemler (ve hatta yöneticiler) hizmeti durduramaz. Hizmet ikili dosyalarının güncelleştirilmesi durumunda, kötü amaçlı yazılımdan koruma hizmetinin hizmet verebilmesi için kendisini durdurmak için yükleyiciden bir geri çağırma alması gerekir. Servis durdurulduktan sonra, antivirüs yükleyicisi güncellemeleri gerçekleştirebilir ve Servisi Kaydetme ve Sertifikayı Kaydetme ve Servisi Korumalı Olarak Başlatma bölümlerinde açıklanan adımları izleyerek sertifikayı kaydedebilir ve servisi korumalı olarak başlatabilir.
Hizmeti yalnızca güvenilir arayanların durdurabildiğinden emin olunması gerektiğini unutmayın. Güvenilmeyen arayanların bunu yapmalarına izin vermek, hizmeti koruma amacını alt eder.
Hizmetin kaydını kaldırma
Korumalı bir hizmeti kaldırdığınızda, hizmetin ChangeServiceConfig2 API'sini çağırarak kendisini korumasız olarak işaretlemesi gerekir. Sistem, korumasız bir sürecin korumalı bir hizmetin yapılandırmasını değiştirmesine izin vermediğinden, ChangeServiceConfig2 çağrısının korumalı hizmetin kendisi tarafından yapılması gerektiğini unutmayın. Hizmet korumasız olarak çalışacak şekilde yeniden yapılandırıldıktan sonra, kaldırıcı kötü amaçlı yazılımdan koruma yazılımını sistemden kaldırmak için uygun adımları atabilir.
Kötü amaçlı yazılımdan koruma hizmetinde hata ayıklama
Korumalı işlem güvenlik modelinin bir parçası olarak, diğer korumalı olmayan işlemler iş parçacıklarını ekleyemez veya korumalı işlemin sanal belleğine yazamaz. Ancak, kötü amaçlı yazılımdan koruma korumalı işlemlerde hata ayıklamak için bir çekirdek hata ayıklayıcısına (KD) izin verilir. KD, kötü amaçlı yazılımdan koruma hizmetinin korumalı olarak çalışıp çalışmadığını denetlemek için de kullanılabilir:
dt –r1 nt!_EPROCESS <Process Address>
+0x67a Protection : _PS_PROTECTION
+0x000 Level : 0x31 '1'
+0x000 Type : 0y0001
+0x000 Signer : 0y0011
Türü üyesinin değeri 0y0001 ise, hizmet korumalı olarak çalışır.
Ayrıca kötü amaçlı yazılım korumalı hizmette yalnızca aşağıdaki SC komutlarına izin verilir:
sc config start=Autosc qcsc startsc interrogatesc sdshow
Hata ayıklayıcısı ekliyse, imzalanmamış (veya uygunsuz imzalanmış) ikili dosyalar kötü amaçlı yazılımdan koruma hizmetine yüklendiğinde hata ayıklayıcıyı kesmek için kayıt defterinde aşağıdaki bayrağı kullanın.
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI
Value: DebugFlags REG_DWORD
İmza doğrulaması başarısız olduğunda hata ayıklayıcıda duracak değeri 00000400 şeklinde ayarlayın.
Not
Korumalı İşlem sınırlamaları:
- Kullanıcı arabirimine veya GUI'ye sahip işlemler, çekirdeğin bellekteki bir işlemi kilitleme ve yazma işlemlerine izin vermemesi nedeniyle korunamaz.
- Windows 10, sürüm 1703 (Creators update) öncesinde korumalı işlemler, Yerel Güvenlik Yetkilisi (LSA) ile korumalı bir işlem arasında sertifika paylaşımı sınırlamaları nedeniyle TLS veya SSL iletişim protokollerini kullanamaz.
Kaynaklar
Daha fazla bilgi için bkz:
- Erken başlatma kötü amaçlı yazılımdan koruma
- Windows Vista'da korumalı işlemler
- Sertifika otoritesi oluşturma
- Sertifika yetkilisini yükle
- Kullanıcı tanımlı kaynak
- Katalog dosyaları ve dijital imzalar
- Kod bütünlüğü olay günlüğü ve sistem denetimi
Bu Windows API işlevlerine bu makalede başvurabilirsiniz:
- ChangeServiceConfig2
- İşlem Oluştur
- HizmetOluştur
- InitializeProcThreadAttributeList
- ELAMSertifikasıBilgisiYükle
- SetServiceObjectSecurity
- HizmetiBaşlat
- UpdateProcThreadAttribute