Script

Script

   
En savoir plus :  Retourner à la page précédente   Imprimer cette page   

FAQ Microsoft Windows
 
 
Scripts - les scripts sont des programmes écrits dans un langage appelé "langage de script" tel que JavaScript. Indispensables mais trop puissants ou trop permissifs, ils permettent à quelques-uns toutes formes d'investigations ou de malveillances intrusives et / ou destructives.

Les scripts sont des programmes écrits dans un langage appelé "langage de script" tel que JavaScript.

Nota :
Les langages de script sont des langages de très haut niveau - entendez par-là qu'ils se situent tout en haut des couches d'abstractions permettant d'accéder aux ressources des couches inférieures comme le système d'exploitation Windows et les ressources matérielles - à l'inverse par exemple du langage "assembleur" qui est le langage de plus bas niveau possible et qui lui s'adresse directement au matériel.

En gros :

  • il est (relativement) facile d'écrire quelque chose dans un langage de script mais avec des limitations (volontaires ou non y compris en vitesse d'exécution et étendue des possibilités) tandis qu'il est extrêmement difficile d'écrire en assembleur mais il n'y a aucunes limites de fonctionnalités et c'est le seul moyen d'optimiser totalement la vitesse d'exécution. L'intermédiaire étant des langages comme C++ qui donne un bon code mais optimisable.

  • le fonctionnement est en pelures d'oignons : le script de haut niveau fait des requêtes aux couches de l'operating system qui font des requêtes aux couches matériel qui font des requêtes au matériel et inversement, chaque couche étant constituée de deux strates, celle qui fait l'interface avec la couche de niveau supérieur - c'est la couche d'abstraction qui reçoit les requêtes et les met en forme - et celle qui fait l'interface avec les couches de niveau inférieur et passe les paramètres de la requête ou reçoit les résultats, c'est la couche physique. C'est grâce à ce genre de techniques en couches d'abstractions que le même script peut fonctionner en faisant des requêtes à Windows ou à Mac OS ou à Linux ou à Unix etc. ...

  • Java n'est pas Javascript :

    • JAVA
      Java est un langage de programmation à part entière créé dès 1991 par SUN Microsystems, avec la participation d'IBM, dans le cadre d'un projet nommé "green". Un programme écrit en Java s'appelle un (ou une ?) Applet (ou Applet Java, ou Appliquette en français) - ce n'est pas un script. Un particularité de Java est de pré-compiler son source (donnant ce qui est appelé un "PCode" pour Pseudo Code ou code intermédiaire) afin de proposer aux couches d'abstraction des interpréteurs installés sur les différentes plates-formes PC, MAC, UNIX etc. ... (appelés "Machine Virtuelle JAVA" ou "JVM" et qui sont des "runtime") un code relativement plus rapide à exécuter et toujours le même ce qui assura dès le début son succès par sa portabilité et son indépendance vis à vis des operating system et des matériels.

      Pour la petite histoire, ce langage devait s'appeler "Oak" mais, durant sa phase de conception, développement et tests, chez SUN, les ingénieurs burent tellement de café, qu'ils appelèrent leur travail quotidien "Java", équivalent plus ou moins argotique américain de notre "kawa". Non seulement ce nom est officialisé en 1995 mais le logo de Java est une tasse de café fumante.

      Résumé : Les applications en JAVA peuvent être utilisées dans des pages Web mais le code est compilé, n'est pas incorporé dans les pages Web mais dans des fichiers distincts sous forme d'applet (appliquettes ou petites applications !?!), n'a pas accès aux objets de votre navigateur, est complexe et n'a quasiment pas de limites.

    • JAVASCRIPT
      Le langage de scripts Javascript fut crée par SUN avec NETSCAPE. Ce fut le premier langage de programmation orienté pages web. Il est très largement utilisé pour ajouter au langage de description de pages HTML l'interactivité et le dynamisme que ce dernier ignore totalement. Html était, à l'origine, un moyen inter-universitaire d'échange de textes "très sérieux" c'est-à-dire bruts, glacials et sans fioriture (ce n'est pas un reproche - à l'université on n'est pas là pour rigoler, c'est tout). Javascript est intégralement interprété par votre navigateur, sans phase de compilation précédente, lorsque le webmaster l'incorpore dans une page Web. Vous recevez les scripts en code source tels qu'ils ont été écrits, directement inclus dans le code HTML. L'interpréteur en vérifie la syntaxe chez-vous c'est pourquoi vous pouvez avoir des messages d'erreurs si le développeur n'a pas complètement testé ses scripts.

      Nota : pour écrire et exécuter un programme en JavaScript, il vous suffit de votre bloc-notes (Notepad) de Windows (le plus basique des éditeurs de textes) et d'un navigateur pas trop vieux, c'est tout.

      Résumé : Les applications en JAVASCRIPT peuvent être utilisées dans des pages Web, le code n'est pas compilé, le source est incorporé dans les pages Web, les applications sont appelées des scripts, elles ont accès aux objets de votre navigateur mais pas de votre ordinateur, sont relativement plus simples à écrire que JAVA même s'il y a une grande ressemblance, est sont relativement limitées.




  • Le but initial des scripts est, entre autres, l'introduction d'interactivité entre un document et les applications (programmes) de son environnement. Avant l'invention des scripts les documents étaient totalement statiques et c'est encore le cas pour une page Web qui ne serait écrite qu'en pur HTML. Les langages de script permettent donc de spécifier comment des documents vont interagir avec des applications et donc comment l'application qui gère le document (Word ou WordPro pour un document de type traitement de textes, Excel ou 1-2-3 pour un document de type feuille de calcul, Access ou Approach pour un document de type base de données, Internet Explorer ou Opera ou Netscape Navigator ou Mozilla pour un document de type page Internet etc. ...) va échanger de l'information avec d'autres applications. Un webmaster ou un développeur de sites Web utilisera donc des scripts pour faire interagir votre navigateur Web avec d'autres programmes qui pourront être exécutés ou téléchargés automatiquement lorsque vous consultez ses pages. On peut classifier les scripts, les plus utilisés étant :

    • Les Javascript : Javascript, le plus ancien dans le monde Internet, inventé par SUN avec Netscape, permet une interaction avec le code HTML d'une page Web : c'est grâce à lui, par exemple, qu'un lien change d'aspect lorsque le pointeur de la souris passe au-dessus ou lorsqu'une fenêtre s'ouvre (dont les maudites Pop-Up). Les applets Java sont des composants (des programmes) écrit en Java et non des scripts écrit en Javascript, auto exécutables (pouvant être exécutés sans l'aide d'un autre programme).

    • Les contrôles ActiveX : Pour contrer la déferlante Java de son éternel ennemi Netscape, Microsoft à développé et propose aux webmasters ActiveX. Malheureusement, ActiveX a accès à l'intégralité de Windows et des objets (fichiers...) de votre ordinateur, ce qui rend ce langage de scripts beaucoup plus dangereux que les applets Java.

    • Les VBScript ou VBS Script : Ce sont des scripts écrits dans une extension pour scripts du langage Visual Basic de Microsoft. VBScript est exploitable dans une page Web pour y intégrer les mêmes fonctionnalités que Javascript. VBScript est une réaction de Microsoft à l'hégémonie de Javascript dans lequel intervient son ennemi, la société Netscape. On peu encore une fois gloser sur le fonctionnement à la japonaise de Microsoft qui n'a jamais rien inventé mais à toujours pillé les concurrents pour développer des produits que, par contre, il a su mieux vendre même lorsqu'ils ont toujours été en retard sur les malheureux concurrents (depuis l'origine avec MS-DOS toujours à la traîne d'un an sur DR-DOS de Digital Research en passant par Word très en retard sur AmiPro (devevu WordPro de Lotus) ou Excel en retard sur Lotus 1-2-3 etc. ... en passant par Windows face à Mac OS, Internet Explorer face à Netscape ou son serveur Internet face à Apache ...) Mais, pour ce qui est de VBScript, ça ne décolle pas.

    • Les Macros : Word, PowerPoint et Excel par exemple peuvent être exploités de manière interactive dans des pages Web. Les tableaux écrits dans des pages Web sont généralement statiques mais il est possible d'y insérer l'interactivité Excel. Si les macros Word ou Excel sont insérées dans ce type de pages Web, elles seront chargées sur votre ordinateur en même temps que les pages Web visitées et seront, en temps réel, interprétées par votre navigateur ou l'exécutif du logiciel d'origine présent sur votre ordinateur (le pack office de Microsoft, par exemple) ou ajouté en tant qu'extension (plug-in) de votre navigateur (exécutées - l'interprétation, en informatique, est une forme d'exécution directement à partir du code source - de la macro en l'occurrence - sans passer par la phase de compilation qui elle génère un code "natif" qui n'a plus besoin d'être interprété et s'exécutera directement - et plus rapidement). Or les macros ont accès à tous les fichiers auxquels l'utilisateur du PC à accès. Elles peuvent donc, par exemple, modifier le système.

  • On l'aura compris, les langages de scripts et les scripts sont indispensables mais ils sont trop puissants ou trop permissifs et permettent à quelques-uns, dont les pirates et les espions (y compris ceux qui prétendent ne faire que du tracking, du profilage commercial et du ciblage comportemental des internautes) toutes formes d'investigations ou de malveillances intrusives et / ou destructives. En gros, voici quelques actions imputables aux scripts :

    • Accès, modification, effacement de fichiers.
    • Modifications de la base de registre et donc des paramètres de sécurité.
    • Accès aux informations confidentielles et expédition de celles-ci vers un site Web externe (espion).
    • Utilisation de votre propre ordinateur (et de plusieurs centaines de milliers simultanément) dans le cadre d'une zombiification dans un BotNet, à l'occasion d'une action de type Spam ou DOS (Denial Of Service) ou DDoS (Distributed Denial of Service) consistant à mettre à genoux un serveur par excès d'accès. En plus vous risquez d'être recherché si c'est un serveur gouvernemental ou militaire qui est visé.
    • Les scripts sont aussi l'une des formes de nombreux vers et virus, surtout ceux de type "courrier électronique".
    • Java et ActiveX disposent de fonctions de sécurité intégrées. Ces fonctions permettent de limiter la casse, mais pas totalement l'éliminer, selon deux approches différentes:
      • Java a introduit une Java Sandbox qui permet, en théorie, de limiter l'accès de Java aux fichiers systèmes. Bien que cette fonction soit efficace, elle n'est pas fiable à 100%. Les spécifications de Java/Javascript étaient, dès le début, l'impossibilité de lire ou d'écrire des fichiers ce qui devait le rendre sûr et très peu dangereux mais c'est compter sans l'ingéniosité des programmeurs et, bien que ce langage soit pratiquement confiné à ce qu'il devrait être, il est déjà trop puissant dans de mauvaises mains. Notons que les applets Java sont exécutées dans un environnement sécurisé de votre navigateur, appelé la Java SandBox. En théorie, ils ne peuvent compromettre la sécurité du système car la SandBox est une machine virtuelle dans laquelle les fonctions à risque ne sont tout simplement pas implémentées. La SandBox c'est le bac à sable des artificiers dans lequel la bombe explose sans faire de dégât par absorption du choc.

        Java, comme tous les programmes informatiques, comporte probablement une ou des failles de sécurité. Dans le passé, il avait été mis en évidence une faille de la SandBox. Une vulnérabilité du mécanisme de vérification des types de données des applets Java (JRE Bytecode Verifier chez Sun et Virtual Machine Verifier chez Microsoft), permettait à un utilisateur mal intentionné d'exécuter du code arbitraire en dehors de la Sandbox de la machine virtuelle Java avec les privilèges de l'utilisateur courant. La solution était quasi inapplicable car elle consistait à désactiver Java. Cette faille n'existe plus.

      • Java 2, lui, a conservé l'environnement sécurisé de Java mais a introduit une notion de certificats similaire à ceux de ActiveX ce qui permet à des scripts Java 2 certifiés de lever certaines restrictions tandis que les autres scripts Java et Java 2 non certifiés restent soumis au modèle de protection restrictif d'origine. La gestion des certificats Java 2 est transférée, comme pour ActiveX, entre les mains du développeur et de l'internaute.

      • ActiveX a une approche inverse de Java et n'inclus aucune protection. ActiveX conserve ses possibilités d'accès à toutes les ressources et laisse le soin de la sécurité à l'utilisateur (le développeur d'un côté et l'internaute de l'autre). Le créateur d'un contrôle ActiveX le soumet à un organisme de contrôle qui le certifie et permet au créateur du contrôle de l'accompagner d'une signature numérique. L'internaute, par son navigateur, vérifie cette signature et vous pouvez donc, en principe, exécuter les contrôles ActiveX certifiés sûrs les yeux fermés. Entendons nous bien : un certicat n'est rien d'autre qu'un contrôle que le code que vous recevez est bien le même que celui qui a été certifié - un certificat ne sert à rien d'autre que cela - un parasite peut parfaitement être "certifié". Dans notre répertoire des faux logiciels de sécurité, La Crapthèque, la quasi totalité de ces chevaux de Troie, BackDoor, Downloader etc. ... est certifiée ! Vous pouvez refusez les autres contrôles ActiveX ou demandez à être informé avant leur exécution. Mais on a déjà vu des cas de signatures « falsifiées » ou manipulées. Votre navigateur, Internet Explorer par exemple, permet de maintenir une liste des fournisseurs de contrôles ActiveX autorisés. Il existe des polémiques : Internet Explorer ne vérifierait pas les certificats etc. ... info ou intox ?



Exemple de script dans une page d'un site Internet
Magnifique exemple de code source d'une page réelle utilisant : Script, Pop-Under, Interstitiel, Bannières, Adservers et Cookie



Contre-mesure
anti-scripts
ActiveX - Anti-ActiveX
Java - Anti-Java
JavaScript - Anti-JavaScript


Nouvelle adresse du site Assiste.com depuis le 22 octobre 2012 : http://assiste.com Nouvelle adresse du site Assiste.com depuis le 22 octobre 2012 : http://assiste.com

Nouvelle adresse du site Assiste.com depuis le 22 octobre 2012 : http://assiste.com






Historique des révisions de ce document :

Historique
 
   
Rédigé en écoutant :
Music