Archive for décembre 2006

Installation et utilisation de WebScarab

décembre 31, 2006

WebScarab est un outils issu de l’OWASP, association d’inspiration libre qui travaille sur les problèmes de sécurités des applications web. WebScarab permet d’intercepter et modifier les requêtes ainsi que les réponses HTTP, ce qu’un pirate peut faire lors de ses attaques sur un site web. Il s’agit d’un logiciel libre écrit en java.

Son installation est simple, il faut télécharger l’archive dans mon cas c’était webscarab-installer-20060718-1904.jar. L’installation est simple : java -jar webscarab-installer-20060718-1904.jar.

Webscarab sert de proxy applicatif. Donc il faudra modifier le proxy utilisé par le navigateur est mettre le proxy « localhost port 8008 » dans la connexion du navigateur.

définir le proxy dans Firefox

Démarrez WebScarab, définissez le proxy utilisé (celui que le navigateur utilisait auparavant) pour cela allez dans le menu tools\proxies et complétez la boite de dialogue.

définir le proxy dans WebScarab

Enfin il faut cocher la case à cocher « intercept request » pour intercepter et éventuellement manipuler la requête.

intercepter les requêtes

Les manipulations peuvent être nombreuses comme modifier la valeur d’un champ, ajouter un champ, supprimer un champ, de quoi planter le traitement côté serveur.

Dernière remarque, il est possible de manipuler les requêtes web avec d’autres outils. Par exemple la barre d’outils Web Developer permet également de nombreuses manipulation. Cette barre est une extension pour Firefox pour tout ce qui développement web. La partie « form » permet d’afficher les détail du formulaire dont les champs cachés, de convertir les champs « select » en « input », de supprimer la longueur maximale des champs input…

La conclusion de ce genre d’outils est de ne pas oublier que les contrôles mise en place côté client web par du javascript ou par d’autres techniques comme les longueurs maximales des champs input (attribut maxlength) ou comme les champs select pour limiter les choix dans une liste peuvent être facilement contournées. Il faut donc refaire les contrôles côtés serveur. Ceci n’est en fait que la vulnérabilité 1 du guide de l’OWASP « unvalidated input » ou en français « Paramètres non validés ».

Publicités

Le conteneur de servlets Jetty

décembre 29, 2006

Le conteneur de servlet le plus connu est Tomcat. Il est considéré comme l’implémentation de référence des servlets et pages JSP. Il s’agit en plus d’un logiciel libre. Mais il existe d’autres conteneurs de servlets moins connus dont Jetty. Il s’agit également d’un logiciel libre. Il est écrit en java, donc pose aucun problème de passage d’un système d’exploitation à un autre. Il possède enfin l’avantage de s’intégrer avec d’autres serveurs (comme dans le cas d’OpenWFE).

J’ai choisi de tester Jetty 5.1 et non Jetty 6. En effet Jetty 5.1 implémente les spécifications servlet 2.4 et JSP 2.0, c’est dire les mêmes que celles supportées par Tomcat 5.5. Il semble en effet que Jetty possède une petite longueur d’avance sur son concurrent sur l’implémentation des dernières versions de spécifications. Tomcat 6.x n’est pas encore considéré comme stable.

L’installation sous Windows de Jetty est assez simple. Il suffit de télécharger l’archive, dans mon cas jetty-5.1.12.zip, ensuite d’extraire le dossier ici jetty-5.1.12, enfin pour démarrer le serveur de lancer la commande « java -jar start.jar » dans le dossier en question, en ajoutant éventuellement une configuration par exemple etc/demo.xml ce qui donne « java -jar start.jar etc/demo.xml ». Pour arrêter le serveur la commande est « java -jar stop.jar ».

Pour aller plus loin, on peux ajouter qu’il existe un plugin pour Eclipse : jettylauncher.

Test de niveau d’allemand sur le site Deutsch Perfekt

décembre 22, 2006

Le site de la revue Deutsch Perfekt propose un test gratuit pour évaluer son niveau en allemand. Le résultat donne un niveau européen (de A1 faible à C2 très expérimenté).

Le site www.scapture.com tests de navigateurs sous Linux

décembre 18, 2006

J’avais déjà signalé l’existence de icapture et iecapture site pour tester des sites respectivement avec le navigateur Safari et Internet Explorer 7. Le site www.scapture.com permet de faire la même chose pour les navigateurs sous Linux : Firefox 1 et 2, Konqueror, Opera, Dillo,Lynx et Links. Les deux deniers sont des navigateurs en mode texte. Ces sites permettent de vérifier le résultat de vos sites dans de nombreuses configurations, ne pas se limiter simplement à quelques tests sur Windows.

De J2EE à JEE5

décembre 17, 2006

Il ne faut plus parler maintenant de J2EE mais de Java EE 5. En fait, JEE 5 (Java Platform Enterprise Edition 5) a été adopté début mai 2006. Il correspond à la spécification JSR 244. Cette adoption s’est faite en même temps que de nombreuses autres : EJB 3.0 (JSR 220), JSF 1.2 (JSR 252), JSP 2.1 et JAX-WS 2.0 (JSR 224). L’objectif de cet ensemble est de simplifier le développement d’applications Java d’entreprise. Nous sommes rassuré car lorsque nous voyons cette série d’acronymes à assimiler. Il faut avouer que l’ancienne mouture J2EE 1.4 n’était pas toujours satisfaisante et les EJB 3.0 étaient très attendus. La première implémentation d’un serveur JEE5 est le serveur glassfish. Dans cette jungle que sont les serveurs d’application du monde java, il est difficile de savoir s’il existe d’autres exemples.

La revue Deutsch perfekt pour l’apprentissage de l’allemand

décembre 16, 2006

J’ai découvert par hasard la revue « Deutsch Perfect » dans le rayon presse d’une grande surface. Il s’agit d’une revue pour l’apprentissage de l’allemand. Assez surprenant ! En effet en dehors de l’anglais, le marché des revues de langues est assez limité. Seul Vocable propose une version allemande et une version espagnole. Mais certains détails me surprennent dans la politique de diffusion de cette revue. La parution est bimensuelle dans un monde de revues mensuelles. Le petit plus étant des revues plus petites et donc moins chères (2,6 euros) en général une revue est au alentours de 5 euros. Le gros point négatif est le coût des CD, exorbitant et surtout réservés uniquement aux abonnés. Cependant, je salue le fait qu’ils soient les seuls à s’aventurer en dehors de l’anglais.

Je voulais faire un article sur Deutsch perfekt et non sur Vocable. D’où vient ce « Deutsch perfekt » ? Il s’agit simplement d’un groupe allemand spotlight-verlag publiant des revues de langues dans les pays germanophones. Ils publient pour l’apprentissage de l’anglais, du français, de l’italien et de l’espagnol, le petit dernier « Deutsch perfekt » étant pour l’allemand en langue étrangère. Le site de cette revue propose en plus quelques extraits écrits et sonores de la revue. Je souhaite une longue vie à cette revue. Au autre souhait serait l’arrivée d’autres revues (pour d’autres langues ?).

Javascript et expressions régulières

décembre 14, 2006

Javascript contient un bon support des expressions régulières, appelées égalementparfois expressions rationnelles. A quoi peut servir ces expressions régulières ? A énormément de contrôles,et transformation des chaînes de caractères. De plus, comme java supporte également les expressions régulièresdonc les tests fait au niveau Javascript peuvent être fait à nouveau au niveau du serveur. Le site suivant donne une bonne illustration des possibilités de manipulation des expressions régulières par le Javascript.

icapture et iecpature

décembre 10, 2006

Le site suivant permet de générer des copies d’écran de site web avec le navigateur Mac Safari. Ceci est toujours utile pour vérifier qu’un site se comporte avec ce type de navigateur. Un site voisin permet quant à lui de faire la même chose avec IE7.

Installation de BIND sous Windows XP

décembre 9, 2006

BIND est l’implémentation de référence d’un serveur DNS. Il s’agit d’un logiciel libre maintenu par l’ISC (Internet Systems Consortium). il s’agit du serveur DNS le plus courant, cependant il existe plusieurs alternatives comme par exemple le djbdns de D J Bernstein. BIND avec ses fichiers de configuration en mode texte peut paraître archaïque, mais il peut s’installer sous Windows XP. Attention, il ne s’agit pas d’un environnement adapté pour la production. Lorsque j’ai installé la première fois BIND, c’était pour une présentation du DNS dans le cadre d’une formation. L’environnement adapté serait un bon Linux ou un autre système comme BSD.

 

L’installation est simple. Il faut d’abord télécharger la dernière version de BIND pour Windows sur le site de l’ISC, à l’heure actuelle la 9.3.3. L’archive ne fait que 3,4 Mo. Il faut ensuite la décompresser dans un répertoire temporaire. On y trouve notamment deux programmes exécutables intéressants d’une part named le serveur DNS et d’autre part dig un outil d’interrogation des serveurs DNS. Pour continuer l’installation, il suffit de cliquer sur BINDInstall.exe. Elle se fait par défaut dans le répertoire C:\WINDOWS\system32\dns. Je vous conseille de ne pas autoriser le démarrage du service automatiquement. Deux répertoires sont créés sous le répertoire d’installation « bin » pour les exécutables et « etc » pour les fichiers de configuration. Il existe un petit bug sur cette installation, la documentation n’est pas copiée. Les versions précédentes installaient la documentation dans le répertoire bin\doc. Je les ai mis manuellement. Le manuel pour l’administrateur fait par exemple 81 pages. Avant de démarrer le serveur, il faut ajouter au PATH le répertoire bin de notre serveur (dans mon cas C:\WINDOWS\system32\dns\bin). Maintenant, il suffit de lancer la commande « named » pour lancer le serveur DNS. Mais celui-ci se plante au bout de quelques secondes. Pour savoir pourquoi, relancez le avec l’option g (named -g). Là, on voit que BIND cherche un fichier de configuration named.conf dans le répertoire etc. Nous allons donc ajouter une configuration simpliste.

 

Nous allons définir le fichier named.conf « minimal », avec simplement la résolution de l’adresse de 127.0.0.1. Mon serveur s’appelle ici fixe.tld1 (mais cela n’a que peut d’importance à ce niveau).

 

options {
directory "c:/windows/system32/dns/etc/namedb"; // repertoire de travail
};

//adresse 127.0.0.1
zone "0.0.127.in-addr.arpa" in {
type master;
file "db.127.0.0";
notify no;
};

 

Maintenant, il faut définir le fichier zone « db.127.0.0 ». Dans le répertoire « c:/windows/system32/dns/etc/namedb ».

$TTL 3h
0.0.127.in-addr.arpa. IN SOA fixe.tld1. postmaster.tld1. (
	1; numero de serie
	1h; rafraichissement
	3h; nouvel essai
	1w; expiration
	1h; ttl negatif
	)

1.0.0.127.in-addr.arpa.	IN 	NS	fixe.tld1.

1.0.0.127.in-addr.arpa.	IN	PTR	localhost.

 

A ce niveau BIND démarre correctement. Pour vérifier cela utiliser la commande dig @localhost qui fait une interrogation du serveur DNS en local. Si le serveur est actif, la réponse contient les serveurs racines du DNS, sinon la requête tombe en « time-out ».

L’OWASP (Open Web Application Security Project)

décembre 7, 2006

L’OWASP (Open Web Application Security Project) est un groupe de travail d’inspiration « libre ». Il est assez récent mais est devenu la référence sur le sujet de la sécurité des applications web. La sécurité en informatique est un sujet très vaste, donc il ne faut pas oublier de prendre en compte dans la conception des applications web les aspects de sécurité. L’OWASP a de nombreuses idées de projets. Détaillons simplement trois projets bien avancés : premièrement une définition des dix principales vulnérabilités des applications web, ensuite un didacticiel WebGoat présentant ces vulnérabilités et enfin WebScarab un proxy applicatif, c’est à dire qui permet de modifier des requêtes HTML avant de les envoyer aux serveurs. C’est trois projets méritent certainement des présentations plus détaillées.