Published on

November 5, 2021

Manter Metadados de Arquivos no SQL Server para Auditorias de Segurança

À medida que as organizações enfrentam ameaças crescentes de infiltrações e violações de dados, é crucial ter medidas de segurança robustas em vigor. Uma área que muitas vezes é negligenciada é a retenção de metadados de arquivos. Neste artigo, vamos explorar como manter metadados de arquivos no SQL Server para auditorias de segurança.

Compreendendo o Problema

Imagine um cenário em que seus servidores ETL e arquivos foram comprometidos. O infiltrador fez alterações nos arquivos, mas manipulou habilmente os carimbos de data e hora para que pareça que nada foi alterado. Isso representa um desafio significativo para detectar e mitigar tais infiltrações.

A Solução: Manter Metadados

Para resolver esse problema, podemos aproveitar o SQL Server para manter os metadados dos arquivos. Ao rastrear a data e hora de criação, atualização e acesso dos arquivos, juntamente com seu tamanho, podemos criar um rastro de auditoria abrangente. Isso nos permite detectar quaisquer alterações suspeitas feitas nos arquivos, mesmo que os carimbos de data e hora tenham sido manipulados.

Vamos dar uma olhada em um exemplo usando o PowerShell para editar os metadados de um arquivo:

if (!(Test-Path "C:\Import\fileconsistent.txt")) { New-Item "C:\Import\fileconsistent.txt" -ItemType File }
if (!(Test-Path "C:\Import\fileinconsistent.txt")) { New-Item "C:\Import\fileinconsistent.txt" -ItemType File }

$samefile = Get-ChildItem "C:\Import\fileconsistent.txt"
$changefile = Get-ChildItem "C:\Import\fileinconsistent.txt"
$changefile.CreationTime = (Get-Date).AddDays(-301)
$changefile.LastWriteTime = (Get-Date).AddDays(-301)
$changefile.LastAccessTime = (Get-Date).AddDays(-301)

No código acima, criamos dois arquivos e, em seguida, manipulamos os metadados de um arquivo alterando sua data e hora de criação, última gravação e último acesso. Isso demonstra como um infiltrador pode modificar os metadados para evitar detecção.

Rastreando Metadados no SQL Server

Para rastrear os metadados dos arquivos no SQL Server, podemos criar uma tabela para armazenar as informações dos arquivos:

CREATE TABLE tbFlAdt(
 FileFullName VARCHAR(100),
 CreationTime DATETIME,
 LastWriteTime DATETIME,
 LastAccessTime DATETIME,
 SizeInBytes BIGINT,
 AdtDate DATETIME DEFAULT GETDATE()
)

Uma vez que a tabela é criada, podemos usar o PowerShell para inserir os metadados dos arquivos na tabela do SQL Server:

$filtiles = Get-ChildItem "C:\import\" -Filter *.txt

foreach ($file in $filtiles)
{
    $insert = "INSERT INTO tbFlAdt VALUES ('" + $file.FullName + "','" + $file.CreationTime + "','"+ $file.LastWriteTime + "','"+ $file.LastAccessTime + "','"+ $file.Length + "',GETDATE())"
    Invoke-Sqlcmd -server "OurServer" -database "OurDatabase" -query $insert
}

No código acima, recuperamos todos os arquivos de texto na pasta especificada e inserimos seus metadados na tabela do SQL Server.

Identificando Alterações Suspeitas

Uma vez que os metadados são armazenados no SQL Server, podemos escrever consultas SQL para identificar quaisquer alterações suspeitas. Por exemplo, podemos procurar arquivos que tenham a mesma data e hora de criação, atualização e acesso ao longo de um período de tempo, mas tenham uma pequena alteração no número de bytes:

SELECT 
 t.FileFullName,
 t.SizeInBytes
FROM tbFlAdt t
 INNER JOIN tbFlAdt tt ON t.FileFullName = tt.FileFullName
  AND t.CreationTime = tt.CreationTime
  AND t.LastWriteTime = tt.LastWriteTime
  AND t.LastAccessTime = tt.LastAccessTime
  AND t.SizeInBytes <> tt.SizeInBytes
ORDER BY t.AdtDate DESC

Essa consulta nos ajudará a identificar arquivos que possivelmente foram adulterados, mesmo que os carimbos de data e hora permaneçam inalterados.

Conclusão

Manter metadados de arquivos no SQL Server é uma ferramenta poderosa para auditorias de segurança. Ao rastrear a data e hora de criação, atualização e acesso dos arquivos, juntamente com seu tamanho, podemos detectar quaisquer alterações suspeitas feitas nos arquivos, mesmo que os carimbos de data e hora tenham sido manipulados. Isso fornece às organizações um rastro de auditoria valioso e ajuda a identificar possíveis infiltrações. Implementar essa abordagem pode melhorar significativamente a segurança de seus servidores ETL e arquivos.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.