> Tech > Un meilleur moyen

Un meilleur moyen

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

J’ai créé un outil, DotNetWrapper.vbs, qui donne un meilleur moyen de protection des scripts. Non seulement DotNetWrapper.vbs encode un script, mais il le compile aussi dans un exécutable – sans que vous ayez à réécrire une seule ligne de code. Contrairement au Script Encoder, DotNet- Wrapper.vbs ne vous limite pas

à certains types de scripts. Vous pouvez l’utiliser avec tout script que vous aurez sauvegardé comme un fichier de texte et qui sera lancé par un moteur de script ou à partir de la ligne de commande. Par conséquent, DotNetWrapper.vbs s’accommode d’une grande variété de scripts, dont des fichiers .vbs, .js, .htm, .bat, .cmd et .hta.

DotNetWrapper.vbs utilise le compilateur ligne de commande Visual Basic .NET (vbc.exe) qui accompagne le Microsoft .NET Framework. DotNetWrapper.vbs crée un exécutable Visual Basic .NET qui exécute, à la volée, le script que vous voulez protéger. Pour cela, DotNetWrapper.vbs stocke le contenu du script dans une variable à l’intérieur de l’exécutable. Ce dernier écrit le script dans un fichier temporaire et appelle le moteur de script ou l’interpréteur de commandes approprié pour l’exécuter. Dès que le script est lancé, l’exécutable supprime le fichier temporaire.

Par lui-même, ce procédé offre une certaine protection. Cependant, en examinant un exécutable .NET dans un éditeur de texte, vous constaterez la présence de texte clair. En particulier, le code source du script serait encore visualisable. Certes il ne serait pas facilement lisible (en raison des blancs entre les caractères et de l’absence de coupures de lignes), mais visible tout de même. Pour renforcer la protection, le script inclut la fonction EncodeScript, qui applique un mécanisme de rotation d’un seul caractère. Comme le montre le listing 1, cette fonction décale les caractères alphabétiques de 128 positions. Les caractères numériques et les autres caractères non alphabétiques sont laissés de côté. Un schéma de décodage est intégré dans l’exécutable .NET.

Outre les avantages que j’ai déjà indiqués, le fait de loger vos scripts dans un exécutable .NET procure les avantages inhérents à un fichier .exe. Vous pouvez ajouter une icône personnalisée pour l’exécutable. Et aussi utiliser l’outil RunAs pour exécuter le script que vous voulez protéger sous un compte différent de celui avec lequel vous vous êtes connectés. Les nombreux avantages de DotNetWrapper.vbs s’accompagnent de quelques limitations. Il faut exécuter DotNetWrapper.vbs sur une machine sur laquelle le .NET Framework est installé. Et aussi, faire tourner l’exécutable sur un ordinateur local. Il ne fonctionnera pas si vous le faites tourner à partir d’un périphérique de réseau ou d’un chemin UNC (Universal Naming Convention). Enfin, comme le script qui est protégé est supprimé aussitôt après son lancement, tout événement ultérieur faisant référence à ce script, déraillera. Ainsi, supposons que vous utilisiez DotNetWrapper. vbs pour protéger une HTML Application (HTA) ou une page HTML.

Si vous tentez de visualiser le code source de la HTA ou de la page HTML en sélectionnant l’option Source sur le menu View dans Microsoft Internet Explorer (IE), vous obtiendrez un écran vierge. Et toute tentative de rafraîchir la page HTA ou HTML provoquera un « plantage ». A noter que vous pouvez utiliser DotNetWrapper.vbs pour des scripts qui demandent des réponses. Par exemple, pour exécuter des scripts sous WScript qui incluent la fonction InputBox.

Téléchargez cette ressource

Guide de Sécurité IA et IoT

Guide de Sécurité IA et IoT

Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010