Une méthodologie pour analyser les « jobs BITS »

Background Intelligent Transfer Service (BITS) est un service Windows permettant le transfert de fichiers en arrière-plan de façon intelligente depuis ou vers un serveur. Une fois détourné, ce service peut aussi devenir un vecteur d’attaque. L’ANSSI présentait au CoRIIN 2018, un outil d’analyse forensique à grande échelle pour l’étude de ces usages malveillants.

Publié le 09 Février 2018 Mis à jour le 09 Février 2018

Afin de maintenir l’état des différents transferts en cours, le service BITS repose sur un mécanisme de « jobs* ».
Un job est défini pour chaque transfert, auquel l’utilisateur applique un certain nombre de propriétés indiquant comment le transfert doit être effectué (priorité, durée de vie, proxy, authentification, etc.).
Ce mécanisme présente l’avantage de pouvoir reprendre le transfert en cas d’échec (perte de la connectivité, extinction du poste, etc.). Il offre par ailleurs la possibilité de spécifier une notification de fin de transfert permettant d’exécuter un programme lorsqu’un « job » se termine.

tilisé communément par le système de mise à jour Windows, il l’est aussi par plusieurs applications tierces (Adobe, Google update, etc.).
Cependant, une fois détourné, ce mécanisme peut devenir un vecteur d'attaque très discret et efficace, offrant aussi bien la possibilité de transférer discrètement des données, que d’exécuter des commandes arbitraires via la notification de fin de transfert.
Il est donc nécessaire à l’analyste forensique de comprendre quels sont les artefacts à sa disposition pour qualifier un « jobs BITS** ».

Les travaux présentés à CORIIN 2018, s’intéressent tout particulièrement au format des files d’attentes stockées sur le disque (%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr[0-1].dat), utilisé par le service pour maintenir l'état des « jobs » en cours.

L’analyse de ces fichiers a mené au développement d'un outil de forensique, « bits_parser », qui permet d’extraire de ces files d’attentes un maximum d’informations sur les jobs en cours, mais aussi sur un certain nombre de jobs passés qui peuvent persister sous la forme de fragments.

Bits_parser est disponible sur le Github de l’agence  , et permet aussi bien de traiter un fichier de file d’attente (qmgr[0-1].dat), qu’une image disque sur laquelle l’outil va alors « carver » les données.

Ces travaux ont été présentés lors de la Conférence sur la réponse aux incidents et l’investigation numérique (CoRIIN), par Morgane Celton et Morgan Delahaye.

 

* tâche** transfert