PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Windows To Go : Test de la Spyrus WorkSafe Pro

jeudi 18 décembre 2014 à 10:45

I. Présentation

Aujourd’hui, on se retrouve pour tester une clé Spyrus WorkSafe Pro, un produit de chez Spyrus, certifié pour Windows To Go. Nous avions auparavant présenté Windows To Go et appris à créer une clé WTG grâce à l’assistant Windows.

Fabriquée aux États-Unis, la clé « Spyrus WorkSafe Pro » est tout simplement le produit haut de gamme de chez Spyrus, en ce qui concerne Windows To Go. Il faut savoir que ce périphérique d’apparence clé USB embarque une puce SSD, ce qui lui permet d’être reconnu comme un disque fixe et d’obtenir d’excellente performance !

Elle est disponible en différentes tailles : 32 Go, 64 Go, 128 Go et 256 Go.

wtg12

A. Les fonctionnalités

Elle intègre les fonctionnalités suivantes :

– BitLocker sur le volume entier ou une partition de données
– Compatible avec SPYRUS Enterprise Management System

Un mot sur la fonctionnalité SEMS (SPYRUS Enterprise Management System), qui permet de bénéficier d’une console de gestion unique pour administrer ses différentes clés Windows To Go Spyrus. On y retrouve des fonctionnalités comme :

– Contrôler le chiffrement sur les périphériques WTG enregistrés
– Gestion des périphériques, des stratégies et audit
– Les périphériques peuvent être supprimé, désactivé ou activé à distance
– Etc.

On continue avec les fonctionnalités :

– Option “Read-Only“.
– Partition de données
– PKI Rosetta Smart Card pour améliorer la sécurité (authentification, audit, etc.)
– Chiffrement AES 256 bits XTS au niveau matériel

B. Les certifications

La clé Spyrus dispose des certifications suivantes :

– Microsoft Windows To Go certified drives
– FIPS 140-2 Level 3 certified PKI security controller device certificate #1302
– EAL 5+ validated hardware security core
– FCC 47 Part 15, Class B
– CE
– EN55022, EN55024, EN61000

C. Résistance du produit

D’après la documentation du constructeur, la clé Spyrus est capable de résister à 30 minutes d’immersion sous l’eau à 1 mètre de profondeur maximum. Côté température, elle supporte de -40°C à +100°C.

Ces caractéristiques sont intéressantes et à prendre en compte, étant donné que ce type de périphérique est amené à se déplacer dans divers environnements. Bon, ne l’emmenez pas avec vous dans la piscine non plus…

A noter qu’il est impossible de démonter la clé à moins de détruire le produit.

D. Comparaison des produits Spyrus WTG

Voici un comparatif des différents produits Spyrus certifiés pour Windows To Go :

Comparatif produits Spyrus WTG

II. Créer une clé WTG Spyrus WorkSafe Pro

Intéressons-nous à la création d’un espace de travail Windows To Go à partir de la clé Spyrus WorkSafe Pro. Il faut savoir qu’il n’est pas possible de créer une clé WTG avec cette clé Spyrus à partir de l’assistant Windows To Go intégré à Windows, que nous avons utilisé précédemment. En fait, la société Spyrus fournit son propre utilitaire de création.

Pour cela, on connecte la clé Spyrus à l’ordinateur, et on exécute l’utilitaire « SpyrusWTGCreator » qu’elle contient. La première étape consiste à sélectionner le lecteur Spyrus que l’on souhaite utiliser :

SpyrusWTGCreator

Ensuite, on indique « Create a new configuration file » car c’est la première clé que l’on crée. Il faut savoir que l’on peut réutiliser un fichier de configuration pour créer une ou plusieurs autres clés, ultérieurement. Cela évite de devoir refaire toute la configuration (que nous allons faire).

spyrus2

D’ailleurs, on renseigne le champ « Configuration file » afin d’indiquer un répertoire dans lequel on souhaite sauvegarder le fichier de configuration. Ce fichier se nommera « config.xml ».

On pense à cocher « Encrypt sensitive data in configuration file » pour chiffrer les données sensibles contenues dans ce fichier.

Ensuite et comme avec l’assistant Windows, il faut monter l’ISO de Windows 8.1 Entreprise au sein de la machine, puis on indique le chemin vers le fichier « install.wim » (situé dans le répertoire « sources »).

Si l’on coche « Enforme in firmware write-disable of unencrypted compartment », cela permet de protéger tout le contenu même les fichiers du boot loader.

spyrus3

Cette étape permet de configurer les options de démarrage de la clé. Vous comprendrez très vite qu’il faut définir un mot de passe de protection, ce dernier sera automatiquement demandé à chaque démarrage de la clé Spyrus.

On doit choisir si l’on accepte les BIOS et les EFI, ou uniquement les EFI avec Secure Boot. Par ailleurs, on doit impérativement indiquer un mot de passe, on peut gérer la complexité qu’il doit avoir grâce à la zone « Complexity ». Par défaut, il requiert 8 caractères minimum et il requiert d’être complexe.

Pour plus de flexibilité et comme je n’utilise pas de console SEMS, je coche « Allow boot password change when booting drive » pour autoriser la modification du mot de passe au démarrage de la clé. Si l’on change le mot de passe de la clé, il devra correspondre à la complexité définie.

spyrus4

On continue avec la section « Drive Configuration ». On peut activer BitLocker (comme avec l’assistant Windows) afin de bénéficier d’une seconde couche de chiffrement.

BitLocker

Il suffit d’indiquer un mot de passe « OS BitLocker Password » et votre clé BitLocker de restauration sera stockée dans le fichier de log.

Domain

Grâce à la section « Domain » on pourra ajouter automatiquement Windows au domaine spécifié, cependant le compte ordinateur correspondant doit être provisionné au préalable dans l’Active Directory. Dans le cas où l’on rejoint un domaine, il peut être intéressant de cocher la case « Allow creation of local Windows user accounts at first boot » pour autoriser la création d’utilisateurs locaux.

Read Only

Activer le mode Read Only

SEMS

Activer la gestion via console SEMS.

Note : Si le mode SEMS est activé, vous devrez créer une partition NTFS nommée « DataVault » et ne pas activer le chiffrement BitLocker sur cette partition.

spyrus5

Par l’intermédiaire des sections « Data Vault 1 » et « Data Vault 2 », c’est possible de créer deux partitions de données sur la clé Spyrus. Pour chaque partition, BitLocker peut être activé mais ce n’est pas une obligation.
Si l’on ne crée pas de partition supplémentaire, tout l’espace disponible sera alloué à la partition système.

spyrus6

Passons à l’initialisation de la configuration de la Smart Card Rosetta. Pour cela, il faut définir deux codes PINs (accès utilisateur et accès administrateur) et une clé (pour le mini-driver Microsoft) qui lui seront utiles dans ses mécanismes.

spyrus7

Comme nous l’avions fait pour les options de démarrage, il est nécessaire de définir un mot de passe qui sera utilisé pour obtenir l’accès à l’administration du lecteur WTG. Le principe est le même, toujours avec cette gestion de la complexité.

spyrus8

Dernière étape : on lance la création de l’espace de travail. Ainsi, dès que l’on clique sur « Continue » la création commence en prenant en compte l’ensemble des paramètres fournit.

spyrus9

Il faut être patient pendant le provisionnement de la clé. Pour ma part j’ai créé deux fois la clé et à chaque fois l’opération a duré 25 minutes.

A la fin, on obtient un joli « FINISHED » qui valide le bon déroulement du provisionnement de la clé Spyrus.

spyrus10

Pour finir, si l’on s’intéresse au fichier « config.xml » créé, on peut remarquer que l’on retrouve tous les paramètres définis via l’assistant. Ce qui est appréciable c’est qu’il s’agit d’un fichier XML, qu’il est parfaitement lisible et modifiable.

Par curiosité, on peut voir que les mots de passe sont bien chiffrés dans ce fichier de configuration :

spyrus11

Assez parlé, nous allons démarrer la clé Spyrus pour la première fois, afin de vérifier son fonctionnement, et cela m’amènera à réaliser des tests de performance sur l’environnement WTG.

Dès le démarrage sur la clé, avant même d’accéder à l’espace de travail Windows To Go, il est nécessaire d’indiquer son mot de passe afin de déverrouiller l’accès au contenu de la clé :

Boot Spyrus WorkSafe Pro

Une fois l’authentification réussie, Windows va démarrer comme sur n’importe quelle machine !

III. Spyrus WorkSafe Pro : Les performances

Au niveau des performances, soyons clair dès le départ : c’est excellent ! Le constructeur annonce de son côté, 240 Mo/s aussi bien en lecture qu’en écriture. Pour ma part, voici les résultats obtenus avec CrystalDiskMark au premier lancement :

Benchmark Spyrus

En recommençant le test, j’ai pu obtenir un résultat équivalent mise à part pour l’écriture concernant séquentielle et 512K qui sont passées d’environ 88 Mo/s à 154 Mo/s.

Voici les résultats que l’on peut obtenir avec Anvil’s Storage Utilities :

Figure 1 : Source TheSSDReview

Figure 1 : Source TheSSDReview

IV. Accès au contenu de la clé Spyrus

Le contenu situé sur la clé WTG Spyrus est protégé, si vous connectez la clé sur une machine, vous ne pourrez pas accéder au contenu. Toutefois, Spyrus a prévu un mécanisme intéressant qui permet, après authentification, d’accéder au contenu.

Il suffit de connecter la clé sur un ordinateur, par exemple qui tourne sous Windows 8.1 Pro, d’accéder à « Ordinateur » puis :

– Dans le lecteur « WSPBOOT »
– Accéder au dossier « Utils »
– Exécuter « xLauncher.exe »

wtg14

Vous devez saisir le mot de passe de protection de la clé, afin de la déverrouiller. Cliquez sur « Unlock » et patientez une à deux minutes le temps du déverrouillage.

wtg15

Si le mot de passe saisit est le bon, vous devez voir deux nouvelles partitions monter dans votre système : la partition de boot et la partition du système (correspondante à C). Comme ceci :

wtg16

V. Conclusion

Je suis surpris par l’excellente qualité de ce produit ! Performance, solidité et sécurité, la WorkSafe Pro de chez Spyrus est réellement un produit haut de gamme. Son utilisation est agréable puisqu’en mode Windows To Go, on ne se rend même pas compte que l’on travaille sur une clé USB… C’est très fluide, je vais même plus loin en disant qu’on a réellement l’impression de travailler sur un SSD en local.

Le démarrage est très rapide une fois l’authentification effectuée sur la clé WTG. De plus, on peut profiter d’un double niveau de chiffrement dans le cas où l’on décide d’allier BitLocker au chiffrement matériel intégré.

Au niveau des points négatifs, on peut noter les performances lorsqu’il s’agit d’écrire et de lire des petits fichiers, même si cela reste convenable (minimum 22 Mo/s), c’est en dessous des performances que l’on peut trouver sur la plupart des SSD du marché.

Si je devais indiquer un autre point « négatif », je pourrais dire la taille de la clé qui est un peu plus imposante qu’une clé USB classique, mais c’est vraiment pour chipoter…

Cryptoy : Apprendre la cryptographie en s’amusant

mercredi 17 décembre 2014 à 16:00

Le service de renseignement britannique, GCHQ, a publié une application Android qui permet aux débutants d’apprendre la cryptographie. Cette application offre une introduction à la cryptographie de façon éducative.

Destinée aux adolescents de 14-16 ans, l’application peut très bien en apprendre à ceux qui souhaitent s’initier à la cryptographie.

L’application Cryptoy

Disponible gratuitement sur Google Play, l’application CrypToy permet de chiffrer et déchiffrer des messages avec différents mécanismes de chiffrement (ciphers).

Bien sûr, il n’est pas question d’apprendre l’AES… Mais plutôt de voir des mécanismes plus basiques inventés par nos ancêtres : Shift, Vigenère, Enigma, et la Substitution

Pour chaque chiffrement, on retrouve une partie “A propos“, “Historique” et “Maths“. Cela permettra d’en apprendre plus sur le mode de chiffrement notamment son histoire, et sur les techniques mathématiques qu’il utilise.

Voici quelques captures d’écran de l’app :

cryptoy1

cryptoy2

cryptoy3

cryptoy4

cryptoy5

Le GCHQ veut-il séduire la jeunesse pour la pousser à prendre la relève ?

Powershell pour les débutants (1ère partie)

mercredi 17 décembre 2014 à 15:05

I. Présentation du sujet

J’écris ce billet en guise d’introduction à ce que l’on pourrait comparer sommairement à une sorte de série “pour les nuls“. Loin de moi l’idée d’introduire une quelconque connotation péjorative dans cet article , mais au fil de mes expériences et des informations que j’ai pu glaner sur le net et autres ouvrages sur le sujet, j’ai pensé qu’un rappel des fondamentaux serait peut être utile à votre envol dans ce monde hostile qu’est le “scripting” ou le shell sous Windows.

En fait, j’imagine volontiers le désarroi d’un technicien ou administrateur sous Windows, qui n’a jamais ou très peu sollicité la ligne de commande, à qui on va exposer des concepts d’objets, de classes, de types, de collections, d’instances (pour le vocabulaire) sans compter des syntaxes condensées et complexes (pour la grammaire) manipulant des concepts obscurs du système.

• Du batch (en gros l’héritage du DOS) – Ca ressemble/ait à ça…Non ?

FOR /F "tokens=2,3 delims= " %%A IN ('PING -a %1') DO IF "%%B"=="[%1]" SET PC=%%A

A cette “époque” on manipulait uniquement des chaines et des fichiers…

• Du WMI (via la console depuis XP, Ca ressemble/ait à ça :

WMIC useraccount where "name like '%500'" get name

Cette fois, on manipule des objets et franchement avec cette console Microsoft vous simplifiait bien la tâche. Pas convaincu ? Essayez de lancer “wbemtest” pour voir !…

• Du VBScript (ou WSH) – Ca ressemble (toujours) à ça :

Set oNetwork = CreateObject("WScript.Network")
Set oDrives = oNetwork.EnumNetworkDrives
bExist = False
For i = 1 to oDrives.Count step 2
if oDrives.Item(i)=sUNC then
WScript.Echo "le chemin " & sUNC & _
vbCrLf & "est deja associe au lecteur " & oDrives.Item(i-1)
bExist = true
end if
Next …

Une petite connaissance de ce langage simple et structuré tel que VBSscript, est un atout indéniable pour appréhender Powershell plus sereinement. A ce propos, Microsoft fournit un guide de correspondance et d’équivalence des instructions vbscript vers Powershell : en ligne ici ou la version Word “vbscript_to_powershell.doc

La première chose à admettre c’est que les tutoriels et autres formations que vous pourriez avoir sur Powershell, ne vous affranchiront pas d’une certaine maitrise (ou l’inverse ) du système Windows. Je parle ici du “noyau” et non des interfaces graphiques, outils ou autres consoles d’administration. En mode shell ou script, l’écriture du code consiste à utiliser des éléments et préciser des détails dont vous ne connaissiez peut être pas l’existence car masqués par l’interface. Autrement dit, le premier obstacle, trouver la technologie la plus adaptée à votre besoin, puis identifier les contraintes et/ou les valeurs pour que cela fonctionne.

II. Premier contact – La console (ou $Host)

En premier lieu, il vous faut ouvrir une console Powershell.exe (à l’instar de l’invite de commande “cmd.exe”) – De préférence, en tant qu’administrateur (n’oubliez pas le contrôle de compte utilisateur UAC)

consolepowershell1

Quelques trucs à savoir (pour plus de confort) :

Complétion : Contrairement à l’invite de commande traditionnelle, les commandes Powershell et leurs commutateurs (options précédés par un tiret), ainsi que les membres des instances (que l’on verra plus tard) bénéficient de la “complétion”. C’est à dire que vous pouvez utiliser les “Tabulations” (touches [Tab] ou [Maj] + [Tab]) pour compléter vos lignes de code.

Historique : La touche [F7] permet de rappeler l’historique des commandes tapées précédemment dans votre session. Utilisez les touches de curseur [Haut] ou [Bas] pour vous déplacer dans la fenêtre.

F7

Appuyez sur [Entrée] pour rappeler et exécuter la commande sélectionnée, ou sur [Flèche Droite] pour rappeler la commande sélectionnée sans l’exécuter. Utilisez ensuite les flèches [Gauche] ou [Droite] pour modifier la ligne (Mode “insertion” par défaut).

Note : Depuis Powershell v3, il est possible d’utiliser la complétion au sein d’une ligne existante sans perdre la fin de ligne.

Copier-Coller : Vous pouvez utiliser la souris dans la console ! afin de copier/coller du texte. Pour cela, vérifiez que les propriétés de la fenêtre PowerShell, sont bien configurées : Sous l’onglet “Options”, cochez la case “Édition rapide” (C’est normalement le cas par défaut).

1 – “Clic gauche maintenu” et glissement pour la sélection du texte qui doit apparaitre en surbrillance.
2 – “Clic droit” n’importe où = “copier” (La sélection passe dans le presse-papier)
3 – “Clic gauche” sur le point d’insertion désiré
4 – “Clic droit” = “Coller

Vous voilà armé au minimum pour la suite.

III. La structure des commandes

A. Les applets de commandes “cmdlet”

Dans le monde Powershell, vous remarquerez que les applets de commandes (Les fameuses “cmdlet” que nous verrons plus tard) sont composées d’une paire (ou tandem pour mieux pédaler ) de la forme “verbe”-“nom” destiné à en faciliter la mémorisation.

cmdlet

Le résultat renvoie une “collection d’instances” (Concept sur lequel je reviendrais plus tard) – Dans l’immédiat, considérez que c’est une sorte de tableau avec des entêtes de colonnes, où chaque ligne représente un élément.

Collection

B. Les variables Powershell

J’ajoute quelques mots sur la notion des “variables Powershell” qui mériteraient certainement un développement plus complet, mais je pense que pour débuter, un usage basique de ces variables volatiles peut être un allié de poids. En effet, plutôt que d’écrire une commande complexe et vous arracher les cheveux pour des histoires syntaxiques, les variables vous permettent de décomposer chaque bloc ou élément de code, afin d’avancer à votre rythme.

• Une variable Powershell est un emplacement de stockage provisoire en mémoire destiné à recueillir une valeur, un objet ou une collection d’objets.
• Les variables sont généralement nommées, et leurs noms sont toujours précédés d’un symbole “$“
• Les variables sont automatiquement “typées” lors de l’affectation de valeur (si elles ne sont pas déclarées au préalable.)
• Il existe plusieurs commandes pour manipuler les variables, mais le plus simple reste la déclaration par instanciation via le signe d’égalité soit :

$Process = Get-Process

• La variable “Process” déclarée dans cet exemple, contient la liste des processus en cours, obtenus par la commande “Get-Process” Vous pouvez afficher son contenu en mentionnant simplement en stipulant son nom “$Process” puis “Entrée

C. Les variables d’environnement

J’admets que c’est un peu hors sujet, mais j’ajouterais juste quelques mots en raison de la fréquence des questions sur ce point.

Les variables d’environnement sont accessibles de plusieurs manières :

• Via le lecteur PS (j’utilise “dir”, mais il faudrait plutôt utiliser “Get-ChildItem” ou “gci” …)

dir env:U*

• Via une variable PS

$(env:USERNAME)

• Via l’interpréteur traditionnel (c’est pas top, mais bon…)

cmd /c set U

Par exemple, pour afficher votre nom de login (en vert) dans une console Powershell :

write-host "Bonjour $(env:USERNAME)" –fore 'green'

D. Le pipeline

J’ai hésité à évoquer ce concept dans cet article d’initiation, mais son usage (et maitrise) est tellement important que je vais essayer de résumer rapidement ce concept.

Cette notion de pipeline, symbolisée par le caractère “|” ([AltGr] + [6]) permet de “chainer” plusieurs commandes entre elles.

Autrement dit, la sortie d’une commande est liée à l’entrée de la suivante. On peut considérer cet ensemble comme un tout, éventuellement destiné à une variable ou une fonction…

Un petit schéma pourrait être utile ?

pipelinebis

Dans cette illustration, quelque peu abrupte j’en conviens , l’applet de commande “Get-Service” envoie son résultat (sortie) vers l’entrée de la commande “ForEach-Object” (aliassée par “%”). Cette seconde commande traite chacun des éléments de l’objet en cours ( Symbolisé par “$_” ) afin de traiter une seule propriété, en l’occurrence “Name”).

Amusez-vous avec ce petit exemple :

gsv | ogv

Bien pratique pour retrouver le nom d’un service sur une machine.

Note : L’applet de commande “ogv” nécessite le framework .NET 3.51 ou + (non activé par défaut sur Win2008R2)

IV. Les commandes de “Découverte”

Pour bien débuter en Powershell, je vais vous parler des commandes qu’il vous faudra impérativement maîtriser au plus vite. Les voici dans le tableau de synthèse suivant :

Cmdlet Description Alias
Get-Command Informations de base sur les commandes gcm
Get-Help Aide de base (utiliser -full ou -example) help, man
Get-Member Informations sur les méthodes et propriétés des objets gm
Get-PSDrive Informations sur les “lecteurs” PowerShell gdr
Get-Module Liste les “modules” actuellement chargés gmo
Get-PSSnapin Liste les “snapins” actuellement chargés gsnp

Vous comprendrez par la suite l’importance primordiale de ces quelques commandes parmi les nombreuses autres commandes intégrées, dites “cmdlets” (129 en PSv1, 236 en PSv2, …).

Maitrisées, ces applets de commandes* devraient vous permettre de débroussailler la plupart de vos questions (légitimes) de néophytes.

Pour les plus impatients, essayez ces quelques commandes :

Pour afficher la version de Powershell :

$Host.version.major

Pour compter ces fameuses “cmdlet” ou applets de commande Powershell :

(Get-Command –CommandType cmdlet).count

Au début, concentrez votre attention sur les applets en commande, c’est-à-dire les “cmdlet”.

En effet, bien que pratiques au quotidien, les alias, les fonctions, les scripts, les modules ou même les “applications”, sont très utiles mais sont de véritables pièges pour les non-initiés.

A mon avis, les débutants ne doivent pas abuser des “alias”, car je pense qu’ils les desservent plus les qu’ils ne les aident. (ie : dir /s –> Get-ChildItem –Recurse )

Petite précision importante : Powershell n’est pas sensible à la casse (Majuscules/minuscules), ni aux espaces, ou tabulations superflues.En fait, vous verrez que Powershell est par défaut très tolérant, peut-être même trop parfois….

A. “Get-Help” – L’anti-sèche ou l’ami de tous les instants

Powershell est “auto-documenté” : N’hésitez-pas à solliciter l’aide intégrée via : GET-HELP

C’est sans doute la première commande à connaitre

Pour obtenir de l’information sur une commande, ou un sujet quelconque : “GET-HELP” ou “HELP” ou “MAN” ou encore “HELP HELP

En ajoutant éventuellement les commutateurs : “-Example” ou “-Full” ou “-Detailed” ou “-online” (Notez que les exemples fournis sont pleinement fonctionnels)

En fait, la documentation de l’aide est contenue dans les fichiers “about_*

Ces fichiers sont situés dans le dossier : “C:\Windows\System32\WindowsPowerShell\v1.0\fr-FR\” Ou bien en code Powershell

gci $PSHOME+"\"+$PSCulture

Note : Ne vous attardez pas sur le “v1.0″ du chemin qui reste invariable quelle que soit la version de Powershell. A l’instar de “system32″ qui contient des binaires 64bits sur un système 64 bits : Les binaires 32 bits étant dans SysWOW64 !

Dans la pratique, la commande “Help” effectue une recherche intégrale dans les fichiers “About_” (à l’instar d’un Grep Unix – “Select-String” en PowerShell) – L’aide affiche des propositions si le nom n’est pas correspond pas à un terme reconnu. Essayez par exemple les commandes suivantes en oubliant volontairement le “s” à la fin….

HELP Alia
HELP Operator

Remarque : Powershell v3 n’intègre plus qu’une aide locale partielle – Vous pouvez utiliser l’aide en ligne si la machine dispose d’un accès Internet et/ou “Update-Help” (Également disponible dans l’éditeur graphique Powershell ISE) – Il faut être administrateur pour réaliser cette action.

Note : Une version .CHM de l’aide (de base) sur PowerShell est disponible ici.

B. “Get-Command” – Une commande incontournable !

Usez et abusez de cette commande pour tout savoir sur les commandes disponibles, l’origine ou le type d’une commande particulière, les commandes propres à un module…L’alias de “get-command” est “gcm”. Une petite explication s’impose :

Si vous souhaitez connaitre la liste des commandes disponibles, essayez d’entrer les commandes suivantes :

(gcm).count
(gcm * ).count
(gcm -CommandType cmdlet).count

Le nombre renvoyé est différent parce que Powershell est en mesure d’exploiter différentes catégories de commandes :

Catégorie Description
Alias Pointeur ou nom alternatif affecté à une applet de commande, une fonction ou une application
Function Bloc d’instruction nommé ou suite de commandes existant en mémoire uniquement le temps d’une session PS ou d’un script (analysée une seule fois) – Le contenu d’une fonction peut être affiché, comme par exemple “gc function:\mkdir”
Cmdlet Commandes prédéfinies / compilées (Généralement elles offrent un accès convivial et simplifié aux classes du Framework .Net)
Application Fichier exécutable se trouvant dans le PATH , par exemple:gcm ipconfiggcm notepadgcm where

 

Je n’ai pas encore abordé ce sujet, mais sachez d’ores et déjà que Powershell dispose d’un noyau constitué de commandes (alias, function, cmdlet) de base qui peuvent être complétées à la demande par le chargement de “modules” complémentaires.

Les modules sont apparus avec la version 2 de Powershell et tendent à se généraliser (ils portent généralement l’extension *.psm1, ou *.psd1, parfois *.dll lorsqu’ils sont compilés). Les modules sont généralement spécialisés pour la gestion des fonctionnalités et rôles propres à une machine. (Par exemple, le module “ServerManager” n’est disponible que sur les versions Windows Server 2008R2 et ultérieures).

Pour connaitre les modules disponibles sur votre machine :

get-module –ListAvailaible

pour charger un module dans le contexte de la session ou d’un script :

import-module NomDuModule

Indiquez le chemin complet, si celui-ci n’est pas enregistré ni proposé dans la liste précédente.

Note : Le chemin de recherche des modules est stipulé dans la variable d’environnement “$env:PSModulePath

Vous pouvez “décharger” un module de la mémoire via la commande : remove-module (Rassurez-vous, cela ne détruit pas le module).

Et enfin, pour connaitre les commandes “apportées” par un module chargé en mémoire :

gcm –module NomDuModule

Pour conclure sur cette fameuse applet de commande “Get-Command” ou “gcm”, entrez l’instruction suivante pour énumérer toutes les commandes et les classer par verbes en ordre décroissant.

gcm –CommandType cmdlet | group verb | sort count –Descending

Amusez-vous à regarder et comprendre les inégalités entre “start|stop”, “New|Remove”, “Export|Import”. C’est parfois logique, parfois un peu moins … (Vous n’avez pas déjà oubliez l’aide ?!…)

C. “Get-Member” – L’explorateur d’objets (la clé du succès)

Bon maintenant, il va falloir passer aux choses sérieuses. Avant de parler de cette commande “Get-Member”, je me dois de vous présenter le plus simplement possible, le concept complexe des objets :

Un petit peu de vocabulaire s’impose:

Terme Explication
Classe C’est un peu comme le “Plan de construction” – aussi appelé “Type” de données
Instance “Objet existant (élément) – construit selon une classe”
Collection Désigne un “Ensemble d’instances” (généralement d’un même type ou associé)”
Variable C’est un contenu nommé, ou le stockage d’une collection dans une zone mémoire
Membres Ce sont les “Caractéristiques” (Propriétés) et les “Capacités” (Méthodes) d’un objet.

Bien, regardons cette notion de membre d’un peu plus près via cette petite illustration :

Objet

Une classe de type “Boite”, va nous permettre de construire une ou plusieurs boites similaires (instance). Nous pourrons ensuite consulter (voir modifier) les caractéristiques (Propriétés) telles que la taille, la couleur, etc. De la même manière, nous pouvons agir sur une boite et ses capacités (Méthodes) telles que l’ouvrir, la fermer, etc…

Note : Sur le plan syntaxique, les membres (propriétés ou méthodes) sont liés à l’objet (l’instance) par un point “Instance.Membre” et par un double “::” pour les membres statiques du Framework .NET “[Type.NET]::Membre

Un membre statique est une notion particulière que l’on pourrait définir comme membre ayant la particularité d’être sollicité directement via la classe sans nécessiter d’instance. Comme par exemple :

[datetime]::now

Bien, maintenant que le décor est planté, essayons de revenir à un exemple plus concret et pratique. Sous Powershell, tout est objet. Une simple chaine de caractère est donc un objet de type [string] doté de propriétés et de méthodes.

Vous imaginez peut être quelques possibilités telle que la longueur de la chaine (“.length”), mais probablement moins l’étendue de toutes ses possibilités. En premier lieu, interrogez le type du contenu “Chaine” via l’instruction suivante :

("Chaine").gettype()

Normalement, vous obtenez “String” dans le résultat. Maintenant, regardez d’un peu plus près les possibilités en tapant la commande suivante :

"Chaine" | get-member

ou plus simplement

“Chaine” | gm

Parmi toutes les informations renvoyées, vous devriez apercevoir le type “TypeName : System.String”, ainsi qu’une liste conséquente de méthodes et de propriétés. Essayez de les utiliser comme dans les exemples suivants :

(“Chaine”).length –> 6
(“Chaine”).ToUpper() –> CHAINE
(“Chaine”).Replace(“C”,”Déc”) –> Déchaine

Note : Pour invoquer une méthode (sans paramètres), vous devrez ajouter les parenthèses à la fin “.Method()”.

Ultime précision, et bien qu’il s’agisse d’un concept avancé qui ne devrait pas apparaitre ici, sachez qu’il est possible d’obtenir la liste des membres statiques d’un type .NET via la commande suivante :

[string] | get-member -static

Voilà, je pense que j’ai fait le tour des fondamentaux. J’ajouterais peut être un complément dans les mois à venir. Maintenant, il ne vous reste plus qu’à digérer tout cela et surtout à pratiquer sans modération.

Pour lire la deuxième partie de ce cours : PowerShell pour les débutants (Partie 2)

La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Bon courage.

Un malware utilise ShellShock pour hacker des NAS QNAP

mercredi 17 décembre 2014 à 14:05

La faille ShellShock n’est pas morte ! En effet, la vulnérabilité connue dans Bash sur les systèmes Linux est utilisée pour s’attaquer à des NAS.

Un nouveau malware exploite la faille ShellShock pour créer une backdoor sur les NAS de la marque taïwanaise QNAP. Cette backdoor donne un accès complet au contenu du périphérique infecté.

logo-design52QNAP embarque un système d’exploitation basé sur Linux, ce qui rend l’exploitation de la faille ShellShock possible ! Plus précisément, l’attaque cible un script CGI : /cgi-bin/authLogin.cgi, ce dernier étant un vecteur d’attaque ShellShock sur les NAS QNAP.

Pourtant ce n’est pas faute de réactivité de la part de QNAP puisqu’un patch fût délivré en octobre pour les produits NAS Turbo. Cependant, la mise à jour n’est pas automatique et de nombreux systèmes sont encore vulnérables.

Si votre système est infecté, un accès SSH sur le port 26 sera ouvert et un nouvel utilisateur de type administrateur sera créé. Johannes B. Ullrich, du Sans Institute, précise que “le serveur SSH est un second serveur SSH qui sera exécuté, en plus du serveur SSH par défaut sur le port 22. Ce second accès SSH, et l’utilisateur ajouté au système permettent à l’attaquant d’avoir un accès persistent au système.

Ce qui est plus étonnant, c’est que le malware appliquera lui-même le correctif contre la faille ShellShock sur le NAS QNAP. Cela lui permettra d’éviter qu’une autre personne compromette le périphérique en exploitant la faille ShellShock, le pirate s’étant déjà ouvert une porte avec l’accès SSH et le compte administrateur… Cela ne le gêne pas.

Si vous possédez un NAS de la marque QNAP, mettez-le à jour dès maintenant si ce n’est déjà fait. Vérifiez également si un utilisateur suspect existe, et si c’est le cas, si votre NAS écoute sur le port 26 pour le SSH.

Source

Créer un espace de travail Windows To Go

mercredi 17 décembre 2014 à 10:15

I. Présentation

Après avoir fait la présentation de Windows To Go dans un article précédent, nous allons passer à la pratique ! L’objectif est le suivant : déployer un espace de travail Windows To Go sur un périphérique USB, en passant par l’assistant présent par défaut dans Windows.

Informations quant à ma configuration :

Ordinateur utilisé : Windows 8.1 Entreprise – 64 bits
Système d’exploitation déployé : Windows 8.1 Entreprise – 64 bits
Périphérique cible : Disque dur externe Samsung M3 – 1 To – USB 3.0

wtg10

II. Création de la clé USB Windows To Go

Après avoir connecté le périphérique USB à votre ordinateur, accédez au « Panneau de configuration », passez en mode petites icônes et cliquez sur « Windows To Go » comme ceci :

wtg1

Avant de commencer, je me suis « amusé » à connecter un autre périphérique USB afin de voir le comportement de l’assistant. De ce fait, j’ai connecté une clé USB classique (Corsair Slider 3.0) compatible USB 3.0 et de 64 Go, mais je ne peux pas l’utiliser, pourquoi ? Tout simplement car il s’agit d’une clé USB standard qui n’est pas reconnue comme un disque fixe mais comme un disque amovible.

Remplir 2 critères prérequis sur 3 ne suffit pas, il faut un périphérique qui remplit les 3 critères.

wtg2

On peut voir que le périphérique « FLOKEY » correspondant à ma clé USB est bien reconnu comme un disque amovible, ce qui justifie la réaction de l’assistant (on voit cela au type d’icône affiché).

Munissez-vous de votre ISO « Windows 8.1 Entreprise » et double-cliquez dessus pour le monter dans Windows au sein d’un lecteur DVD virtuel, comme ceci :

wtg3

Puisque le fichier ISO est monté dans le système, l’assistant WTG détecte automatiquement sa présence et propose de l’utilisation comme image source. Sélectionnez l’image et cliquez sur « Suivant ».

wtg4

Si vous le souhaitez – et c’est recommandé pour plus de sécurité – configurez BitLocker pour chiffrer votre clé WTG.

Cochez « Utiliser BitLocker avec mon espace de travail Windows To Go » et indiquez un mot de passe complexe.

wtg5

Pour commencer la création de l’espace de travail WTG sur votre périphérique, cliquez sur « Créer ».

Note : Le volume sera totalement repartitionné et formaté, ce qui implique la suppression éventuelle de données présente sur le périphérique cible.

wtg6

Patientez pendant la création de l’espace de travail. En général, la création d’une clé WTG prend entre 20 et 25 minutes.

wtg8

Enfin, la dernière étape et le choix d’une option de démarrage. Choisissez si vous souhaitez ou non démarrer automatiquement sur la clé USB WTG, sinon il faudra modifier le BIOS/UEFI de votre machine pour indiquer que vous souhaitez démarrer sur l’espace de travail WTG (ou passer par le Boot Menu).

Cliquez sur « Enregistrer et fermer ».

wtg9

Vous n’avez plus qu’à tester votre espace de travail, en démarrant dessus depuis une machine.

Pour rappel, Windows To Go est conçu pour démarrer sur des configurations équipées d’USB 3.0 mais aussi d’USB 2.0, afin d’augmenter le nombre d’équipements compatibles.