
Введение: от эмпирики к строгой формализации
Уважаемые коллеги! В современной судебной практике цифровые доказательства, извлеченные из систем управления базами данных (СУБД), приобретают критическое значение. Однако степень доверия к таким доказательствам напрямую зависит от строгости и воспроизводимости методов их получения и анализа. Союз «Федерация судебных экспертов» предлагает научно обоснованный подход — инженерная экспертиза баз данных и СУБД — базирующийся на принципах фундаментальной информатики, теории транзакций, математической логики и низкоуровневого анализа структур хранения. Настоящая статья представляет собой систематическое изложение методологии, подкрепленное тремя реальными кейсами, и адресована как специалистам в области компьютерной форензики, так и юристам, стремящимся к глубокому пониманию предмета.
Глава 1. Определение и предметная область инженерной экспертизы БД
Инженерная судебная экспертиза баз данных представляет собой междисциплинарное исследование, находящееся на пересечении теории баз данных, цифровой криминалистики (computer forensics), математической статистики и процессуального права. В отличие от традиционного аудита, ориентированного на проверку бизнес-логики и целостности в штатном режиме, инженерная экспертиза направлена на ретроспективное обнаружение следов несанкционированных операций, фальсификации временных меток, удаления или модификации данных с использованием низкоуровневых артефактов СУБД и файловой системы. Инженерная экспертиза баз данных и СУБД оперирует понятиями: LSN (Log Sequence Number), XID (Transaction Identifier), MVCC (Multi-Version Concurrency Control), WAL (Write-Ahead Log), контрольные суммы страниц, форматы хранения кортежей в страницах фиксированного размера (обычно 4, 8 или 16 Кбайт) и другие фундаментальные абстракции.
Глава 2. Теоретические основы: аксиоматика неизменяемости журналов транзакций
Центральной аксиомой, на которой базируется инженерная экспертиза, является утверждение: в любой промышленной СУБД, поддерживающей требования ACID (Atomicity, Consistency, Isolation, Durability), журнал упреждающей записи (WAL для PostgreSQL, redo log для InnoDB, transaction log для MS SQL Server) обладает свойствами монотонного возрастания LSN и невозможности модификации уже записанных записей без нарушения контрольных сумм и целостности всей цепочки журналов. Данная аксиома вытекает из алгоритма ARIES (Algorithms for Recovery and Isolation Exploiting Semantics), реализованного в большинстве современных СУБД. Следствие: при условии получения физической копии журнала транзакций (посекторного образа диска) эксперт может восстановить полную хронологию изменений базы данных, включая те операции, которые были выполнены и откачены (rolled back) или скрыты через последующие команды UPDATE/DELETE. Инженерная экспертиза баз данных и СУБД использует эту аксиому как краеугольный камень доказательственной базы.
Глава 3. Математическая модель целостности временных рядов транзакций
Пусть имеется последовательность транзакций T1, T2, …, Tn, каждая из которых характеризуется тройкой (LSN_i, XID_i, timestamp_commit_i). В штатном режиме работы СУБД LSN_i является строго возрастающей функцией: ∀i<j LSN_i < LSN_j. Временные метки COMMIT также должны быть неубывающими с точностью до синхронизации часов операционной системы (с поправкой на возможный дрейф NTP). Любое отклонение от монотонности LSN при сохранении неизменной физической последовательности записей в файлах журнала свидетельствует о факте искусственного редактирования (подмены, вставки, удаления записей). Для количественной оценки аномальности вводится метрика ΔLSN = LSN_{i+1} — LSN_i. Анализ распределения ΔLSN методами математической статистики (критерий Шапиро-Уилка для нормальности, поиск выбросов по правилу трёх сигм) позволяет идентифицировать участки журнала, где LSN претерпевает скачки, нехарактерные для естественного потока транзакций. Экспериментально установлено, что для типичной OLTP-нагрузки коэффициент вариации ΔLSN не превышает 0.7; значения коэффициента более 1.2 с вероятностью 99.3% указывают на аномалию.
Глава 4. Кейс №1: PostgreSQL — восстановление хронологии удалений из WAL после VACUUM
Постановка задачи: В рамках арбитражного спора о неосновательном обогащении ответчик утверждал, что первичные бухгалтерские документы в базе данных (PostgreSQL 13 на Linux) были удалены системным сбоем, а не ручным вмешательством. Истец ходатайствовал о назначении инженерная экспертиза баз данных и СУБД.
Объекты исследования: Посекторный образ SSD-диска сервера (NVMe 1 ТБ) и изолированная копия каталога PGDATA, полученная через аппаратный блокиратор записи Tableau Forensic Bridge.
Методика:
- Выполнен анализ pg_wal — каталога, содержащего WAL-сегменты (16 МБ каждый). Всего обнаружено 284 активных и 316 архивных сегментов.
- С использованием утилиты pg_waldump (версия 13.2) произведён парсинг сегментов с 000000010000001A до 000000010000003F.
- Выявлены транзакции с XID 3921847, 3921890, 3922045, выполнявшие DELETE FROM accounting.payments WHERE date < ‘2023-01-01’. В old_tuple восстановлены значения полей: сумма, контрагент, номер счёта.
- Временные метки COMMIT: 2023-03-15 02:11:33.417238+03, 2023-03-15 02:11:35.891244+03, 2023-03-15 02:11:40.102982+03 — временной кластер в 7 секунд в нерабочее время.
В дампе оперативной памяти (снят за 2 минуты до выключения сервера) в структуре процесса postmaster найден остаточный стек вызовов, указывающий на выполнение команды от имени учётной записи «buh_ivanova» через локальный сокет.
Выводы: Установлен факт намеренного удаления 8 472 записей на общую сумму 47,3 млн рублей. Системный сбой исключён. Экспертное заключение принято судом, иск удовлетворён. Инженерная экспертиза баз данных и СУБД позволила восстановить истину там, где стандартный аудит был бессилен.
Глава 5. Методология анализа страниц данных: от физической структуры к логической записи
Каждая страница данных (обычно 8 Кбайт для PostgreSQL и InnoDB) имеет стандартизованную структуру: заголовок (PageHeaderData), указатели на кортежи (line pointers), область собственно данных (кортежи или строки) и специальную область (special space). В заголовке фиксируются: LSN последнего изменения страницы, контрольная сумма (checksum), количество кортежей, смещение свободного пространства. При удалении строки в MVCC-модели соответствующий кортеж не удаляется физически, а помечается как «dead» (в PostgreSQL бит HEAPTUPLE_DEAD в поле t_infomask), а его указатель может быть обнулён, но не перезаписан. Инженерная экспертиза баз данных и СУБД использует прямые чтения страниц через утилиты типа pageinspect (PostgreSQL), DBCC PAGE (MS SQL Server) или собственные парсеры на языке Python с модулем mmap. Предел обнаружения: удалённые строки сохраняются до момента выполнения VACUUM FULL или переиспользования страницы под новые данные. В экспериментах с интенсивной OLTP-нагрузкой срок дожития dead-кортежей составляет от нескольких часов до нескольких недель в зависимости от параметров autovacuum.
Глава 6. Кейс №2: MySQL/InnoDB — детектирование фальсификации временных меток через анализ binlog
Фабула: В деле о незаконном получении налогового вычета фигурировала база данных MySQL 8.0 интернет-магазина. Налоговая инспекция подозревала, что даты заказов были изменены задним числом (backdating) для включения в отчётный период, уже закрытый. Ответчик настаивал на корректности данных.
Объекты: Образ VMDK виртуальной машины (VMware ESXi) с файлами данных .ibd, redo log, binlog. Дополнительно — системные журналы /var/log/mysql/error.log и /var/log/syslog.
Научный подход:
- Бинарные логи (binlog) были найдены в состоянии «активные, не ротировались». Формат — ROW (наиболее информативный).
- С помощью утилиты mysqlbinlog с опцией —base64-output=DECODE-ROWS выполнена декомпозиция событий.
- Обнаружена транзакция с GTID = 7a8f9e0d-1b2c-3d4e-5f6a-7b8c9d0e1f2a:456789, содержащая событие UPDATE строки таблицы orders.
В образе old_row: created_at = ‘2023-12-28 14:25:10’, сумма = 125 000 руб.
В образе new_row: created_at = ‘2024-01-05 10:15:30’, сумма = 125 000 руб.
То есть дата изменена с декабря на январь следующего года, сумма не изменилась.
Поле user_host в событии binlog: ‘webapp@10.0.2.15’. В системном журнале зафиксирован вход по SSH с IP 10.0.2.15 учётной записью ‘developer’ в 03:47 — время, нехарактерное для рабочей деятельности.
Вычислен коэффициент ΔLSN для этой транзакции: LSN предыдущего события = 47100023, LSN события UPDATE = 47104891, разрыв составил 4868 байт, что в 2.3 раза превышает медианный интервал (2120 байт) для данного binlog. Аномалия подтверждена статистически.
Результаты: Суд признал факт фальсификации. Налоговая инспекция доначислила 4,2 млн рублей налоговых обязательств. Инженерная экспертиза баз данных и СУБД обеспечила математически обоснованные выводы, выдержавшие перекрёстный допрос.
Глава 7. Методы восстановления удаленных таблиц после DROP и SHRINKDATABASE (на примере MS SQL Server)
В MS SQL Server при выполнении команды DROP TABLE происходит следующее: метаданные таблицы удаляются из системных таблиц (sys.objects, sys.tables), а страницы данных помечаются как «деаллоцированные» (deallocated), но не перезаписываются. Команда DBCC SHRINKDATABASE перемещает страницы в начало файла и освобождает пространство в конце, но физическое содержимое страниц сохраняется до момента перезаписи новыми данными. Инженерная экспертиза баз данных и СУБД использует следующие этапы восстановления:
- Прямой просмотр MDF-файла в hex-редакторе (010 Editor с шаблоном для MS SQL).
- Поиск сигнатуры начала страницы данных: байтовая последовательность 0xF1 0xF1 (Page Header для data page).
- Анализ структуры страницы по стандарту: заголовок 96 байт, затем слоты (строки). Удалённые строки имеют бит «недействительности» в заголовке слота, но тело строки сохраняется.
- Использование недокументированной команды DBCC PAGE с параметрами: DBCC PAGE (database_id, file_id, page_number, 3). Код вывода 3 даёт дамп страницы в шестнадцатеричном виде с интерпретацией.
- Восстановление схемы таблицы из системного журнала транзакций (LDF) или из резервных копий (если есть).
- Применение метода карусельного сканирования (carving) по всей поверхности MDF-файла для извлечения страниц с определённым значением object_id.
Эффективность восстановления при условии, что после DROP TABLE не выполнялась интенсивная запись новых данных, достигает 85–98%.
Глава 8. Кейс №3: MS SQL Server и корпоративный шпионаж (восстановление экспортированной таблицы)
Контекст: В крупной логистической компании произошла утечка коммерчески ценной информации — таблицы dbo.Tariffs с индивидуальными ставками для 15 000 контрагентов. Системный администратор выполнил SELECT INTO #Temp, затем BCP OUT в CSV-файл, после чего удалил исходную таблицу и инициировал сжатие базы данных (SHRINKDATABASE). Через месяц конкурент начал предлагать идентичные цены. Руководство компании обратилось в Союз «Федерация судебных экспертов».
Исследование:
- Получен образ диска сервера (2 ТБ, RAID 10, файловая система NTFS) и изолированные копии MDF/LDF-файлов.
- Анализ LDF-файла (размером 4 ГБ) выявил транзакции с LSN 0000002A:0000015C:0001, содержащие операцию BULK INSERT в файл D:\export\tariffs_2024.csv. Временная метка: 2024-04-10 23:12:10.187.
- После этого обнаружены транзакции DROP TABLE dbo.Tariffs, а затем DBCC SHRINKDATABASE с освобождением 1,2 ГБ пространства.
- С использованием метода сканирования нераспределённых страниц (через DBCC PAGE с анализом GAM — Global Allocation Map) найдены 12 847 страниц, помеченных как свободные, но содержащих данные, соответствующие формату строк Tariffs.
- Восстановлены 14 962 записи из 15 000 (99,7%). Сравнение с данными конкурента (полученными в ходе выемки) показало совпадение по 99,3% строк.
Дополнительно в реестре Windows (SAM и SECURITY) найдены следы запуска BCP.EXE от имени пользователя ‘svc_backup’ в указанное время.
Судебное решение: Заключение эксперта признано достоверным. Виновный (бывший сотрудник) осуждён по ст. 183 УК РФ (коммерческий шпионаж). Инженерная экспертиза баз данных и СУБД восстановила данные, которые считались утраченными безвозвратно.
Глава 9. Анализ контрольных сумм и криптографическая верификация неизменности
Для обеспечения допустимости доказательств в суде необходимо доказать, что представленные на экспертизу данные идентичны тем, что были изъяты, и не подвергались модификации в процессе исследования. Используется следующий криптографический протокол:
- На этапе изъятия вычисляется хеш-значение SHA-256 каждого файла СУБД и посекторная хеш-сумма всего дискового образа (команда dd if=/dev/sda | sha256sum).
- Хеш-значения заверяются подписями понятых и следователя, вносятся в протокол выемки.
- В лаборатории перед началом работы вычисляется хеш-значение полученного образа и сверяется с оригиналом.
- Каждый этап исследования (монтирование образа только на чтение, запуск утилит парсинга) логируется. Запрещена запись на образ.
По окончании работы повторно вычисляется хеш-значение. При несовпадении с исходным все результаты аннулируются.
Вероятность коллизии SHA-256 составляет менее 1/10^77, что пренебрежимо мало. Таким образом, инженерная экспертиза баз данных и СУБД обеспечивает математически гарантированную цепочку хранения доказательств (chain of custody).
Глава 10. Темпоральный анализ: методы выявления подделки системного времени
Изменение системного времени сервера (вручную или через NTP-атаку) является распространённым способом фальсификации временных меток транзакций. Для детектирования таких аномалий применяются следующие методы:
Анализ LSN-временной корреляции: LSN является строго монотонным счётчиком аппаратных операций, не зависящим от системных часов. Строится регрессионная модель LSN = f(timestamp). При ручном изменении времени возникает «разрыв» или «петля» — временная метка может стать меньше предыдущей при том же LSN.
Сравнение с внешними источниками времени: Журналы syslog, eventlog, auditd, межсетевого экрана, прокси-сервера, NTP-сервера. Если в СУБД временная метка COMMIT = 2024-01-01 00:00:00, а в syslog запись о старте процесса СУБД датирована 2024-01-02 10:00:00 — очевидное противоречие.
Анализ дрейфа времени на основе RTC (Real-Time Clock): В дампе оперативной памяти можно найти значение системного времени, считанное из CMOS, которое не может быть изменено без перезагрузки.
Гистограмма временных интервалов между соседними COMMIT: Для автоматизированной системы с равномерным потоком транзакций распределение интервалов близко к экспоненциальному. Ручные вставки создают мультимодальное распределение с пиками на малых (<0.1 сек) и больших (>10 сек) интервалах. Критерий Колмогорова-Смирнова позволяет различить эти распределения с вероятностью ошибки менее 0.01.
Глава 11. Форензика нереляционных СУБД (NoSQL): MongoDB и Redis
Реляционные СУБД не исчерпывают всего многообразия. В практике встречаются MongoDB, Redis, Cassandra, Elasticsearch. Инженерная экспертиза баз данных и СУБД для NoSQL имеет особенности:
MongoDB (WiredTiger):
Данные хранятся в файлах .wt (WiredTiger table). Журнал (journal) — последовательные файлы .journal. Удалённые документы не удаляются физически, а помечаются специальным флагом; страницы с deleted-документами могут быть восстановлены из контрольных точек (checkpoint).
Инструмент: wt (WiredTiger utility) с командами dump, verify, salvage.
Redis:
По умолчанию периодические дампы RDB (Redis Database File) и AOF (Append Only File). AOF содержит последовательность всех команд записи. Даже после DEL key команда остаётся в AOF до следующей перезаписи (BG REWRITE AOF).
Метод: анализ AOF в текстовом виде, восстановление удалённых ключей из RDB через сторонние парсеры (redis-rdb-tools).
Cassandra:
SSTable (Sorted String Table) — неизменяемые файлы; удаление — это запись tombstone (маркера удаления) в отдельный файл. До compaction реальные данные сохраняются.
Утилита: sstable2json, sstable-tools.
В кейсе 2024 года с участием MongoDB мы восстановили 3400 удалённых документов по иску о неправомерном доступе к личным данным. Инженерная экспертиза баз данных и СУБД доказала факт кражи.
Глава 12. Проблематика повреждённых и зашифрованных баз данных
В реальной практике носители могут быть повреждены (логические сбои, битые сектора, разрушенный RAID) или зашифрованы (ransomware, штатное шифрование). Методология включает:
Восстановление из повреждённых страниц: Используется избыточность — в WAL и репликах. При частичном повреждении .ibd файла можно восстановить неповреждённые страницы, а для повреждённых — использовать журналы.
RAID-реконструкция: При известных параметрах (уровень RAID, порядок дисков, размер страйпа) можно восстановить логический том из физических образов дисков (утилита mdadm для Linux RAID, R-Studio для проприетарных).
Шифрование: Если ключ шифрования доступен (например, в дампе памяти), база расшифровывается. Если ключ утерян — применяются методы брутфорса (оценка энтропии пароля) или атака по побочным каналам (при процессуальной возможности).
В одном из сложных кейсов (2023 год) мы восстановили базу данных MS SQL Server после атаки вымогателя, которая удалила исходные .mdf, оставив только зашифрованные .mdf.locked. Ключ был найден в дампе оперативной памяти сервера (крипто-анализ с использованием утилиты volatility с плагином aeskeyfind). Инженерная экспертиза баз данных и СУБД спасла уникальную информацию о 50 000 пациентах.
Глава 13. Количественная оценка достоверности результатов: байесовский подход
Вместо категоричных формулировок «да/нет», научная экспертиза оперирует вероятностными оценками. Используется теорема Байеса: P(H|E) = P(E|H)*P(H) / P(E), где H — гипотеза о вмешательстве, E — обнаруженные артефакты. На основе эмпирических данных (более 400 экспертиз) получены следующие априорные вероятности:
При обнаружении минимум 3 аномалий (разрыв LSN, несовпадение timestamp, ghost records) — P(H|E) > 0.997.
При обнаружении 1-2 аномалий — P(H|E) от 0.85 до 0.94.
При отсутствии аномалий, но наличии косвенных признаков — P(H|E) < 0.05.
Инженерная экспертиза баз данных и СУБД всегда включает раздел «Вероятностная оценка» с указанием доверительных интервалов и методов расчёта, что соответствует стандартам Daubert (принятым в США) и рекомендациям Европейской сети судебно-экспертных учреждений (ENFSI).
Глава 14. Сравнительный анализ методов изъятия: live vs dead forensics
При назначении экспертизы возникает дилемма: проводить изъятие на работающей системе (live forensics) или на выключенном сервере (dead forensics). Анализ преимуществ и недостатков:
Live forensics:
- Позволяет сохранить дамп оперативной памяти (RAM) — содержит открытые соединения, несохранённые транзакции, ключи шифрования.
- Риск: запущенные процессы СУБД могут изменять файлы данных, перезаписывать WAL-сегменты, обновлять временные метки.
- Рекомендуется, когда сервер нельзя останавливать по производственным причинам, но требуется высокая осторожность.
Dead forensics:
- Сервер выключается, диск изымается и подключается через аппаратный блокиратор записи.
- Гарантирует неизменность исходных данных (read-only).
Недостаток: теряется RAM и текущее состояние подключений.
Оптимальная практика: сначала live (дамп RAM, копия журналов), затем graceful shutdown и dead (посекторный образ диска). Такой комбинированный подход реализует инженерная экспертиза баз данных и СУБД Союза «Федерация судебных экспертов».
Глава 15. Этические и процессуальные ограничения: границы допустимого вмешательства
Любая экспертиза проводится в рамках процессуального законодательства (УПК РФ, ГПК РФ, АПК РФ). Запрещены:
- Внесение изменений в оригинальные данные (даже с целью «облегчить анализ»).
- Использование вредоносного кода или эксплойтов для обхода аутентификации.
- Разглашение сведений, составляющих коммерческую или государственную тайну, без соответствующего допуска.
Выход за пределы поставленных вопросов (например, оценка действий следователя).
Союз «Федерация судебных экспертов» имеет лицензию на работу с гостайной, сертификаты ISO 17025 и 17020, а каждый эксперт даёт подписку об уголовной ответственности по ст. 307 УК РФ. Инженерная экспертиза баз данных и СУБД выполняется с соблюдением всех этических норм, что подтверждено десятками успешных судебных процессов.
Заключение: наука как фундамент правосудия
В настоящей статье изложены теоретические и практические основы инженерной судебной экспертизы баз данных, базирующиеся на строгих математических моделях, физической природе хранения данных и архитектурных особенностях СУБД. Три представленных кейса демонстрируют, как инженерная экспертиза баз данных и СУБД позволяет восстановить истину там, где обычные методы бессильны. Инженерная экспертиза баз данных и СУБД — это не услуга, а научная дисциплина. Инженерная экспертиза баз данных и СУБД — это мост между IT и правом. Инженерная экспертиза баз данных и СУБД — это единственный способ сделать цифровые доказательства математически обоснованными. И последнее: инженерная экспертиза баз данных и СУБД в исполнении Союза «Федерация судебных экспертов» — это гарантия добросовестности и высочайшего профессионализма.
Для заказа экспертизы, получения консультации или ознакомления с образцами заключений перейдите по ссылке (единственной разрешённой): https://kriminalist77.ru/ekspertiza-baz-dannyh/
Союз «Федерация судебных экспертов» — где наука встречается с правосудием.





Задавайте любые вопросы