MISP est une plateforme open source de partage et d'analyse d'informations sur les menaces cybernétiques. Elle permet de collecter, stocker, distribuer et partager des indicateurs de compromission et des informations sur les incidents de sécurité. MISP offre des fonctionnalités de visualisation, de corrélation automatisée, et d'exportation vers d'autres systèmes comme les SIEM. Elle repose sur des standards ouverts et des taxonomies structurées, facilitant ainsi le partage d'informations entre organisations et communautés. MISP est conçu pour être simple d'utilisation et favorise la collaboration pour une détection plus rapide et efficace des attaques.
Ce billet de blog présente une configuration impliquant trois outils : StepCA, Caddy et MISP, via le protocole ACME. L'auteur, ayant travaillé sur du CTI (Cyber Threat Intelligence), utilise MISP, une plateforme open source pour partager des informations sur les menaces. Il explique comment il a mis en place une PKI interne avec StepCA pour gérer les certificats TLS, et utilise Caddy comme reverse proxy pour le SSL offloading. Le lab comprend une root CA offline, une sub CA avec serveur ACME privé, un serveur DNS, et une VM avec Docker exécutant Caddy et MISP. L'article détaille également le rôle du CTI et de MISP dans la cybersécurité proactive.
L'auteur propose une alternative à la "Ralph loop", appelée "Eric loop", inspirée par le personnage calculateur et manipulateur d'Eric Cartman de South Park. Contrairement à la Ralph loop, la boucle Eric implique une séparation des tâches en plusieurs étapes (planification, exécution, vérification, review) et une formalisation des tâches par une IA. L'auteur illustre ce concept en créant un projet nommé Tiny-till, une application de caisse simple pour marchands ambulants, en utilisant un outil appelé Task-o-matic. L'idée est de mieux contrôler et optimiser l'utilisation des modèles d'IA en séparant les préoccupations et en adaptant les prompts à chaque phase de l'exécution des tâches.
L'article propose une méthode en 10 étapes pour concevoir un système personnel permettant de vivre intentionnellement et de réduire le stress. Les étapes clés incluent l'auto-observation, la définition des priorités, la fixation d'objectifs mesurables, la cartographie des flux de travail, le choix d'outils adaptés, l'automatisation, la création de micro-habitudes, l'intégration de réflexions régulières, la mise en place de systèmes de repos et la conception pour une adaptabilité à long terme. L'objectif est de transformer ses objectifs en processus répétables, minimisant ainsi la fatigue décisionnelle.
L'auteur partage son expérience d'optimisation de traitement de données pour son blog, passant de plusieurs heures à quelques minutes. Il explique son architecture basée sur l'event sourcing pour analyser les visites, stockées dans une base de données et traitées par différents projecteurs. Face à un problème de performance lors de la reprocessus de 11 millions de lignes, il décrit son approche pour améliorer les performances, en commençant par établir une ligne de base de 30 événements par seconde.
Ce billet explique comment réduire la taille d'un flux RSS en utilisant des outils comme make et pandoc. L'auteur, constatant que les robots représentent une grande partie du trafic de son site, notamment les agrégateurs de flux RSS, décide d'optimiser son flux RSS pour réduire la charge serveur. Il décrit comment il utilise un makefile pour orchestrer la génération du flux RSS à partir de fichiers markdown, en remplaçant dynamiquement certaines variables avec envsubst et en convertissant le contenu avec pandoc. L'objectif est de rendre le flux plus léger tout en conservant la simplicité et l'efficacité de la génération.
Scott H Young explore la notion d'énergie, un concept clé pour la productivité. Contrairement à l'idée simple d'une "batterie" qui se décharge, la science révèle une complexité impliquant des facteurs biologiques, psychologiques et sociologiques. L'article plonge dans les controverses scientifiques, comme la théorie de l'épuisement de l'ego, qui suggère que l'énergie mentale est une ressource limitée, influencée par des tâches exigeantes et potentiellement augmentée par l'exercice régulier de l'autocontrôle. Des études ont lié cette énergie à des niveaux de glucose dans le cerveau, montrant que les boissons sucrées peuvent temporairement restaurer cette énergie. Pour mieux gérer notre énergie, il est crucial de comprendre ces mécanismes complexes.
Cet article explore les différents types d'executors de GitLab Runner, essentiels pour optimiser vos pipelines CI/CD. Il explique en détail le fonctionnement des GitLab Runners, leur architecture, et les implications en termes de sécurité, coûts, et scalabilité. L'article souligne l'importance de comprendre les flux réseau et les distinctions entre le Runner Manager et les environnements d'exécution pour une configuration efficace et sécurisée.
Ploum, enseignant à l'École Polytechnique de Louvain, partage sa méthode d'examen innovante pour son cours "Stratégies Open Source", adaptée à l'ère des chatbots. Il permet aux étudiants d'utiliser toutes les ressources, y compris Internet, et même les chatbots, à condition de respecter certaines règles strictes. La plupart des étudiants (57 sur 60) ont choisi de ne pas utiliser de chatbots, préférant faire leurs recherches de manière traditionnelle. Ploum explique que cette approche vise à aider les étudiants à mieux comprendre l'Open Source, tout en les responsabilisant sur l'utilisation des outils numériques.
Ce dépôt GitHub, "llm-course" de mlabonne, propose un cours complet sur les grands modèles de langage (LLM). Il est structuré en trois parties : les fondamentaux (mathématiques, Python, réseaux de neurones), le scientifique (construction de LLM avec les dernières techniques) et l'ingénieur (création et déploiement d'applications basées sur LLM). Le cours inclut des notebooks Colab et des ressources supplémentaires comme le "LLM Engineer's Handbook". Il couvre des sujets comme l'architecture des LLM, la tokenization, les mécanismes d'attention et les techniques de sampling. Des références visuelles et des tutoriels sont également fournis pour faciliter la compréhension.
Ce tutoriel du blog de Genma explique les nouvelles fonctionnalités apportées par la mise à jour du firmware des Freebox Server, notamment l'intégration d'un serveur TFTP et une configuration complète du DHCP. Le serveur TFTP permet de transférer des fichiers de configuration et des images de démarrage, utile pour des environnements comme un homelab. La configuration DHCP est désormais très granulaire, permettant de définir des options réseau, des services et des paramètres de routage spécifiques. La liste détaillée des options DHCP est classée par catégories, couvrant des aspects généraux, des services, la configuration hôte, et le routage IP.
Seboss666 partage son expérience de sauvegarde de Windows avec Plakar, un outil français inspiré de Borg, offrant chiffrement et dépôt distant (SFTP/SSH/S3). Malgré un setup bien documenté, l'auteur critique la nécessité de créer un compte pour accéder aux intégrations, préférant compiler depuis les sources. Il contourne les difficultés de compilation sous Windows via WSL et cross-compilation avec Go. Un retour d'expérience utile pour les utilisateurs Windows de Plakar.
L'auteur partage son expérience et ses réflexions sur l'importance de diversifier ses compétences au cours de sa carrière, plutôt que de se cantonner à une seule spécialité. Il suggère de viser un profil en "N" ou en "M", c'est-à-dire d'acquérir des compétences dans plusieurs domaines. Par exemple, un SRE (Site Reliability Engineer) ayant également une expérience en développement sera plus à même de comprendre les besoins des développeurs et de travailler efficacement avec eux. De plus, cette diversité de compétences permet de mieux détecter les problèmes et de participer activement à la résolution des incidents. L'auteur encourage à changer de poste pour acquérir de nouvelles expériences et compétences, ce qui est enrichissant et valorisant.
Dokploy est un PaaS open source simplifiant le déploiement moderne sur des serveurs Linux, qu'ils soient on-premise ou dans le cloud. Son installation via un script automatisé est accessible même aux débutants. L'interface intuitive permet de gérer des projets, du monitoring, des tâches planifiées, et offre un accès direct aux configurations de Traefik et Docker Swarm. Dokploy supporte également la gestion de clusters multi-nœuds, des registres Docker personnalisés, des backups vers S3, et des certificats SSL. Un onglet AI est disponible pour générer des Dockerfiles ou configurations. Un tutoriel montre comment déployer un site WordPress en quelques étapes.
Ce billet explique comment intégrer Meilisearch à Symfony pour une recherche ultra-rapide et résiliente. L'auteur critique les solutions traditionnelles comme SQL LIKE, qui sont lentes et peu tolérantes aux erreurs, et les solutions tierces comme Google Programmable Search, qui posent des problèmes de confidentialité. Meilisearch, écrit en Rust, offre une solution performante et légère. L'article détaille l'implémentation d'une interface standardisée pour l'indexation des contenus et un service de recherche résilient qui bascule sur une solution SQL en cas de panne. Une lecture intéressante pour améliorer la recherche sur un site Symfony.
Ce billet explique comment implémenter un audit de sécurité DAST (Dynamic Application Security Testing) automatisé avec OWASP ZAP, Symfony et Docker. L'auteur décrit l'architecture de l'intégration, qui repose sur trois composants clés : l'image Docker officielle de ZAP, l'Automation Framework pour configurer le scan via un fichier YAML, et l'orchestrateur Castor pour gérer l'interconnexion réseau. Le défi principal est de permettre au conteneur ZAP d'accéder à l'application locale, résolu en utilisant le flag --add-host pour mapper dynamiquement le domaine cible. L'automatisation est réalisée via l'Automation Framework de ZAP, permettant de définir le périmètre de l'audit et d'exclure des chemins spécifiques pour éviter les faux positifs. Le processus inclut un spider pour explorer l'application et des scans pour détecter les vulnérabilités.
L'article "Microservices Are Killing Your Performance (And Here's the Math)" explique comment les microservices, bien qu'ils promettent une meilleure scalabilité et maintenabilité, peuvent en réalité nuire aux performances. L'auteur compare les appels de fonctions en processus (monolithes) avec les appels HTTP entre microservices, montrant que ces derniers sont 1 000 à 5 000 fois plus lents. Un exemple concret de flux de checkout e-commerce illustre cette différence, avec une architecture microservices 15 % plus lente qu'une architecture monolithique. L'article aborde également le problème N+1 des services, où les dépendances entre services entraînent des temps d'exécution plus longs. Des benchmarks réels montrent que les microservices peuvent être jusqu'à 80 % plus lents dans certaines situations, malgré des conditions réseau parfaites et l'absence de pannes de service.
L’article « Tests & Cluedo : enquêtez sur votre code » utilise une métaphore policière pour expliquer les différents types de tests en développement logiciel. Le test unitaire isole une classe (comme un interrogatoire en salle blanche) en utilisant des doublures (mocks) pour éliminer les dépendances externes, permettant de cibler précisément la source d’un bug. Le test fonctionnel reconstitue le crime en testant l’intégration des composants (router, controller, service, template) dans un environnement réel, mais sans interface graphique. Enfin, le test End-to-End (E2E) simule l’expérience utilisateur complète avec un vrai navigateur, utile pour les parcours critiques, mais coûteux en temps et en maintenance. L’auteur recommande une stratégie en pyramide : privilégier les tests unitaires (rapides et précis), compléter avec des tests fonctionnels, et réserver les tests E2E aux fonctionnalités clés. L’approche proactive du TDD (Test Driven Development) est encouragée pour anticiper les bugs plutôt que de les chasser après coup. Un guide pratique et imagé pour bien structurer ses tests avec PHPUnit.
Biome est une nouvelle toolchain écrite en Rust qui promet de remplacer ESLint, un outil de linting pour JavaScript, en offrant des performances bien supérieures. Contrairement à ESLint qui tourne sur Node.js, un langage interprété et single-threaded, Biome est un binaire natif, compilé et optimisé, utilisant une architecture parallèle. Il intègre également un formatter et un organiseur d'imports, réduisant ainsi la fragmentation des outils actuels. De plus, Biome peut être intégré dans des projets PHP via Composer, sans nécessiter Node.js. L'adoption de Biome est justifiée par son efficacité, faisant le même travail 100 fois plus vite et consommant 10 fois moins de mémoire.
Ce billet explique comment sécuriser une application Symfony avec une double authentification (2FA) robuste en utilisant le bundle SchebTwoFactorBundle. L'auteur décrit une architecture sécurisée où le secret TOTP est géré côté backend, avec une implémentation stricte utilisant des classes anonymes en lecture seule pour encapsuler la configuration TOTP. Il met en avant l'importance de ne pas réinventer la crypto et de déléguer la gestion de la 2FA à une bibliothèque éprouvée pour éviter les failles d'implémentation. L'article détaille également la configuration du bundle et les bonnes pratiques à adopter pour une sécurité optimale.