Nas partes 1 e 2 desta série sobre a linha do tempo das atividades do Windows (apenas “linha do tempo” daqui em diante), discutimos como o Cellebrite BlackLight e o Cellebrite MacQuisition podem ajudar os investigadores a encontrar evidências valiosas em dispositivos Android ou Mac, respectivamente. Também nos aprofundamos no banco de dados de origem, ActivitiesCache.db, que armazena resmas de dados sobre as ações que cada usuário realizou em um sistema (ou seja, navegação na Web e acesso a documentos).

Além disso, essa evidência pode ser sincronizada em várias máquinas Windows nas quais um usuário efetua login com a mesma conta MS. A linha do tempo também poderá armazenar evidências de atividades que ocorreram em máquinas que não sejam Windows se o Office365 estiver conectado à mesma conta que a conta de login do MS.

Neste blog, analisaremos um tipo de atividade do usuário que você pode nem pensar ao examinar este artefato específico – o conteúdo da área de transferência.

Antes de começar, devemos observar um aspecto: a análise da linha do tempo é um alvo que se move rapidamente. O próprio banco de dados, assim como o comportamento do sistema, muda com quase todas as versões do Windows.

Mesmo sem as mudanças constantes, há grandes partes da linha do tempo sobre as quais sabemos pouco. Há muito mais trabalho necessário aqui para verificação, bem como descobrir as partes desconhecidas. Com isso em mente, este post tem um pouco mais de detalhes sobre o processo que usei para descobrir como a linha do tempo e a área de transferência estão conectadas. Com sorte, esta informação ajudará outras pessoas curiosas a realizar seus próprios testes e a acrescentar algo ao que já é conhecido.

A declaração do problema

Ao pesquisar um tempo atrás (muito) no ActivitiesCache.db em uma das máquinas virtuais (mVs) de teste que uso, vi que havia uma coluna na tabela Activities, chamada “Clipboard Payload”, que continha dados. Eu já tinha visto a coluna antes, mas nunca a tinha visto preenchida antes. É parecida com o apresentado na Figura 1 abaixo. Imediatamente, meu faro de detetive disparou me dizendo que deveria ser interessante, então fui mais a fundo.

Figura 1

Eu carreguei a MV no Cellebrite BlackLight para analisar mais. A coluna Clipboard Payload mostrou alguns dados óbvios codificados em base64. A string decodificada foi “Projeto blockchain apoiado por AMD acumulando 20 mil GPUs, mas não vou dizer por quê”. Aparentemente, eu estava lendo algumas criptomoedas e copiei o título do artigo. Mas como os dados chegaram lá? Quanto tempo permaneceriam? Foram armazenados em mais outro lugar? Era apenas texto que podia ser armazenado?

Havia muitas perguntas que precisavam de respostas, então decidi fazer alguns testes.

Metodologia

Eu tinha uma noção de quais poderiam ser algumas das respostas e havia fontes on-line \[1] que tinham boas informações, mas, como eu disse antes, a linha do tempo muda rapidamente. Para responder a algumas dessas perguntas, recentemente criei uma nova MV do Windows 10 2004 e copiei e colei algum texto. Na sequência, analisei o banco de dados da linha do tempo e não havia dados da coluna Clipboard Payload preenchidos.

Então, isso não foi muito útil.

Uma breve pesquisa no Google me lembrou que o Windows 10 versão 1809 adicionou alguns novos recursos da área de transferência: “Histórico da área de transferência” e “Sincronização em nuvem da área de transferência” \[2-8]. Eu imaginei que se as opções de configuração corretas (veremos abaixo) fossem selecionadas, o Windows manteria um histórico limitado de texto e imagens que um usuário copiou usando “CTRL-C”.

Eles podem então ser acessados com a combinação de teclas WinKey-V. Dependendo novamente das configurações, alguns tipos de dados copiados podem até ser sincronizados entre máquinas.

Em seguida, experimentei a combinação de teclas WinKey-V do Histórico da área de transferência na minha MV de 2004 e recebi esta mensagem desanimadora:

Figura 2

Presumi que precisava mexer em algumas configurações. Depois de mais pesquisas no Google, ativei o histórico da área de transferência em Settings → System → Clipboard:

Figura 3

Copiei algum texto do meu navegador, tentei o WinKey-V novamente e observei o seguinte:

Figura 4

Mas quando olhei no banco de dados da linha do tempo novamente, ainda estava sem sorte. Não havia dados na coluna Clipboard Payload preenchidos. Felizmente, havia mais configurações para alternar.

Na sequência, habilitei a configuração de sincronização entre dispositivos pela função “Sync across devices” para ativar a sincronização em nuvem da área de transferência via “Clipboard Cloud Sync”.

Figura 5

Agora, achei que isto teria uma chance melhor de funcionar, então, na nova MV de 2004, fiz o seguinte (consulte a Figura 6 abaixo):

  • Conectei uma das minhas contas de teste da MS.
  • Abri o bloco de notas.
  • Inseri um registro de data/hora para ter uma boa medição.
  • Escrevi um texto.
  • Selecionei o texto.
  • Cliquei com o botão direito e copiei o texto.

Figura 6

Depois abri outra máquina, esta era uma MV de teste do Windows 10 1809 e fiz o seguinte:

  • Fiz login com a mesma conta MS da VM 2004.
  • Verifiquei se ela tinha as mesmas configurações da área de transferência.
  • Abri o bloco de notas.
  • Inseri um registro de data/hora.
  • Cliquei com o botão direito e selecionei colar.

Observação: Tenha cuidado para não ter copiado/colado nada mais nesta MV antes.

Et viola! O texto que copiei acima na máquina 2004 colado na máquina 1809 (veja a Figura 7 abaixo).

Figura 7

Desta vez, quando olhei rapidamente no banco de dados da linha do tempo na máquina de 2004, vi alguns dados da coluna Clipboard Payload preenchidos. Agora eu estava fazendo algum progresso.

Decidi dar analisar melhor o banco de dados da linha do tempo das máquinas 2004 e 1809 e, usando o que vimos nos posts anteriores e o que sabemos agora, ver como tudo isso funcionava na linha do tempo.

Para testar isso, fiz o seguinte:

  • Abri o Cellebrite BlackLight e criei um novo caso.
  • Adicionei os VMDKs de cada uma das MVs ao caso.
  • Certifiquei-me de que o processamento “Actionable Intel” estava selecionado (é por padrão).
  • Olhei a seção em Actionable Intel → Program Execution → Activities Cache.

Voltando e olhando os registros de data/hora nos meus arquivos do Bloco de notas das Figuras 6 e 7 acima, observei que meu horário de início de copiar/colar era por volta das 18h50 de 30 de junho de 2020. Em seguida, classifiquei por hora de início e imediatamente notei que havia muitas entradas duplicadas de “Guid Id” na Figura 8 abaixo (por exemplo, “AF42”… nas linhas um e três, e “F2FE”… nas linhas dois e quatro são iguais).

Sabemos por meio de publicações anteriores que estes deveriam ser identificadores exclusivos das atividades. Nossas publicações anteriores também nos mostraram que vemos duplicatas aqui porque as atividades foram sincronizadas entre as duas máquinas, pois usei a mesma conta MS em ambas.

Figura 8

Às vezes, os dados duplicados podem ser úteis, mas outras vezes podem tornar as coisas mais difíceis. Desta vez parecia a última opção. Primeiro, eu apenas olhei o cache de atividades da máquina de 2004, selecionando apenas a máquina Win10 2004 na seção de “Evidence” da “Component List”. Esta ação eliminou as entradas duplicadas, como podemos ver na Figura 9 abaixo.

Figura 9

Depois de classificar por hora de início, podemos ver (Figura 10 abaixo) de seis a sete entradas que podem ser relevantes em função do período de tempo em que copiei e colei. A coluna “App Id” indica que todas as entradas, exceto uma, estão relacionadas ao Bloco de notas. (Observação adicional: também usei o filtro de visualização do Cellebrite BlackLight para remover algumas outras atividades não relacionadas).

Figura 10

Rolando para a direita (consulte a Figura 11 abaixo), podemos ver que essas atividades se originaram em duas máquinas diferentes com base nos dois valores diferentes listados em Platform Device IDs. Usando a técnica descrita no post anterior, você deve se lembrar de que podemos identificar que as entradas yugS… se originaram na máquina 1809 e as entradas mWKk… se originaram na máquina 2004.

Na sequência, concentrei-me apenas nas entradas originadas na máquina 1809 e, como podemos ver na Figura 11 abaixo, há um tipo de atividade 5 para abrir o Bloco de notas e um tipo de atividade 6 para interagir com o aplicativo. (Os tipos de atividade 5 e 6 parecem estar na ordem inversa, mas ao examinar o horário de início, os dois começaram no mesmo segundo, portanto, são listados em ordem arbitrária).

Podemos ver que o arquivo “Notepad” foi usado para acesso em “App Activity Id column: morecopypasta.txt file”. É aqui que colamos o texto na Figura 7 acima.

Figura 11

Se agora nos concentrarmos nas entradas originadas na máquina 2004, poderemos ver que há quatro linhas relevantes na Figura 11 acima. Duas delas são tipos de atividade 6, o que significa que o usuário estava interagindo com o aplicativo Bloco de notas. Podemos ver o arquivo que o Bloco de notas foi usado para acessar no campo App Activity Id: pasted.txt.txt.

Este é o arquivo do qual copiei o texto na Figura 6 acima. Há também um tipo de atividade 16, que nos informa que o Bloco de notas foi usado para copiar ou colar. E podemos ver um tipo de atividade 10, que nos diz que ocorreu uma atividade da área de transferência.

Se examinarmos mais profundamente o tipo de atividade 16 (Copiar/Colar) na Figura 12 abaixo, o Group ID nos diz que a operação foi uma operação de Cópia.

O Clipboard Payload, quando decodificado da base64 é:

6:52 PM 6/30/2020 Copy on 2004

Let’s copy/paste through the cloud

Corresponde ao texto que copiei acima, conforme visto na Figura 6.

Figura 12

É importante observar que o tipo de atividade 10 não está diretamente vinculado ao Bloco de notas por seu App Id, App Activity Id ou qualquer outro campo. Podemos apenas inferir que o texto copiado ou colado no próprio Clipboard Payload foi copiado/colado no Bloco de notas.

Embora a maioria dos dados seja sincronizada entre as máquinas, nem tudo está. Vamos analisar o mesmo período de tempo no banco de dados da linha do tempo da máquina 1809 na Figura 13 abaixo.

Figura 13

Ele se parece muito com o banco de dados da máquina 2004, mas quando rolarmos um pouco (consulte a Figura 14 abaixo), vemos que uma entrada está faltando.

Figura 14

Não há nenhum tipo de atividade 16 mostrado no banco de dados da linha do tempo da máquina 1809. Poderíamos esperar ver um tipo de atividade 16 com um Group Id de “Paste” que correspondesse ao outro tipo de atividade 16 com um Group Id de “Copy”. Certamente que sim e com uma versão diferente da linha do tempo que poderíamos ter.

Mas ela não estava lá agora. Lembra como dissemos que este era um alvo em movimento rápido? Agora que entendemos como tudo isso se parece no banco de dados da linha do tempo, vamos voltar ao nosso conjunto original de perguntas na seção Problema acima.

Resultados

Depois de analisar os aspectos acima (e fazer alguns testes pontuais adicionais, especificamente voltados para responder às nossas perguntas), deduzimos o seguinte:

Como os dados do Clipboard Payload chegaram lá?

No experimento acima, copiamos os dados na máquina 2004 e os colamos na máquina 1809. Isso resultou no preenchimento do Clipboard Payload com a versão codificada em base64 do texto copiado. Entretanto, testes posteriores descobriram que tudo o que é necessário para preencher os dados é copiar o texto. Não é necessário colar este texto.

Quanto tempo permanece?

Observando o banco de dados da linha do tempo na Figura 15 abaixo, podemos ver que cada atividade tem um horário de início e um horário de término. Se olharmos a diferença entre eles, é exatamente sempre 12 horas. E sabemos que as atividades são excluídas do banco de dados no término. Juntar isso significa que o texto copiado ficará no banco de dados por 12 horas e será excluído.

Figura 15

Os dados da área de transferência são armazenados em outro lugar?

Depois de vasculhar o banco de dados da linha do tempo para a máquina 2004, não encontrei nenhum outro lugar onde os dados da área de transferência estivessem armazenados. No entanto, sabendo que versões diferentes do Windows se comportam de maneira distinta, olhei a máquina 1809 e descobri que, para o tipo de atividade 10, o campo Payload contém uma cópia dos dados de Payload do Clipboard Payload.

Observe a Figura 16 da máquina 1809 abaixo, onde o conteúdo do Payload no painel inferior à direita correspondia ao Clipboard Payload.

Figura 16

Na Figura 17 da máquina 2004 abaixo, entretanto, o campo Payload está vazio.

Figura 17

Também há algumas evidências de que os dados da área de transferência podem ser armazenados fora da linha do tempo, mas isso está além do escopo da análise de hoje.

Somente texto é armazenado?

Quando olhamos para o Payload na Figura 16 acima, podemos ver que o formatName é “text”. Isso implica que pode haver dados não textuais armazenados no campo Payload e, portanto, no campo Clipboard Payload.

Existem ainda várias fontes (veja a referência abaixo) que dizem que a área de transferência em nuvem lida com texto e imagens. Infelizmente, tentei vários métodos para fazer com que uma imagem fosse sincronizada por meio do Clipboard Cloud Sync ou no banco de dados da linha de tempo e não consegui fazer isso.

Talvez seja uma função que funcione no futuro; há alguma configuração que deve ser alternada; ou simplesmente não “fiz isto da forma correta”. Como podemos ver, aprofundar-se na linha do tempo pode revelar todos os tipos de informações que podemos não ter pensado em procurar.

Usando o Cellebrite BlackLight e o Cellebrite MacQuisition, que projetamos para ajudar a facilitar muito mais a localização de todas essas novas informações, quer você esteja lidando com um dispositivo baseado em Windows ou Mac.

Esperamos que você tenha achado esta série de blogs útil. Saiba mais sobre como o Cellebrite BlackLight e o Cellebrite MacQuisition podem ajudá-lo a progredir em suas investigações aqui.

Referências

Abaixo estão algumas referências importantes para aqueles que gostariam de se aprofundar na linha do tempo.

Análise forense da linha do tempo, histórico da área de transferência e muito mais

*** Com certeza, você verá todas as informações e ferramentas do Costas Katsavounidis aqui:

[1] Costas: https://github.com/kacos2000/WindowsTimeline

Análise forense da linha do tempo

[2] https://thinkdfir.com/2018/10/14/clippy-history/

Informações gerais da área de transferência

[3] https://www.howtogeek.com/351978/using-windows-10s-new-clipboard-history-and-cloud-sync/

[4] https://community.windows.com/en-us/stories/cloud-clipboard-windows-10

[5] https://www.bleepingcomputer.com/news/microsoft/microsoft-introduces-a-redesigned-windows-clipboard-experience/

Vídeos da MS

[6] https://channel9.msdn.com/events/Build/2017/B8108

[7] https://channel9.msdn.com/Events/Windows/Windows-Developer-Day-Fall-Creators-Update/WinDev011

[8] https://channel9.msdn.com/Events/Connect/2017/B111

Algumas descrições de campos do banco de dados da linha do tempo

[9] https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.useractivities.useractivity?view=winrt-19041

A perspectiva do desenvolvedor

Atividade

[10] https://docs.microsoft.com/en-us/graph/api/resources/projectrome-activity?view=graph-rest-1.0

Item do histórico

[11] https://docs.microsoft.com/en-us/graph/api/resources/projectrome-historyitem?view=graph-rest-1.0

[12] https://docs.microsoft.com/en-us/windows/uwp/launch-resume/useractivities

Project Rome

[13] https://github.com/Microsoft/project-rome

Graph API

[14] https://developer.microsoft.com/en-us/graph

Webinars e postagens de blog da BBT

https://cellebrite.com/en/webinars/windows-10-activity-timeline-an-investigators-gold-mine/

Veja como nossas soluções de inteligência digital podem ajudar você a resolver casos mais rapidamente.

Fale conosco.

Share this post