
Инструмент для сканирования файловой системы с целью судебного анализа и поиска угроз. Сканирует файловые системы на уровне MFT и ОС, сохраняет данные в SQL, SQLite или CSV. Угрозы и данные можно исследовать, используя мощность и синтаксис SQL.

Позвольте мне пояснить...
Вы начинаете с диска или образов дисков, которые потенциально заражены вредоносным ПО, вирусами, APT (advanced persistent threats) или подобным, а затем сканируете их с помощью этого инструмента. (Опционально, и если у вас есть мудрость и предусмотрительность сделать это, вы можете сначала отсканировать заведомо чистый базовый образ диска этим инструментом (или позже — неважно). Это, безусловно, не обязательно, но может только помочь вам.) Криминалистическая часть сканирования этого инструмента собирает кучу свойств о каждом файле в файловой системе (или её образе(ах)) и помещает эти свойства в таблицу реляционной базы данных SQL. Секретный ингредиент заключается в возможности охотиться за угрозами, расследовать или задавать вопросы о данных с помощью запросов на языке SQL к созданной базе данных. Ключевая особенность здесь — НЕ изобретение собственного языка запросов. Если вы знаете SQL и как нажать кнопку, то вы уже умеете пользоваться этим инструментом как профи. Даже если нет, эта концепция достаточно мощна, чтобы готовые запросы (см. ниже) дали вам много возможностей.
Во-первых, инструмент создаёт запись в базе данных для каждой записи, найденной в MFT (главной файловой таблице — так NTFS ведёт свою запись). Это обходит разрешения безопасности файлов, скрытие файлов, методы скрытия или обфускации, удаление файлов или подделку временных меток. Эти методы не помешают файлу быть отсканированным и каталогизированным. Байты файла считываются из MFT, и из байтов файла, прочитанных из MFT, извлекается как можно больше точек данных до попытки доступа к любым точкам данных с использованием высокоуровневых вызовов API ОС.
После того, как данные MFT и криминалистического уровня защищены, собираются свойства, данные и метаданные уровня операционной системы, доступные для каждого файла, и дополняют каждую запись, созданную из записи MFT. В результате этого, даже если файл или его свойства из API ОС или фреймворка dotnet недоступны из-за разрешений файлов (ACL), блокировок файлов (используется), повреждения диска, файла нулевой длины или любых других причин, существование файла всё равно будет записано, зарегистрировано и отслежено. Запись, однако, просто не будет содержать информацию о нём, которая была недоступна операционной системе. Всего может быть собрано до 51 различных точек данных для каждого файла.

/*
IDEA: All files in the directory C:\Windows\System32\ should be 'owned' by TrustedInstaller.
If a file in the System32 directory is owned by a different user, this indicates an anomaly,
and that user is likely the user that created that file.
Malware likes to masquerade around as valid Windows system files.
Executables that are placed in the System32 directory not only look more official, as it is a common path for
system files, but an explicit path to that executable does not need to be supplied to execute it from the
command line, windows 'Run' dialog box of the start menu, or the win32 API call ShellExecute.
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
[FileOwner] <> 'TrustedInstaller'
AND [DirectoryLocation] = ':\Windows\System32'
AND IsSigned = 0
ORDER BY [PrevalenceCount] DESC
/*
IDEA: The MFT creation timestamp and the OS creation timestamp should match.
If the MFT creation timestamp occurs after the creation time reported by the OS meta-data,
this indicates an anomaly.
Timestomp is a tool that is part of the Metasploit Framework that allows a user to backdate a file
to an arbitrary time of their choosing. There really isn't a good legitimate reason for doing this
(let me know if you can think of one), and is considered an anti-forensics technique.
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
([MftTimeAccessed] <> [LastAccessTime]) OR
([MftTimeCreation] <> [CreationTime]) OR
([MftTimeMftModified] <> [LastWriteTime])
ORDER BY [DateSeen] DESC
/*
IDEA: The 'CompileDate' property of any executable or dll should always come before the creation timestamp for that file.
Similar logic applies as for the MFT creation timestamp occuring after the creation timestamp. How could a program have been
compiled AFTER the file that holds it was created? This anomaly indicates backdating or timestomping has occurred.
*/
SELECT
TOP 1000 *
FROM [FileProperties]
WHERE
([MftTimeCreation] < [CompileDate]) OR
([CreationTime] < [CompileDate])
ORDER BY [DateSeen] DESC
| MFTNumber | SequenceNumber | SHA256 | FullPath | Length | FileOwner | Attributes | IsExe | IsDll | IsDriver | BinaryType | IsSigned | IsSignatureValid | IsValidCertChain | IsTrusted | ImpHash | MD5 | SHA1 | CompileDate | MimeType | InternalName | ProductName | OriginalFileName | FileVersion | FileDescription | Copyright | Company | Language | Trademarks | Project | ApplicationName | Comment | Title | Link | ProviderItemID | ComputerName | DriveLetter | DirectoryLocation | Filename | Extension | CertSubject | CertIssuer | CertSerialNumber | CertThumbprint | CertNotBefore | CertNotAfter | PrevalenceCount | Entropy | YaraRulesMatched | DateSeen | MftTimeAccessed | MftTimeCreation | MftTimeModified | MftTimeMftModified | CreationTime | LastAccessTime | LastWriteTime |
|---|
| 18010 | 0 | C67BE7D3F54D44AC264A18E33909482F1F8CA7B7FBAAF5659EF71ED9F8092C34 | C:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_31bf3856ad364e35_6.3.9600.18603_none_73d12e8145b3841b\SymSrv.dll | 149264 | TrustedInstaller | A | 1 | 1 | 0 | 16 | 1 | 1 | 0 | 1 | 5D54F5D721E301667338323AC07578E3 | 65FB3391EB26F5AC647FC40501D8E21D | 4B46DB2A99A47FF6A6EE376F4D79F5298BFF28A2 | 2010-02-01 20:15:48.0000000 | application/x-msdownload | symsrv.dll | Debugging Tools for Windows(R) | symsrv.dll | 6.12.2.633 | Symbol Server | © Microsoft Corporation. All rights reserved. | Microsoft Corporation | English (United States) | L | C | C:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_31bf3856ad364e35_6.3.9600.18603_none_73d12e8145b3841b | SymSrv.dll | .dll | CN=Microsoft Corporation, OU=MOPR, O=Microsoft Corporation, L=Redmond, S=Washington, C=US | CN=Microsoft Code Signing PCA, O=Microsoft Corporation, L=Redmond, S=Washington, C=US | 6105F71E000000000032 | D468FAEB5190BF9DECD9827AF470F799C41A769C | 7/13/2009 5:00:18 PM | 10/13/2010 5:10:18 PM | 1 | 0 | NULL | 2020-10-25 06:17:12.0133333 | 2013-06-18 14:43:52.6497911 | 2013-08-22 06:56:50.9086288 | 2013-08-22 06:56:50.9086288 | 2019-01-15 19:13:49.1704756 | 2013-08-22 06:56:50.9086288 | 2013-08-22 06:56:50.9086288 | 2013-06-18 14:43:52.6497911 |