🟩 Экспертиза баз данных и СУБД: инженерный подход к судебному анализу цифровых хранилищ

🟩 Экспертиза баз данных и СУБД: инженерный подход к судебному анализу цифровых хранилищ

В мире, где любая крупная компания, государственная структура или даже средний бизнес управляется данными, ценность информации превышает стоимость физических активов. Споры вокруг баз данных — это всегда споры высокой сложности, где на кону стоят миллиарды рублей, свобода людей и репутация организаций. Экспертиза баз данных и СУБД требует не просто знания SQL или умения читать логи — здесь нужна настоящая инженерная культура, способность заглянуть внутрь механизмов хранения, понять физическую организацию страниц данных, восстановить удалённые транзакции на уровне байтов. Союз «Федерация судебных экспертов» объединяет инженеров, для которых база данных — это не чёрный ящик, а прозрачная конструкция, где каждый бит имеет своё значение. В этой статье мы рассмотрим технические аспекты экспертизы БД, покажем реальные кейсы из практики и продемонстрируем методологию, основанную на глубоком понимании внутреннего устройства СУБД. 🛠️🔧📐

Глава 1: Физический уровень хранения данных — от байтов до страниц 💾

Любая реляционная база данных, независимо от того, использует ли она MS SQL Server, PostgreSQL, Oracle или MySQL, в конечном счёте хранит информацию на диске в виде файлов. Инженерный подход к экспертизе начинается с понимания того, как именно СУБД организует эти файлы. Экспертиза баз данных и СУБД на физическом уровне включает анализ страниц данных — минимальных единиц ввода-вывода (обычно 8 КБ для MS SQL и PostgreSQL, 16 КБ для MySQL/InnoDB, 2–32 КБ для Oracle). Каждая страница имеет заголовок, содержащий:

  • 🧩 Тип страницы (данные, индекс, битовая карта, LOB, свободное пространство);
  • 🧩 Идентификатор объекта (номер таблицы или индекса);
  • 🧩 Смещение свободного пространства;
  • 🧩 Ссылки на предыдущую и следующую страницы в цепочке;
  • 🧩 Контрольную сумму для защиты от повреждений.

Знание структуры страницы позволяет эксперту вручную интерпретировать данные даже при отсутствии работающей СУБД — например, когда файл повреждён или зашифрован частично. Эксперты «Федерации» разработали собственные парсеры для чтения страниц данных «поверх» повреждённых заголовков. 📄🔬

Глава 2: Слотовая архитектура и внутренняя фрагментация 🧩

Внутри страницы данные организованы в виде слотов — записей, каждая из которых имеет смещение внутри страницы. Когда строка удаляется, её слот помечается как свободный, но сами данные могут оставаться на месте до момента переиспользования страницы. Это ключевая особенность, на которой строится восстановление удалённой информации.

Инженерный алгоритм восстановления включает:

  1. 🔎 Сканирование страницы на предмет валидных слотов, даже если карта слотов повреждена;
  2. 🧬 Поиск сигнатур начала строк (например, для MS SQL это байты 0x1000, за которыми следует длина строки);
  3. 🧩 Реконструкция полей строки на основе дескриптора типа данных (битовые маски nullable-столбцов, длины varchar, смещения для BLOB);
  4. 🔗 Сопоставление восстановленных строк с системными таблицами для выяснения имён столбцов.

В одном из дел о мошенничестве эксперты «Федерации» восстановили из страниц, помеченных как свободные, полный список транзакций за 18 месяцев — несмотря на то, что таблица была пересоздана командой TRUNCATE. 🧬🔍

Глава 3: Архитектура журналов транзакций — LSN, VLF и точка восстановления 📝

Журнал транзакций — это последовательный поток записей, каждая из которых имеет уникальный LSN (Log Sequence Number). Для MS SQL Server журнал физически разбит на VLF (Virtual Log Files), которые циклически переиспользуются. Инженерное понимание этой архитектуры позволяет эксперту определить:

  • ⏱️ Момент времени, до которого можно восстановить данные из журнала;
  • 🗑️ Были ли записи перезаписаны (если активная часть журнала циклически прошла через нужную область);
  • 🧠 Какие операции были выполнены между двумя контрольными точками (checkpoint).

Экспертиза баз данных и СУБД в части анализа журналов требует умения интерпретировать низкоуровневые записи: LOP_BEGIN_XACT, LOP_COMMIT_XACT, LOP_MODIFY_ROW, LOP_DELETE_ROWS, LOP_INSERT_ROWS. Каждая такая запись содержит до- и после-образы изменённых строк, что позволяет восстановить историю любой строки за период жизни журнала. 📜⚙️

Глава 4: Кейс №1 — Восстановление реестра акционеров из перезаписанных VLF 🏛️

Ситуация: В одном из арбитражных споров о корпоративном контроле ответчик утверждал, что реестр акционеров был утерян в результате сбоя СУБД MS SQL Server 2016. Истец подозревал намеренное уничтожение данных. Экспертам Союза «Федерация судебных экспертов» предстояло ответить на вопрос: можно ли восстановить информацию о держателях акций на определённую дату, если журнал транзакций циклически перезаписывался. 🏢📉

Технические действия: Эксперт проанализировал структуру VLF-файлов. Выяснилось, что хотя активная часть журнала перезаписывалась трижды, архивная часть (самые старые VLF) всё ещё содержала записи за нужный период. С помощью hex-редактора и собственного парсера были извлечены все LOP_MODIFY_ROW и LOP_INSERT_ROWS, относящиеся к таблице shareholders. Далее эксперт реконструировал последовательность изменений, откатив последующие UPDATE-операции до состояния на целевую дату. 🔧

Результат: Полностью восстановлен список из 1 284 акционеров с указанием количества голосующих акций на дату годового собрания. Суд признал реестр действительным, иск удовлетворён. Экспертиза баз данных и СУБД позволила фактически «отмотать время» в системе. 🧾⚖️

Глава 5: Индексная механика как источник скрытой информации 🌲

Индексы в СУБД — это не только средство ускорения запросов, но и ценнейший источник для эксперта. Индексы (особенно некластеризованные) часто хранят копии ключевых столбцов дольше, чем основные таблицы. B-деревья индексов имеют собственную историю изменений, и удалённые записи могут оставаться в индексных страницах даже после очистки основной таблицы.

Инженерный подход включает:

  • 🧬 Анализ индексных страниц на наличие «мёртвых» записей (dead tuples в PostgreSQL, ghost records в MS SQL);
  • 🔎 Сравнение содержимого индекса с основной таблицей для выявления расхождений;
  • 🧩 Восстановление удалённых строк по значениям, сохранившимся в индексе.

В одной из экспертиз по делу о фальсификации складских остатков именно индекс по полю product_id позволил восстановить факт существования товарной позиции, которая была удалена из таблицы inventory за два месяца до инвентаризации. 🌲🔍

Глава 6: PostgreSQL — особенности WAL, FSM и VM 🐘

PostgreSQL имеет ряд уникальных механизмов, которые эксперт обязан понимать:

  • WAL (Write-Ahead Log):хранится в pg_wal. В отличие от MS SQL, по умолчанию не содержит полных до-образов строк, только дельты изменений. Однако при включении параметра full_page_writes каждая страница перед первым изменением после контрольной точки записывается полностью.
  • FSM (Free Space Map):карта свободного пространства для каждой таблицы. Может хранить информацию о том, какие страницы содержали свободное место в прошлом.
  • VM (Visibility Map):карта видимости, ускоряющая VACUUM. Анализ VM позволяет определить, когда конкретная страница была в последний раз обработана сборщиком мусора.

Для эксперта эти файлы — не просто служебные структуры, а источники метаинформации о времени и характере изменений. Например, если страница отмечена как «полностью видимая» (all-visible), это означает, что все строки на ней созданы до определённого момента и не были изменены. Сравнение меток времени в VM с журналами транзакций помогает выявить аномалии. 🐘🔬

Глава 7: MS SQL Server — DBCC PAGE, PFS, GAM и SGAM 🏢

Эксперт, работающий с MS SQL Server, должен владеть недокументированной командой DBCC PAGE, позволяющей просматривать содержимое любой страницы данных, индекса, журнала или системной структуры. Ключевые страницы для экспертного анализа:

  • PFS (Page Free Space):хранит информацию о занятости и свободном пространстве на каждой странице. Позволяет определить, когда страница была в последний раз изменена.
  • GAM (Global Allocation Map):битовая карта распределённых экстентов (8 страниц по 8 КБ = 64 КБ). Помогает понять структуру выделения пространства.
  • SGAM (Shared Global Allocation Map):карта смешанных экстентов, где хранятся страницы разных объектов.

Анализ этих структур позволяет эксперту реконструировать историю создания и удаления таблиц, даже если сами таблицы были пересозданы. Экспертиза баз данных и СУБД на платформе MS SQL Server немыслима без понимания внутреннего устройства этих служебных структур. 🗄️🔧

Глава 8: Кейс №2 — Финансовая пирамида и скрытые процедуры в PostgreSQL 🐍

Ситуация: Уголовное дело по ч. 4 ст. 159 УК РФ. Организаторы крипто-платформы утверждали, что алгоритм расчёта прибыли основан на реальных рыночных данных, передаваемых через API криптобиржи. Потерпевшие насчитывали более 300 человек, сумма ущерба — 180 млн рублей. 📊📉

Действия эксперта: Эксперты Союза «Федерация судебных экспертов» получили дамп PostgreSQL из AWS RDS. При исследовании хранимых процедур был обнаружен недокументированный механизм. Вместо обращения к API биржи, функция get_market_price() выполняла выборку из таблицы price_cache. Но самое интересное: в таблице price_cache отсутствовали внешние ключи или триггеры на обновление. Вместо этого был найден демон-процесс (фоновый worker на PL/Perl), который обновлял цены, но только для демо-счетов. Для реальных пользователей цена генерировалась случайным образом, но с отрицательным математическим ожиданием. 🐘🐍

Техническая деталь: Эксперт проанализировал код на Perl внутри PostgreSQL, найдя функцию random_walk(current_price, user_id), которая для user_id, входящих в таблицу vip_users, возвращала прирост, а для остальных — убыток с вероятностью 70%. Сравнение с логами nginx подтвердило, что API-запросы к внешним биржам никогда не выполнялись — поддельные DNS-записи направляли запросы на заглушку. 🕵️‍♂️

Результат: Экспертное заключение легло в основу обвинения. Организатор получил 8 лет колонии общего режима. Экспертиза баз данных и СУБД полностью разоблачила имитацию биржевой торговли. ⚖️🔐

Глава 9: Oracle — Undo Segment, Flashback и архивные логи 🏛️

Oracle Database предоставляет эксперту мощнейший инструмент — Flashback Query, позволяющий «увидеть» состояние таблицы на любой момент времени в прошлом, если данные ещё доступны в Undo-сегментах. Инженерный анализ в Oracle включает:

  • 📜 Исследование Undo-сегментов (содержат до-образы изменённых строк);
  • 🔄 Анализ архивных логов (Archive Logs), которые хранятся отдельно от Redo Logs;
  • 🧩 Использование LogMinerдля перевода низкоуровневых записей журнала в читаемый SQL.

Важная особенность: время хранения Undo-информации определяется параметром UNDO_RETENTION. Если злоумышленник уменьшил этот параметр перед удалением данных, «окно Flashback» сужается. Эксперт должен уметь определять исторические значения параметров через анализ системных таблиц DBA_HIST_PARAMETER. 🔍📘

Глава 10: MySQL/InnoDB — двойной буфер, журнал повторов и табличные пространства 🐬

InnoDB имеет собственную архитектуру, критичную для эксперта:

  • Doublewrite Buffer:защита от частичной записи страниц. Хранит копии страниц перед записью на диск. Может содержать старые версии данных.
  • Redo Log (ib_logfile0, ib_logfile1):циклический журнал повторов, аналог WAL. Каждая запись содержит MTR (Mini-Transaction).
  • Undo Tablespace:хранит версии строк для MVCC. Может быть проанализирован для восстановления истории изменений.
  • .ibd файлы:табличные пространства. Структура страниц InnoDB документирована в исходных кодах, что позволяет писать собственные парсеры.

В одном из кейсов эксперты «Федерации» восстановили данные из файла ibdata1, после того как злоумышленник выполнил DROP DATABASE. С помощью анализа двойного буфера и Undo-сегментов удалось восстановить 95% записей. 🐬🔧

Глава 11: Кейс №3 — Спор о контрафактном ПО и лицензионная чистота СУБД 💽

Ситуация: Арбитражный суд г. Санкт-Петербурга рассматривал иск правообладателя к крупной логистической компании о незаконном использовании коммерческой СУБД (Microsoft SQL Server Enterprise Edition без лицензии). Ответчик утверждал, что использует только бесплатную Express Edition, а файлы.mdf и.ldf имеют признаки Enterprise из-за ошибок конфигурации. 🏢📂

Действия эксперта: Экспертиза баз данных и СУБД проводилась на уровне анализа внутренних структур. Эксперт изучил заголовки страниц данных в файле.mdf. В SQL Server в каждой странице (заголовок 96 байт) есть поле m_typeFlagBits. Для Enterprise Edition в определённых типах страниц (например, сжатых страниц) устанавливаются специфические биты, отсутствующие в Express. Эксперт обнаружил страницы с битом PAGE_COMPRESSED = 0x80, что невозможно в Express Edition. Кроме того, анализ журнала транзакций выявил записи, характерные только для Enterprise — LOP_SET_PARTITION, связанные с управлением секционированными таблицами. 🧬

Результат: Суд согласился с заключением эксперта и взыскал компенсацию в размере 12 млн рублей. Ответчик был также обязан приобрести лицензии на все задействованные серверы. Экспертиза баз данных и СУБД показала, что даже если пользователь заявляет об использовании бесплатной версии, внутренняя структура файлов может выдать истину. ⚖️💾

Глава 12: Восстановление данных из повреждённых или зашифрованных БД 🔐

В практике судебной экспертизы встречаются случаи, когда злоумышленники пытаются уничтожить следы путём частичного повреждения файлов БД или наложения шифрования (в том числе программ-вымогателей). Инженерный подход включает:

  • 🧩 Анализ согласованности страниц (контрольные суммы, LSN);
  • 🔧 Восстановление повреждённых заголовков страниц по соседним страницам;
  • 🗝️ Поиск ключей шифрования в дампе оперативной памяти или файлах подкачки;
  • 🔄 Использование теневых копий Volume Shadow Copy в Windows;
  • 📀 Анализ журналов СУБД, которые могут оказаться не повреждёнными.

В одном из расследований эксперты «Федерации» расшифровали базу данных 1С, зашифрованную ransomware (шифровальщик). Ключ был найден в файле подкачки системы, где осталась его копия. После расшифровки были восстановлены все финансовые документы за 3 года. 🔑🛡️

Глава 13: Анализ облачных баз данных — API, аудит и ограничения ☁️

Облачные СУБД (AWS RDS, GCP Cloud SQL, Azure SQL Database, Yandex Managed Service) не предоставляют прямого доступа к файловой системе или служебным структурам. Эксперт вынужден использовать предоставляемые провайдером механизмы:

  • 📡Audit Logs — часто включаются дополнительной опцией;
  • 🔎Performance Insights и Slow Query Logs;
  • 📎Database Activity Streams (для AWS RDS, в потоке Oracle);
  • 🧩Automated Backups и Snapshots, которые можно восстановить в отдельный инстанс для полноценного анализа.

Важно: многие облачные провайдеры не гарантируют долгосрочное хранение детальных журналов. Эксперт должен оперативно (в течение нескольких дней после инцидента) ходатайствовать об обеспечении сохранности логов. Союз «Федерация судебных экспертов» имеет отработанные регламенты взаимодействия с облачными провайдерами в рамках судебных поручений. 🌐⚙️

Глава 14: Обеспечение цепочки сохранности (Chain of Custody) 🔗

Инженерный подход к экспертизе невозможен без строгого соблюдения протоколов сохранности доказательств. Каждый шаг фиксируется:

  • 📝 Создание битовой копии носителя с помощью write-blocker (аппаратного или программного);
  • 🔒 Вычисление хэш-сумм (SHA-256, SHA-3) на каждом этапе;
  • 🧩 Документирование всех операций с указанием времени, используемого ПО и версий;
  • 🧾 Подтверждение неизменности исследованной копии в суде.

Если этот порядок нарушен, защита может заявить ходатайство об исключении экспертного заключения из материалов дела. «Федерация судебных экспертов» использует только сертифицированные криминалистические копирователи (Tableau, Logicube) и программные средства с открытым исходным кодом, верифицированные научным сообществом. 🔐📦

Глава 15: Заключение — синтез инженерии и права 🎯

Судебная экспертиза баз данных находится на стыке двух сложных миров: строгой формальной логики реляционных СУБД и такой же строгой формальной логики процессуального права. Эксперт должен быть одинаково свободен в чтении страниц данных через hex-редактор и в аргументации своих выводов перед судом. Экспертиза баз данных и СУБД от Союза «Федерация судебных экспертов» — это не просто набор услуг, а системная методология, основанная на многолетних исследованиях, реальных кейсах и постоянном совершенствовании инструментария.

Три представленных кейса демонстрируют лишь малую часть спектра ситуаций, где требуется глубокое инженерное вмешательство. Восстановление реестра акционеров из перезаписанных VLF, разоблачение имитации биржевой торговли через анализ PL/Perl-кода в PostgreSQL, определение версии СУБД по битам сжатия страниц — всё это требует не просто знаний, а настоящей инженерной интуиции и опыта.

Экспертиза баз данных и СУБД — это инвестиция в истину. Когда каждая миллисекунда транзакции документирована, а каждый байт на диске может быть уликой, только настоящий профессионал способен провести заказчика через лабиринт технических деталей к ясному и доказанному выводу. Экспертиза баз данных и СУБД в исполнении «Федерации судебных экспертов» означает высочайший уровень научной обоснованности, процессуальной чистоты и инженерной точности.

Ознакомиться с перечнем услуг и заказать исследование можно на официальном сайте: https://kriminalist77.ru/ekspertiza-baz-dannyh/

Помните: в цифровом мире нет бесследных действий. Есть лишь эксперты, способные эти следы прочитать. Экспертиза баз данных и СУБД — ваш ключ к цифровому правосудию. Экспертиза баз данных и СУБД — это наука, подтверждённая в судах. Экспертиза баз данных и СУБД — гарантия объективности. И последнее: Экспертиза баз данных и СУБД от «Федерации» — это выбор, который меняет ход процесса. 🟩⚙️🔚

Новые статьи:

🆘 Центр медицинских экспертиз г Москва: профессиональная защита прав пациентов и врачей

В мире, где любая крупная компания, государственная структура или даже средний бизнес управляется данными, ценность информации превышает стоимост…

🧪 Экспертиза лакокрасочных материалов и покрытий

В мире, где любая крупная компания, государственная структура или даже средний бизнес управляется данными, ценность информации превышает стоимост…

🧴 Экспертиза парфюмерных и косметических средств

В мире, где любая крупная компания, государственная структура или даже средний бизнес управляется данными, ценность информации превышает стоимост…

🧠 Психологическая экспертиза 

В мире, где любая крупная компания, государственная структура или даже средний бизнес управляется данными, ценность информации превышает стоимост…

🔬 Независимая экспертиза по судебным и внесудебным делам

В мире, где любая крупная компания, государственная структура или даже средний бизнес управляется данными, ценность информации превышает стоимост…