Anatomia da auditoria de arquivos

4502984461_2831f81f57_o[1] https://www.flickr.com/photos/myxi/ / CC BY-NC-ND 2.0

Gostaria de detalhar mais sobre a auditoria do Windows e falar como funciona a auditoria de arquivos, que é um dos principais motivadores para a implantação de auditoria nas empresas.

Auditar o sistema de arquivos é uma tarefa complexa, pois exige conhecimento do por que e como os eventos de auditoria são gerados e principalmente das aplicações que lêem, escrevem e modificam os arquivos. Muito importante rever as melhores práticas escritas no post Auditoria no Windows

O primeiro passo é habilitar a auditoria para um diretório especifico, tarefa que não vou detalhar aqui, mas que pode ser facilmente encontrada nos sites de busca. Um dos link que falam sobre isso é o https://technet.microsoft.com/en-us/library/dd277403.aspx

Os eventos de segurança

O Windows Server 2008 alterou a numeração dos EventID em relação ao Windows Server 2003, mas os eventos de auditoria de file system permanecem com as mesmas funções. Geralmente são 3 eventos que ocorrem a cada operação requisitada, seja de leitura, modificação ou deleção. São eles:

Event ID 4656 - A handle to an object was requested. (560 no W2K3)

Registra o início de uma requisição de acesso ao arquivo. Não indica que a permissão de acesso foi dada, mas apenas registro da sua abertura. Esse evento pode ocorrer e o usuário não ter ter o acesso concedido.

Event ID 4663 - An attempt was made to access an object. (567 no W2K3)

Este evento ocorre entre os eventos 4656 e o 4658 que abrem e fecham um handle. Esse evento documenta qual permissão efetiva foi dada ao usuário. Esse evento é o mais importante para os relatórios de auditoria de file system.

Event ID 4658 - The handle to an object was closed. (562 no W2K3)

O HandleID identifica e correlaciona os eventos subsequentes, Na ordem 4656, 4663 e 4658. O tempo total em que um objeto fica aberto pode ser encontrado pela diferença de tempo entre os eventos 4656 e o 4658 com o mesmo HandleID. Esse evento fecha o pedido do handle e define que a operação já foi executada.

Abaixo um exemplo tirado do teste que realizei. Neste exemplo o word cria um arquivo temporário. Note que o valor dos campos de HandleID e ProcessID são os mesmos nos três eventos.

-------------- Event ID 4656 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\~$latoriobomba.docx

Handle ID: 0x450 Process Information:

Process ID: 0xdd0 Process Name: C:\Program Files (x86)\Microsoft OfficeOffice14\WINWORD.EXE
Access Request Information:
Transaction ID: {00000000-0000-0000-0000-000000000000}
Accesses: READ_CONTROL
SYNCHRONIZE
WriteData (or AddFile)
AppendData (or AddSubdirectory or CreatePipeInstance)
WriteEA
ReadAttributes
WriteAttributes
Access Reasons: READ_CONTROL: Unknown or unchecked
SYNCHRONIZE: Unknown or unchecked
WriteData (or AddFile): Granted by D:(A;ID;FA;;;BA)
AppendData (or AddSubdirectory or CreatePipeInstance): Unknown or unchecked
WriteEA: Unknown or unchecked
ReadAttributes: Unknown or unchecked
WriteAttributes: Unknown or unchecked
Access Mask: 0x120196
Privileges Used for Access Check: -
Restricted SID Count: 0

-------------- Event ID 4663 -------------- Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\~$latoriobomba.docx

Handle ID: 0x450 Process Information:

Process ID: 0xdd0 Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: WriteData (or AddFile)
AppendData (or AddSubdirectory or CreatePipeInstance)
Access Mask: 0x6

-------------- Event ID 4658 -------------- Subject :
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security

Handle ID: 0x450 Process Information:

Process ID: 0xdd0 Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE

Testes

No meu teste, em Windows Server 2008 R2, criei um arquivo chamado relatoriobomba.docx no diretório E:\ShareDocs\Confidencial. Apliquei auditoria para everyone, full control, apenas no diretório Confidencial.

Para que voces tenham idéia da quantidade de eventos de segurança que são gerados em uma simples operação de leitura e escrita. Abri o arquivo com o Word 2010, modifiquei o arquivo e o salvei. Essa tarefa gerou 164 eventos do tipo 4656. Lembrando que geralmente cada 4656 é seguido de um 4663 e 4658, totalizando 492 eventos de segurança de file system (em menos de 2 segundos).

Abertura do arquivo no Word 2010 criou dois arquivos temporarios: ~$latoriobomba.docx e ~WRD0000.tmp. Após a modificação ele deletou esses arquivos e registro uma mudança no arquivo relatoriobomba.docx. O que mostra que o Word 2010 é uma aplicação bem comportada, pois outras aplicações deletam o documento e renomeiam um dos arquivos temporários para o nome original do documento.

A grande maioria dos eventos de auditoria de file system estão relacionados ao windows explorer realizando leitura do diretório e dos arquivos a cada vez que a janela do windows explorer recebe o foco, e se voce estiver em uma árvore de diretório com vários níveis ele faz a leitura de cada diretório até o raiz. Todo esse volume de eventos é registrado e não trazem benefício nenhum. Por isso a recomendação de não auditar eventos de leitura.

Os registros que mais informações repassam para uma auditoria são os 4663, que descrevem o tipo efetivo de permissão foi repassado para o processo para que ele execute a operação. Abaixo os principais 4663 que foram registrados no laboratório. Percebam que pela descrição do evento voce tem a informação do usuário e aplicativo que exercitaram a operação.

-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\~WRD0000.tmp
Handle ID: 0x16c
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: DELETE
Access Mask: 0x10000
-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\~WRD0000.tmp
Handle ID: 0x5a4
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: WRITE_DAC
Access Mask: 0x40000
-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\relatoriobomba.docx
Handle ID: 0x16c
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: WRITE_DAC
WRITE_OWNER
Access Mask: 0xc0000
-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\relatoriobomba.docx
Handle ID: 0x5a4
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: ReadData (or ListDirectory)
WriteData (or AddFile)
Access Mask: 0x3
-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\~WRD0000.tmp
Handle ID: 0x16c
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: WriteAttributes
Access Mask: 0x100
-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\~WRD0000.tmp
Handle ID: 0x5a0
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: WRITE_DAC
WRITE_OWNER
Access Mask: 0xc0000
-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\relatoriobomba.docx
Handle ID: 0x5a4
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: ReadData (or ListDirectory)
WriteData (or AddFile)
Access Mask: 0x3
-------------- Event ID 4663 --------------
Subject:
Security ID: S-1-5-21-2519188043-3535759837-264264162-500
Account Name: Administrator
Account Domain: CONTOSO
Logon ID: 0x44ebc
Object:
Object Server: Security
Object Type: File
Object Name: E:\ShareDocs\Confidencial\~$latoriobomba.docx
Handle ID: 0x178
Process Information:
Process ID: 0xdd0
Process Name: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
Access Request Information:
Accesses: DELETE
Access Mask: 0x10000