Recentemente me deparei com um questionamento a um trabalho realizado há cerca de três anos, relacionado a alguns registros armazenados no arquivo System.evtx do Log de Eventos do Microsoft Windows 7. Um dos registros dizia o seguinte:
06/02/2013 12:07:25 – A hora do sistema mudou de 2013-02-06T15:07:25.500000000Z para 2013-02-06T01:51:27.510396000Z. 05/02/2013 22:51:22 – O sistema está entrando em suspensão. Motivo da Suspensão: Botão ou Tampa
Sabendo que a data e hora do registro está no padrão de horário local e as datas e horas alteradas estão no padrão UTC (Universal Time Cordinated) teríamos então, em primeira análise, que houve uma atualização de um tempo mais recente para um tempo mais antigo, ou seja, que o relógio foi atrasado para um horário anterior, não deixando claro o fato ocorrido, visto que o sistema não executaria tal ação sozinho. Observando o registro nos seus detalhes nota-se que, o sistema informa a mudança de horário no seguinte formato:
TimeCreated [SystemTime] – A hora do sistema mudou de EventData [NewTime] para EventData [OldTime]
Seria coerente se fosse ao contrário. Primeiro OldTime e depois NewTime. Sabendo que não houve manipulações do sistema, resolvi realizar uma análise mais profunda sobre o caso, até porque o objetivo inicial da perícia era outro e a citação do log de eventos tinha como único motivo demonstrar que o usuário tinha por hábito suspender o uso do computador e não desligá-lo.
Inicialmente realizei uma pesquisa em diversos sites relacionados ao suporte do Microsoft Windows e apenas em um fórum brasileiro, alguém fazia menção ao mesmo problema, imputando o fato a um usuário que supostamente obteve acesso ao servidor e realizou tal alteração. Em inglês, não havia uma linha sequer sobre o assunto, o que me deixou desconfiado do problema. Seria possível que o sistema teria sido manipulado pelo usuário e produzido tal resultado? Foquei no fórum brasileiro e li todas as dúvidas e sugestões acerca do fato e nada. Eles não haviam chegado a nenhuma conclusão.
A composição do registro do evento era estranha. Como apontar uma mudança de horário indicando primeiramente a nova hora e depois a hora antiga? Será que os campos NewTime e OldTime estavam invertidos? Qual seria o problema então? Aí você tem que ser “o perito”, essa é sua função. Antes de atribuir o problema a algo que você desconhece ou ignora, pense, analise e refaça o trabalho que está deixando tanta dúvida.
Inicialmente conferi, como disse no post anterior, o campo EventRecordID, até porque a mudança de horário alteraria o posicionamento dos registros quando classificados pelo momento da gravação do registro. Nada errado. Tudo seguia a sequência normal dos eventos, que nesse caso possuía a numeração 172401, 172402, etc.
Quando o registro é gravado no disco, possui pouco conteúdo em formato legível para humanos (human readable), sendo que sua composição é realizada pelos visualizadores, através da combinação de modelos pré-definidos armazenados em DLLs e EXEs, com os dados existentes nos arquivos EVT e EVTX . Isso é percebido claramente quando copiamos os arquivos EVT/EVTX para analisar em outro computador que não possua os mesmos softwares do computador alvo da análise, gerando mensagens do tipo:
“The description for Event ID ( xxxx ) in Source ( yyyyyy ) could not be found.
Either the component that raises this event is not installed on the computer or the installation is corrupted. You can install or repair the component or try to change Description Server.“
Como utilizei um equipamento dotado do Microsoft Windows 7 em português, e vi que nenhum site de língua inglesa fazia menção ao problema, resolvi realizar a análise detalhada da composição, trocando o sistema operacional por um Microsoft Windows 7 com idioma em inglês, afinal este tipo de evento é gerado pelo próprio sistema operacional e não por uma aplicação de terceiros instalada nele. Feito isso abri o arquivo System.evtx no snap-in do Event Viewer (visualizador de eventos) e busquei os mesmos registros, obtendo o seguinte resultado:
06/02/2013 12:07:25 – The system time has changed to 2013-02-06T15:07:25.500000000Z from 2013-02-06T01:51:27.510396000Z. 05/02/2013 22:51:22 – The system is entering in sleep. Sleep Reason: Button or Lid
Comparei então os detalhes e o formato do evento onde vi que a mensagem era composta assim:
TimeCreated [SystemTime] – The system time has changed to EventData [NewTime] from EventData [OldTime]
Um erro na tradução do pacote de idioma produzia um registro incoerente. Na tradução “to” transformou-se em “de” e “from” em “para”.
Veja a galeria com detalhes:
Até o próximo.