
L'audience des camarades de classe est de 71 millions par mois. Outre le public Internet dans son ensemble, nos utilisateurs sont soumis à des menaces de sécurité communes: phishing, virus, réutilisation des mots de passe. Le moteur économique des attaques contre les utilisateurs des réseaux sociaux est, en règle générale, la propagation du spam. Et bien que de telles attaques ne soient pas une conséquence directe de la vulnérabilité d'Odnoklassniki, nous souhaitons les contrer et pour cela nous enquêtons sur tous les incidents de spam importants.
Une enquête typique sur une nouvelle attaque de spam (réussie) commence après que nous avons remarqué une activité anormale parmi les utilisateurs du portail. Cela peut s'exprimer par une charge accrue sur les services individuels (par exemple, un service de téléchargement ou de recherche d'images), par la distribution active du même type de contenu (par exemple, des liens vers des sites similaires), ou même par une augmentation du nombre d'appels au service d'assistance.
Au cours de l'enquête, il est important pour nous tout d'abord de déterminer comment le spam est distribué au sein du réseau social. Le résultat d'une telle enquête est souvent la détection d'un groupe d'appareils infectés par des virus. Parfois, parmi les spams qu'ils distribuent, nous trouvons des liens vers le virus lui-même. Nous réussissons donc à restaurer le schéma de distribution et à trouver des utilisateurs impliqués.
Un cas particulier intéressant de telles attaques est l'infection par des extensions de navigateur malveillantes. Les extensions pour Chrome peuvent être installées à la fois dans Chrome lui-même et dans les navigateurs basés sur Chromium, par exemple Opera et Yandex.Browser. Autrement dit, la part du lion du Web est potentiellement couverte. Les extensions malveillantes pour d'autres navigateurs (Firefox, Safari) sont beaucoup moins courantes. Je peux supposer que le développement de virus dans leur cas n'apporte pas d'avantages en raison de l'audience relativement petite de ces navigateurs.
Nous pouvons même calculer l'étendue de la propagation des extensions malveillantes parmi nos utilisateurs:

Chaque jour, nous enregistrons 100 à 200 000 utilisateurs infectés. Au total, en 2018, 1,2 million d'utilisateurs ont été vus en utilisant un navigateur infecté.
Début 2017, lors de l'OWASP Russia Meetup # 6, nous avons déjà
parlé de l'expérience d'Odnoklassniki dans la lutte contre la propagation d'extensions malveillantes pour Chrome. En près de deux ans, beaucoup de choses ont changé. Mais d'abord, voyons comment fonctionnent les extensions.
Ainsi, Chrome permet aux utilisateurs de personnaliser le navigateur en installant des extensions.
Les extensions sont fournies avec une
API Javascript avec laquelle elles peuvent, notamment:
- intercepter et modifier les requêtes et réponses HTTP;
- modifier le DOM des pages affichées;
- gérer l'interface du navigateur (ouvrir et fermer les onglets, ajouter des éléments au menu contextuel);
- gérer la liste des extensions;
- Abonnez-vous aux événements système, par exemple, à partir de la souris et du clavier;
- Lisez l'historique du navigateur et les données du site.
Les extensions sont distribuées via le Chrome Web Store sous la forme d'une archive avec le code source et les ressources (images, styles, pages HTML). Les composants clés de l'extension sont répertoriés ci-dessous:
- Le manifeste est JSON avec une configuration d'extension. Entre autres, le manifeste déclare les autorisations et domaines nécessaires aux données auxquelles l'extension aura accès.
- Les scripts d'arrière-plan sont exécutés en arrière-plan dans leur propre contexte, isolés du code des pages Web. Ils sont conçus pour recevoir et traiter une variété d'événements du navigateur et ont un accès complet à son API.
- Les scripts de contenu sont exécutés dans le contexte de la page Web. Les environnements Javascript de la page elle-même et l'extension sont isolés les uns des autres, l'extension n'a pas accès aux variables et fonctions de la page, et vice versa. Les scripts peuvent modifier les pages DOM et effectuer des requêtes
XMLHttpRequest
aide de XMLHttpRequest
. Contrairement aux pages normales, la même stratégie d'origine et les mêmes stratégies de serveur CORS ne s'appliquent pas aux demandes d'extensions, elles ne sont limitées que par l'ensemble des accès demandés dans le manifeste.
Supposons que quelqu'un décide d'écrire son propre virus. Que peut-il réaliser?
Accès aux données utilisateurComme mentionné ci-dessus, l'extension peut intercepter les demandes et les réponses entre la page et le serveur. Il est clair que le mécanisme universel de protection des données lors de la transmission - SSL - dans ce cas n'aidera pas à protéger les données de la page, car le navigateur les transmet à l'extension déjà décryptée.
Modifier le contenu de la pageL'extension a accès au DOM, peut ajouter et supprimer des éléments, en changeant l'interface de la page. Un exemple classique est la substitution de bannières publicitaires.
Suivi des activités des utilisateursL'extension peut s'abonner aux événements du clavier et de la souris, et ainsi suivre les actions des utilisateurs dans le navigateur et collecter les mots de passe, les données personnelles, les numéros de carte bancaire.
Exécution d'actions pour l'utilisateurL'extension peut exécuter des scripts dans le contexte de la page victime en violation de la même politique d'origine. Cela signifie que toutes les actions que l'utilisateur peut effectuer sur le site peuvent également être lancées par l'extension.
Contourner l'authentification à deux facteurs et d'autres protections de compteL'utilisateur passe lui-même l'authentification et l'autorisation dans le navigateur, par conséquent, l'extension reçoit la même session qu'un utilisateur légitime.
Bot parfaitLes systèmes intelligents de captcha et de protection contre les inondations, en règle générale, reposent sur le fait que le trafic provenant des bots peut être distingué du trafic provenant de bons utilisateurs par IP, empreintes digitales et distribution des demandes au fil du temps. Les demandes d'extensions ne peuvent pas être séparées des demandes d'utilisateurs réels.
Cette année, Google a
annoncé plusieurs innovations conçues pour arrêter la propagation des logiciels malveillants dans l'App Store. Installation d'extensions à partir de sources tierces, l'installation en ligne a été interdite, les règles de modération ont été resserrées, l'obscurcissement et l'exécution de code arbitraire dans les extensions ont été interdits.
Malgré cela, des extensions malveillantes continuent d'être utilisées pour attaquer les utilisateurs. Les objectifs typiques sont le vol de comptes (
exemple ), les données personnelles (
exemple ), le spam ou la publicité frauduleuse (
exemple ).
Pour une attaque réussie, l'extension doit résoudre plusieurs problèmes:
- se cacher de la modération dans le magasin;
- trouver et fidéliser un public;
- faire de l'argent.
Une modération plus stricte dans le magasin a incité les auteurs de virus à rechercher de nouvelles façons de publier des extensions. Ici, nous avons observé une image classique de l'adaptation des spammeurs aux filtres anti-spam: une extension avec des centaines de milliers d'utilisateurs s'est transformée en des dizaines d'extensions différentes de différents auteurs avec un petit nombre d'utilisateurs, et ces extensions ont ensuite commencé à imiter des applications populaires avec une bonne réputation. Les extensions sont désormais hébergées dans des services cloud populaires avec leur partie serveur et le «centre de contrôle» qui définit le comportement des navigateurs infectés à tout moment.
Après la suppression du magasin, les extensions reconnues comme malveillantes peuvent être désactivées dans les navigateurs des utilisateurs qui les ont installées. Pour conserver une audience infectée et pouvoir installer une nouvelle extension à la place de celle à distance, les auteurs de virus modifient les paramètres du navigateur qui ne sont pas directement liés à l'extension: enregistrez un technicien de service, abonnez l'utilisateur aux notifications, remplacez-le par la page d'accueil ou le service de recherche. Tout cela vous permet d'envoyer un lien vers le navigateur pour installer une nouvelle version du virus.

Pour les virus que nous observons, le spam est la principale source de revenus. Parmi les nombreuses façons de distribuer le spam pour les extensions, les suivantes sont probablement les plus pratiques:
- Remplacez et ajoutez des publicités sur les pages visitées . Comme je l'ai mentionné ci-dessus, les extensions sont autorisées à apporter des modifications arbitraires au contenu des pages consultées, notamment en remplaçant les annonces légitimes sur les sites par les leurs ou en affichant des annonces supplémentaires aux utilisateurs en ouvrant des fenêtres contextuelles, de nouveaux onglets ou en redirigeant certains sites vers la publicité.
Une forme notable de substitution de la publicité aux extensions est l'utilisation de notifications HTML5. Bien que l'extension soit installée et active dans le navigateur, il suffit de piéger la victime sur une page qui enregistrera le technicien de service et signera l'utilisateur pour les notifications. Et puisque cet employé de service n'est pas directement lié à l'extension, même après la suppression de l'extension du navigateur, les auteurs auront toujours un canal de communication avec les utilisateurs sous la forme de notifications push.
Un mécanisme similaire est également utilisé en conjonction avec l'ingénierie sociale pour réinfecter la victime si l'extension est supprimée du magasin: l'utilisateur reçoit une poussée avec un contenu attrayant (par exemple, "ok.ru Nouveau message non lu") et avec un lien pour installer une nouvelle version du virus au lieu de la supprimée. - Utilisez le compte de la victime pour diffuser du spam sur les réseaux sociaux . L'extension installée dans le navigateur peut exécuter des demandes au nom de l'utilisateur actuel, y compris publier du spam sous le couvert d'un contenu normal de l'utilisateur (écrire des messages à des amis, publier des notes et des messages en public, télécharger des photos ou des vidéos).
En résumant ce qui précède, nous pouvons conclure que les extensions de navigateur malveillantes constituent toujours une menace importante pour les utilisateurs et les applications Web. Les extensions fournissent un mécanisme pratique pour diffuser du code malveillant: elles ne nécessitent pas de qualifications élevées pour créer, suscitent moins de suspicion chez les utilisateurs lors de l'installation, sont moins souvent détectées par les antivirus.
La situation est aggravée par le fait que les pages Web du navigateur ont évidemment moins de droits que les extensions et ne peuvent rien faire pour protéger leurs utilisateurs. Nous espérons que la campagne anti-virus annoncée par Google sur Store réussira. Mais jusqu'à ce que cela se produise, nous travaillons chez OK pour minimiser la propagation des virus au sein du réseau social et rendre l'utilisation du service aussi sûre que possible.