À 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 DESCEssa 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.