TinyPasswordManager est un gestionnaire de mot de passe Open Source et (bientôt) multiplate-forme. Basé sur le chiffrement AES avec clé de 256bits, je l’avais initialement développé pour un usage personnel. L’objectif initial est d’obtenir un gestionnaire simple, c’est-à-dire n’utilisant pas de bibliothèques, et sécurisé. Pour l’instant, seule la version pour Windows est dévelopée entièrement, avec GUI. En ce qui concerne la version pour les systèmes dérivés d’UNIX, je prévois de poster d’ici peu de temps la version ligne de commande, puis, par la suite, envisager le développement d’une GUI avec QT ou GTK.
Pour les spécifications “techniques”, la passphrase choisie par l’utilisateur est hashée avec SHA256. Le hash obtenu est utilisé comme clé AES. En ce qui concerne la méthode de padding, j’ai opté pour la technique décrite dans la norme ISO 10126, à savoir le remplissage avec des octets aléatoires, en spécifiant la taille du bourrage dans le dernier.
Enfin, le mode d’opération d’AES utilisé est CBC. Pour rappel, avec un chiffrement en mode ECB, tous les blocs sont indépendants : chaque bloc est simplement chiffré avec la clé. Cela pose quelques soucis en matière de confidentialité car deux mêmes blocs auront un résultat chiffré identique, ce qui n’est pas le cas avec CBC, mode utilisé en général dans lequel chaque bloc est XORé avec le bloc chiffré précédent, puis chiffré.
Je mets à disposition le binaire ainsi que les sources :
Comment mettre des données dans le presse-papiers à partir d’un programme en console sous GNU/Linux ? Voici le problème que j’ai rencontré il y a peu de temps alors que je développais une application sans interface graphique en C. M’attendant à une solution triviale étant donné la simplicité du besoin, j’ai été surpris de ne pas trouver de réponse sur Google, malgré des recherches plutôt poussées.
En effet, sous Windows par exemple, le snippet suivant suffit à placer une chaîne de caractères dans le presse-papiers :
Sous GNU/Linux, c’est assez différent et malheureusement plus complexe à mettre en oeuvre. Tout d’abord, il est nécessaire de connaître les points suivants :
En plus du presse-papiers, est accessible sous GNU/Linux un tampon de sélection primaire (accessible avec le bouton du milieu de la souris), ainsi qu’un tampon de sélection secondaire (généralement non-modifiable directement par l’utilisateur).
C’est le serveur X qui gère les mécanismes liés à ces tampons.
Le serveur X n’alloue pas un tampon mémoire général accessible à toutes les applications graphiques, mais le contenu des sélections et du presse-papiers sont communiqués entre clients (communication peer-to-peer).
La variante C du vers Conficker, qui est censée se déclencher le 1er Avril, était jusqu’à présent difficilement détectable de par son caractère dormant. Seuls de très rares outils de désinfection permettaient de le déceller poste à poste.
Néanmoins le problème se pose si il s’agit de détecter et nettoyer des réseaux composés de nombreuses machines. C’est pourquoi depuis ce week end les plus grands acteurs de la détection réseaux se sont penchés sur le problème pour aboutir à une signature.
C’est ainsi que les gens de Nmap, McAfee et Nessus (Tenable) ont planché sur l’établissement de plugins de signatures sur l’impulsion de Dan Kaminsky qui, le premier, a trouvé la petite modification infime opérée par le vers sur le système d’exploitation. Plus précisement, au niveau de smb dans le cadre du partage de fichiers au moment du process de pre-authentification.
Les plugins ne vont pas tarder à sortir dans les heures qui viennent, de facon à permettre aux admins de tester l’intégriter de leurs réseaux.
D’hors et déjà, voici celui de Nmap : le choix à été fait d’un plugin sous forme de script NSE (Nmap Scripting Engine), simple à lancer :
ATTENTION ! ce script est extrèmement intrusif et les tests actuellement montrent un danger réel de crasher le système cible en particulier si celui ci est atteint. Dans un environement de production, son utilisation est un réel choix à faire en connaissance de cause.
Sur 82 systèmes testés vulnérables, 52 ont crashé.
D’ici une heure ou deux Nmap.org sortira une mise à jour officielle, la v4.85 BETA5 qui intègrera directement cette empreinte.
[Breaking News]
Au moment où j’écris ceci, les tests sont en cours pour sortir au plus vite un update pour Nmap. Pardon donc de vous le lancer “comme ca”, c’est chaud, c’est sur le feu…
(o) On note ce genre de résultat d’erreur : Conficker: ERROR: NT_STATUS_OBJECT_NAME_NOT_FOUND
ceci est dû soit à une machine du réseau qui n’est pas un Windows, soit à une machine infectée que le test à fait crasher.
(o) Préférez lancer la détection par cette ligne de commande :
Je vais aujourd’hui vous parler d’un (presque) nouveau venu dans le monde des browsers : Arora
Arora est un navigateur web libre, gratuit et multiplateforme. Il est entièrement écrit en C++, à l’aide du célèbre toolkit graphique Qt, qui est entre autre la pierre angulaire de l’environnement de bureau libre KDE, et qui est utilisé par d’autres projets tels que Google earth et Skype.
Depuis sa version 4.4, Qt intègre le moteur de rendu WebKit. Un moteur de rendu est un composant logiciel permettant d’interpreter du code HTML pour le faire apparaître sous une forme de page web.
WebKit est réputé pour ses performances et son respect des standards. C’est aussi le moteur de rendu utilisé par le navigateur Safari (Apple dirige d’ailleurs le développement de WebKit)
Arora a initialement été crée par un développeur Qt pour tester le bon fonctionnement de WebKit dans Qt. Cette vieille version est d’ailleurs toujours disponible dans les démos fournies avec Qt. Suite à ça, son développeur, Benjamin Meyer a continué l’améliorer.
Arora fournit toutes les fonctionnalités que l’on est en droit d’attendre d’un navigateur : Gestion des onglets, des bookmarks, historique, gestionnaire de téléchargement. Il supporte aussi les plugins flash et java de Firefox pour peu que votre version de Qt soit supérieure ou égale à Qt 4.5.
Fait notable pour un navigateur actuel, arora est léger
Téléchargement (Pensez tout de même à vérifier si arora n’est pas déjà disponible dans les dépôts de votre distribution, ce qui est par exemple déjà le cas sous Gentoo et Debian (mais vous ne pourrez pas utiliser flash et java puisque la version de Qt disponible dans les dépots debian est la 4.4 …))
On pourra noter que c’est en outre le seul scanner parmis la foule compacte des firewalls et autres IDS, Nmap ayant aujourd’hui une avance technologique qui lui confère une situation de quasi monopole laissant loin derrière ses concurents (Unicorn, Scanrand etc…).
A la publication de ces résultats son auteur, Fyodor réagissait en ces termes :
“Six years in a row is quite a winning streak for Nmap!”… Une sorte de homerun dans l’équipe des applications de sécurité !
Me voilà de retour du FOSDEM, qui se tenait à Bruxelles, le week-end dernier. Au risque d’enfoncer une porte ouverte, je présente tout de même le FOSDEM, qui une des plus conséquentes réunions de développeurs Open Source en Europe. Environ 250 conférences ont lieu durant cet évènement et tous les principaux acteurs du libre y ont un stand : la plupart des distributions GNU/Linux, mais également les systèmes *BSD ainsi que la Mozilla Foundation, KDE, OpenOffice.org, et bien d’autres.
Nemiver, ou l’espoir d’un bon débogueur sous GNU/Linux
Une des premières conférences à laquelle j’ai assisté fut celle sur Nemiverun débogueur C/C++ basé sur Gnome. Le développement d’un tel logiciel fut principalement débuté à cause du manque de convivialité de ddd et de la complexité à déboguer un logiciel C++ en ligne de commande avec gdb. Voici son interface :
N’existant pas de “libgdb“, Nemiver fonctionne en communiquant via une instance de gdb. Pour l’instant, la partie qui m’aurait intéressée le plus du débogueur n’est pas encore développée, à savoir le désassemblage d’un binaire ELF et donc un déboguage à partir du code assembleur seul et non pas une source. Toutefois, Dodji Seketeli, l’un des deux développeurs du projet, fit entendre lors de la conférence que ce point était prévu pour la suite de Nemiver.
L’API de fuzzing Fusil
Une autre conférence qui m’a laissé un très bon souvenir fut celle de Victor Stinner alias Haypo, sur son API de fuzzing Fusil. Dans cette dernière, Haypo y expliquait tout d’abord ce qu’est le fuzzing : une technique de détection des failles dans un binaire, plus simple et plus rapide que l’analyse statique ou dynamique de celui-ci, basée sur un test de toutes les entrées/sorties sur lesquelles il se fie.
Afin de provoquer des comportements anormaux aux logiciels, une technique commune consiste à envoyer au binaire des données incorrectes (en général, générées pseudo-aléatoirement) mais ayant un format valide. Ainsi, afin de tester un logiciel tel que GIMP, on peut développer un fuzzer en python utilisant Fusil générant des images respectant par exemple le format JPEG, mais dont les champs sont remplis totalement aléatoirement.
Le système de fichiers ext4
Ce fut Theodore Ts’o, développeur de nombreux outils pour ext2 et ext3, et principal mainteneur d’ext4 qui effectua la conférence. Il présenta tout d’abord ext4 : ce n’est pas un système de fichiers à part entière, mais une extension de ses prédécesseurs (comme son nom l’indique) et on peut donc utiliser ext2 avec certaines fonctionnalités d’ext4. Puis, il en vint aux avantages par rapport à ext3 :
Le support des volumes ayant une taille de 1024 Po (pétatoctet : 1Po = 1 000To)
La possibilité de stocker des fichiers de 16TB, voire encore plus volumineux dans de prochaines versions d’ext4
Le support d’extent, c’est-à-dire une zone réservée à un seul fichier, en général plutôt volumineux, comme par exemple un DVD. Les extents permettent de réduire fortement la fragmentation d’un fichier, et ainsi d’augmenter fortement les performances en lecture et écriture.
FOSDEM ‘10
Etant donné la bonne ambiance de l’évènement, son entière gratuité et la qualité des conférences offertes, j’y serai également l’an prochain, avec peut-être à nouveau quelques habitués de #futurezone@irc.worldnet.net ! Un site utile si vous ne pouvez pas assister aux évènements comme le FOSDEM : http://streaming.linux-magazin.de/
Voilà plusieurs mois que cette idée me trottait dans la tête : une extension malicieuse pour Firefox développée avec XUL, XPCOM et JavaScript. Durant mon mois de vacances intersemestre, j’ai enfin eu un peu de temps pour me pencher sur la question … Voici donc la table des matières de l’article que je vous propose :
Introduction
Architecture d’une extension Firefox
Composition d’un fichier XPI
Présentation des technologies utilisées
XUL
XPCOM
Fonctionnement d’une extension
Développement d’un rootkit
Architecture du rootkit
Masquer l’extension au sein de Firefox
Récupération des identifiants stockés dans Firefox
La recherche autour du reversing de l’algorithme de hashage MD5 est toujours active, tout comme ses applications directes en tant que vulnérabilité comme le montrent les toutes recentes inquiétudes autour des certificats SSL.
Les techniques les plus récentes en terme de force brute à l’encontre de ces hashes exploitent aujourd’hui la puissance de calcul des processeurs graphiques, les GPUs, depuis que Nvidia à ouvert largement leur accessibilité aux programmeurs au travers de son environnement de développement CUDA.
Cependant comme tous les codes, tous les programmes actuellement disponibles ne sont pas tous aussi rapides qu’ils est possible. Question d’optimisation du code, de stratégies adoptées, d’exploitation correcte de l’environement sur lequel ils sont deployés…FutureZone vous propose un petit tour d’horizon de ce qui se fait aujourd’hui.
Votre collègue a un iPhone ? Découvrez comment il peut devenir votre meilleur ami !
Voici pour commencer l’année un nouvel article décrivant une vulnérabilité des iPhone OS 1.x permettant de les utiliser à leur insu comme zombies dans le cadre du scan d’un réseau local d’entreprise. Ou ailleurs…