#1 Le 22/11/2025, à 20:14
- sputnick

Auditer le potentiel risque d'une extension au format XPI (Firefox)
Salut,
je suis pas mal sur ce sujet en ce moment.
parfois il est opportun d'éviter de multiplier les extensions et de plutôt ré-implémenter la logique dans un UserScript.
Dans certains cas, on a envie d'auditer une extension.
Ce que je propose n'est pas fiable à 100%, mais ça permet de dégrossir.
Si la note finale est de 0/100, c'est plutôt sur.
Si la note est > 60, il faut commencer à se poser des questions.
C'est ouvert à contributions/critiques pour améliorer le script.
Exemple sur NoteFox:
=== MANIFEST ANALYSIS ===
Permissions declared:
- storage: Can store arbitrary data (may include tracking identifiers).
- tabs: Access to all browser tabs (privacy sensitive).
- unlimitedStorage: No specific risk info.
- activeTab: No specific risk info.
Host permissions:
None
Data collection permissions:
No data collection declaration found.
=== FILE ANALYSIS ===
Potentially minified files:
None
Potentially obfuscated files:
None
YARA-like detection results:
js/script.js: encoded_payload
js/all-notes.js: encoded_payload
js/settings.js: encoded_payload
js/background.js: encoded_payload
js/inject/sticky-notes.js: encoded_payload
External endpoints found:
Trackers:
None
Api:
- https://www.notefox.eu/api/v1
Other:
- https://t.me/sav_projects/7
- https://www.notefox.eu/help/
- https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/PlatformOs
- https://example.page/search
- https://addons.mozilla.org/en-GB/firefox/addon/websites-notes/privacy/
- https://example.page/search#section1
- https://liberapay.com/Sav22999
- https://www.notefox.eu/privacy/
- https://www.notefox.eu/install/
- https://www.notefox.eu/help/search/
- http://www.w3.org/2000/svg
- https://www.notefox.eu/terms/
- https://notefox.eu/help/first-run
- https://liberapay.com/Sav22999/donate
- https://page.example/search#section1
- https://addons.mozilla.org/it/firefox/addon/websites-notes/privacy/
- https://www.notefox.eu/help/opened-times/
- https://www.paypal.me/saveriomorelli
- https://crowdin.com/project/notefox
- https://www.notefox.eu
- http://www.serif.com/
- https://addons.mozilla.org/firefox/addon/websites-notes/
- https://addons.mozilla.org
- https://notefox.eu/help/update?version=
- https://example.page/search?query=test
- https://github.com/Sav22999/websites-notes/issues
- https://page.example/search?parameters
- http://www.w3.org/1999/xlink
- https://www.notefox.eu/donate/
=== GLOBAL RISK SCORE: 60/100 ===
=== PRIVACY RECOMMENDATION ===
Always disable automatic updates for extensions when conducting security reviews. Updates may replace safe code with unsafe content without user confirmation.Exemple sur une de mes extensions perso qui permet de créer un préfixe aux fenêtres Firefox (utile quand on a plusieurs Firefox ouverts en même temps, ce qui est recommandé pour limiter les fuites de données, et essayer d'isoler les GAFAM, et ce qui permet d'utiliser wmctrl pour lancer des actions spécifiques pour ces fenêtres sur le bureau):
profile-prefix-in-window-title:
=== MANIFEST ANALYSIS ===
Permissions declared:
- storage: Can store arbitrary data (may include tracking identifiers).
Host permissions:
None
Data collection permissions:
No data collection declaration found.
=== FILE ANALYSIS ===
Potentially minified files:
None
Potentially obfuscated files:
None
YARA-like detection results:
No suspicious patterns detected.
External endpoints found:
Trackers:
None
Api:
None
Other:
None
=== GLOBAL RISK SCORE: 0/100 ===
=== PRIVACY RECOMMENDATION ===
Always disable automatic updates for extensions when conducting security reviews. Updates may replace safe code with unsafe content without user confirmation.Installation des deux scripts, un bash et un Python, copier-coller tout le bloc dans un terminal:
cd
mkdir bin || true
cd bin
curl https://gist.githubusercontent.com/sputnick-dev/1f4d50d476df9672d3ccc88dc1818f01/raw/38bad6d98ea746e9f4373b040f8a6ca555fc27a6/audit_Firefox_addon.py > audit_Firefox_addons.py
cat<<'EOF'>XPI_profiling.sh
#!/bin/bash
cd /tmp
mkdir -p XPI_profiling
cd XPI_profiling || exit 1
rm -rf *
wget "$1"
python3 ~/bin/audit_Firefox_addons.py *.xpi
EOF
chmod +x XPI_profiling.sh audit_Firefox_addons.py
./XPI_profiling.sh https://addons.mozilla.org/firefox/downloads/file/4623450/profile_prefix_in_window_title-1.3.xpiPour récupérer l'URL du fichier XPI, il faut aller sur la page Mozilla de l'extension, clic droit sur 'installer', puis 'copier le lien'
Dernière modification par sputnick (Le 23/11/2025, à 18:35)
Qui veut faire quelque chose trouve un moyen, qui ne veut rien faire trouve une excuse. Proverbe arabe
https://sputnick.fr
Hors ligne
#2 Le 11/12/2025, à 08:06
- sputnick

Re : Auditer le potentiel risque d'une extension au format XPI (Firefox)
...Et je déplore que les extensions Chrome au format CRX soient semble t'il volontairement très difficile à récupérer et donc à auditer.
La transparence légendaire de Google...
Je n'ai pas essayé plus que ça, mais juste évitez Chrom(e|ium), c'est un outil de surveillance, pour faire simple.
Même Firefox n'est pas irréprochable, mais au moins c'est plus ou moins libre et on peux utiliser le bloqueur de pub Adblock Origin, ce qui n'est plus le cas de Chrom(e|ium). Et il est moins permissif.
Chrom(e|ium) fait fuiter par exemple:
- niveau de charge si portable
- mapping de clavier (qwerty, azerty etc...)
Et plein d'autres choses.
C'est assez intrusif pour les fingerprintings que beaucoup de sites utilisent pour nous tracker.
Qui veut faire quelque chose trouve un moyen, qui ne veut rien faire trouve une excuse. Proverbe arabe
https://sputnick.fr
Hors ligne