Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Pentest sauvage à base d'IA, que dit la loi ?

Benjamin Code , le développeur préféré de votre développeur préféré, a reçu ce week-end un e-mail d'achat bidon avec le mot pentester dedans. En grattant un petit peu, il a découvert que quelqu'un s'amusait à trifouiller l'un de ses SaaS sans le prévenir.

Visiblement, c'est un autre créateur, Melvyn (melvynx), qui lui propose des formations autour de l'IA, qui pour les besoins d'une vidéo a fait tourner Kimi K3 en mode "hack" pour poutrer certains sites et montrer, vidéo à l'appui, que l'IA trouvait les failles toute seule.

Depuis, X s'écharpe. D'un côté, ceux pour qui la faille est corrigée et tout le monde y gagne, zéro dégât. De l'autre, ceux qui parlent d'accès illégal, pur et simple.

Alors qu'en est-il exactement ?

Eh bien, parlons de la loi d'abord, parce qu'en France, elle est limpide. L'article 323-1 du Code pénal punit "le fait d'accéder ou de se maintenir, frauduleusement" dans un système informatique de "trois ans d'emprisonnement et de 100 000 € d'amende". Créer un faux compte, simuler un paiement avec de faux numéros de CB, toucher aux données, ça aggrave les choses et on passe rapidement à cinq ans et 150 000 € (article 323-3).

Pour moi, l'argument du "il n'a rien cassé" ne tient pas une seconde en droit. Dans l'affaire Bluetouff, la Cour de cassation a validé une condamnation pour maintien frauduleux alors que les fichiers étaient accessibles sans mot de passe, tout simplement parce que Bluetouff avait continué en sachant l'accès anormal. Je trouve que ce qui est arrivé à Bluetouff, c'était abusé, mais peu importe mon avis, cela montre bien qu'aux yeux de la loi, zéro dégât ne veut pas dire qu'il n'y a pas d'infraction.

Ce qui fait basculer un pentest légal en délit, ce n'est ni la compétence, ni la bonne intention de la personne derrière, ni même ce que j'en pense. C'est UNE seule chose : L'autorisation préalable du propriétaire du système. Et je ne crois pas que Benjamin Code pratique le bug bounty sur ses systèmes...

Si on parle d'un point de vue hacking éthique, voire tout simplement en matière de nétiquette, la règle (et le bon sens, et la courtoisie) c'est d'abord d'avoir l'accord écrit avant de faire le test, et puis bien sûr de signaler la faille en privé à l'éditeur, tout en lui laissant assez de temps pour la corriger avant de communiquer dessus publiquement.

Par exemple, un bug bounty, c'est ça... C'est un périmètre défini, un canal de signalement, une protection pour le chercheur qui reste bien dans ce cadre. En dehors, il n'y a aucune protection. Et le dispositif français qui couvre les lanceurs d'alerte (article L2321-4 du Code de la défense) ne protège que le signalement de bonne foi à l'ANSSI, jamais l'intrusion elle-même.

Melvyn a reconnu lui-même juste après son "exploit" que "certains tests sur des SaaS tiers n'ont pas été précédés d'une autorisation écrite". Tu m'étonnes...

Alors les kikoulol de X.com peuvent bien jouer les spécialistes en long en large ou en travers, ça ne change rien. Kimi K3 ou pas, dégâts ou pas, tester le système d'un autre sans son feu vert, même avec une IA autonome, ça a un nom dans le Code pénal...

Maintenant, je ne pense pas que ça ait besoin d'aller plus loin que ça... Dans un monde idéal, ce qui serait super, c'est que Melvyn fasse des excuses publiques à Benjamin Code et aux autres créateurs de SaaS qu'il a "poutrés", et puis qu'il évite de refaire ce genre de conneries dans le futur.

Source : le billet de Melvyn sur Codelynx

Shannon - L'IA qui pentest votre code toute seule

Vous connaissez tous Kali Linux , Metasploit et compagnie… Mais est-ce que vous avez déjà vu une IA faire un pentest toute seule ? Genre, VRAIMENT toute seule. Shannon , c'est un framework open source qui lâche un agent IA sur votre code, et qui enchaîne recon, analyse de vulns, et exploitation, tout ça sans intervention humaine.

En gros, vous lui filez une URL cible et l'accès à votre code source (faut que le repo soit accessible, c'est la base), et l'agent se débrouille. Il commence alors par analyser le code en statique… puis lance des attaques dynamiques sur l'app en live. Pour cela, il déploie plusieurs sous-agents spécialisés qui bossent en parallèle via Temporal, un moteur de workflow.

Un agent pour la reconnaissance, un pour chercher les injections SQL, un autre pour les XSS, un pour les SSRF, un pour les problèmes d'authentification… Bref, chacun fait son taf et tout remonte dans un rapport final au format JSON.

Le truc, c'est que Shannon ne se contente pas de scanner bêtement comme un Nessus ou un Burp. L'agent COMPREND votre code. Il lit les routes, les middlewares, les requêtes SQL, et il construit ses attaques en fonction. Du coup, il trouve des trucs que les scanners classiques loupent complètement, genre une injection NoSQL planquée dans un endpoint obscur ou un bypass d'auth via un cookie mal valide. Attention par contre, si votre app utilise un framework un peu exotique ou du code obfusqué, y'a des chances que l'agent passe à côté… comme tout scanner, hein.

Pour ceux qui se demandent combien coute un test d'intrusion classique, ça va de 3 000 € à plusieurs dizaines de milliers d'euros. Shannon, c'est open source et ça tourne sur Docker, par contre, faudra compter environ 50 dollars en tokens API Anthropic par run… c'est pas gratuit mais c'est quand même 60 fois moins cher qu'un audit humain.

Cote installation, c'est Docker + Docker Compose, un fichier .env avec votre cle API Anthropic (la variable ANTHROPIC_API_KEY, classique), et hop, un docker compose up pour lancer le tout. Le workflow complet prend entre 1 h et 1 h 30 selon la taille de votre base de code. Vous pouvez suivre la progression en temps réel via l'interface web Temporal sur localhost:8233. (perso, j'aime bien voir les agents bosser en parallèle, ça a un côté satisfaisant).

Et attention, Shannon exécute de VRAIES attaques. C'est mutatif. Ça veut dire que si l'agent trouve une injection SQL, il va l'exploiter pour de vrai pour prouver que ça marche. Du coup, on le lance sur du code à soi, en local ou sur un environnement de test. Mais jamais en prod. JAMAIS !!!

Bon, sauf si vous aimez vivre dangereusement et que votre boss est en vacances… ^^

Les agents d'exploitation (Auth, SSRF, XSS, AuthZ) en parallèle sur la timeline Temporal

Pour en avoir le cœur net, je l'ai lancé sur une app Node.js/Express maison avec 27 endpoints d'API. 2 heures de scan, 287 transitions d'état, 7 agents qui ont bossé en parallèle… et une facture Anthropic qui pique un peu. Parce que oui, chaque agent consomme des tokens Claude à chaque étape d'analyse et d'exploitation, et ça s'additionne vite. Comptez une cinquantaine de dollars pour un run complet. Bref, c'est pas gratuit de se faire hacker par une IA.

Cote résultats par contre, plutôt parlant. Zero injection SQL exploitable, les 23 paramètres utilisateur ont été tracés jusqu'aux requêtes et Shannon a confirmé que tout était paramétré correctement. Bien joué. Par contre, il a détecté 6 failles SSRF liées à des contournements IPv6, des XSS stockées via innerHTML sans aucun échappement dans le frontend, et surtout… ZERO authentification sur les 27 endpoints. Genre, n'importe qui peut purger ma base ou cramer vos crédits API Claude sans se connecter. Bon après, c'est un outil que je me suis dev, qui est un proto local, donc c'est pas exposé sur internet.

Le rapport final est plutôt bien foutu, je trouve. Pour chaque vuln trouvée, vous avez la sévérité CVSS (critique, haute, moyenne), le vecteur d'attaque utilisé, une preuve d'exploitation avec les payloads, et surtout des recommandations de correction. Shannon va jusqu'à vous montrer la ligne de code fautive, expliquer pourquoi le bypass fonctionne, et proposer le fix. Si vous utilisez déjà des outils comme Sploitus pour votre veille secu, Shannon c'est le complément parfait pour passer de la théorie à la pratique sur votre propre code.

Le projet est encore jeune, c'est vrai, mais l'approche est intéressante. Plutôt que d'automatiser bêtement des scans, on a donc un agent qui raisonne sur le code et adapte sa stratégie. Ça change des outils qui balancent des milliers de requêtes à l'aveugle et qui vous noient sous les faux positifs.

Alors après, je vous vois venir, vous allez me dire : est-ce que ça vaut un vrai pentester qui connait votre infra par cœur et qui sait où chercher les trucs tordus ?

Pas vraiment, mais pour un premier audit à moindre coût, ça fait le taf.

Source

Hackberry Pi CM5 - Construisez votre propre cyberdeck de pentester

Vous connaissez les cyberdecks ?

Non ?? Pourtant, je vous en ai parlé déjà. Ce sont des petits ordis portables custom qu'on voit par exemple dans les films cyberpunk, où genre, le mec sort son bouzin de sa poche et hop, il peut hacker le monde entier. HACK THE PLANET !! Oué Oué !

Et bien tenez-vous bien car le Hackberry Pi CM5 9900 , c'est exactement ça, mais en vrai !

Le Hackberry Pi c'est donc un projet DIY qui transforme un Raspberry Pi Compute Module 5 en plateforme de hacking portable, ce qui est parfait pour les pentesters, les gens de l'infosec, ou simplement les geeks qui veulent un Linux puissant dans un format ultra-compact.

Le châssis mesure 143,5 x 91,8 x 17,6 mm pour 306 grammes et vous avez une coque en aluminium sur le devant et le dos, avec une partie centrale imprimée en 3D. À l'intérieur, un écran tactile 720x720, un vrai clavier physique style BlackBerry 9900, et un Raspberry Pi CM5 avec un quad-core Cortex-A76 qui tourne à 2,4 GHz.

L'écran est carré, ce qui est un format assez inhabituel mais plutôt pratique quand vous bossez en terminal. Le clavier, c'est celui du BlackBerry 9900, donc un vrai clavier physique avec des touches qui cliquent, et si vous avez déjà tapé sur un clavier tactile pendant 3 heures d'affilée, vous comprendrez pourquoi c'est cool.

Côté connectique, vous avez aussi 2 ports USB 3.0, un HDMI pleine taille, un slot M.2 2242 pour un SSD NVME, un lecteur microSD, une batterie de 5 000 mAh, et même des enceintes stéréo intégrées. La batterie vous donnera environ 5 heures en veille et 3 ou 4 heures en utilisation active. Et une recharge complète se fera en 3 heures via USB-C.

Donc plutôt que d'utiliser votre ordi principal pour vos tests de sécu, vous pouvez monter un environnement dédié sur ce petit deck. Vous flashez Kali Linux sur le SSD NVME, vous ajoutez quelques dongles WiFi style ALFA Network AWUS036ACM, peut-être un adapteur Bluetooth, un hub USB, et hop, vous avez une plateforme de pentesting portable.

Le truc cool, c'est surtout que le projet est modulaire donc vous pouvez par exemple modifier l'antenne WiFi.. Les fichiers STL sont également dispo en ligne, donc si vous avez une imprimante 3D, vous pouvez vous imprimer un support d'antenne custom. Certains ont même ajouté des radios logicielles (SDR) pour jouer avec les fréquences radio.

Ensuite, l'installation est assez simple. Vous commencez par insérer le module CM5 dans son slot dédié, vous ajoutez le SSD NVME, vous imprimez éventuellement votre support d'antenne custom, vous flashez Raspbian sur une carte microSD pour le boot initial, puis vous installez Kali Linux sur le NVME, et vous configurez les options de boot pour démarrer directement depuis le SSD.

Si vous avez capté tout ce qui est écrit ci-dessus, ce sera simple oui. Sinon, faudra lire un peu de doc ^^.

Le système supporte aussi plusieurs OS : Kali pour le pentesting, Pi OS par défaut, Ubuntu, LineageOS (Android), Manjaro, TwisterOS, ou même ParrotOS. Et vous pouvez basculer entre les environnements selon ce que vous voulez faire.

Maintenant niveau prix, comptez environ 300-350 dollars pour le setup complet. Le châssis Hackberry Pi CM5 9900 coûte 168 dollars, le module Raspberry Pi CM5 Lite avec 16 Go de RAM tourne à 132 dollars, vous ajoutez un SSD NVME de 256 Go, la batterie 5 000 mAh avec charge MagSafe, et quelques accessoires.

C'est dispo chez plusieurs revendeurs : Elecrow, Carbon Computers, Tindie, ou même Etsy mais le module CM5 par contre, faudra le sourcer séparément, genre chez Pishop.us.

Ce projet a été développé par ZitaoTech, c'est open source, donc toute la communauté peut contribuer, améliorer les designs, partager des configs, etc et y'a d'ailleurs déjà pas mal de mods qui circulent, notamment des antennes externes pour améliorer la portée WiFi pendant les tests de pénétration.

Comme ça, si vous êtes dans la sécu offensive, c'est quand même pratique d'avoir un device dédié qui ne risque pas de foutre en l'air votre config perso si un test part en vrille. Vous isolez vos outils, vos payloads, vos exploits sur un système séparé, et si ça plante, bah vous rebootez le deck, c'est tout.

Et puis franchement, c'est plutôt classe je trouve de sortir un truc comme ça de sa poche. Ça donne l'impression que vous êtes en mission, comme dans les films... vous dégainez votre petit cyberdeck avec son clavier BlackBerry, vous vous branchez sur un port Ethernet, et hop, vous lancez vos scans. Ça a plus de gueule je trouve qu'un laptop Dell sous Windows avec un autocollant Mr. Robot ^^.

A découvrir ici !

Dead Domain Discovery DNS - Une veille mortuaire pour les domaines

Vous naviguez sur le web en mode pépouze comme tous les jours… Et comme tous les jours, votre navigateur charge des scripts, des CSS, des cookies, des images, parfois des iframes. Et malheureusement, certains de ces trucs viennent de domaines qui n’existent plus. Vous ne vous en rendez pas compte et votre navigateur non plus. Mais Dead Domain Discovery DNS le sait, lui. Et il va vous le dire.

Dead Domain Discovery DNS , c’est un outil créé par Lauritz Holtmann , un chercheur en sécurité allemand et c’est un DNS forwarder UDP super léger codé en Python qui écoute sur le port 53 de votre ordinateur et note tous les domaines qui ne répondent plus. Ce n’est donc pas un scanner actif mais plutôt un observateur passif qui regarde passer les requêtes DNS et repère les morts.

Vous configurez Dead Domain Discovery comme votre serveur DNS primaire comme ça, toutes vos requêtes DNS passent par lui. Il forward ensuite ça vers un resolver upstream, genre Google DNS ou Cloudflare. Si un domaine ne résout pas, il réessaye sur un resolver secondaire mais si le secondaire échoue aussi, il marque alors le domaine comme “potentiellement mort” puis toutes les 15 secondes, il vous envoie un message contenant les nouveaux domaines HS découverts.

Les notifications partent sur Telegram, par email, ou via un webhook selon ce que vous voulez. Rassurez-vous, y’aura pas de fausse alerte à répétition puisqu’un domaine notifié une fois ne l’est plus pendant un certain temps.

L’intérêt pour les chercheurs en sécurité, c’est que les domaines morts sont une surface d’attaque intéressante. Un domaine expire, quelqu’un d’autre le réenregistre mais comme les enregistrements DNS qui pointaient vers l’ancien propriétaire existent toujours, ça ouvre des portes pour mettre en place des sous-domaines, des CNAME, charger des scripts externes autorisés…etc car tout continue de pointer vers le domaine mort. Ça permet de contrôler une partie du trafic autorisé.

Cette attaque est connue et s’appelle le subdomain takeover ou domain hijacking. Par exemple en 2024, l’attaque Sitting Ducks a mis plus d’un million de domaines à risque , exploitée par des cybercriminels russes. Et début 2025, des domaines expirés ont permis de contrôler plus de 4000 backdoors sur des systèmes gouvernementaux, académiques et privés. La campagne SubdoMailing a même utilisé plus de 8000 domaines légitimes pour envoyer des emails de phishing, en exploitant leur réputation pour contourner les filtres anti-spam. Donc autant vous dire que c’est un vrai problème…

Dead Domain Discovery vous aide donc à trouver ces domaines avant qu’un attaquant ne le fasse. Ensuite, si le domaine est réenregistrable, vous avez 2 options. Soit vous le réenregistrez vous-même pour sécuriser votre infrastructure, soit vous signalez le problème au propriétaire du site qui référence ce domaine HS.

L’infra recommandée par Lauritz pour faire tourner Dead Domain Discovery est un Raspberry Pi configuré comme DNS primaire de votre réseau. Faible conso, c’est toujours allumé, et ça permet de tout surveiller en continu. Mais vous pouvez aussi le déployer sur un VPS si vous voulez monitorer un réseau distant.

Notez que les notifications Telegram nécessitent un bot API token et un chat ID. L’email passe par du SMTP classique et les webhooks acceptent des headers personnalisés, ce qui est pratique si vous voulez intégrer ça dans votre système de monitoring existant.

L’outil dispose aussi d’une extension Chrome qui fais la même chose et scanne les pages web pour iframes, scripts et autres styles externes, puis vérifie si leurs domaines résolvent. Même auteur, même principe, mais côté navigateur. L’extension utilise l’API Google DNS pour vérifier les domaines et ne communique aucune donnée à son auteur. Vous scannez, vous voyez les morts au combat, et ensuite, vous pouvez agir.

Bref, vous l’aurez compris, Dead Domain Discovery ne vous protègera pas directement mais vous dira juste quels cadavres traînent dans votre réseau.

À vous ensuite de les enterrer comme il se doit.

Deep Eye - Le scanner de vulns multi-IA

Ce serait cool si on pouvait réunir les Avengers des LLMs pour les faire bosser ensemble sur de la recherche de faille de sécurité ? OpenAI, Anthropic, X.AI et Meta ensemble contre les forces du mal, c’est maintenant possible avec Deep Eye , un super scanner de vulnérabilités qui transforme les quatre IA rivales en équipe de pentesteurs. Vous allez voir, c’est assez génial !

Deep Eye, c’est donc un outil Python open source qui scanne les sites web et les API pour trouver des vulnérabilités. SQL injection, XSS, command injection, SSRF, path traversal, authentication bypass, au total y’a plus de 45 méthodes d’attaque automatisées. Vous lui indiquez une URL, et il teste tout en switchant entre les services d’IA selon le contexte.

Dans le contexte d’un pentest légitime, Deep Eye a même trouvé comment parler aux IA pour qu’elles acceptent de pondre du code un peu sensible. Et ça tombe bien car chaque IA a ses forces et ses faiblesses. GPT-4 par exemple excelle sur les payloads créatifs et les contournements de filtres. Claude lui est plus méthodique, et capable de mieux analyser le contexte et de génèrer des attaques adaptées au framework détecté. LLAMA en local quand à lui est rapide et ne coûte rien en appels API. Et Grok ? Bah il a le mérite d’être dispo même s’il est loin d’être le meilleur.

Deep Eye en tout cas est capable des les utiliser toutes selon la situation. Pour l’installer, ça se passe en 3 commandes :

Vous installez ça comme ceci :

git clone https://github.com/zakirkun/deep-eye.git
cd deep-eye

Puis sous Windows :

cd scripts
./install.ps1

Ou sous macOS / Linux :

chmod +x scripts/install.sh
cd scripts
./install.sh

Ensuite, vous n’avez plus qu’à configurer vos clés API dans config/config.yaml puis à le lancer comme ceci avec Python :

python deep_eye.py -u https://example.com

Et c’est parti pour le scan ! Il commencera par de la reconnaissance passive, énumèrera les DNS, découvrira les sous-domaines, testera les fameuses 45 méthodes d’attaque, génèrera les payloads avec les IA, et vous sortira un rapport incroyable (ou pas) en PDF, HTML ou JSON.

Bien sûr, Deep Eye est conçu pour des tests de sécurité autorisés uniquement donc utilisez le uniquement sur vos propres systèmes, ou sur des systèmes pour lesquels vous avez une autorisation d’agir écrite car vous le savez, scanner un site sans permission, c’est illégal !!!

Bref, ça ne remplace pas encore de vrais pentesters mais ça peut permettre de faire un peu d’analyse en amont histoire de voir où on met les pieds.

Merci à lorenper pour la découverte 🙏

BruteForceAI - L'IA qui cracke vos mots de passe

Si vous faites du pentest, il doit vous arriver parfois de lancer un petit bruteforce sur un formulaire un peu pourri, pour tester les mots de passe classiques gens 1234, ou admin…etc. Mais parfois, certains formulaires de connexion donnent envie de se flinguer… Les sélecteurs CSS changent à chaque rafraîchissement, les noms des champs sont aléatoires…etc bref, ça peut vite être un véritable labyrinthe pour automatiser quoi que ce soit.

Heureusement pour vous les amis, le développeur Mor David s’est occupé du problème et a inventé BruteForceAI, un outil de bruteforce qui comme son nom l’indique, embarque une bonne dose d’intelligence artificielle.

La petite subtilité donc avec BruteForceAI, c’est qu’il ne se contente pas de lancer des milliers de combinaisons en mode berserk. Non, l’outil étudie d’abord la page HTML avec un modèle de langage qui comprend la structure du formulaire. Cette première phase atteint un joli 95% de précision dans l’identification des éléments de connexion, comme ça plus besoin de passer des heures à mapper manuellement les sélecteurs CSS.

C’est un système en deux temps où l’IA déchiffre d’abord le HTML et génère automatiquement les sélecteurs CSS nécessaires. Puis seulement après, l’attaque démarre avec des comportements qui imitent un humain : délais aléatoires, rotation des user-agents, logique de retry intelligente. L’outil peut même détecter les changements dans le DOM pour valider qu’une connexion a réussi.

Pour faire tourner la bête, il vous faudra Python 3.8+, Playwright pour l’automatisation du navigateur, et un modèle LLM. Vous avez le choix entre Ollama en local avec llama3.2:3b (pratique pour rester discret) ou Groq dans le cloud avec llama-3.3-70b-versatile si vous voulez plus de puissance.

Les modes d’attaque proposés sont assez classiques mais efficaces… Par exemple, le mode Brute-Force teste exhaustivement toutes les combinaisons possibles, tandis que le mode Password-Spray est plus subtil puisqu’il teste chaque mot de passe sur plusieurs comptes pour éviter les blocages après X tentatives échouées. Cette dernière technique est d’ailleurs redoutable contre les entreprises qui imposent des politiques de mots de passe uniformes.

D’après une analyse récente de CipherX Labs , l’IA rend le cracking de mots de passe 100 fois plus rapide qu’avec les méthodes traditionnelles. Un mot de passe de 10 caractères, même avec majuscules, minuscules et symboles, est maintenant considéré comme faible. L’aspect éthique est évidemment crucial ici et Mor David insiste sur le fait que l’outil est uniquement destiné aux tests de sécurité autorisés, à la recherche et aux programmes de bug bounty. Si vous faites des choses illégales avec ça, vous irez obligatoirement en prison et ce sera bien fait pour vous !

BruteForceAI dispose aussi d’un système de notifications plutôt bien pensé. Quand l’outil trouve des identifiants valides, il peut vous prévenir via Discord, Slack, Teams ou Telegram. Tout est loggé dans une base SQLite pour l’analyse post-attaque. Le côté multi-threadé permet aussi de lancer plusieurs attaques en parallèle, avec des timing humains pour éviter la détection.

Alors pour se défendre contre ce genre d’outils, les méthodes classiques ne suffisent plus… Par exemple, compter les tentatives de connexion échouées, c’est un peu has been… Non, maintenant il vous faut des systèmes de détection comportementale qui analysent les patterns d’accès en temps réel, du type UEBA (User and Entity Behavior Analytics). Les entreprises qui n’ont pas encore intégré ce genre de solutions sont aujourd’hui des cibles faciles pour les cybercriminels.

En plus, PassGAN et d’autres outils similaires apprennent à partir des bases de données de mots de passe qui ont fuité…. Plus il y a de fuites, plus l’IA devient efficace pour prédire les prochains mots de passe. C’est un cercle vicieux où chaque fuite de données nourrit la machine qui causera les prochaines fuites de données…

Maintenant si vous voulez tester BruteForceAI (sur vos propres systèmes, hein), l’installation est simple :

clonez le repo, installez les dépendances avec pip, téléchargez un des navigateurs Playwright, et c’est parti. Les commandes de base ressemble à ça :

# Etape 1: Analyser le formulaire
python main.py analyze --urls targets.txt --llm-provider ollama --llm-model llama3.2:3b

# Etape 2: Attaquer avec 20 threads
python main.py attack --urls targets.txt --usernames users.txt --passwords passwords.txt --threads 20 --delay 5 --jitter 2

Mais avant de vous lancer, assurez-vous bien d’avoir l’autorisation écrite du propriétaire du système que vous testez.

Bref, si vous utilisez encore des mots de passe de moins de 14 caractères ou si vous n’avez pas activé la double authentification partout où c’est possible, je pense que vous devriez rapidement reconsidérer vos choix de sécurisation…

Source

Cameradar - L'outil qui trouve et accède aux caméras de surveillance mal sécurisées

Vous saviez que des milliers de caméras de surveillance sont accessibles sans mot de passe sur Internet ? Et bien Cameradar est l’outil qui vous aidera à trouver ces caméras vulnérables en quelques secondes. Et bien sûr, comme je suis super sympa, je vais vous montrer comment ça marche (pour tester VOS caméras, bien sûr).

Développé par Ullaakut, Cameradar est un scanner RTSP open source écrit en Go qui fait trois trucs essentiels : il détecte les flux RTSP sur un réseau, identifie le modèle de caméra, et lance des attaques par dictionnaire pour trouver les identifiants. En gros, c’est l’outil parfait pour vérifier si vos caméras sont bien sécurisées.

Comment une IA est devenue numéro 1 mondial du bug bounty

Une IA qui deviendrait meilleure que les meilleurs hackers éthiques de la planète, ce n’est plus de la science-fiction, c’est ce qui vient de se passer vraiment avec XBOW, une intelligence artificielle qui a littéralement explosé le classement mondial du bug bounty. Pour la première fois dans l’histoire, un robot a atteint la première place du leaderboard américain de HackerOne, la seconde plateforme de référence du bug bounty après YesWeHack évidemment ^^.

Arrêtons de (dé)tester nos applications web

Dans ce billet, nous allons discuter d’un sujet crucial pour les développeurs et les testeurs : la pertinence des tests de bout en bout (ou end-to-end E2E) web.
En effet, lorsqu’il s’agit de tester des applications web, les tests automatisés jouent un rôle vital, car ils peuvent être exécutés à plusieurs reprises sans effort et manuel supplémentaire. Parmi les tests automatisés, les tests bout en bout sont particulièrement importants, car ils simulent des cas d’utilisation réels. Cependant, il existe des pratiques courantes qui limitent la pertinence de ces tests.
Nous allons ici examiner 3 mauvaises pratiques, ou erreurs courantes, qui limitent la pertinence de vos tests de bout en bout.

  • lien nᵒ 1 : UUV

1. Écrire des tests centrés développement

La première erreur courante que l’on peut citer est de rédiger des tests E2E centrés sur la personne qui développe.
Pour comprendre ce que nous entendons par test E2E centré sur le développement, prenons un exemple.
Imaginons que je souhaite écrire un test pour vérifier que le titre « Welcome to weather App » et le bouton « Get Started » sont bien présents sur la page web suivante :

Application Weather App

Avec un outil populaire comme Cypress (sous MIT), je peux écrire le test suivant :

Test Développer centric

Et ça marche ! Mais ce test a, au moins, les 2 limitations suivantes :

  • Il est écrit en Typescript : Il n’est donc pas facile à comprendre pour les personnes qui ne développent pas (on entend ici toute personne qui ne comprend pas du code de programmation), et c’est un peu dommage, car il est censé représenter un cas d’utilisation réel.
  • Utilisation de testId : les testIds sont des attributs ajoutés par les développeurs pour faciliter la localisation des éléments de la page lors des tests.

Mais lorsqu’on les utilise dans nos tests, nous n’interagissons pas avec notre application comme un utilisateur final. Nos utilisateurs finaux ne connaissent pas les ID de test, ils connaissent les boutons, les liens, les champs de formulaire, ils connaissent tout ce qu’ils peuvent voir et/ou entendre.

Alors, comme bonne pratique, adoptons une approche centrée sur la personne utilisatrice (user-centric), qui consiste à utiliser des éléments connus de la personne utilisatrice finale pour interagir comme elle le ferait avec notre application.
Cet exemple montre le même test écrit avec la solution UUV.

Test User centric

Le nom et le rôle accessibles sont utilisés pour exprimer le cas d’utilisation dans un langage anglais simple.

2. Oublier l’utilisation du clavier

La seconde erreur courante est de négliger l’usage du clavier lors des tests. Les directives WCAG stipulent que tous les éléments interactifs doivent être accessibles via une interface clavier. Cela profite non seulement aux personnes ayant des handicaps visuels ou moteurs, mais aussi à ceux qui préfèrent utiliser le clavier pour des raisons de productivité.
Pour remplir un formulaire comme celui-ci :

Formulaire à remplir

Les utilisateurs déplacent naturellement une souris pour naviguer, car c’est l’usage par défaut qui est enseigné pour manipuler un ordinateur. Les développeurs ont donc l’habitude de reproduire ce genre de scénario lors de tests E2E, comme sur cet exemple :

Remplissage du formulaire à la souris

Pour les plus expérimentés d’entre nous, la navigation au clavier est un excellent moyen d’augmenter la productivité. Ainsi lorsque nous testons nos applications, une bonne pratique est de vérifier l’usage du clavier. Pour cet exemple, il convient donc de vérifier le remplissage du formulaire au clavier. Voici un scénario écrit avec l’outil UUV pour le faire :

Remplissage du formulaire au clavier

La première partie est identique à la navigation à la souris. Ensuite, nous plaçons le focus sur le coin gauche de l’application. Puis nous déplaçons le focus lorsque nous appuyons sur la touche tabulation et nous vérifions que le focus est sur le lien nommé Weather App's Logo. Nous reproduisons ce mécanisme avant de le soumettre.

3. Ignorer l’accessibilité (#a11y)

Contrairement à ce que l’on pourrait croire, les tests E2E sont un excellent contexte pour effectuer des vérifications d’accessibilité en utilisant des outils comme axe-core (sous MPL2) pour effectuer des contrôles de référence WCAG, ou en utilisant des bibliothèques comme uuv/a11y pour les vérifications RGAA. Il est important de garantir la non-régression de l’accessibilité lorsque l’on met à jour nos interfaces, surtout à une époque où l’intelligence artificielle prend de plus en plus de place.

Voici un exemple de scénarios effectuant des vérifications d’accessibilité :

Vérification d’accessibilité

En résumé

Commencer ou continuer à :

  • Écrire des tests centrés sur l’utilisation
  • Tester l’utilisation du clavier
  • Effectuer des vérifications d'accessibilité

En adoptant ces pratiques, nous pouvons nous assurer que nos applications web sont robustes, accessibles et prêtes pour une utilisation réelle par tous nos utilisateurs.

Mais au fait, qu’est-ce que UUV ?

Logo UUV

Pour faire simple, UUV est une solution opensource (MIT) qui facilite l’application des pratiques évoquées et de bien d’autres en matière de tests E2E.

Disponible en tant que dépendance npm, UUV offre des phrases prêtes à l’emploi user-centric pour rédiger les tests E2E. Pour les développeurs, le plugin Jetbrains et l’extension VS Code facilite l’écriture des scénarios. De plus, l’assistant UUV, une application de bureau, permet de générer des scénarios de tests comme ceux pour vérifier la navigation au clavier, les interactions avec les boutons, et bien plus encore.

Vous pouvez tester UUV directement sur vos projets ou à l'aide du Kata UUV E2E et contribuer à son développement sur GitHub.

Merci pour votre lecture, n'hésitez pas à partager votre avis en commentaire !

Commentaires : voir le flux Atom ouvrir dans le navigateur

TuxRun et le noyau Linux

Il y a quelques années, je vous avais présenté TuxMake, un utilitaire pour faciliter la (cross-)compilation du noyau Linux supportant une grande variété de toolchains différentes : TuxMake et le noyau Linux.

TuxMake facilitant la compilation du noyau Linux, nous nous sommes alors attaqués à rendre l’exécution de ces noyaux plus aisée : ainsi est né TuxRun.

Exemples

TuxRun propose une interface en ligne de commande simple pour exécuter un noyau dans QEMU. TuxRun se charge de fournir un environnement suffisant pour démarrer le noyau avec QEMU.

tuxrun --device qemu-arm64 \
       --kernel https://example.com/arm64/Image

TuxRun va alors télécharger le noyau et un système de fichier compatible avec ARM64 puis lancer qemu-system-arm64 avec les bons arguments et afficher les logs du boot.

La ligne de commande de qemu générée par TuxRun est la suivante :

/usr/bin/qemu-system-aarch64 \
    -cpu max,pauth-impdef=on \
    -machine virt,virtualization=on,gic-version=3,mte=on \
    -nographic -nic none -m 4G -monitor none -no-reboot -smp 2 \
    -kernel /.../Image \
    -append "console=ttyAMA0,115200 rootwait root=/dev/vda debug verbose console_msg_format=syslog systemd.log_level=warning earlycon" \
    -drive file=/.../rootfs.ext4,if=none,format=raw,id=hd0 \
    -device virtio-blk-device,drive=hd0

Il est également possible de lancer une suite de tests directement depuis la ligne de commande :

tuxrun --device qemu-arm64 \
       --kernel https://example.com/arm64/Image \
       --tests ltp-smoke

Les résultats de la suite de test seront analysés par TuxRun et la valeur de retour de TuxRun sera 0 uniquement si la suite de tests passe intégralement. Ceci permet d’utiliser TuxRun pour valider qu’une suite de tests donnée fonctionne toujours correctement sur un nouveau noyau.

Architectures

QEMU

Grâce à QEMU, TuxRun supporte de nombreuses architectures:
- ARM: v5/v7/v7be/64/64be
- Intel/AMD: i386/x86_64
- MIPS: 32/32el/64/64el
- PPC: 32/64/64le
- RISCV: 32/64
- sh4, sparc64, …

La liste complète est disponible dans la documentation.

FVP

Il est également possible d’utiliser FVP, le simulateur de ARM pour simuler un processeur ARMv9. FVP est un simulateur bien plus précis que QEMU au prix d’un temps d’exécution bien supérieur.

FVP permettant de configurer et simuler de nombreux composants du processeur, TuxRun propose une configuration permettant de démarrer et tester Linux dans un temps raisonnable.

tuxrun --device fvp-aemva \
       --kernel https://example.com/arm64/Image \
       --tests ltp-smoke \
       --image tuxrun:fvp

ARM ne permettant pas (pour le moment) de redistribuer les binaires FVP, il faut construire localement le container tuxrun:fvp.

Système de fichiers

Par défaut, TuxRun télécharge et utilise un système de fichier compatible avec l’architecture cible. TuxRun fournit donc 20 systèmes de fichiers différents, un pour chaque architecture disponible.

Ces systèmes de fichiers sont basés sur buildroot et comportent les outils nécessaires pour faire tourner la majorité des suites de tests supportés par TuxRun. La liste complète est disponible dans la documentation.

Il est également possible d’utiliser un autre système de fichiers :

tuxrun --device qemu-arm64 \
       --kernel https://example.com/Image \
       --rootfs https://example.com/rootfs.ext4.zst

Runtimes

TuxRun télécharge et utilise un container que nous maintenons. Ce container inclut l’ensemble des binaires nécessaires ainsi que QEMU. Par défaut, TuxRun utilise toujours la dernière version du container disponible.

Il est cependant possible de spécifier une version particulière afin de reproduire plus facilement une erreur. Les nouvelles versions de QEMU introduisent quelques fois des régressions dans les suites de tests. Il est alors nécessaire d’utiliser exactement la même image pour reproduire le problème.

Reproduire un test

TuxRun est utilisé, via tuxsuite notre service de compilation et de test dans le cloud, par le projet LKFT (Linux Kernel Functional Testing) de Linaro. Lorsqu’une régression est détectée, il suffit de fournir la ligne de commande TuxRun pointant sur les artefacts utilisés pour pouvoir reproduire le problème.

Les développeurs du noyau sont alors à même de reproduire et de corriger les régressions détectées par LKFT. TuxRun simplifie ainsi énormément la reproduction du test.

Un exemple parmi tant d’autres : selftests: sigaltstack: sas…

Installation

TuxRun étant un programme Python, il est possible de l’installer depuis pypi :

python3 -m pip install tuxrun

Nous fournissons également un paquet Debian, et un rpm.

TuxMake et Tuxrun

Dans un prochain article, je vous montrerai comment combiner TuxMake et TuxRun pour automatiquement trouver le commit responsable de la régression dans le noyau.

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌