Semakan postur peranti VPN tidak menyekat? Jejaki laporan dahulu
Ejen titik akhir anda melaporkan keadaan sihat, namun aplikasi dalaman masih terbuka. Lalui pengumpul, keputusan dan sekatan, kemudian buktikan penolakan itu dengan satu permintaan.
Jika komputer riba yang tandatangan antivirusnya berhenti dikemas kini berminggu-minggu lalu masih boleh membuka aplikasi dalaman anda, dokumen dasar jarang menjadi perkara yang salah. Tiga sistem berasingan mesti bersetuju sebelum akses ditolak: sesuatu mengukur titik akhir, sesuatu menukar ukuran itu kepada keputusan benarkan atau tolak, dan sesuatu benar-benar menggugurkan trafik. Apabila peranti tidak patuh masih masuk, tepat satu daripada pautan itu tiada atau mempercayai bukti yang sepatutnya tidak. Semakan di bawah berjalan dalam urutan itu, dan setiap satu mempunyai titik henti.
Sekatan ialah langkah terakhir, bukan yang pertama
Pengesahan dan postur menjawab soalan yang berbeza. Log masuk yang berjaya membuktikan kelayakan telah dikemukakan; ia tidak berkata apa-apa tentang perisian yang berjalan pada mesin yang mengemukakannya. Jurang inilah sebabnya profil klien yang disalin boleh membawa sesi yang kelihatan sihat ke hos yang tidak sihat.
Kerja pematuhan titik akhir sudah mempunyai perbendaharaan kata untuk rantaian ini. Model rujukan NEA dalam RFC 5209 membahagikan tugas kepada pengumpul, langkah penilaian dan titik penguatkuasaan, dan menyatakan dengan jelas bahawa klien yang berbohong tentang keadaannya sendiri berada di luar model. Kaveat itu lebih penting daripada rajah: modul platform yang dipercayai tidak menjadikan ukuran yang dilaporkan sendiri sebagai fakta.
Kekalkan pengumpul jujur tentang skop. Ia harus melaporkan atribut yang dinamakan dasar anda, pada peranti yang meminta akses, dan sedikit sahaja yang lain. Ejen inventori yang menyenaraikan setiap pakej yang dipasang ialah alat berbeza daripada pengumpul postur, dan perbezaannya ialah masalah penyimpanan dan ketepatan sekali gus. Jika laporan tidak boleh diikat kepada satu identiti peranti, penilai sedang meneka mesin mana yang baru diluluskannya.
Papan pemuka yang menunjukkan status merah bukan kawalan. Tanyakan apa yang masih boleh dicapai oleh pengguna yang ditolak: wiki, perkongsian fail, port pangkalan data? Pemulihan memerlukan satu permukaan sempit, dan segala-galanya berada di belakang sekatan.
Baca laporan sebelum membaca peraturan
Mulakan daripada sumber dan bukan daripada tanda hijau klien. Pada Windows, ukuran tempatan datang daripada Defender atau produk yang mendaftarkan dirinya dengan Security Center, dan kedua-duanya boleh dibaca tanpa konsol vendor:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
Arahan kedua mengembalikan integer bernama productState. Bitnya didokumenkan secara longgar dan vendor mengemas bendera pengaktifan serta kemutakhiran secara berbeza, jadi sahkan dan jangan huraikannya. Pakej pihak ketiga juga meninggalkan entri Security Center selepas dinyahpasang, dan entri itu melaporkan perisian yang tidak lagi ada pada cakera.
Usia ialah medan yang dilangkaui orang. Cap masa tandatangan hanya bermakna berbanding jam mesin yang membuat penilaian, jadi tukarkannya kepada selang dan jangan mengagaknya dengan mata:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
Kini dasar mempunyai satu nombor untuk dibaca. Jika peraturan anda menyebut 72 jam, itulah nombor yang digunakannya, dan komputer riba yang tidur seminggu gagal tanpa sesiapa mentafsir label. Catatkan ambang di sebelah arahan, kerana keduanya berpisah apabila alat titik akhir diganti.
Tukar setiap keadaan peranti kepada keputusan bertulis
Kebanyakan pertikaian tentang postur sebenarnya pertikaian tentang baris yang tidak diketahui. Putuskannya sebelum insiden pertama, dalam jadual yang menamakan bukti, keputusan dan pemiliknya, supaya tiada siapa berimprovisasi di konsol gerbang.
| 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 ialah tempat produk berbeza. Sesetengah gerbang menolak sambungan dan menjelaskan sebabnya; yang lain membiarkan terowong naik dan menggunakan dasar terhad; sebilangan kecil kembali kepada laporan baik terakhir yang diketahui. Hanya dua yang pertama boleh dipertahankan, dan wajar diuji yang mana milik anda lakukan.
Kekalkan identiti dan kebenaran dalam lorong masing-masing. Komputer riba yang lulus setiap ujian postur masih memerlukan kebenaran manusia yang betul untuk aplikasi itu, dan sijil peranti membuktikan pemilikan kunci, bukan keadaan sistem fail. Merangkum ketiga-tiganya menjadi satu boolean ialah cara akaun meja bantuan mendapat akses kekal ke pengeluaran.
Semak laluan penguatkuasaan dengan permintaan, bukan papan pemuka
Penguatkuasaan ialah sifat sesuatu permintaan, jadi ukurlah dengan satu. Letakkan mesin tidak patuh pada terowong dan buat panggilan yang akan dibuat oleh pengguna sebenar:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
Balasan 200 daripada peranti yang sepatutnya disekat bermakna keputusan itu tidak pernah sampai ke laluan data. Dua punca biasa: dasar dipasang pada kumpulan yang tidak pernah disertai oleh akaun ujian, atau aplikasi boleh dicapai melalui laluan yang tidak dimiliki VPN.
Semak andaian penghalaan dahulu. Jika nama dalaman diselesaikan kepada alamat yang sudah dicapai oleh klien melalui LAN tempatan, terowong itu tidak relevan dan tiada dasar akan digunakan. Bandingkan alamat itu dengan laluan yang ditolak oleh gerbang. Pada OpenVPN, dasar bagi setiap klien hidup dalam fail yang dikunci dengan nama umum, jadi mudah diperiksa:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
Fail yang mengandungi disable memutuskan klien itu sepenuhnya, manakala baris push "route ..." menyempitkan apa yang boleh dicapainya. Kedua-duanya penguatkuasaan, dan kedua-duanya kelihatan kepada sesiapa yang menyahpepijat laporan itu.
Uji empat kes pada satu akaun percubaan
Semakan terakhir ialah matriks kecil, bukan laluan bahagia. Jalankan satu akaun ujian melalui empat keadaan: terkini, tandatangan tamat tempoh, perlindungan dinyahdayakan, ejen tidak dipasang. Bagi setiap satu, catatkan keputusan dalam log penilaian, status HTTP yang dikembalikan aplikasi, dan sama ada halaman pemulihan dimuatkan.
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 butiran mudah terlepas pandang. Pertama, ulangan: laporan yang dirakam ketika mesin sihat tidak boleh diterima untuk sesi kemudian pada peranti yang sama, jadi cari cap masa yang terikat pada sambungan semasa. Kemudian penyingkiran: menyahpasang ejen sepatutnya menghasilkan penolakan yang sama seperti laporan lapuk, bukan lulus bersih, dan itulah kes yang paling kerap tidak pernah diuji.
Apabila matriks sepadan dengan jadual, serahkan tiga perkara kepada sesiapa yang mengendalikan gerbang seterusnya: arahan, ambang dan empat hasil yang dijangka. Penyerahan itulah hasil sebenar, kerana reka bentuk postur yang hanya hidup dalam dokumen dasar akan tersasar kali pertama alat titik akhir menukar medan laporannya.