Le 26 juin 2020, notre équipe Threat Intelligence a découvert une vulnérabilité dans Le plugin officiel de chat Facebook, un plugin WordPress installé sur plus de 80 000 sites. Cette faille a permis aux attaquants authentifiés de bas niveau de connecter leur propre compte Facebook Messenger à n’importe quel site exécutant le plugin vulnérable et de discuter avec les visiteurs du site sur les sites affectés.

Nous avons d’abord contacté Facebook le 26 juin 2020 et inclus tous les détails de la divulgation au moment de la communication. Ils ont initialement répondu le 30 juin 2020, et après de nombreux échanges, Facebook a publié un correctif le 28 juillet 2020.

Nous vous recommandons vivement de passer immédiatement à la version 1.6 pour protéger votre site contre toute attaque tentant d’exploiter cette vulnérabilité.

Les utilisateurs premium de Wordfence ont reçu une nouvelle règle de pare-feu le 30 juin 2020 pour se protéger contre les exploits ciblant cette vulnérabilité. Les sites utilisant encore le plugin gratuit Wordfence ont reçu cette règle le 30 juillet 2020.


Le plugin officiel WordPress Facebook Chat est un plugin très simple conçu pour ajouter une fenêtre de chat «Facebook Messenger» à n’importe quel site WordPress et connecter la page Facebook choisie par le propriétaire du site pour recevoir des messages et interagir avec les visiteurs du site.

Il effectue la plupart du travail de conception via une boîte de dialogue sur Facebook.com Cependant, une fois terminé, il met à jour les options du plugin fbmcc_pageID et fbmcc_locale pour définir l’ID de page du chat qui sera connecté à la fenêtre contextuelle sur le front-end du site, et la localisation de la langue à utiliser.

Pour ce faire, le plugin a enregistré une action AJAX wp_ajax_update_options accroché au fbmcc_update_options fonction.

add_action( 'wp_ajax_update_options', 'fbmcc_update_options');

function fbmcc_update_options() {
  check_ajax_referer( 'update_fmcc_code' );
  update_option( 'fbmcc_pageID', sanitize_text_field($_POST['pageID']));
  update_option( 'fbmcc_locale', sanitize_text_field($_POST['locale']));
  wp_die();
}

Malheureusement, cette action AJAX ne comportait aucun contrôle de capacité pour vérifier qu’une demande provenait d’un administrateur authentifié. Cela a permis à tout utilisateur authentifié, y compris les comptes de niveau abonné, d’envoyer une demande de mise à jour des options et de connecter leur propre compte Facebook Messenger.

De plus, le nonce utilisé pour la protection CSRF était facilement détectable dans le code source de n’importe quelle page du tableau de bord / wp-admin en raison de la admin_enqueue_scripts action enregistrée qui rendait le nonce visible dans la zone d’administration d’un site.

Pour rappel, tous les comptes utilisateurs par défaut peuvent accéder à la zone / wp-admin d’un site WordPress. Cela signifie que tout utilisateur authentifié peut gratter une page à la recherche d’un nonce utilisable et l’envoyer avec le update_options demande de passer le check_ajax_referer vérifier.

add_action( 'admin_enqueue_scripts', 'fmcc_localize_ajax' );
function fmcc_localize_ajax() {
  $ajax_object = array(
    'nonce' => wp_create_nonce( 'update_fmcc_code' )
  );

  wp_register_script( 'code_script', plugin_dir_url( __FILE__ ) . 'script.js' );
  wp_localize_script( 'code_script', 'ajax_object', $ajax_object );
  wp_enqueue_script( 'code_script' );
}

En conséquence, les attaquants pouvaient lier leur propre compte Facebook Page Messenger, en mettant à jour l’ID de page, à n’importe quel site donné exécutant le plugin tant qu’ils étaient en mesure de s’enregistrer sur le site et d’accéder au tableau de bord / wp-admin. L’attaquant recevrait alors tous les messages lancés à partir du chat Messenger du site, et le propriétaire du site ne recevrait plus aucun message initié à partir du chat.

Comment cette vulnérabilité pourrait-elle être utilisée?

Cette vulnérabilité pourrait être exploitée et passer facilement inaperçue par un propriétaire de site, ce qui amènerait les visiteurs du site à interagir avec un attaquant au lieu du propriétaire du site. Les tentatives d’exploit visant cette vulnérabilité pourraient facilement être utilisées dans le cadre d’une attaque d’ingénierie sociale en se faisant passer pour un propriétaire de site demandant des informations personnellement identifiables, des identifiants ou d’autres informations.

Un autre scénario possible d’exploiter cette vulnérabilité est qu’un concurrent pourrait l’utiliser à son avantage. En ne fournissant rien pour le pageid paramètre, un concurrent pourrait désactiver complètement le chat, entraînant une perte de disponibilité du service de chat, entraînant potentiellement une perte de ventes.

Pire encore, ils pourraient connecter une fausse page pour ressembler à la page d’origine du site cible et, lorsque les visiteurs du site commencent à interagir, ils peuvent être intentionnellement impolis ou offensants, dissuadant ces visiteurs de faire plus d’affaires avec le site cible et ruinant la réputation du site. , ou générer du trafic vers l’activité des concurrents, entraînant une perte de clients et de revenus.

Qu’est-ce que l’ingénierie sociale?

L’ingénierie sociale tente d’exploiter les «faiblesses» des humains par le biais d’interactions sociales. Un attaquant pourrait exploiter la capacité inhérente d’un humain à faire confiance aux autres ou à faire confiance au contenu d’un site. Si quelqu’un n’a suivi aucune formation de sensibilisation à la sécurité pour l’utilisation d’Internet, il se peut qu’il ne sache pas ce qu’est l’ingénierie sociale et ne prend aucune précaution pour rester protégé.

Voici un exemple de la manière dont cette vulnérabilité pourrait être exploitée. C’est complètement fictif et pas un scénario très probable. Mais j’espère que cela aidera à clarifier ce qui pourrait se passer dans une attaque d’ingénierie sociale de cette nature, ce qui doit être fait pour vous assurer de rester à l’abri des tentatives d’ingénierie sociale et vous aider à comprendre pourquoi il est important de mettre à jour ce plugin afin que les visiteurs de votre site restent sûr.

Ingénierie sociale avec le scénario officiel du plugin de chat Facebook: obtenir des informations d’identification

Dans ce scénario, nous avons «Jimmy’s Jammin’ Music Plugin for WordPress »et une configuration de site WordPress pour vendre ce plugin WordPress et fournir une assistance aux utilisateurs de Jimmy’s. Il autorise les utilisateurs à s’inscrire en tant qu’abonnés afin qu’ils puissent accéder à son portail d’assistance, mais il n’a pris aucune précaution pour empêcher ces utilisateurs d’accéder à / wp-admin une fois authentifiés. Jimmy a installé le plugin officiel de discussion Facebook sur son site afin qu’il puisse répondre rapidement à toutes les questions liées à la pré-vente.

Le site de Jimmy avait été compromis car il exécutait une version obsolète du plugin officiel de chat Facebook et un attaquant a utilisé cette vulnérabilité pour activer le compte Messenger d’une page Facebook usurpée. Désormais, l’attaquant reçoit toutes les initiations de chat et peut converser avec les clients et les visiteurs du site de Jimmy.

Notre visiteur sans méfiance est «Jane», et elle a besoin d’aide pour se configurer avec le plugin Jimmy’s Jammin ’Music. Elle a instantanément trouvé la fenêtre contextuelle du messager et a commencé à interagir avec quelqu’un qu’elle pense être «Jimmy». Après tout, elle est sur le site de Jimmy, mais elle ne sait pas que le site de Jimmy a été compromis et qu’un attaquant utilise son propre compte Facebook Messenger.

La conversation commence innocente avec l’attaquant posant des questions de base et répondant à toutes les questions de Jane. Après que l’attaquant a senti qu’il avait gagné la confiance de Jane, l’attaquant dit «D’accord, merci pour l’information Jane! J’adorerais me connecter à votre site et tout configurer correctement pour vous. Pouvez-vous me fournir les informations de connexion de votre site? »

Jane, avec enthousiasme, répond avec ses informations d’identification administratives. «Oh, merci beaucoup Jimmy! Mon URL de connexion WordPress est http://JaneMusicCo.com/wp-login.php, mon nom d’utilisateur est Jane et mon mot de passe est janelovesmusic! S’il vous plaît laissez-moi savoir si vous avez besoin de quelque chose d’autre!

Désormais, l’attaquant vient de créer une ingénierie sociale efficace pour Jane pour obtenir les informations d’identification de son site. De là, l’attaquant peut se connecter à son site et injecter une porte dérobée que Jane ne détectera pas et causera beaucoup de dégâts à son site.

Bien que les exploits d’ingénierie sociale puissent être plus difficiles à exécuter avec succès, les résultats peuvent être préjudiciables. Comme nous l’avons vu récemment dans l’actualité avec le «Twitter Hack», les attaques d’ingénierie sociale sont très réelles et peuvent arriver à n’importe qui. Seules l’éducation et la sensibilisation peuvent vous aider à vous protéger contre une ingénierie sociale par un attaquant malveillant. Les propriétaires de sites ont des responsabilités supplémentaires pour s’assurer que vous disposez du site le plus sécurisé pour aider à protéger les autres.

Comment pouvez-vous vous protéger en tant que visiteur du site?

Jamais, dans aucune situation, ne divulguez des informations sensibles, telles que les identifiants d’accès ou les données de carte de crédit, à qui que ce soit, sauf si vous pouvez vraiment vérifier que la personne ou l’entreprise est bien qui elle prétend être et qu’elle a un «besoin légitime de savoir».

Dans le scénario ci-dessus, Jane aurait dû dire quelque chose du genre «Je préférerais ne pas fournir mes informations d’identification. Pourriez-vous, s’il vous plaît, me guider tout au long du processus? » ou pris des mesures pour vérifier l’identité de la personne avec laquelle elle interagissait avant de partager les informations d’identification. Si elle a décidé de fournir l’accès, il aurait dû s’agir d’un compte temporaire avec le moins de privilèges nécessaires pour remplir le rôle, qui pourrait être supprimé une fois terminé.

Procédure pas à pas de la preuve de concept

Aujourd’hui, nous avons montré comment cela pourrait être exploité pendant les heures de bureau de Wordfence. Si vous souhaitez découvrir comment cette vulnérabilité pourrait être exploitée, consultez l’épisode d’aujourd’hui des heures de bureau de Wordfence ci-dessous. La vidéo ci-dessous commence à 40:40 lorsque la démo commence, vous pouvez également regarder la vidéo entière pour nous voir exploiter les vulnérabilités dans les plugins wpDiscuz et Newsletter.

Calendrier de divulgation

26 juin 2020 – Découverte initiale de la vulnérabilité. Nous développons une règle de pare-feu et la passons à la phase de test. Dans le même temps, nous contactons l’équipe de sécurité de Facebook pour une divulgation complète.
30 juin 2020 – La règle WAF est suffisamment testée et publiée pour les utilisateurs premium.
24 juillet 2020 – L’équipe de sécurité nous a fait savoir qu’elle avait transmis les détails à l’équipe appropriée pour résolution.
23 juillet 2020 – Un correctif suffisant publié en version 1.6.
30 juillet 2020 – Les utilisateurs gratuits de Wordfence reçoivent la règle de pare-feu.

Conclusion

Dans l’article d’aujourd’hui, nous avons détaillé une faille dans le plugin officiel de chat Facebook qui permettait aux utilisateurs authentifiés de mettre à jour les options des plugins pour utiliser n’importe quelle page Facebook pour la fonction Messenger. Parallèlement à cela, nous avons fourni un aperçu de ce à quoi pourraient ressembler les attaques d’ingénierie sociale et de ce que vous pouvez faire pour vous en protéger. Cette faille a été entièrement corrigée dans la version 1.6. Nous recommandons aux utilisateurs de mettre immédiatement à jour vers la dernière version disponible, qui est la version 1.6 au moment de cette publication.

Les deux sites utilisant Wordfence Premium et ceux qui utilisent encore la version gratuite de Wordfence sont protégés contre les attaques contre cette vulnérabilité. Si vous connaissez un ami ou un collègue qui utilise ce plugin sur son site, nous vous recommandons vivement de lui transmettre cet avis pour aider à garder ses sites protégés car il s’agit d’une mise à jour de sécurité critique. Nous vous demandons également de partager ce scénario d’ingénierie sociale avec vos amis, afin de les informer des conséquences potentielles des attaques d’ingénierie sociale. Grâce à l’éducation sur les menaces de sécurité possibles, comme l’ingénierie sociale, nous pouvons tous rendre Internet plus sûr.


Source link