Projet Nightly ASan

Le Projet Nightly ASan consiste à créer un navigateur Firefox Nightly incluant l'outil populaire AddressSanitizer et à l'améliorer avec des capacités de génération de rapports de plantage à distance pour toutes erreurs détectées.

Le but du projet est de trouver de subtiles altérations de la mémoire survenant lors d'une navigation normale qui ne feraient pas planter du tout le navigateur ou qui feraient planter de telle sorte que nous ne puissions pas déterminer quel est le problème exact à partir du vidage de la mémoire sur incident. Nous disposons de beaucoup de rapports de plantage inopérants et les traces AddressSanitizer sont généralement beaucoup plus exploitables par elles-mêmes (en particulier les traces d'utilisation après libération). Une partie de ce projet consiste à déterminer si des rapports de plantage d'ASan sont exploitables et combien uniquement en surfant. Le succès du projet dépend bien entendu aussi du nombre de participants.

Vous pouvez télécharger la dernière version ici. Les builds sont mis à jour quotidiennement comme les builds standards de Nightly (comme avec les versions ordinaires, vous pouvez aller dans « AideÀ propos de Nightly »  pour forcer une vérification de mise à jour ou confirmer que vous avez la dernière version).

Si vous êtes venu ici à la recherche de versions ASan standard (par exemple pour le fuzzing ou comme développeur voulant reproduire un plantage), vous devriez probablement aller ici à la place.

Exigences

Les exigences actuelles sont :

Si vous utilisez déjà Nightly, il devrait être possible de partager le profil avec l'instance Nightly ordinaire. Si vous utilisez normalement une version bêta ou version finale (et que vous souhaitez pouvoir y revenir), vous devriez envisager d'utiliser un second profil.

Utilisateurs Windows : Veuillez noter que les versions de Windows affichent actuellement une erreur lors de l'installation (voir la section "Problèmes connus" ci-dessous), mais l'installation fonctionne néanmoins. Nous travaillons sur la problème.

Si vous exécutez dans un environnement avec toutes sortes de restrictions de sécurité supplémentaires (par exemple le sandboxing de processus personnalisé), assurez-vous que votre répertoire /tmp est accessible en écriture et que le binaire  llvm-symbolizer livré est exécutable depuis le processus de Firefox.

Préférences

Si vous souhaitez que votre rapport d'accident soit identifiable, vous pouvez aller dans about:config et définir asanreporter.clientid avec votre adresse e-mail valide. Ce n'est pas obligatoire, vous pouvez bien sûr signaler des traces de pantage de manière anonyme. Si vous décidez d'envoyer des rapports avec votre adresse e-mail et que vous avez un compte Bugzilla, pensez à utiliser la même adresse e-mail que celle utilisée pour votre compte Bugzilla. Nous vous mettrons en CC sur les bogues déposés à partir de vos rapports de plantage Si votre adresse e-mail n'appartient pas à un compte Bugzilla, nous ne la publierons pas mais nous l'utiliserons uniquement pour trouver des réponses aux questions soulevées par vos rapports de plantage.

La définition de cette préférence nous permet de vous contacter au cas où nous aurions des questions sur votre configuration/système d'exploitation. Veuillez envisager de l'utiliser afin que nous puissions revenir vers vous si nécessaire.

Programme de Bug Bounty

Comme récompense spéciale pour participer au programme, nous avons décidé de traiter tous les rapports soumis comme s'ils étaient enregistrés directement dans Bugzilla. Cela signifie que les rapports :

  • qui indiquent un problème de sécurité critique ou élevé
  • et que cela peut être corrigé par nos développeurs

sont éligibles pour une prime de bogue selon les règles de notre programme de Bug Bounty. Comme le rapport n'inclura généralement aucune étape de reproduction ou de test, il recevra très probablement une prime inférieure. Comme avec les rapports de bogue habituels, nous récompensons généralement le premier signalement (identifiable) d'un problème.

Si vous souhaitez participer au programme de récompense, assurez-vous de régler votre préférence asanreporter.clientid comme indiqué ci-dessus. Nous ne pouvons pas récompenser les rapports soumis sans adresse e-mail.

Problèmes connus

Cette section répertorie toutes les limitations actuellement connues des versions Nightly ASan considérées comme des bogues.

  • Flash is currently not working
  • Bug 1477490 - Windows: Stack instrumentation disabled due to false positives
  • Bug 1478096 - Windows: Error during install with maintenanceservice_tmp.exe
  • Il a été rapporté que les performances d'ASan Nightly sont particulièrement mauvaises si vous exécutez sur un écran avec un taux de rafraîchissement de 120hz. Le passage à 60 Hz devrait améliorer considérablement les performances.

Notez que ces bogues sont specifiques à ASan Nightly comme indiqué dans la liste des dépendances de suivi de bogues. Pour la liste complète des bogues trouvés par ce projet, voir plutôt cette liste et notez que certains bogues peuvent ne pas être affichés parce qu'ils sont des bogues de sécurité.

Si vous rencontrez un bogue qui ne figure pas dans cette liste, veuillez déposer un bogue sur bugzilla.mozilla.org ou envoyer un courriel à choller@mozilla.com. Lorsque vous déposez un rapport de bogue, cela aide grandement, si vous mettez en CC cette adresse e-mail et marquez le bogue comme bloquant le bug 1386297.

FAQ

Quelles sont les données supplémentaires collectées ?

Le projet ne collecte que les traces ASan et (si vous le définissez dans les préférences) votre adresse e-mail. Nous ne collectons aucune autre donnée de navigateur, en particulier ni les sites que vous consultez ni le contenu de la page. Il s'agit vraiment de traces de plantage soumises à un emplacement distant.

Le navigateur Nightly ASan possède également toutes les capacités de collecte de données d'un navigateur Nightly normal. La réponse ci-dessus se réfère uniquement à ce que ce projet recueille en plus de ce que le navigateur Nightly normal peut collecter.

Quel est l'impact sur les performances ?

La version Nightly ASan ne s'accompagne que d'un léger ralentissement au démarrage et à la navigation, parfois même pas perceptible. La consommation de RAM est cependant beaucoup plus élevée qu'avec une version normale. Soyez prêt à redémarrer parfois votre navigateur, surtout si vous utilisez beaucoup d'onglets à la fois. En outre, les mises à jour sont plus volumineuses que les mises à jour ordinaires, ce qui signifie que les temps de téléchargement des mises à jour seront plus longs, en particulier si votre connexion Internet est plus lente.

Si vous rencontrez des problèmes de performance, voir aussi la section "Problèmes connus" ci-dessus, en particulier le problème du ralentissement de la vitesse de rafraîchissement de l'écran de Firefox.

 

Et la stabilité ?

Le navigateur est aussi stable qu'une version Nightly standard. Différentes personnes ont surfé avec pour leur travail au quotidien depuis des semaines maintenant et nous avons à peine reçu que quelques rapports de plantage.

Comment puis-je confirmer que j'utilise la bonne version ?

Si vous ouvrez about:support et tapez "asanreporter" dans le champ de recherche, vous devriez voir une entrée appelée asanreporter.apiurl associée à une URL. Ne modifiez pas cette valeur.

Depuis Firefox 64, la fonctionnalité "ASan Crash Reporter"  n'est plus listée dans le répertoire about:support

 

Y aura-t-il prise en charge de macOS ?

Nous travaillons sur le support pour Mac, mais cela pourrait prendre plus de temps parce que nous n'avons pas de couverture ASan CI sur Mac en raison de contraintes matérielles. Si vous travaillez sur l'ingénierie de publication et que vous souhaitez contribuer à ce que Mac, par exemple, arrive plus tôt, n'hésitez pas à me contacter.

Étiquettes et contributeurs liés au document

Contributeurs à cette page : hellosct1, Mozinet
Dernière mise à jour par : hellosct1,