Profile graphs

This commit is contained in:
Pascal Engélibert 2025-11-26 17:05:05 +01:00
commit a81a01f394
5 changed files with 115 additions and 56 deletions

View file

@ -261,7 +261,11 @@ sudo chmod +s /sbin/sa
Install OpenSSL with debug symbols:
```bash
./Configure --release -g
#./Configure --release -g
# Options from Debian build
# Debian package libssl3t64 -> Developer Information -> buildd reproducibility -> trixie rbuild
# https://tests.reproducible-builds.org/debian/rb-pkg/trixie/amd64/openssl.html
/usr/bin/perl ./Configure --release -g --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/x86_64-linux-gnu shared no-idea no-mdc2 no-rc5 no-ssl3 no-ssl3-method enable-rfc3779 enable-cms no-capieng no-rdrand enable-tfo enable-zstd enable-zlib enable-fips enable-ec_nistp_64_gcc_128
```
Backup your system's `libcrypto.so` and `libssl.so` and replace them with the new ones.
@ -272,40 +276,12 @@ python exp.py make local -c
python exp.py send local
python exp.py update-certs
python exp.py run local
```
## Problems
### Youtube gives 502 bad gateway.
* Works with bare curl. (not hiding we're a bot)
* We have same JA3 fingerprint as Firefox.
* HTTP request is intact.
* JA4 fingerprint different from Firefox but existing for some browsers.
### Modèle d'expérience à revoir
* Le relai d'une vidéo streaming avec TLS prend max 3% d'un cœur sur le Pi3, soit pas beaucoup plus que le bruit.
* Il faudrait spammer avec plusieurs connexions pour voir un effet significatif.
* On peut spammer le streaming vidéo, mais pas le reste (antibots).
* On ne devrait pas spammer sur Renater...
* Il faut donc tout faire en local.
Solutions :
* Copier les sites en statique et les servir avec Apache. => OK pour des sites propres genre Wikipedia, WordPress (à voir pour la pub)
* Installer des instances => Peertube, WordPress
* Copier le trafic et le rejouer => risque de demander beaucoup de dev
### Youtube
Youtube utilise des trucs aléatoires en `RANDOM.googlevideo.com` pour la vidéo. Cependant il y a quelques domaines utilisés qui ne changent pas, du moins sur un même navigateur avec la même vidéo et sur une courte période.
Avant d'enregistrer le trafic, il faut observer les domaines utilisés puis générer les certificats et les redirections en fonction.
## TODO
* Partie serveur sans TLS de netreplay -> sans SNI, il faut parser le HTTP >.<
* exp.py: détecter la fin du replay
* yoctowatt
* mesures CPU, mémoire, bande passante sur p2
* CPU: paquet acct, commande `sa -m`