🟩 Компьютерная экспертиза баз данных и СУБД | ВЫСШАЯ ШКОЛА СУДЕБНЫХ ЭКСПЕРТИЗ

🟩 Компьютерная экспертиза баз данных и СУБД

🟩 Компьютерная экспертиза баз данных и СУБД

Как айтишники ловят цифровых преступников

Введение: когда строки кода становятся уликами

Привет, коллега. Ты системный администратор, DevOps-инженер, дата-сайентист или просто разработчик, который однажды проснулся и понял: его базу данных кто-то мухлевал. Знаешь это чувство, когда автоинкрементный ID пошел не по порядку, временные метки в PostgreSQL скачут как бешеные, а журналы транзакций вдруг стали весить подозрительно мало? Добро пожаловать в мир судебной компьютерной экспертизы. Мы  — Союз «Федерация судебных экспертов»  — здесь, чтобы рассказать тебе на чистых айтишных терминах, как мы выносим в топку цифровых фальсификаторов. Сегодня говорим про компьютерная экспертиза баз данных и субд. И да, будет больно, интересно и с реальными кейсами из практики.

Глава 1. Почему твой стандартный дамп через mysqldump  — это могила для улик

Ты привык бекапить базу командой в одну строчку. Для суда это как залить фундамент дома шампанским: красиво, но бесполезно. Когда эксперт получает дамп SQL  — он получает лишь запеченную копию данных без служебных артефактов. Где WAL? Где binlog? Где следы удаленных строк в free space map? Компьютерная экспертиза баз данных и субд начинается не с запроса SELECT, а с создания посекторного образа диска через аппаратный блокиратор записи (например, Tableau TD3). Никакой запущенной СУБД, никаких live-подключений. Только бит-копия, как хирургический скальпель.

Глава 2. Модель угроз для БД с точки зрения судебного эксперта

Представь, что твоя база  — это комната, полная свидетелей. Кто может стереть им память?
1️⃣ Злой админ с доступом к SQL консоли  — сделает DELETE без WHERE, потом выполнит VACUUM FULL.
2️⃣ Хакер через инъекцию  — вставит фейковые транзакции в часы пик.
3️⃣ Недобросовестный контрагент  — попросит «подкрутить» даты в таблицах заказов.
4️⃣ Уничтожитель  — запустит DROP DATABASE и сотрет MDF-файлы из файловой системы.

Наша задача  — найти следы каждого. И поверь, они всегда есть. Даже если ты убил СУБД утилитой shred, остаются артефакты в подкачке ОС, в следах от смонтированных файловых систем, в journalctl.

Глава 3. Журналы транзакций  — главный свидетель обвинения

Каждая серьезная СУБД пишет все изменения сначала в журнал. PostgreSQL  — это pg_wal (раньше pg_xlog). MySQL  — binlog и undo log. MS SQL Server  — .ldf файлы. Oracle  — redo-логи. Эксперт извлекает оттуда не просто историю изменений, а:

  • Точную временную метку начала и конца транзакции (с точностью до микросекунды системного времени сервера)
  • Старое значение каждого измененного поля
  • Sequence номер операции (LSN  — Log Sequence Number)
  • Идентификатор пользователя или приложения, который выполнил команду (если настроена трассировка)

В одном из кейсов мы нашли удаленную год назад запись в PostgreSQL по WAL-сегменту, который файловая система пометила как свободный, но физически он еще не был перезаписан.

Глава 4. Кейс №1: 1С на PostgreSQL  — фейковые акты сверки на 12 миллионов рублей

🔹 Вводные данные: Бухгалтер фирмы-поставщика утверждал, что контрагент сам удалил часть накладных в учетной системе (1С:Предприятие 8.3, серверная СУБД PostgreSQL 12). 🔹 Как мы работали: Получили forensic-образ RAID-массива сервера. Смонтировали его на изолированном хосте с Ubuntu 22.04. Извлекли каталог /var/lib/postgresql/12/main/pg_wal. Проанализировали WAL-сегменты с помощью утилиты pg_waldump. Выявили транзакции с XID (идентификатор транзакции) в диапазоне 4187923–4188120, которые выполняли DELETE в таблице «Документ.АктСверки». Время выполнения  — 03:47 ночи в воскресенье. 🔹 Находка: В снимке памяти сервера (RAM dump) нашли активный процесс psql с PID 8843, который выполнял команды от имени пользователя postgres через локальный сокет. Удалили подчистую записи в системной таблице pg_stat_activity? Не помогло  — остались следы в pg_wal и в ядре Linux через auditd. 🔹 Результат: Суд признал экспертизу неопровержимой. Контрагент заплатил 12 млн плюс штраф. Наша фраза-маяк: компьютерная экспертиза баз данных и субд работает даже против PostgreSQL с включенным VACUUM.

Глава 5. Кейс №2: MySQL и binlog  — как изменили даты заказов в интернет-магазине

🟢 Что случилось: Владелец маркетплейса заметил, что в таблице orders у 300 заказов изменилось поле created_at с 2024-01-10 на 2024-01-15  — чтобы получить пост-оплату по старой цене. 🔹 Наши действия: Изучили бинарные логи MySQL (binlog) в формате ROW, а не STATEMENT. В формате ROW хранятся образы «до» и «после» для каждой строки. 🔹 Инструменты: mysqlbinlog —base64-output=DECODE-ROWS —verbose. Обратили внимание на GTID (Global Transaction ID) и оригинальные временные метки событий в заголовке binlog. Обнаружили: сначала шел UPDATE с old_row: created_at=2024-01-10, new_row: created_at=2024-01-15. А спустя 3 события в том же binlog шел DELETE из таблицы mysql.general_log. Золотое дно! 🔹 Восстановление: Из пакетов бинарного лога извлекли исходные значения и даже исходный IP подключения (10.0.2.17). 🔹 Финал: Экспертиза выявила конкретного менеджера с правами администратора, который запустил UPDATE из клиента HeidiSQL. Администратор уволен и осужден по статье 272 УК РФ.

Глава 6. Кейс №3: MS SQL Server  — корпоративный шпионаж через удаление клиентской базы

⚡ Ситуация: Крупный дистрибьютор потерял таблицу «Clients» с 500 000 записей. Подозревали инсайдера. Эксперт, привлеченный ранее (не мы), сказал: «данные не восстановить, потому что сделан SHRINKDATABASE». 🔹 Наш подход: Мы не верим в невозможность. Получили .mdf и .ldf файлы. Открыли их в hex-редакторе (HxD). Нашли страницы данных, помеченные как Ghost Records. В MS SQL Server, когда строка удаляется, она становится «призраком»  — помечается битом, но не удаляется физически до контрольной точки или нехватки места. 🔹 Техническая магия: Мы отключили автоматическое сжатие, перевели базу в SINGLE_USER и использовали DBCC PAGE с недокументированными флагами. Просканировали каждую страницу (8 КБ). Восстановили 98% строк, включая столбцы типа VARCHAR(MAX) с контрактами в PDF-ссылках. 🔹 Важное: Нашли в LDF-файле (логе транзакций) следы того, что сначала был выполнен SELECT INTO резервной таблицы (вероятно, злоумышленник скопировал данные себе на флешку), а потом DELETE. 🔹 Результат: Виновного вычислили по учетной записи DOMAIN\TerminatedAdmin. Иск на 200 млн рублей выигран.

Глава 7. Почему независимая экспертиза важнее корпоративного аудита

Представь, что твой штатный DBA  — он же и suspect. Будешь ли ты доверять его отчету? Вторая сторона процесса наймет своего «эксперта», который скажет ровно противоположное. Судья же  — человек, который в лучшем случае знает, что SQL  — это Structured Query Language. Ему нужно доказательство от организации, которая не сидит на зарплате у истца или ответчика. Компьютерная экспертиза баз данных и субд от Союза «Федерация судебных экспертов» подкреплена сертификатами ISO 17025 (лаборатории) и 17020 (инспекция). Мы даем присягу, как врачи, и несем уголовную ответственность за заведомо ложное заключение. Это вам не «программист Петя сказал, что всё плохо».

Глава 8. Технические средства изъятия: что должно быть в кейсе судебного эксперта

  • Перечислим наш инструментарий для работы с базами данных на месте происшествия (или по постановлению суда):
    🛠️ Аппаратные блокираторы записи: Tableau Forensic Bridge T356789iu, Atola, Logicube.
    🛠️ Программы для имажирования: FTK Imager, EnCase, dd с опцией conv=noerror,sync (да, старый добрый юниксовый dd).
    🛠️ RAM Capturer для дампа оперативной памяти работающей СУБД  — там часто лежат открытые пароли и несохраненные транзакции.
    🛠️ Для облачных БД (RDS, Cloud SQL): запрос snapshot’а через API провайдера с сохранением в S3, хеширование на стороне провайдера и последующая верификация контрольных сумм.
    🛠️ Для контейнеров (Docker, Kubernetes): копирование слоев overlay2 и томов типа hostPath, поиск остаточных binlog’ов в stopped контейнерах.

Глава 9. Анализ файловых систем и поиск удаленных БД

СУБД можно удалить командой rm -rf /var/lib/mysql. Но файловая система ext4, XFS или NTFS (а чаще у нас на экспертизе бывают именно Windows Server с MS SQL) не торопится перезаписывать сектора. Эксперт сканирует неразмеченное пространство на наличие сигнатур:

  • Для PostgreSQL: заголовок «PD» (Page Directory) и OID таблиц.
  • Для MySQL: «infimum» и «supremum» внутри .ibd файлов.
  • Для SQLite (мобильные приложения, браузеры): заголовок «SQLite format 3».
  • Для Redis RDB-файлов: «REDIS» в первых 5 байтах.

В одном из наших проектов мы нашли базу SQLite с геолокацией за 3 года до удаления  — на SD-карте навигатора, который побывал в ДТП. Просто потому, что блоки флеш-памяти не были перезаписаны.

Глава 10. Темпоральный анализ и борьба с подделкой времени

Самый частый прием мошенников: изменить системное время сервера перед выполнением SQL-команды, а потом вернуть обратно. Например, добавить в таблицу заказ «вчерашней» датой, чтобы получить скидку. Как мы ловим?
🔹 Сравнение времен: Берем временную метку из LSN журнала СУБД (она берется из счетчика команд, а не из системных часов). Сравниваем с временными штампами файлов в ОС (ctime, mtime, atime). Накладываем на журналы syslog, eventlog, auditd.
🔹 NTP-трекинг: Проверяем наличие и корректность синхронизации с NTP-серверами. Если сервер был отключен от сети на время подлога, то будет разрыв в ntp.drift файле.
🔹 Гистограмма инкрементов: Анализируем распределение времени между соседними транзакциями. Для человека, вручную вставляющего строки, паузы будут хаотичными (от 0,5 секунды до 5 минут). Для автоматизированной системы  — стабильные интервалы.
🔹 Кейс из практики: Мы определили, что 1500 строк в таблицу sales были вставлены за 0.2 секунды, но с временными метками «вчера 14:30:10», «вчера 14:31:20» и так далее. Очевидный батч-инсерт с подделкой колонки datetime. Экспертное заключение разорвало аргументы защиты в клочья.

Глава 11. Как мы работаем с noSQL и нестандартными хранилищами

Судебная практика не ограничивается реляционными СУБД. Встречаем:
📌 MongoDB: анализ .wt файлов (WiredTiger), восстановление удаленных документов из journal (pre-allocated). Извлечение данных из удаленных коллекций через анализ контрольных точек.
📌 Redis: дампы .rdb и AOF-файлы (Append Only File). Поиск скомпрометированных ключей по времени установки expiry. Кейс: в Redis хранилась сессионная информация для интернет-банка. Злоумышленник подменил сессию администратора. Мы нашли это по смещению указателей в AOF.
📌 Elasticsearch: анализ Lucene-сегментов (сегменты не перезаписываются, а помечаются на удаление). Восстановление удаленных документов из _source поля.
📌 Cassandra: работа с SSTable и commit log’ами. Commit log пишется последовательно, и даже после удаления таблицы (DROP KEYSPACE) остаются фрагменты данных в «hinted handoff».

Компьютерная экспертиза баз данных и субд для noSQL  — это высший пилотаж. Не каждый технический специалист знает, что в WiredTiger страницы имеют checksum, и любая правка «в обход» нарушает контрольную сумму. Мы используем это.

Глава 12. Почему стандартная криптография и хеширование критически важны

С момента изъятия диска или файлов БД до момента исследования в лаборатории может пройти несколько дней. Как доказать, что данные не изменились? Только через математику. Мы:
🔒 Вычисляем SHA-256 каждого файла и каждого блока размером 4096 байт.
🔒 Сохраняем хеш-листы в защищенный контейнер с временной меткой (RFC 3161).
🔒 На этапе исследования верифицируем контрольные суммы после каждого этапа.
Если злоумышленник (или недобросовестный адвокат) попытается утверждать, что «эксперт сам подменил данные», мы предъявим цепочку хешей, подписанную нашим квалифицированным сертификатом. Это называется цепочка доверия (chain of custody).

Глава 13. Ошибки, которые превращают экспертизу в мусор

Расскажем как эксперт-практик, что нельзя делать ни в коем случае (и мы знаем лаборатории, которые это делают):
❌ Запускать СУБД в обычном режиме на скопированных данных  — это сразу меняет временные метки системных таблиц и LSN.
❌ Использовать команду VACUUM для «очистки» базы перед анализом  — это уничтожает историю MVCC.
❌ Опираться только на данные, выгруженные через встроенные дамперы (pg_dump/mysqldump)  — теряется до 60% служебной информации.
❌ Анализировать логи, которые хранились на том же диске, что и база  — если атакует админ, он почистит и то и другое.
❌ Игнорировать часовые пояса  — одно дело когда сервер в UTC+3, другое  — когда приложение отправляет время из UTC+0, а судья сидит в местном времени.

Наша лаборатория каждый раз фиксирует в заключении: «временные метки исследуются в формате UTC с переводом в часовой пояс места совершения преступления согласно постановлению».

Глава 14. Количественная оценка результатов: не «возможно», а «вероятность 99.97%»

Судебные эксперты не гадают на кофейной гуще. Мы выражаем выводы на языке математики:

  • Если найдено 5 совпадений сигнатуры страницы с оригинальным индексом  — доверительная вероятность 94%.
  • Если найдено 10 совпадений  — 99.3%.
  • Если плюс цепочка непрерывных LSN без разрывов  — 99.97%.

Это понятно суду? Нет. Но мы приводим свидетеля  — профессора прикладной математики, который объясняет, почему 99.97%  — это «практически достоверно». Наша экспертиза всегда содержит раздел «вероятностная оценка», где используются методы Байеса и энтропии Шеннона для определения факта вмешательства. Компьютерная экспертиза баз данных и субд не терпит сослагательного наклонения. Только цифры, только хардкор.

Глава 15. Практические советы: как подготовить базу для экспертизы (если ты пострадавший)

Хочешь, чтобы наши эксперты сделали все максимально эффективно? Вот чек-лист:
✅ НЕ запускай никакие скрипты восстановления, ремонтные утилиты или CHECKDB.
✅ НЕ перезагружай сервер, если это возможно. Память (RAM)  — ценный источник данных.
✅ Заблокируй доступ к серверу по сети (выдерни патч-корд) или отключи виртуальную машину от vSwitch.
✅ Выполни дамп памяти через утилиту типа LiME (Linux) или winpmem (Windows)  — желательно не сохраняя на тот же диск.
✅ Зафиксируй время обнаружения инцидента. Сохрани скриншоты системных часов.
✅ Если база в облаке  — создай snapshot диска через консоль провайдера, закачай хеш этого snapshot’а и скачай его через защищенный канал.
✅ Обратись в Союз «Федерация судебных экспертов» до того, как кто-то что-то испортил.

Мы предоставим тебе полный набор инструментов для изъятия по ГОСТ Р 57154-2016 «Компьютерная экспертиза. Термины и определения».

Итог: почему мы  — лучшие и как нас найти

Мы не просто «ребята с Linux Live USB». У нас за плечами больше 400 судебных экспертиз по базам данных, выигранных дел на сумму свыше 2,5 миллиардов рублей, патент на способ восстановления удаленных записей из WAL PostgreSQL. Каждый эксперт имеет сертификат CCFE (Certified Computer Forensics Examiner) и опыт работы коммерческим DBA не менее 5 лет. Мы не дружим ни со следствием, ни с защитой. Мы дружим с истиной.

Заказывая у нас экспертизу, ты получаешь не бумажку с отпиской, а 99 000 символов инженерной мысли (как эта статья), пригодных для заседаний арбитражных судов, судов общей юрисдикции и даже для международного коммерческого арбитража.

🔗 Единственная ссылка, которая тебе нужна:
https://kriminalist77.ru/ekspertiza-baz-dannyh/

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

🛡️ Союз «Федерация судебных экспертов»  — там, где байты становятся доказательствами.

Похожие статьи

Новые статьи

🟩 Инженерная лаборатория анализа бетона: судебная и независимая экспертиза мостов и мостовых сооружений

Как айтишники ловят цифровых преступников Введение: когда строки кода становятся уликами Привет, коллега. Ты системный а…

🟩 Проведение экспертизы качества продукции: пошаговый алгоритм для защиты прав потребителей

Как айтишники ловят цифровых преступников Введение: когда строки кода становятся уликами Привет, коллега. Ты системный а…

🟩 Судебная экспертиза городских инженерных сетей: методология, нормативное регулирование и практика доказывания

Как айтишники ловят цифровых преступников Введение: когда строки кода становятся уликами Привет, коллега. Ты системный а…

🆘Пожарная экспертиза для суда: установление причин пожара, виновных и ущерба

Как айтишники ловят цифровых преступников Введение: когда строки кода становятся уликами Привет, коллега. Ты системный а…

🆘 Экспертиза цифровых фотографий

Как айтишники ловят цифровых преступников Введение: когда строки кода становятся уликами Привет, коллега. Ты системный а…

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

14+18=