Il panorama in continua evoluzione dell’IT richiede di essere vigili in materia di sicurezza, in particolare per quanto riguarda la protezione dei dati. Poiché la trasformazione digitale spinge le imprese a fare sempre più affidamento sui dati, la salvaguardia delle informazioni sensibili diventa fondamentale. Un aspetto cruciale della protezione dei dati è la comprensione dello stato della crittografia del disco. Questo ci porta all’argomento di questo articolo: uno script PowerShell in grado di identificare le unità sbloccate e completamente decriptate.
Background
La crittografia dei dischi è da tempo una pietra angolare della sicurezza delle informazioni, soprattutto nelle aziende in cui vengono archiviati grandi quantità di dati sensibili. I professionisti IT e i Managed Service Provider (MSP) si impegnano a garantire che le unità disco rimangano crittografate per evitare accessi non autorizzati. Il monitoraggio dello stato di crittografia diventa un compito critico, da cui deriva la necessità di script efficienti che forniscano chiarezza su quali unità potrebbero essere vulnerabili. Il nostro script per identificare le unità sbloccate e completamente decriptate risponde a questa precisa esigenza.
Lo script per identificare le unità sbloccate e completamente decriptate
#Requires -Version 2.0 <# .SYNOPSIS Returns the number of drives in the Unlocked and FullyDecrypted state. .DESCRIPTION Returns the number of drives in the Unlocked and FullyDecrypted state. .EXAMPLE No parameters needed. .EXAMPLE PS C:> Get-UnencryptedDiskCount.ps1 No Parameters needed .OUTPUTS int .NOTES Minimum OS Architecture Supported: Windows 7, Windows Server 2012 Uses manage-bde.exe or Get-BitLockerVolume depending on the version of PowerShell Release Notes: Initial Release By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use. Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA). .COMPONENT Misc #> [CmdletBinding()] param () begin { function Test-IsElevated { $id = [System.Security.Principal.WindowsIdentity]::GetCurrent() $p = New-Object System.Security.Principal.WindowsPrincipal($id) if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Output $true } else { Write-Output $false } } function Get-DriveLetter { param() Get-Disk | Where-Object { $_.bustype -ne 'USB' } | Get-Partition | Where-Object { $_.DriveLetter } | Select-Object -ExpandProperty DriveLetter } function Invoke-ManageBDE { [CmdletBinding()] param () # Check if manage-bde.exe is available if ((Get-Command -Name "manage-bde.exe" -ErrorAction SilentlyContinue)) { # Get physical drives Get-DriveLetter | ForEach-Object { $DriveLetter = $_ $ReturnObj = [PSCustomObject]@{ MountPoint = "$_`:" } # Get data from manage-bde.exe and convert the text to objects for easier processing (manage-bde.exe -status "$_`:") -split "`n" | Where-Object { $_ -like "*:*" } | ForEach-Object { $First = ($_ -split ":")[0].Trim() -replace ' ' $Last = ($_ -split ":")[1].Trim() -replace ' ' if ($First -notlike "Name" -and $First -notlike "BitLocker Drive Encryption" -and $First -notlike "Volume $DriveLetter") { if ($First -like "ConversionStatus") { # Renames ConversionStatus to VolumeStatus to match Get-BitLockerVolume's output $ReturnObj | Add-Member -MemberType NoteProperty -Name "VolumeStatus" -Value $Last } else { $ReturnObj | Add-Member -MemberType NoteProperty -Name $First -Value $Last } } } $ReturnObj } | Select-Object MountPoint, LockStatus, VolumeStatus } else { Write-Host "Windows Feature BitLocker is not install." Write-Output 0 } } } process { if (-not (Test-IsElevated)) { Write-Error -Message "Access Denied. Please run with Administrator privileges." exit 1 } $Result = if ($PSVersionTable.PSVersion.Major -le 4) { Invoke-ManageBDE } else { try { Get-DriveLetter | Get-BitLockerVolume | Select-Object MountPoint, LockStatus, VolumeStatus } catch { Write-Output "Falling back on manage-bde.exe" Invoke-ManageBDE } } $UnencryptedDisks = if ($Result) { (($Result | Where-Object { "Unlocked" -like $_.LockStatus -and "FullyDecrypted" -like $_.VolumeStatus }).LockStatus).Count } else { (Get-DriveLetter).Count } # Return a count of Unlocked drives Write-Host "Unencrypted Disk Count: $UnencryptedDisks" # Return an exit code of 2 if more than 1 disk is unencrypted if ($UnencryptedDisks -gt 0) { exit 2 } exit 0 } end {}
Accedi a oltre 700 script nel Dojo di NinjaOne
Analisi dettagliata
Lo script per identificare le unità sbloccate e completamente decriptate è strutturato in modo preciso per fornire un conteggio dei dischi non criptati. Ecco come raggiunge il suo obiettivo:
- Controllo dell’elevazione dei permessi: Inizialmente, lo script per identificare le unità sbloccate e completamente decriptate si assicura di essere eseguito con i privilegi di amministratore. In questo modo si garantisce che possa accedere alle informazioni necessarie sul disco senza limitazioni.
- Recupero delle lettere di unità: Lo script per identificare le unità sbloccate e completamente decriptate recupera le lettere di unità di tutte le unità non collegate via USB.
- Stato della crittografia: A seconda della versione di PowerShell e della disponibilità di utility specifiche, lo script per identificare le unità sbloccate e completamente decriptate controlla lo stato della crittografia tramite manage-bde.exe o Get-BitLockerVolume.
- Raccolta e visualizzazione dei risultati: Lo script per identificare le unità sbloccate e completamente decriptate conta il numero di unità “sbloccate” e “completamente decriptate” e visualizza il risultato.
- Codici di uscita: Lo script per identificare le unità sbloccate e completamente decriptate visualizza dei codici di uscita per indicare il risultato. Un codice di uscita ‘2’ indica più di un disco non criptato, mentre ‘0’ indica che non ne sono presenti.
Casi d’uso potenziali
Immagina un professionista IT, Alex, che lavora per un’azienda sanitaria con centinaia di computer. Ogni dispositivo contiene dati sensibili dei pazienti, per cui la crittografia è fondamentale. Periodicamente, Alex deve assicurarsi che le unità di ogni macchina siano crittografate. Utilizzando questo script per identificare le unità sbloccate e completamente decriptate, può raccogliere in modo efficiente i dati e risolvere rapidamente le potenziali vulnerabilità.
Confronti
Sebbene esistano altri metodi, come le soluzioni software di terze parti che offrono il monitoraggio della crittografia del disco, il nostro script per identificare le unità sbloccate e completamente decriptate si distingue per la sua semplicità e l’integrazione diretta con le utilità native di Windows. Mentre molte soluzioni richiedono una configurazione prolungata o costi di licenza, questo script PowerShell per identificare le unità sbloccate e completamente decriptate è leggero, economico e può essere eseguito immediatamente.
Domande frequenti
- Ho bisogno di diritti amministrativi per eseguire questo script per identificare le unità sbloccate e completamente decriptate?
Sì, è necessario eseguirlo con i privilegi di amministratore per ottenere risultati accurati.
- Lo script per identificare le unità sbloccate e completamente decriptate funziona su tutte le versioni di Windows?
Supporta Windows 7 e versioni successive, compreso Windows Server 2012.
Implicazioni
Sebbene lo script per identificare le unità sbloccate e completamente decriptate sia uno strumento formidabile, la comprensione dei suoi risultati è fondamentale. I dischi non criptati in un ambiente aziendale possono causare violazioni dei dati. Pertanto, lo script per identificare le unità sbloccate e completamente decriptate non si limita a informare, ma è un sistema di allarme precoce.
Raccomandazioni
- Esegui lo script per identificare le unità sbloccate e completamente decriptate periodicamente, soprattutto dopo aver introdotto nuove unità o sistemi nella rete.
- Integra i risultati con altri strumenti di monitoraggio per ottenere una dashboard di sicurezza completa.
- Prendi in considerazione la possibilità di utilizzare un’automazione che avvisi immediatamente il personale IT se viene rilevata un’unità non crittografata.
Considerazioni finali
Nell’ambito della crittografia del disco, uno strumento che fornisce informazioni dettagliate come il nostro script PowerShell per identificare le unità sbloccate e completamente decriptate è prezioso. Per piattaforme come NinjaOne, che si concentra sulla gestione integrata dell’IT, l’integrazione di tali script può offrire agli utenti una visione più completa della loro sicurezza IT. In un’epoca in cui le violazioni dei dati sono sempre più frequenti, gli strumenti in grado di offrire informazioni in tempo reale sulle vulnerabilità, come le unità non crittografate, non sono solo utili ma essenziali.