En première ligne LogoLe blogue de Devolutions Logo
La première ligne de défense
contre les cyberattaques et
le chaos des TI

Comment se servir de TRIM pour tous vos besoins en matière de sécurité et de conformité

Comment se servir de TRIM pour tous vos besoins en matière de sécurité et de conformité

RÉSUMÉ

Cet article contient des informations sur un programme simple, rapide et éprouvé d’amélioration de processus nommé TRIM. Ce dernier permet aux entreprises d’atteindre un niveau élevé de sécurité et de conformité. Nous avons déjà implémenté ce programme chez Devolutions et le recommandons chaudement.

Table des matières

TRIM, c'est quoi?

TRIM est une commande d’interface ATA. Lorsque vous utilisez votre lecteur ou que vous modifiez des données, le SSD doit s’assurer que la moindre information non valide est supprimée et que de nouvelles informations peuvent être enregistrées sur l’espace ainsi libéré. En d’autres termes, le programme TRIM indique au SSD quelles sont les données qui peuvent être supprimées.

Pourquoi ce programme est-il nécessaire? En raison de la façon dont les SSD lisent et écrivent de l’information, les données ne sont pas réellement supprimées sur commande (même si elles semblent disparaître des documents et des appareils). La section du SSD qui contient les données indésirables est plutôt signalée comme n’étant plus en usage. La commande TRIM sert à confirmer que les données sont bien supprimées. Une fois cette confirmation effectuée, la suppression finale est gérée par Active Garbage Collection lors de la prochaine période d’inactivité du système d’exploitation.

Le processus de vérification

Chez Devolutions, nous avons implémenté un processus de vérification logique et optimisé auquel participent notre équipe informatique et notre équipe de sécurité :

  • L’équipe informatique s’occupe des partitions, de l’effacement des disques et de la réinstallation de Windows. Les disques sont ensuite confiés à notre équipe de sécurité.
  • L’équipe de sécurité analyse le travail accompli jusque-là et s’assure que les données ne sont plus récupérables. Les disques sont alors rendus à l’équipe informatique pour être réinitialisés.

Ce processus réduit le nombre de tâches que doit effectuer chaque équipe. Il s’agit-là d’un bel exemple de comment la sécurité peut améliorer l’efficacité et la productivité d’un processus.

Le processus de validation

Pour nous assurer que le programme TRIM est bel et bien actif et que le processus fonctionne correctement, nous avons créé un script PowerShell déployable avec notre GPM. Ce script génère une tâche de validation périodique à partir de TRIM. Cette étape effectuée, nous analysons les journaux obtenus par notre SIEM.

Voici le résultat de cette commande :

Description
NTFS DisableDeleteNotify = 0Ce statut indique que TRIM est déjà activé sur les SSD avec NTFS.
NTFS DisableDeleteNotify = 1Si la valeur 1 est affichée, alors les TRIM est désactivé sur les SSD avec NTFS.
NTFS DisableDeleteNotify is not currently setCe statut indique que le support TRIM est automatiquement activé dès qu’un SSD avec NTFS est connecté.
ReFS DisableDeleteNotify = 0Le 0 indique que TRIM est activé sur les SSD avec ReFS.
ReFS DisableDeleteNotify = 1La valeur 1 signifie ici que TRIM est désactivé pour les SSD avec ReFS.
ReFS DisableDeleteNotify is not currently setCe statut indique que le support TRIM est automatiquement activé dès qu’un SSD avec ReFS est connecté.

Le script PowerShell

Voici le script PowerShell, créé par nos soins, que nous vous invitons à utiliser pour votre entreprise :

# Trim Validation

$scriptblock = { 
    param (
        )
    
        function Write-Log {
            [CmdletBinding()]
            param (
                [Parameter(Mandatory)]
                [String]
                $Message,
                [Parameter(Mandatory)]
                [int32]
                $EventID,
                [Parameter(Mandatory)]
                [String]
                $Type
            )
            Write-EventLog -LogName "Windows PowerShell" -Source "TrimPS1" -EventId $EventID -Message $Message -EntryType $Type
        }
        function Get-TrimConfigurationntfs{
           $trimntfs = fsutil behavior query disabledeletenotify ntfs
           $trimntfsvalue = $trimntfs.substring(27,1)
    
           if ($trimntfsvalue -ne "0"){
            $message = "Trim NTFS is inactive" 
            Write-Log -EventId 2 -Message $message -Type "Warning"
        }
    
        else{
            $message = "Trim NTFS is active"
            Write-Log -EventId 0 -Message $message -Type "Information"
        }
    
        }
        function Get-TrimConfigurationrefs{
            $trimrefs = fsutil behavior query disabledeletenotify refs
            $trimrefsvalue = $trimrefs.substring(27,1)
            if ($trimrefsvalue -ne "0"){
                $message = "Trim REFS is inactive"
                Write-Log -EventId 2 -Message $message -Type "Warning"
            }
    
            else{
                $message = "Trim REFS is active"
                Write-Log -EventId 0 -Message $message -Type "Information"
            }
         }
    
        Get-TrimConfigurationntfs
        Get-TrimConfigurationrefs

}
    
##### Section opérationnelle du script #####
function Write-Log {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory)]
        [String]
        $Message,
        [Parameter(Mandatory)]
        [int32]
        $EventID,
        [Parameter(Mandatory)]
        [String]
        $Type
    )
    Write-EventLog -LogName "Windows PowerShell" -Source "TrimPS1" -EventId $EventID -Message $Message -EntryType $Type
}

$jobname = "Trim-Verification";
$accountId = "SYSTEM";
$task = Get-ScheduledJob -Name $jobname  -ErrorAction SilentlyContinue
New-EventLog -LogName 'Windows PowerShell' -Source 'TrimPS1' -ErrorAction Ignore
if ($null -ne $task){
    Unregister-ScheduledJob $task  -Confirm:$false;
}

try {
    $trigger = New-JobTrigger -Weekly -DaysOfWeek Monday, Tuesday, Wednesday, Thursday, Friday -At "11:00" -WeeksInterval 1 # Vérification du Lundi au Vendredi à 11h
    $options = New-ScheduledJobOption -ContinueIfGoingOnBattery -StartIfOnBattery -RequireNetwork -RunElevated;

    Register-ScheduledJob -Name $jobname -ScriptBlock $scriptblock -ScheduledJobOption $options -Trigger $trigger;

    $principal = New-ScheduledTaskPrincipal -UserID $accountId -LogonType ServiceAccount -RunLevel Highest;
    $psJobsPathInScheduler = "\Microsoft\Windows\PowerShell\ScheduledJobs";
    $someResult = Set-ScheduledTask -TaskPath $psJobsPathInScheduler -TaskName $jobname  -Principal $principal;   

    $message = "Scheduled job ok"
    Write-Log -EventId 65000 -Message $message -type "Information"
}
catch {
    $message = "Unable to setup scheduled job. This is an error"

    Write-Log -EventId 65001 -Message $message -type "Warning"
    
    $task = Get-ScheduledJob -Name $jobname  -ErrorAction SilentlyContinue
    if ($null -ne $task){
        Unregister-ScheduledJob $task  -Confirm:$false;
    }
    exit 1
}

Si vous utilisez notre script PowerShell, alors portez une attention particulière aux EventID suivants :

  • EventID 0 si TRIM est actif
  • Information
  • TRIM (NTFS ou REFS) est actif
  • EventID 2 si le programme TRIM est inactif
  • Warning
  • TRIM (NTFS ou REFS) est inactif

Le mot de la fin

D’après notre expérience, le programme TRIM est une solution efficace et fiable pour ce qui est de réduire le nombre d’étapes nécessaires dans la gestion du matériel à des fins commerciales ou de redistribution. Nous ne sommes pas les seuls à approuver cette méthode. Par exemple :

  • L’entreprise Data Rescue Labs a déclaré dans un vidéo YouTube que les compagnies qui vendent des logiciels spéciaux de récupération de données à partir de SSD soumis à un processus TRIM « mentent effrontément », et que de telles prétentions sont « risibles ».
  • R-studio Data Recovery, dont le logiciel phare est reconnu pour ses excellentes capacités de restauration de données, a commenté que : « La récupération des données d’un appareil SSD est extrêmement difficile, voire impossible, après l’exécution de la commande TRIM ».

Bien que nous utilisons TRIM et que nous vous le recommandons fortement, il est toujours préférable d’effectuer ses propres recherches et de s’assurer que ce processus remplit tous les objectifs et exigences qu’on pourrait avoir.

Laurence Cadieux

Bonjour! Je m'appelle Laurence Cadieux et je suis spécialiste de la communication chez Devolutions. Mon rôle consiste à coordonner la stratégie de contenu et le développement de notre blogue, à gérer le contenu et la communication de notre plateforme pour les membres VIP de la Devolutions Force, et à travailler en étroite collaboration avec nos partenaires en relations publiques à travers le monde. Je suis titulaire d’un baccalauréat en marketing. Lorsque je ne travaille pas, je chante au sein d'un groupe, et j'aime regarder mes films préférés en boucle. J'aime aussi cuisiner, et pendant la pandémie, je suis devenue une experte du pain : je peux maintenant préparer la plus incroyable tarte à la lime de la planète (si je peux me permettre!). De plus, j'ai découvert tout récemment les LEGO et je ne peux plus faire marche arrière : je suis passionnée! Je suis toujours heureuse de vous aider, et vous pouvez me contacter directement à lcadieux@devolutions.net.

Devolutions offre aux professionnels des TI à travers le monde une solution complète de gestion de connexions à distance et de mots de passe.

DEVOLUTIONS.NET | 1000 Notre-Dame, Lavaltrie, QC J5T 1M1, Canada | infos@devolutions.net
Tous droits réservés © 2022 Devolutions