Victor STINNER a écrit 1632 commentaires

  • [^] # Re: Compléments

    Posté par  (site web personnel) . En réponse au journal Après WannaCry, un 2e ransomware utilisant une cyberarme volée à la NSA ?. Évalué à 5.

    Je vous raconte pas le nombre de fois que j'ai buté sur la limitation Windows "on ne peut pas supprimer un fichier ouvert" en développant avec Python … Cette limitation explique certainement l'obligation de rebooter à tout va, nan ?

  • # Compléments

    Posté par  (site web personnel) . En réponse au journal Après WannaCry, un 2e ransomware utilisant une cyberarme volée à la NSA ?. Évalué à 10.

    (1) Infection

    La mise à jour automatique du logiciel de compatibilité Ukrainien MeDoc est suspecté d'avoir servi de moyen d'infection initial. Selon l'article TheVerge (cité plus bas), en général, les système de mise à jour automatique ont les droits d'administrateur Windows, utilisent des connexions chiffrées, sont mis en liste blanche par les parefeux, ont le droit aux connexions sortantes vers Internet, etc. Le "graal" des attaquants.

    (2) Propagation du virus

    Petya utilise élégamment les fonctionnalités Windows d'administration des postes de travail, Windows Management Instrumentation (WMI) et PsExec, pour infecter les autres ordinateurs du LAN. Autrement dit : une fois qu'un poste administrateur Windows est infecté, il peut infecter tous les postes de travail auxquels ils ont accès, même si ces postes sont ultra sécurité, car c'est volontaire de permettre d'exécuter du code arbitraire.

    Techniquement, WMI et PsExec ne sont pas mis en cause, on peut aisément imaginer la même chose sous Linux (SSH, Ansible, Puppet, Chef & cie).

    J'en comprends que le problème initial est le vecteur d'infection. Là je pense que Linux se défend mieux car les logiciels proviennent généralement de la distribution Linux utilisée qui signe les dépôts et les paquets, et sécurise correctement ses serveurs…

    … Oui bon, parfois les serveurs Debian, Ubuntu, freedesktop, gnome.org, kernel.org, etc. se sont pirater, mais bon, c'est rare nan ? …

    Source: https://www.theverge.com/2017/6/27/15883110/petya-notpetya-ransomware-software-update-wannacry-exploit

  • [^] # Re: 4.11

    Posté par  (site web personnel) . En réponse à la dépêche Sortie du noyau Linux 4.10. Évalué à -10.

    J'utilise un noyau 4.10 fourni par Fedora (Fedora 25) depuis plusieurs semaines. Merci pour avoir publié la dépêche 4.10 en même temps que la sortie de 4.11, ça m'a bien fait marrer :-D

  • [^] # Re: 2 facteurs

    Posté par  (site web personnel) . En réponse au journal Sécurité et authentification des sites bancaires.. Évalué à 3.

    Pour info, ces tokens utilisent un algorithme pour générer un code à partir d'un secret (l'algorithme standard pour cela s'appelle TOTP), mais tant que ça ne sort pas de l'appareil en question, ça relève bien de la propriété. En revanche, dès qu'on s'amuse à utiliser ça avec un générateur de code sur téléphone par exemple, ça s'approche un peu plus de la connaissance.

    Le principal défaut d'un OTP logiciel genre FreeOTP sur smartphone est qu'un smartphone est connecté à tous les réseaux qui existent et sont la cible d'attaques. Mis à part ce point, mot de passe + FreeOTP me semble carrément plus sûr qu'uniquement un mot de passe.

  • # Temps d'exécution sans optimisation ?

    Posté par  (site web personnel) . En réponse au journal Pythran chatouille Cython. Évalué à 10.

    J'ai trouvé les temps d'exécution pour la version Cython, pour la version Pythran sans SIMD et la version Pythran avec SIMD. Hum, mais quel est le point de départ ? Quelles sont les perfs sans Cython ni Pythran, juste avec numpy avec CPython standard ?

  • # Comment arrondir une date ?

    Posté par  (site web personnel) . En réponse au journal Cohérence des fonctions d'arrondi. Évalué à 2.

    Je me suis frotté aux erreurs d'arrondi en concevant une API C pour manipuler des dates : https://haypo.github.io/pytime.html

    J'en garde un drôle de souvenir. Avec le langage C, l'arrondit est implicite et les erreurs faciles à commettre.

    L'arrondit Python de la fonction round() est l'arrondit par défaut du très sérieux standard IEEE 754 : https://en.wikipedia.org/wiki/Rounding#Round_half_to_even

    Cet arrondit est celui qui produit le moins d'erreur d'un point de vue statistique :

    "This method treats positive and negative values symmetrically, and is therefore free of sign bias. More importantly, for reasonable distributions of y values, the average value of the rounded numbers is the same as that of the original numbers."

  • # Faut-il continuer à apprendre le C++ ?

    Posté par  (site web personnel) . En réponse à la dépêche C++17 fixe l’ordre d’évaluation des expressions. Évalué à 1.

    non

  • [^] # Re: command not found: svn

    Posté par  (site web personnel) . En réponse à la dépêche Appel à contribution pour la traduction du livre « Gestion de versions avec Subversion ». Évalué à 1.

    https://issues.apache.org/jira/browse/INFRA-7524

    "Migrate Apache Subversion project over to the git repo". Ha ha, excellent :-)

  • [^] # Re: Intéressant

    Posté par  (site web personnel) . En réponse au journal L'innovation collective au sein de la communauté Python. Évalué à 5.

    Le "Language Summit" est un sous-événement de l'événement majeur annuel Pycon US. Les éditions 2015 et 2016 ont été couvertes par un journaliste !
    * 2015 : https://lwn.net/Articles/639773/
    * 2016 : https://lwn.net/Articles/688969/

    Pour info, un sprint physique est organisé en Californie la semaine prochaine avec une vingtaine de core developers.

    D'ailleurs, les différentes conférences Pycon (EuroPyhon, Pycon FR, Pycon <…> : il y a plus d'une dizaine) sont l'occasion pour les développeurs d'échanger de vive voix. Ces échanges aident à l'élaboration des évolutions de Python, directement ou indirectement.

  • # reproducible-builds.org

    Posté par  (site web personnel) . En réponse au journal GNU Guix et GuixSD v0.11: testable en machine virtuelle avec des images USB. Évalué à 3.

    Site web intéressant sur les problèmes et solutions pour obtenir des compilations reproductibles : https://reproducible-builds.org/ "Provide a verifiable path from source code to binary."

    Ca parle par exemple d'une variable d’environnement $SOURCE_DATE_EPOCH pour la date de compilation.

  • # Python 3

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Tryton 4.0. Évalué à 6.

    Ça fait plaisir de voir de grosses applications qui supportent Python 3. Bravo ! ;-)

  • [^] # Re: Le scheduler, il est a l'ouest !

    Posté par  (site web personnel) . En réponse au journal Linux: une décennie de coeurs gaspillés. Évalué à 5.

    Tiens marrant, scheduler + énergie est justement le thème d'un récent article LWN:
    https://lwn.net/Articles/682391/

    "A few years ago, Linux scheduler maintainer Ingo Molnar expressed a strong desire that future improvements in CPU power management should integrate well with the scheduler and not try to work independently."

    Lien gratuit si vous n'êtes pas encore abonnés à l'excellent LWN : https://lwn.net/SubscriberLink/682391/1b395639142d1fa3/

  • # Comment détecter une intrusion ?

    Posté par  (site web personnel) . En réponse à la dépêche Linux Mint a été compromise. Évalué à 4. Dernière modification le 07 mars 2016 à 11:31.

    Comme dit dans l'article, les intrusions de ce genre sont malheureusement courantes. Je me demande à chaque fois comment une telle intrusion pourrait être détectée au plus tôt pour limiter la portée de l'attaque. Je suppose que Wordpress et phpBB sont hébergés sur un serveur qq. part. Faut-il installer un outil de détection d'intrusion dessus ?

    Ma petite expérience. A un moment j'avais installé un serveur SSH accessible depuis Internet sur ma machine perso (authentification uniquement par clé SSH, pas par mot de passe, uniquement un login $USER, pas root). C'est tout con, mais j'ai remarqué que des bots l'attaquaient en essayant plein de mots passe parce que le ventilateur de mon CPU tournait très vite (était bruyant). Je suppose qu'il existe des outils plus subtils qu'écouter un ventilateur :-)

  • [^] # BTRFS

    Posté par  (site web personnel) . En réponse à la dépêche ZFS, Canonical et GPL. Évalué à 9.

    Il y a qq. années, j'avais testé Btrfs car j'ai lu que c'était trop super. Mais j'ai eu de gros problèmes de performances sur des machines virtuelles à cause du fonctionnement Copy-on-write. J'avais aussi eu des soucis de disque "plein" alors que non, 80% de l'espace disque (800 Go de mémoire) étaient libres. Il fallait faire qq. bidouilles. Ca m'avait saoulé, j'avais remis ext4.

    Il y a environ 1 an, j'ai remplacé mes deux disques durs en RAID 0 par un unique SSD. Le boot est passé d'environ 3 minutes à 10 secondes. À priori les I/O étaient le goulot d'étranglement, pas le CPU :-D

    J'en ai profité pour retenter btrfs. Déjà, j'ai crée une partition ext4 dédiée pour la virtualisation. Bien qu'entre temps, j'ai lu qu'on peut desactiver la fonctionnalité de Copy-On-Write (CoW) sur certains fichiers. Ca me semble pénible de devoir le faire sur chaque VM.

    Pour un PC de bureau, le principal gain que je vois avec Btrfs est la facilité pour créer un backup du système complet : un "snapshot". Ca ne protège ni du vol, ni de la casse matérielle, ni des catastrophes naturelles. Mais ça protège du "rm -rf" maladroit (oups, mauvais chemin, oups variable non initialisée en shell, etc.). Euh, de mon expérience, rm -rf est plus courant que les vols / casse / accidents :-) En 1 an, j'en ai déjà profité une fois ! J'ai pu récupérer mes photos du Japon effacées par erreur ! ("Tiens, j'ai supprimé la copie ou l'original ? Oups tiens l'original. Tiens où est la copie ? Y'a pas de copie ? Ah en fait, y'a plus aucune photo… Meeerde").

    Créer un snapshot est trivial. Accéder à un snapshot : bah c'est un vulgaire dossier en lecture seule sur le disque. On peut également rebooter l'OS sur un ancien snapshot.

    J'ai aussi lu que btrfs détecte les corruptions de données sur disque et sait récupérer une ancienne version d'un fichier dans les snapshots, mais je n'ai pas expérimenté ça. Je ne sais même pas si btrfs calcule effectivement un checksum des fichiers !?

    Ah sinon pour les perfs … Euh désolé mais pour mon utilisation, je m'en fous un peu hein :-) Ca me semble plus important d'éviter de perdre des données que de gagner 10% de perf ou autre.

    En tout cas, côté fonctionnalités, btrfs me semble supérieur à ext4.

    Pour finir, je n'ai jamais perdu le moindre fichier à cause de btrfs.

  • # Méthode testée et approuvée

    Posté par  (site web personnel) . En réponse à la dépêche Le retour de la Méthode R.A.C.H.E. Évalué à 10.

    Après être passé par la programmation agile avec des stands up meeting et une intégration continue, je dois avouer que j'étais un peu réticent à passer à la méthode R.A.C.H.E. Mais le site web m'a convaincu et j'ai été agréablement surpris. Depuis mes projets sont livrés en avance et j'ai même du temps libre pour évaluer le million de frameworks Javascript, bien qu'une migration à Perl 6 ait sûrement plus de sens en 2016.

    Par contre, un ami m'a très bien vendu une autre méthode qui semble autrement plus efficace https://www.youtube.com/watch?v=p8oi6M4z_e0 (*) ! Quelqu'un a testé et pourrait me faire des retours ? J'ai un peu peur pour l'état de mon clavier, mais ce détail mis à part, c'est assez bluffant. Tiens, je vais retourner voir la vidéo du tutoriel d'ailleurs, au cas où j'aurai loupé des détails sur la mise en place.

    (*) La méthode « Je code avec le cul, lalalalalère. Si ça bugue ou plante, j'men fous ! On m'paye pas pour tester ! Je code avec le cul, lalalalalère. Même si le programme marche pas, tu s'ras pas remboursé ! ».

  • [^] # Re: Compatibilité des drivers

    Posté par  (site web personnel) . En réponse au journal A vos risque et périls . Évalué à 2.

    Tu m'as presque convaincu d'abandonner Linux pour Windows, mais au dernier moment je me suis souvenu que c'était un OS de merde. Pas de gestionnaire de paquet, nid à malware et victime préférée des ransomwares, logiciels demandant de signer des CLUF sans arrêt, popups à gogo (ouh là là, ce logiciel libre n'est pas signé par Microsoft, c'est l'oeuvre du mal, il va pourrir ton ordinateur !), etc. Sur un Windows neuf, il n'y a pas de suite bureautique ni de logiciel de retouche photo. Bref, Windows tout seul ne sert à rien. Il faut installer tout un tas de logiciels pour avoir un ordinateur fonctionnel. Et pour développer, c'est aussi super galère. L'émulateur de terminal est inutilisable tellement il est limité (c'est quoi cette limite à 80 caractères de large, impossible à changer ?).

  • [^] # Re: Expérience similaire

    Posté par  (site web personnel) . En réponse au journal Du reverse engineering, et de la pomme. Évalué à 3.

  • [^] # Re: autres outils ou autres contournements?

    Posté par  (site web personnel) . En réponse au journal Du reverse engineering, et de la pomme. Évalué à 8. Dernière modification le 03 janvier 2016 à 12:43.

    « Et là… je continue de regarder l'asm et le débuggueur, je ne trouve plus rien. Pire, l'assembleur change d'un coup, il devient encore plus difficile à lire. (…) il semblerait que certains endroits du code incrémentent %pc de seulement quelques octets (…) En plus, les instructions qui font ça le font après avoir fait tout un tas de calculs absurdes (…) »

    Tu décris la base de l'obfuscation du code machine, un classique pour ralentir le travail de l'ingénierie inverse. objdump est vraiment le desassembleur le plus rudimentaire qui existe, ce n'est pas étonnant qu'il butte sur ces bidouilles. Il existe des outils pour "simplifier" le code machine (supprimer les calculs absurdes que tu décris) automatiquement. J'en ai entendu parlé, mais je ne pourrai t'en conseiller. Ca ne m'étonnerait pas que radare2 sache faire ce genre de chose.

    Ca me rappelle quand j'ai migré à Linux. Ayant passé pas mal de temps dans un débogueur en ring 0 (SoftICE) et IDA, j'étais un peu frustré de ne plus avoir de logiciels à déplomber. Tout le code source était disponible très facilement, et il était trivial de modifier un logiciel depuis le code source.

  • # SOS

    Posté par  (site web personnel) . En réponse à la dépêche Écrire son OS - Partie 2 : configurer ses outils. Évalué à 5.

    Moi ça me rappelle le projet SOS de Thomas Petazzoni ;-) http://sos.enix.org/fr/PagePrincipale

  • [^] # Re: Autre lien

    Posté par  (site web personnel) . En réponse au journal L'ordinateur qui a effacé cinq voix. Évalué à 6.

    « Le but est d’aller le plus vite et le plus loin possible en direction de l’open source » explique la chancelière d’Etat Anja Wyden Guelpa (…) La Chancellerie doit également étudier le risque qu’un concurrent utilise son code, notamment une entreprise mandatée par un autre canton.

    Hum, c'est moi où ils n'ont rien compris aux principes du logiciel libre ? L'idée est de donner la possibilité à n'importe qui de réutiliser le code, y compris des entreprises qui gagneraient de l'argent dessus. Arf.

    Bon, après il y a "open source" et "open source" ;-)

  • [^] # Re: Système de fichiers ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Fim 1.0.2, qui vérifie l'intégrité de vos fichiers. Évalué à 3.

    En ce qui concerne la gestion de l'intégrité des fichiers, c'est un peu le boulot du système de fichiers, non ?

    Hum oui, sauf qu'il n'y en a que peu qui supportent cette fonctionnalité. Btrfs peut stocker un hash et plusieurs versions d'un fichier. En cas d'erreur, on peut récupérer une vieille version du fichier. ZFS sait aussi stocker le hash d'un fichier.

    ext4 et XFS ne savent pas stocker le hash d'un fichier par exemple.

    Pour moi la question est plutôt d'être avertit quand un fichier est corrompu. Je vois mal Btrfs envoyer un rapport par email ou l'afficher dans une interface graphique.

    Note: depuis récemment, ext4 supporte le checksum sur les métadonnées des fichiers, mais pas sur leur contenu.

  • # Libre/Open Source, Open Law

    Posté par  (site web personnel) . En réponse à la dépêche « Student Demo Cup » : Étudiant, lance ton projet libre. Évalué à 3.

    Hum, c'est un peu dommage que ça ne soit pas "Libre" tout court. "Open Source" est un poil plus laxiste et peut poser des soucis :

    Il serait bon d'indiquer des références vers les termes :

    Je n'avais jamais entendu parler d' « open law ». À priori, c'est un peu la variante « open data » dans le monde juridique. Ca semble assez sérieux, le site web du premier ministre français en parle : http://www.dila.premier-ministre.gouv.fr/activites/experimentations/programme-open-law-le-droit-ouvert

    « Dans le cadre de sa démarche d’ouverture des données publiques, la DILA a souhaité aller plus loin en stimulant la communauté de réutilisateurs des données juridiques. Elle a co-organisé le 30 octobre 2014 avec l’Open World Forum, le NUMA et Etalab, un projet d’innovation collaborative afin d’encourager la réutilisation des données juridiques ouvertes et en faire profiter le service public de la diffusion du droit. Ce projet s’inscrit sur le long terme pour encourager les initiatives. »

  • [^] # Re: tox est amour

    Posté par  (site web personnel) . En réponse à la dépêche Programme de la PyConFR 2015. Évalué à 3.

    Oh, le titre de la conférence suivante « Guix-tox, une version fonctionnelle de tox » prête à confusion :-) tox fonctionne et est Guix qui est fonctionnel :

    GNU Guix est un gestionnaire de paquets fonctionnel (comme dans "programmation fonctionnelle") basé sur Nix.

  • [^] # Re: Il est temps de te mettre a haskell

    Posté par  (site web personnel) . En réponse à la dépêche Gérer son espace de travail git avec "gws". Évalué à 2.

    Je ne sais pas quelle est l'orientation exacte la remarque, mais si c'est pour la maintenabilité, j'ai déjà pensé à le réécrire dans un autre langage. J'avais d'ailleurs commencé en OCaml, mais ça stagne depuis quelques mois, problème de temps disponible, comme toujours :-(

    Question facilité d'installation, j'aime bien Python car Python est maintenant disponible de base sous Linux et Mac OS X. Pour ma part, quand j'arrive sous un Windows, j'installe directement Python :-) Donc j'ai Python disponible partout, il n'y a pas besoin de compilation et Python fournit beaucoup d'outils "shell" (modules os & shutil notamment).

    Il m'arrive parfois de lancer mon outil scm.py sous Windows, je crois que ça marche :-D Mais mon utilisation est super limitée sous Windows, en général j'utilise directement hg ou git en ligne de commande.

  • # Autre outil : scm.py

    Posté par  (site web personnel) . En réponse à la dépêche Gérer son espace de travail git avec "gws". Évalué à 4.

    Salut,

    J'ai écrit un outil scm.py dans un ancien boulot pour pouvoir mettre à jour une dizaine de dépôts Mercurial en une seule commande. Puis j'ai eu besoin de gérer des dépôts Git. Petit à petit, j'ai ajouté plein de commandes pour mes besoins. Je n'ai jamais trop fait de pub car je ne crois pas que ça intéresse beaucoup de monde.

    scm.py semble offrir les même fonctionnalités que gws. Il fonctionne sur Python (2 et 3, au choix).

    C'est une petite surcouche à hg/git pour améliorer un peu la sortie. Par exemple, "scm.py st" ignore de base les fichiers temporaire ".swp" de vim et le fichier "tags" (pour ctags), et adapte la sortie pour le dossier courant (alors que "hg st" affiche toujours le chemin depuis la racine du dépôt). De même, "scm.py grep PATTERN" ne recherche que dans le dossier courant (et les sous-dossiers), pas tout le dépôt.

    Pour limiter la casse en cas de conflit, les opérations qui modifient le dépôt (pull, histedit, …) mettent les modifications locales de côté sous forme d'un patch (commande stash). Ca aide un peu quand y'a plein de conflits.

    J'ai ajouté des petits trucs comme "scm.py remove_untracked" pour supprimer les fichiers que j'ai crée pendant le dev, et que je veux supprimer pour revenir à un dépôt propre. Ou encore "scm.py info" qui affiche l'URL du dépôt. Je préfère cette sortie à aller chercher dans .hg/hgrc ou .git/config.

    En espérant que ça serve…

    PS: Vu que je passe très peu de temps à développer sur ce projet, ça ne m'intéresse pas trop à contribuer à des projets similaires. De plus, j'ai un peu implémenté ma manière de développer (ex: pull utilise --rebase) et je ne cherche pas à l'imposer à d'autres. Je ne me suis jamais pris la peine d'extraire ce script dans un dépôt dédié pour faciliter les contributions.