# 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 ?

---
# 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}]"}