Visual Studio αργό μόνο στο VPN; Έλεγχος CRL και OCSP
Όταν επιβάλλεται μια πολιτική WDAC, μια αργή εκκίνηση μπορεί να είναι έλεγχος ανάκλησης και όχι η σήραγγα. Αποδείξτε ποιο βήμα εμποδίζει πριν χαλαρώσετε την πολιτική.
Το Visual Studio ξεκινά κανονικά στο σπίτι, μετά το ίδιο φορητό υπολογιστή συνδέεται στη σήραγγα της εταιρείας και κάθε εκκίνηση κάθεται στην οθόνη υποδοχής για μισό λεπτό. Αφαιρέστε την πολιτική και η καθυστέρηση φεύγει μαζί της· αφαιρέστε τη σήραγγα και συμβαίνει το ίδιο. Και οι δύο παρατηρήσεις είναι σωστές, γι' αυτό τα δύο συστατικά κατηγορούν συνεχώς το ένα το άλλο. Το κρίσιμο ερώτημα είναι αν ένας έλεγχος ανάκλησης πιστοποιητικού περιμένει μια διαδρομή που προσφέρει μόνο η σήραγγα, ή αν δεν βρίσκει καμία καθόλου.
Μετρήστε την ανάκτηση, όχι την εκκίνηση
Μια πολιτική WDAC, αναπτυγμένη ως υπογεγραμμένο αρχείο SiPolicy.p7b, αποφασίζει ποιες εικόνες μπορούν να εκτελούνται στο μηχάνημα. Η ακεραιότητα κώδικα επικυρώνει την αλυσίδα υπογραφών μιας εικόνας πριν την εκτέλεση, και αυτή η επικύρωση μπορεί να περιλαμβάνει ερώτημα ανάκλησης. Η απάντηση εξαρτάται από το σημείο διανομής CRL ή τον διακομιστή απόκρισης OCSP που ονομάζει το πιστοποιητικό μέσα του.
Είναι συνηθισμένα αιτήματα δικτύου, άρα το κόστος τους εξαρτάται από το πού βρίσκεται ο αποκριτής. Όταν είναι προσβάσιμος μόνο μέσω της σήραγγας, ή το όνομά του επιλύεται μόνο μέσω διακομιστή DNS πίσω από τη σήραγγα, η επικύρωση περιμένει να είναι έτοιμη η σήραγγα. Το Visual Studio φορτώνει κατά την εκκίνηση μεγάλο αριθμό υπογεγραμμένων συγκροτημάτων και επεκτάσεων, και μια μικρή καθυστέρηση ανά εικόνα γίνεται ορατή στασιμότητα. Τίποτα δεν είναι παραμορφωμένο και η πολιτική συμπεριφέρεται ακριβώς όπως έχει ρυθμιστεί, γι' αυτό η αφαίρεση της πολιτικής φαίνεται να διορθώνει το πρόβλημα.
Κάθε υπογεγραμμένη εικόνα μπορεί να προκαλέσει κλήση δικτύου
Ξεκινήστε με ένα υπογεγραμμένο δυαδικό αρχείο που βρίσκεται ήδη στον δίσκο και ζητήστε από την πλατφόρμα να το επαληθεύσει με την ίδια συμπεριφορά ανάκτησης που χρησιμοποιεί μια εκκίνηση. Εκτελέστε την εντολή μία φορά στη σήραγγα και μία έξω από αυτήν, μετά συγκρίνετε τις γραμμές ανάκτησης αντί για την τελική ετυμηγορία.
certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80
Η έξοδος απαριθμεί την αλυσίδα, τις διευθύνσεις CRL και OCSP και αν κάθε ανάκτηση πέτυχε. Ένας αποκριτής που λήγει στη σήραγγα και απαντά έξω από αυτήν είναι η απόδειξη που χρειάζεστε, και ζυγίζει πολύ περισσότερο από μια εντύπωση βραδύτητας. Αν η ανάκτηση πετύχει αργά, σημειώστε τη διεύθυνση ώστε το επόμενο βήμα να δοκιμάσει αυτόν τον κεντρικό υπολογιστή απευθείας.
Επιλύστε το όνομα κεντρικού υπολογιστή του αποκριτή και δοκιμάστε την προσβασιμότητα έξω από την εφαρμογή, γιατί ένα όνομα που αποτυγχάνει να επιλυθεί δεν θα το διορθώσει ποτέ μια ρύθμιση πελάτη. Το επιχειρησιακό αρχείο καταγραφής CodeIntegrity παρέχει το άλλο μισό της απόδειξης, συνδέοντας ένα συμβάν επικύρωσης με τη χρονική σήμανση της αργής εκκίνησης.
Μειώστε την καθυστέρηση χωρίς να αφαιρέσετε τον έλεγχο
Η απενεργοποίηση της πολιτικής ή η μετάβασή της σε λειτουργία ελέγχου εξαφανίζει την καθυστέρηση και αφαιρεί τον έλεγχο που ανέπτυξε ο οργανισμός, οπότε θεωρήστε το λάθος επισκευή. Οι στενότερες επιλογές είναι μια αλλαγή δρομολόγησης ώστε ο αποκριτής να είναι προσβάσιμος μέσω της σήραγγας, μια εξαίρεση κατακερματισμένης σήραγγας για τους κεντρικούς υπολογιστές του αποκριτή, μια διόρθωση DNS όταν το όνομα επιλύεται σε μη προσβάσιμη διεύθυνση, ή ένας υποστηριζόμενος διακομιστής μεσολάβησης προσωρινής μνήμης για δεδομένα ανάκλησης. Καθένα έχει διαφορετικό ιδιοκτήτη: η ομάδα PKI κατέχει την προσβασιμότητα του αποκριτή, η ομάδα δικτύου κατέχει τον διαχωρισμό της σήραγγας και η ομάδα τελικών σημείων κατέχει την πολιτική.
Ο αποκλεισμός κάθε κεντρικού υπολογιστή ανάκλησης από τη σήραγγα δεν είναι αυτόματα ασφαλής, αφού ένας εσωτερικός αποκριτής μπορεί να είναι εσωτερικός σκόπιμα. Επιβεβαιώστε την εξαίρεση με την ομάδα που διαχειρίζεται το PKI πριν γράψετε έναν κανόνα που στέλνει ήσυχα τους ελέγχους πιστοποιητικών στο δημόσιο διαδίκτυο. Μια αλλαγή χωρίς αυτή την επιβεβαίωση είναι αυτή που ανατρέπεται στην επόμενη ανανέωση της πολιτικής.
Επαληθεύστε μια ψυχρή εκκίνηση μετά την αλλαγή
Μετρήστε μια ψυχρή εκκίνηση και στις δύο καταστάσεις και κρατήστε τους αριθμούς, γιατί μια θερμή εκκίνηση δεν αποδεικνύει σχεδόν τίποτα μόλις τα συγκροτήματα είναι στην προσωρινή μνήμη. Επαναλάβετε την εκκίνηση από νέα συνεδρία ώστε να ασκηθεί ξανά η διαδρομή φόρτωσης των επεκτάσεων.
Get-WinEvent -LogName Microsoft-Windows-CodeIntegrity/Operational -MaxEvents 40 |
Where-Object { $_.TimeCreated -gt (Get-Date).AddMinutes(-10) }
Get-ChildItem C:\Windows\System32\CodeIntegrity\CiPolicies\Active
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
Μια διορθωμένη ρύθμιση εξακολουθεί να επικοινωνεί με τον αποκριτή ή να χρησιμοποιεί μια διαδρομή προσωρινής μνήμης που ενέκρινε η ομάδα PKI σας, και το αρχείο καταγραφής δείχνει την επικύρωση να ολοκληρώνεται αντί να λήγει. Επιβεβαιώστε ότι μια πρόσφατα υπογεγραμμένη εφαρμογή εξακολουθεί να εκκινεί, γιατί μια πολιτική που επιτρέπει τα πάντα δεν είναι επιτυχής επισκευή. Ελέγξτε επίσης τον φάκελο της ενεργής πολιτικής και την κατάσταση επιβολής, ώστε να είναι γνωστό ότι η πολιτική που αποσφαλματώνετε είναι αυτή που εκτελείται. Κρατήστε την αλυσίδα πιστοποιητικών, τη διεύθυνση του αποκριτή και τις χρονικές σημάνσεις εκκίνησης στο ίδιο δελτίο, γιατί μια ανανέωση συνήθως μετακινεί τον αποκριτή και αφήνει τον κανόνα εξαίρεσης ή DNS παρωχημένο.