Come identificare le unità sbloccate e completamente decriptate utilizzando PowerShell

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

Ottieni l’accesso

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.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento per la fornitura di servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Per saperne di più su NinjaOne Endpoint Management, fai un tour dal vivo, o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.