Pemeriksaan postur perangkat VPN tidak memblokir? Telusuri laporan lebih dulu
Agen endpoint Anda melaporkan kondisi sehat, tetapi aplikasi internal tetap terbuka. Telusuri kolektor, putusan, dan blokirnya, lalu buktikan penolakan itu dengan satu permintaan.
Jika laptop yang tanda tangan antivirusnya berhenti diperbarui berminggu-minggu lalu masih bisa membuka aplikasi internal Anda, dokumen kebijakan jarang menjadi hal yang salah. Tiga sistem terpisah harus sepakat sebelum akses ditolak: sesuatu mengukur endpoint, sesuatu mengubah pengukuran itu menjadi putusan izinkan atau tolak, dan sesuatu benar-benar menjatuhkan lalu lintasnya. Ketika perangkat yang tidak patuh tetap masuk, tepat satu dari mata rantai itu tidak ada atau memercayai bukti yang seharusnya tidak. Pemeriksaan di bawah berjalan dalam urutan itu, dan masing-masing punya titik henti.
Blokir adalah langkah terakhir, bukan yang pertama
Autentikasi dan postur menjawab pertanyaan yang berbeda. Login yang berhasil membuktikan bahwa kredensial telah diajukan; itu tidak mengatakan apa pun tentang perangkat lunak yang berjalan di mesin yang mengajukannya. Celah itulah sebabnya profil klien yang disalin dapat membawa sesi yang tampak sehat ke host yang tidak sehat.
Pekerjaan kepatuhan endpoint sudah punya kosakata untuk rantai ini. Model rujukan NEA dalam RFC 5209 membagi tugas menjadi kolektor, langkah penilaian, dan titik penegakan, dan menyatakan terus terang bahwa klien yang berbohong tentang keadaannya sendiri berada di luar model. Catatan itu lebih penting daripada diagramnya: modul platform tepercaya tidak mengubah pengukuran yang dilaporkan sendiri menjadi fakta.
Jaga kolektor tetap jujur soal cakupannya. Ia harus melaporkan atribut yang disebut kebijakan Anda, pada perangkat yang meminta akses, dan sedikit hal lain. Agen inventaris yang mendaftar setiap paket terpasang adalah alat berbeda dari kolektor postur, dan perbedaannya sekaligus masalah retensi dan masalah akurasi. Jika laporan tidak dapat diikat ke satu identitas perangkat, penilai sedang menebak mesin mana yang baru saja diloloskannya.
Dasbor yang menampilkan status merah bukan kontrol. Tanyakan apa yang masih bisa dijangkau pengguna yang ditolak: wiki, berbagi berkas, port basis data? Remediasi memerlukan satu permukaan sempit, dan segala hal lain berada di belakang blokir.
Baca laporannya sebelum membaca aturannya
Mulailah dari sumbernya, bukan dari tanda centang hijau klien. Di Windows, pengukuran lokal berasal dari Defender atau dari produk mana pun yang mendaftarkan diri ke Security Center, dan keduanya bisa dibaca tanpa konsol vendor:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
Perintah kedua mengembalikan bilangan bulat bernama productState. Bit-nya didokumentasikan secara longgar dan vendor mengemas bendera pengaktifan serta kemutakhiran secara berbeda, jadi konfirmasikan alih-alih mengurainya. Paket pihak ketiga juga meninggalkan entri Security Center setelah penghapusan, dan entri itu melaporkan perangkat lunak yang tidak lagi ada di disk.
Usia adalah bidang yang orang lewati. Stempel waktu tanda tangan hanya berarti sesuatu terhadap jam mesin yang melakukan penilaian, jadi ubahlah menjadi interval alih-alih menaksirnya dengan mata:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
Sekarang kebijakan punya satu angka untuk dibaca. Jika aturan Anda menyebut 72 jam, itulah angka yang dipakainya, dan laptop yang tertidur seminggu gagal tanpa ada yang menafsirkan label. Catat ambang itu di samping perintahnya, karena keduanya bergeser saat alat endpoint diganti.
Ubah setiap keadaan perangkat menjadi putusan tertulis
Sebagian besar perselisihan soal postur sebenarnya perselisihan soal baris yang tidak diketahui. Putuskan sebelum insiden pertama, dalam tabel yang menyebut bukti, putusan, dan pemiliknya, supaya tidak ada yang berimprovisasi di konsol gateway.
| Evidence the assessor has | Verdict | What it protects against |
|---|---|---|
| Timestamp inside the policy window, protective service running | Admit to normal applications | Nothing yet; the other checks still apply |
| Timestamp older than the window | Deny, admit remediation page only | Signature rollback and dormant laptops |
| Service disabled or reporting off | Deny, escalate to the endpoint owner | An agent reporting stale success |
| No report at all for this session | Treat as deny, never as healthy | Agents that fail open under load |
Baris bawah adalah tempat produk berbeda. Sebagian gateway menolak koneksi dan menjelaskan alasannya; yang lain membiarkan terowongan naik dan menerapkan kebijakan terbatas; beberapa kembali ke laporan baik terakhir yang diketahui. Hanya dua yang pertama dapat dipertahankan, dan layak diuji mana yang dilakukan milik Anda.
Jaga identitas dan izin tetap di jalurnya masing-masing. Laptop yang lolos setiap uji postur tetap memerlukan otorisasi manusia yang tepat untuk aplikasi, dan sertifikat perangkat membuktikan kepemilikan kunci, bukan keadaan sistem berkas. Merangkum ketiganya menjadi satu boolean adalah cara akun meja bantuan mendapat akses tetap ke produksi.
Periksa jalur penegakan dengan satu permintaan, bukan dasbor
Penegakan adalah sifat dari sebuah permintaan, jadi ukurlah dengan satu. Pasang mesin yang tidak patuh di terowongan dan lakukan panggilan yang akan dilakukan pengguna sungguhan:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
Balasan 200 dari perangkat yang seharusnya diblokir berarti keputusan itu tidak pernah mencapai jalur data. Dua penyebab biasa: kebijakan terpasang pada grup yang tidak pernah dimasuki akun uji, atau aplikasi dapat dijangkau lewat rute yang tidak dimiliki VPN.
Periksa dulu asumsi peruteannya. Jika nama internal diselesaikan ke alamat yang sudah dijangkau klien lewat LAN lokal, terowongan itu tidak relevan dan tidak ada kebijakan yang berlaku. Bandingkan alamat itu dengan rute yang didorong gateway. Pada OpenVPN, kebijakan per klien hidup dalam berkas yang dikunci dengan nama umum, jadi mudah diperiksa:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
Berkas yang berisi disable memutus klien itu sepenuhnya, sedangkan baris push "route ..." mempersempit apa yang bisa dijangkau. Keduanya penegakan, dan keduanya terlihat oleh siapa pun yang mendebug laporan itu.
Uji empat kasus pada satu akun percobaan
Pemeriksaan terakhir adalah matriks kecil, bukan jalur bahagia. Jalankan satu akun uji melalui empat keadaan: terkini, tanda tangan kedaluwarsa, perlindungan dinonaktifkan, agen tidak terpasang. Untuk masing-masing, catat putusannya di log penilaian, status HTTP yang dikembalikan aplikasi, dan apakah halaman remediasi dimuat.
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
}
Dua detail mudah terlewat. Pertama pengulangan: laporan yang diambil saat mesin sehat tidak boleh diterima untuk sesi berikutnya pada perangkat yang sama, jadi carilah stempel waktu yang terikat pada koneksi saat ini. Lalu penghapusan: menghapus agen seharusnya menghasilkan penolakan yang sama dengan laporan basi, bukan lolos bersih, dan itulah kasus yang paling sering tidak pernah diuji.
Saat matriks cocok dengan tabelnya, serahkan tiga hal kepada siapa pun yang menjalankan gateway berikutnya: perintahnya, ambangnya, dan empat hasil yang diharapkan. Penyerahan itulah hasil yang sebenarnya, karena rancangan postur yang hanya hidup dalam dokumen kebijakan akan bergeser saat alat endpoint pertama kali mengubah bidang pelaporannya.