# FOSDEM 23 ### 🐍 pip install malware 🐍 ##### Alexandre Javet <img src ="https://i.imgur.com/XjlCkdr.png" width="100px" /> ---- ## 📖 Sommaire 1. Introduction 1.1 Le **coût** d'une attaque 1.2 La **cible** des attaques 2. Comment ? 2.1 Les **statistiques** 2.2 Les types d'**attaques** 4. Comment **éviter** ? 4.1 Maintainer 4.2 User --- ## 🎬 Introduction Il y a sur l'index de packages python, de nombreux packages maliceux... **Comment font-ils pour avoir les gens ?** ---- ### 💸 Le coût des attaques **D'abord... parlons chiffres** *Quel est le coût **moyen** d'une brèche de données?* ---- ## 4.35 Millions $ ---- *Quel % des brèches sont causés par des identifiants volés ?* ---- ## 19% (ou ~1/5) ---- ## 🎯 La cible des attaques **On en conclus quoi ?** Les cibles principales sont les développeurs. Pourquoi ? Il détiennent les codes d'accès des répertoires etc... --- ## 🤔 Comment ? La question que l'on peut se poser est **comment les gens se font avoir ?** ---- ### Les Statistiques La première attaque la plus connue va être le **Typosquatting**, parlons un peu chiffres ---- *Quel % des infections se passant sur l'index de package python est causé par du **typosquatting** ?* ---- ## 3% ---- *Quel % éstimé des **installations** journalière sur l'index de package python **sont des typosquattings?*** ---- ## 0.5%, ou 1 package sur 200 installés par jour ! ---- ### Quels sont les types d'attaques? ---- #### Typosquatting classique L'usage des **typos** (fautes de frappes) afin de leurer quelqu'un a installer le mauvais package. **Example:** `requets` (au lieu de `request`) ---- #### Confusion Typosquatting Profite du fait que l'utilisateur ne se souvient pas forcément du nom du package. Donc le créateur de package va créer un nom similaire mais néanmoins incorrect. **Example:** `request3` (au lieu de `request2`) **ou** `dotenv-python` (au lieu de `python-dotenv`) ---- #### Malware Dependencies Le package est lui même inoffensif, mais installe des malwares via les dépendences. ---- #### Commits malveillants au fil du temps Un package est inoffensif mais devient à un moment donné un malware (car le créateur voulait toucher plus de gens avec celui-ci ou parce qu'il y a eu un changement de mainteneur) ---- #### Starjacking L'URL du repos lié au package **n'est pas vérifié** sur l'index des packages python. Ce qui fait qu'on peut y mettre un repo populaire et faire semblant d'avoir beaucoup d'étoiles pour se mettre en avant. --- ## 🛡️ Comment éviter ? ---- ### En tant que maintainer ---- Dependabot sur github peut détecter les malwares. Considérer qu'il y aura du Typosquatting et créer soi même les typosquats pour les rediriger vers le bon package. ---- ### En tant que User ---- Eviter de mettre les packages directement dans son shell et plutôt faire un fichier `requirements.txt` et installer les packages à partir de celui-ci (car il est plus facile d'éviter les erreurs ainsi.) --- ## Qu'est ce qu'il a montré durant la démo ? ![](https://i.imgur.com/WXEP1jL.png) --- # Conclusion
{"metaMigratedAt":"2023-06-17T20:20:45.962Z","metaMigratedFrom":"YAML","title":"Présentation FOSDEM 23","breaks":true,"description":"View the slide with \"Slide Mode\".","lang":"fr-FR","slideOptions":"{\"theme\":\"Night\",\"progress\":true,\"transition\":\"fade\",\"spotlight\":{\"enabled\":false}}","contributors":"[{\"id\":\"96fb5b7d-9eb2-426c-a31f-2b7bd934198d\",\"add\":3427,\"del\":91}]"}
    383 views