
Scanner d'indicateurs de compromission pour CVE-2019-19781
Ce dépôt contient un utilitaire pour détecter les compromissions des appliances Citrix ADC liées à CVE-2019-19781. L'utilitaire et ses ressources encodent des indicateurs de compromission collectés lors des enquêtes FireEye Mandiant. Pour en savoir plus, veuillez lire le blog annonçant la sortie de cet outil.
En résumé, l'utilitaire va :
Il ne va pas :
Avec les retours de la communauté, l'outil pourrait devenir plus approfondi dans sa détection. Veuillez ouvrir un ticket, soumettre une PR, ou contacter les auteurs si vous avez des problèmes, des idées ou des retours.
Ce scanner peut identifier :
Le scanner d'indicateurs de compromission (IoC) pour CVE-2019-19781 a été développé conjointement par FireEye Mandiant et Citrix sur la base des connaissances tirées des interventions en réponse aux incidents liés à l'exploitation de CVE-2019-19781. L'objectif du scanner est d'analyser les sources de journaux disponibles et les artefacts médico-légaux du système afin d'identifier les preuves d'une exploitation réussie de CVE-2019-19781. Il existe des limitations quant à ce que l'outil pourra accomplir, et par conséquent, l'exécution de l'outil ne doit pas être considérée comme une garantie qu'un système est exempt de compromission. Par exemple, les fichiers journaux sur le système contenant des preuves de compromission peuvent avoir été tronqués/écrasés, le système peut avoir été redémarré, un attaquant peut avoir falsifié le système pour supprimer les preuves de compromission, et/ou installé un rootkit qui masque les preuves de compromission, etc.
La sortie de cet outil se répartira dans l'une des trois catégories suivantes :
Preuve de compromission. C'est le comportement par défaut.
Toute preuve relevant de cette catégorie indique qu'un appareil a été compromis avec succès.
Cela peut aller de l'exécution de commandes divulguant des informations (par exemple, afficher les fichiers de configuration ns.conf ou smb.conf)
à l'installation d'une porte dérobée (par exemple, NOTROBIN, un mineur de cryptomonnaie, etc.),
ou au dépôt d'un webshell basé sur Perl.
Preuve de balayage de vulnérabilité réussi (cela peut être un administrateur système autorisé ou un attaquant non autorisé). Toute preuve relevant de cette catégorie indique que le système était dans un état vulnérable (par exemple, la mesure d'atténuation n'avait pas été appliquée) et qu'au moins la première étape pour exploiter CVE-2019-19781 a réussi.
Preuve de balayage de vulnérabilité échoué. Toute preuve relevant de cette catégorie indique que les tentatives de balayage ou d'exploitation du système ont échoué.
Cet outil n'est pas garanti de trouver toutes les preuves de compromission, ni toutes les preuves de compromission liées à CVE-2019-19781. Si des indications de compromission sont identifiées sur des systèmes, les organisations doivent effectuer un examen médico-légal du système compromis pour déterminer la portée et l'étendue de l'incident. Cet outil est fourni EN L'ÉTAT et sans garantie.
Vous devez télécharger le script Bash autonome depuis l' onglet Releases de ce dépôt. Copier le répertoire source sur une appliance Citrix ADC est possible mais déconseillé.
Le scanner IoC peut être exécuté directement sur une appliance Citrix ADC.
Dans ce mode, l'outil examinera les fichiers, les processus et les ports à la recherche d'indicateurs connus.
L'outil écrit les messages de diagnostic sur le flux STDERR et les résultats sur le flux STDOUT.
En utilisation typique, vous devez rediriger STDOUT vers un fichier pour examen.
L'outil doit être exécuté en tant que root en mode live sur une appliance Citrix ADC.
Par exemple :
$ sudo bash ./ioc-scanner-CVE-2019-19781-v1.1.sh > "/tmp/results-$(date).txt"
L'outil est conçu pour être utilisé avec les produits suivants :
Le scanner IoC peut également inspecter une image forensique montée. Dans ce scénario, passez un argument de ligne de commande spécifiant le chemin vers le répertoire racine de l'image. Vous n'avez pas besoin d'être root pour exécuter le mode hors ligne.
Par exemple :
$ bash ./ioc-scanner-CVE-2019-19781-v1.1.sh /mnt/path/to/evidence/root/
Dans les deux modes, l'outil extrait le code de support dans un répertoire temporaire ; ce répertoire sera supprimé à la fin du script. L'outil n'apporte pas d'autres modifications au système, bien qu'il puisse générer des entrées de journal.
Comme pour toute analyse forensique, privilégiez l'analyse hors ligne d'une image dd à la réponse en direct.
Cela éliminera le risque que l'outil provoque l'écrasement de preuves pertinentes.
Veuillez consulter la Foire Aux Questions pour plus de détails.
Si vous inventez d'autres moyens d'identifier une compromission, veuillez envisager de contribuer à ce scanner IoC. Nous souhaitons fournir le scanner le plus complet et le plus correct possible.
L'objectif principal est de signaler des indicateurs de compromission de haute confiance. Étant donné que les utilisateurs peuvent se fier à la sortie de cet outil pour lancer des investigations supplémentaires, il est important que nous ne les envoyions pas sur une fausse piste. Par conséquent, des activités telles qu'un simple balayage ne doivent pas être signalées en mode par défaut. Toute preuve qu'un acteur a obtenu un accès au système, récupéré des informations ou créé du contenu doit toujours être signalée.
Nous fournissons cet outil sous forme de script Bash car c'est un dénominateur commun sur les appliances Citrix ADC. Voici la matrice des fonctionnalités pour les versions de Citrix ADC :
| Version NetScaler | OS | Langages disponibles |
|---|---|---|
| 13.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.1 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 11.1 | FreeBSD 8.4 | Bash, Perl |
| 10.5 | FreeBSD 8.4 | Bash, Perl |
| 10.1 | FreeBSD 6.3 | Bash, Perl |
| 9.3 | FreeBSD 6.3 | Bash, Perl |
Bien que nous ayons vu des logiciels malveillants utiliser Go pour cibler FreeBSD/NetScaler, Go ne supporte pas FreeBSD 6.x.
Nous maintenons des images de système de fichiers éparses contenant des preuves de compromission dans le répertoire ./tests/.
Lorsque vous ajoutez des IoC à cet outil, comme des chemins connus ou du contenu blacklisté, veuillez fournir des exemples de preuves pour les tests.
Vous pouvez exécuter les tests unitaires sur un système Linux ou macOS comme suit :
$ bash ./tests/test.sh
runnning test: access-logs
runnning test: xml-template
runnning test: crontab
runnning test: var-cron-tabs-nobody
runnning test: error-logs
runnning test: file-system
runnning test: netscalerd
runnning test: notrobin-tmp-init
runnning test: notrobin-var-nstmp-nscache
runnning test: ns-content
runnning test: chr-encoded-template
runnning test: copied-ns-conf
runnning test: curl-in-template
runnning test: perms
runnning test: var-tmp-netscaler-portal-templates
runnning test: var-vpn-bookmark
runnning test: webshell-in-scripts
runnning test: shell-history
runnning test: bash_log
runnning test: notice_log
Une fois que vous avez cloné le dépôt source, vous pouvez construire un script autonome à l'aide de l'outil ./build.sh.
Celui-ci regroupe le script principal et les ressources de support dans un seul bundle.
Lors de l'exécution, il extrait dans un répertoire temporaire, exécute à partir de là, puis nettoie.
Pour construire :
$ bash ./build.sh > ioc-scanner-CVE-2019-19781-rev$(git rev-parse HEAD | cut -c 1-8).sh
Pour plus d'informations de FireEye concernant CVE-2019-19781 et l'exploitation en milieu sauvage, veuillez consulter :
La réponse à CVE-2019-19781 a été un effort significatif dans l'industrie de la sécurité et ces blogs citent largement des contributions supplémentaires qui seront utiles aux utilisateurs de cet outil. Nous recommandons la lecture du matériel lié dans ces articles pour mieux comprendre l'activité dans votre environnement. Comme toujours, l'équipe FireEye Mandiant est disponible pour répondre à des questions de suivi ou pour aider davantage lors d'une enquête en nous contactant ici.