Antivirüs imzaları haftalar önce güncellenmeyi bırakmış bir dizüstü bilgisayar hâlâ iç uygulamanızı açabiliyorsa, sorun genellikle politika belgesinde değildir. Erişim reddedilmeden önce üç ayrı sistemin anlaşması gerekir: bir şey uç noktayı ölçer, bir şey bu ölçümü izin ver ya da reddet kararına çevirir ve bir şey trafiği gerçekten düşürür. Uyumsuz bir cihaz yine de içeri girerse, bu halkalardan tam olarak biri eksiktir ya da olmaması gereken kanıtlara güveniyordur. Aşağıdaki kontroller bu sırayla ilerler ve her birinin bir durma noktası vardır.

Engel ilk değil, son adımdır

Kimlik doğrulama ve cihaz durumu farklı soruları yanıtlar. Başarılı bir oturum açma bir kimlik bilgisinin sunulduğunu kanıtlar; onu sunan makinede hangi yazılımın çalıştığı hakkında hiçbir şey söylemez. Kopyalanmış bir istemci profilin sağlıklı görünen bir oturumu sağlıksız bir konağa taşıyabilmesinin nedeni tam da bu boşluktur.

Uç nokta uyumluluğu işinin bu zincir için zaten bir sözlüğü var. RFC 5209'daki NEA referans modeli işi bir toplayıcıya, bir değerlendirme adımına ve bir uygulama noktasına böler ve kendi durumu hakkında yalan söyleyen istemcinin modelin dışında kaldığını açıkça söyler. Bu çekince şemadan daha önemlidir: güvenilir bir platform modülü, kendi bildirdiği ölçümü olguya çevirmez.

Toplayıcıyı kapsam konusunda dürüst tutun. Politikanızın adlandırdığı nitelikleri, erişim isteyen cihazda bildirmelidir ve çok az başka şey. Kurulu her paketi listeleyen bir envanter aracısı, durum toplayıcısından farklı bir araçtır ve fark aynı zamanda hem saklama hem doğruluk sorunudur. Rapor tek bir cihaz kimliğine bağlanamıyorsa, değerlendirici hangi makineyi az önce geçirdiğini tahmin ediyordur.

Kırmızı durum gösteren bir gösterge paneli kontrol değildir. Reddedilen kullanıcının hâlâ neye erişebildiğini sorun: wiki, dosya paylaşımı, veritabanı bağlantı noktası? Düzeltme tek bir dar yüzey gerektirir ve geri kalan her şey engelin arkasındadır.

Kuralı okumadan önce raporu okuyun

İstemcinin yeşil onay işaretinden değil, kaynaktan başlayın. Windows'ta yerel ölçüm Defender'dan ya da kendini Security Center'a kaydeden üründen gelir ve ikisi de satıcı konsolu olmadan okunabilir:

Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState

İkinci komut productState adlı bir tam sayı döndürür. Bitleri gevşek belgelenmiştir ve satıcılar etkinleştirme ile güncellik bayraklarını farklı paketler, bu yüzden onu çözümlemek yerine doğrulayın. Üçüncü taraf paketleri kaldırma sonrasında Security Center kaydını da bırakır ve bu kayıt artık diskte olmayan yazılım hakkında rapor verir.

İnsanların atladığı alan yaştır. İmza zaman damgası yalnızca değerlendirmeyi yapan makinenin saatine göre anlam taşır, bu yüzden gözle tahmin etmek yerine aralığa çevirin:

$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours

Artık politikanın okuyacağı tek bir sayı var. Kuralınız 72 saat diyorsa kullandığı sayı budur ve bir hafta uyuyan dizüstü bilgisayar kimse etiketi yorumlamadan başarısız olur. Eşiği komutun yanına yazın, çünkü uç nokta aracı değiştirildiğinde ikisi birbirinden kayar.

Her cihaz durumunu yazılı bir karara dönüştürün

Durumla ilgili tartışmaların çoğu aslında bilinmeyen satırla ilgilidir. İlk olaydan önce karar verin; kanıtı, kararı ve sahibi adlandıran bir tabloda, kimse ağ geçidi konsolunda doğaçlama yapmasın.

Evidence the assessor hasVerdictWhat it protects against
Timestamp inside the policy window, protective service runningAdmit to normal applicationsNothing yet; the other checks still apply
Timestamp older than the windowDeny, admit remediation page onlySignature rollback and dormant laptops
Service disabled or reporting offDeny, escalate to the endpoint ownerAn agent reporting stale success
No report at all for this sessionTreat as deny, never as healthyAgents that fail open under load

Ürünlerin ayrıldığı yer alt satırdır. Bazı ağ geçitleri bağlantıyı reddeder ve nedenini açıklar; diğerleri tünelin yükselmesine izin verip kısıtlı bir politika uygular; birkaçı son bilinen iyi rapora geri döner. Yalnızca ilk ikisi savunulabilir ve sizinki hangisini yapıyor diye denemeye değer.

Kimliği ve izni de kendi şeritlerinde tutun. Her durum testini geçen bir dizüstü bilgisayar, uygulama için yine de doğru insan yetkilendirmesine ihtiyaç duyar ve cihaz sertifikası bir anahtarın bulunduğunu kanıtlar, dosya sisteminin durumunu değil. Üçünü tek bir boolean'a sıkıştırmak, yardım masası hesabının üretime kalıcı erişim kazanma yoludur.

Uygulama yolunu panel ile değil, istekle doğrulayın

Uygulama bir isteğin özelliğidir, bu yüzden tek bir istekle ölçün. Uyumsuz bir makineyi tünele koyun ve gerçek bir kullanıcının yapacağı çağrıyı yapın:

curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health

Engellenmesi gereken cihazdan gelen 200, kararın veri yoluna hiç ulaşmadığı anlamına gelir. İki yaygın neden: politika test hesabının hiç katılmadığı bir gruba bağlıdır ya da uygulamaya VPN'in sahip olmadığı bir rotadan erişilebiliyordur.

Önce yönlendirme varsayımını doğrulayın. İç ad, istemcinin yerel LAN üzerinden zaten ulaştığı bir adrese çözülüyorsa tünel ilgisizdir ve hiçbir politika uygulanmaz. O adresi ağ geçidinin ittiği rotayla karşılaştırın. OpenVPN üzerinde istemci başına politika, ortak adla anahtarlanmış dosyalarda yaşar, bu yüzden incelemek kolaydır:

ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17

disable içeren bir dosya o istemciyi tamamen ayırır, push "route ..." satırı ise erişebileceği alanı daraltır. İkisi de uygulamadır ve ikisi de raporu hata ayıklayan herkese görünür.

Dört durumu tek bir test hesabında deneyin

Son kontrol küçük bir matristir, mutlu bir yol değil. Tek bir test hesabını dört durumdan geçirin: güncel, süresi geçmiş imza, koruma devre dışı, aracı yüklü değil. Her biri için kararı değerlendirme günlüğüne, uygulamanın döndürdüğü HTTP durumunu ve düzeltme sayfasının yüklenip yüklenmediğini not edin.

foreach ($case in 'current', 'stale', 'disabled', 'absent') {
  Get-MpComputerStatus | Select-Object AMServiceEnabled, AntivirusSignatureLastUpdated
  curl.exe -sS -o NUL -w "%{http_code}
" --max-time 5 https://app.internal.example/health
}

İki ayrıntı gözden kaçabilir. Önce tekrar oynatma: makine sağlıklıyken alınan bir rapor, aynı cihazdaki sonraki oturum için kabul edilmemelidir, bu yüzden geçerli bağlantıya bağlı bir zaman damgası arayın. Sonra kaldırma: aracının kaldırılması eski bir raporla aynı reddi üretmelidir, temiz bir geçiş değil, ve en sık hiç test edilmeyen durum budur.

Matris tabloyla eşleştiğinde, ağ geçidini sıradaki yönetecek kişiye üç şeyi devredin: komutlar, eşik ve beklenen dört sonuç. Asıl çıktı tam olarak bu devirdir, çünkü yalnızca politika belgesinde yaşayan bir durum tasarımı, uç nokta aracı raporlama alanını değiştirdiği ilk anda kayar.

İlgili makaleler