Emplacement d'ActivitiesCache.db et acquisition
Où se trouve ActivitiesCache.db selon le type de compte, et comment le collecter avec son -wal : image disque, KAPE, Velociraptor ou système allumé.
En bref. La base se trouve dans C:\Users\<user>\AppData\Local\ConnectedDevicesPlatform\<account-folder>\ActivitiesCache.db. Collectez tout le dossier ConnectedDevicesPlatform de chaque profil, ActivitiesCache.db-wal compris. Sur un système allumé, utilisez un collecteur en accès disque brut (cible KAPE WindowsTimeline, Velociraptor) ou un cliché instantané, et prenez la base et le WAL ensemble. Hachez avant d'analyser.
Récupérer le fichier est simple sur un disque éteint, et étonnamment facile à rater sur une machine allumée. Les deux erreurs classiques : copier la base sans son WAL, et copier les deux fichiers à des moments différents. Dans les deux cas, on obtient une chronologie qui paraît correcte et qui est discrètement incomplète.
Le chemin
| Composant | Valeur |
|---|---|
| Base | %LOCALAPPDATA%\ConnectedDevicesPlatform\ (C:\Users\<user>\AppData\Local\ConnectedDevicesPlatform\) |
| Dossier de compte | L.<username> pour un compte local (artifacts-kb) ; les praticiens signalent un identifiant de type hexadécimal pour les comptes Microsoft et un dossier préfixé AAD. pour les comptes Entra ID (Azure AD) (README d'ActivitiesCacheParser) |
| Fichiers | ActivitiesCache.db, ActivitiesCache.db-wal, ActivitiesCache.db-shm |
| À proximité | CDPGlobalSettings.cdp et des fichiers .cdp par compte (réglages JSON de la plateforme) |
Deux détails comptent en pratique.
Un utilisateur, plusieurs dossiers de compte. kacos2000 a observé que lorsqu'un utilisateur passe d'un compte local à un compte Microsoft, le dossier L.<username> est supprimé et un nouveau dossier est créé pour le compte Microsoft, avec reprise des entrées antérieures ; le retour à un compte local laisse la base du compte Microsoft en place (kacos2000). Ne vous arrêtez pas au premier dossier trouvé.
Le nom du dossier n'est pas l'utilisateur. Pour les comptes Microsoft et Entra ID, le nom du dossier ne contient pas le nom d'utilisateur. Attribuez la base à partir du chemin du profil (Users\<name>\) et conservez cette arborescence dans la collecte. L'entrée de glossaire ConnectedDevicesPlatform résume le nommage.
Quels fichiers prendre
| Fichier | À prendre ? | Pourquoi |
|---|---|---|
ActivitiesCache.db | Oui | La base après checkpoint |
ActivitiesCache.db-wal | Oui | Modifications validées non encore reportées, souvent l'activité la plus récente (pourquoi le WAL compte) |
ActivitiesCache.db-shm | Facultatif | L'index WAL : une structure de recherche reconstructible, sans preuve propre |
Fichiers de réglages *.cdp | Oui, ça ne coûte rien | Contexte sur le compte et les réglages de la plateforme |
SQLite précise que le fichier WAL fait partie de l'état persistant de la base et que séparer les deux peut faire perdre des transactions validées (sqlite.org/wal.html). Traitez la paire comme une seule pièce à conviction.
Depuis une image disque
L'acquisition à froid est le cas simple : rien ne tient les fichiers ouverts, et aucun checkpoint ne peut survenir pendant votre travail.
- Montez l'image en lecture seule.
- Exportez
Users\*\AppData\Local\ConnectedDevicesPlatform\de façon récursive, en conservant les chemins. - Hachez chaque fichier exporté.
- Vérifiez la présence d'un
-waldans chaque dossier de compte. Un WAL vide ou absent sur une image signifie en général que la dernière connexion s'est fermée proprement après un checkpoint (sqlite.org) ; notez-le, ce n'est pas une erreur.
Regardez aussi dans les clichés instantanés de volume si l'image en contient. Un instantané plus ancien peut abriter une base antérieure à l'effacement de l'historique ou à l'expiration des entrées. Le parseur d'images disque et le parseur de corbeille couvrent les preuves voisines que vous voudrez extraire de la même image.
Depuis un système allumé
Sur une machine en fonctionnement, la session de l'utilisateur garde la base ouverte. Une copie de fichier ordinaire échoue souvent sur une violation de partage ou, pire, réussit pour la base et pas pour le WAL.
KAPE. La cible WindowsTimeline de KapeFiles collecte ActivitiesCache.db* de façon récursive sous le dossier ConnectedDevicesPlatform de chaque utilisateur, ce qui ramène la base, le WAL et le SHM d'un coup (WindowsTimeline.tkape). KAPE lit les fichiers verrouillés par accès disque brut.
Velociraptor. L'artefact Windows.Forensics.Timeline pointe par défaut sur C:\Users\*\AppData\Local\ConnectedDevicesPlatform\*\ActivitiesCache.db ; sa documentation le marque comme déprécié au profit de Generic.Forensic.SQLiteHunter (documentation Velociraptor). Pour la collecte de fichiers, utilisez un motif qui se termine par ActivitiesCache.db* afin d'emporter le WAL.
Cliché instantané. Créer un cliché instantané et copier depuis celui-ci donne une paire cohérente, figée dans le temps. Cela modifie le système : consignez-le dans vos notes.
Quel que soit l'outil, la règle ne change pas : la base et le WAL doivent provenir du même instant. Un WAL pris à un autre moment peut contenir des trames qui ne correspondent pas aux pages de la base. Le Windows Timeline Parser vérifie que le résultat rejoué reste une Timeline plausible et ignore un WAL incohérent avec un avertissement, mais il ne peut pas récupérer ce qu'une mauvaise copie n'a jamais capturé.
Signes d'une mauvaise copie
| Symptôme | Cause probable |
|---|---|
Le fichier commence par des zéros au lieu de SQLite format 3 | L'outil de copie n'a pas pu lire le fichier verrouillé et a écrit un tampon vide |
| WAL présent, le parseur signale une incohérence de sel ou de somme de contrôle dès la première trame | WAL pris à un autre moment, ou issu d'une autre base |
| La base s'analyse, mais l'activité la plus récente date de plusieurs heures ou jours sur une machine active | WAL manquant |
Seulement un -wal et un -shm, pas de base | Motif de collecte trop étroit |
L'outil signale chacun de ces cas explicitement : les fichiers qui commencent par des zéros, un WAL sans sa base et un -shm ignoré sont listés sous Fichiers non analysés, et un WAL manquant déclenche un avertissement.
Attribution et chaîne de possession
- Conservez
Users\<name>\AppData\Local\ConnectedDevicesPlatform\<account-folder>\intact dans la collecte. L'outil attribue chaque base à partir deUsers/<name>/ou du dossierL.<name>; votre rapport doit faire de même. - Hachez les fichiers collectés, puis travaillez uniquement sur des copies. Ouvrir les originaux avec une bibliothèque SQLite standard peut reporter le WAL dans la base et le supprimer à la fermeture de la connexion (sqlite.org), ce qui modifie la preuve.
- Relevez le fuseau horaire du système et celui de l'utilisateur, puis gardez les horodatages en UTC dans vos notes de travail.
Collectes de triage : quoi prendre en plus
Si vous collectez déjà Timeline, la même passe doit ramener les artefacts qui la corroborent : SRUDB.dat pour SRUM, C:\Windows\Prefetch pour Prefetch, AutomaticDestinations pour les Jump Lists, Recent\*.lnk pour les fichiers LNK, les ruches utilisateur pour les preuves du registre, et les journaux d'événements pour EVTX. Timeline est plus fort quand il est une voix parmi d'autres ; voir Windows Timeline vs SRUM vs Prefetch vs Jump Lists.
FAQ
Où est stockée la base de Windows Timeline ?
Dans C:\Users\<user>\AppData\Local\ConnectedDevicesPlatform\<account-folder>\ActivitiesCache.db. Le dossier de compte s'appelle L.<username> pour un compte local et porte un autre identifiant pour un compte Microsoft ou professionnel ou scolaire.
Faut-il collecter le fichier -shm ?
Non. Le fichier -shm est un index en mémoire partagée que SQLite reconstruit. Prenez-le si votre outil le collecte, mais les preuves se trouvent dans ActivitiesCache.db et ActivitiesCache.db-wal.
Peut-on copier ActivitiesCache.db sur un système allumé ?
Pas avec une simple copie pendant que l'utilisateur est connecté, car le fichier est généralement ouvert. Utilisez un collecteur en accès disque brut comme KAPE ou Velociraptor, ou un cliché instantané de volume, et prenez la base et son WAL au même instant.
Étapes suivantes
Une fois les fichiers en main, analysez ActivitiesCache.db dans votre navigateur, ou repartez du guide complet de l'analyse forensique de Windows Timeline.