
Методы, инструменты, восстановление данных
Системы Business Intelligence (BI) — Power BI, Tableau, Qlik Sense, SAP BusinessObjects — стали критически важными инструментами управления бизнесом. 📊 Они агрегируют данные из множества источников (ERP, CRM, баз данных, Excel) и представляют их в виде дашбордов и отчетов.
Когда возникает судебный спор — о фальсификации отчетности, о недостоверности KPI, о хищениях через искажение данных, — именно BI-отчеты становятся ключевым доказательством. Однако суд не может принять распечатку дашборда как безусловную истину. Как инженерно доказать, что данные в отчете были сфальсифицированы? Как восстановить историю изменений? Как выявить подмену источника данных? Ответы на эти вопросы дает инженерная экспертиза систем Business Intelligence для подачи иска в суд. 🧐
Союз «Федерация судебных экспертов» (сайт: https://kompexp.ru/) разработал инженерные методы исследования BI-систем. В данной статье, написанной в инженерном стиле, представлены методы извлечения и анализа файлов отчетов (.pbix, .twb, .qvf), анализ логов BI-серверов, восстановление удаленных данных, перекрестная верификация, а также три реальных кейса. ⚙️
🟩 Глава 1. Инженерная архитектура BI-систем как объект экспертизы
BI-система — это многоуровневый программный комплекс. 🏗️
Уровни:
• источники данных (базы данных SQL, файлы Excel, облачные API);
• ETL/ELT (Power Query M, Tableau Prep, Qlik Load Script);
• семантическая модель (метаданные, связи, вычисляемые поля, меры DAX/MDX);
• визуализация (дашборды, отчеты);
• серверная часть (логи, репозиторий, управление доступом).
Инженерная экспертиза систем Business Intelligence для подачи иска в суд требует владения инструментами анализа каждого уровня. 🔧
🟩 Глава 2. Инженерный анализ файлов Power BI (.pbix)
Файл .pbix — это ZIP-архив. 📦
Инженерный метод:
• распаковка (7-Zip, PowerShell Expand-Archive);
• анализ DataModelSchema — JSON-файла, содержащего таблицы, связи, меры DAX;
• поиск подозрительных мер: IF(MAX(Table[Date]) = DATE(2023,12,31), [Revenue]*1.25, [Revenue]);
• анализ DataModelStorage — извлечение сжатых данных, сравнение с исходными данными из источников;
• анализ Connections — JSON-файла с настройками подключений (Server, Database, Query). Проверка, не был ли источник подменен (например, prod_db → test_db);
• анализ метаданных — дата создания, автор (если сведения сохранились в ZIP-комментариях);
• сравнение версий — diff между двумя файлами .pbix. 🛠️
🟩 Глава 3. Кейс №1: Power BI — выявление DAX-формулы, завышающей KPI на 25%
📊 Техническая фабула.
Акционеры розничной сети заподозрили генерального директора в завышении KPI для получения бонуса (27 млн руб.).
Эксперты применили инженерный метод:
• изъяли файлы .pbix за 6 месяцев;
• распаковали каждый файл;
• в DataModelSchema нашли меру DAX: KPI_Actual = IF(MAX(Table[Date]) = DATE(2023,12,31), [Revenue]*1.25, [Revenue]);
• сравнили с версией от 01.12.2023 — этой меры не было, она появилась 20.12.2023;
• метаданные ZIP-файла показали автора последнего изменения — пользователя с ID генерального директора;
• дополнительно проверили журналы Power BI Service (Office 365 Management Activity API) — нашли запись UpdateReport от 20.12.2023 09:15 с IP-адреса директора.
Суд удовлетворил иск. 🏆
🟩 Глава 4. Инженерный анализ Tableau (.twb/.twbx)
Tableau использует файлы .twb (XML) и .twbx (ZIP-архив с данными). 📂
Инженерный метод:
• распаковка .twbx;
• анализ XML-файла .twb: тег <connection> — источник данных (class, dbname, server). Тег <calculated-field> — вычисляемые поля;
• поиск подозрительных формул: IF [Date] = #2023-12-31# THEN [Revenue]*1.25 ELSE [Revenue] END;
• анализ экстрактов .hyper (база данных SQLite) — извлечение данных и сравнение с исходными;
• анализ логов Tableau Server (база данных репозитория PostgreSQL) — таблицы _connections, _history;
• запрос: SELECT * FROM _connections WHERE user=’fin_director’ AND date>’2023-12-09′. 🧬
🟩 Глава 5. Кейс №2: Tableau Server — подмена источника данных, выявленная через логи репозитория
🔐 Техническая фабула.
Финансовый директор перед налоговым аудитом изменил источник данных в дашборде Tableau с prod_db на audit_copy_db, где были скрыты убытки на 56 млн руб.
Эксперты:
• получили доступ к базе данных репозитория Tableau Server (PostgreSQL);
• выполнили SQL-запрос: SELECT user, action, old_value, new_value, ip, time FROM _connections WHERE user=’fin_director’ AND action=’change_connection’ AND time > ‘2023-12-09’;
• обнаружили запись: 10.12.2023 14:23:45 — old_value=’prod_db’, new_value=’audit_copy_db’;
• IP-адрес (192.168.1.100) совпал с рабочей станцией финансового директора;
• эксперты изъяли старую версию дашборда из резервной копии, восстановили прежний источник данных и сравнили его с новым — расхождение составило 56 млн руб.
Суд удовлетворил иск. 🗡️
🟩 Глава 6. Инженерный анализ Qlik Sense (.qvf и Repository)
Qlik Sense использует файл приложения .qvf (ZIP-архив) и базу данных Repository (PostgreSQL). 📁
Инженерный метод:
• распаковка .qvf;
• анализ файла LoadScript — скриптов загрузки данных на языке Qlik;
• поиск подозрительных строк: WHERE-условия, отсекающие данные; SET-переменные, изменяющие значения; IF-условия в скриптах;
• анализ Repository: таблица logs (история изменений приложений);
• запрос: SELECT user, action, script_hash, time FROM logs WHERE app_name=’Sales_Report’;
• восстановление удаленных приложений из резервных копий Repository (SQL-дампов). 🔩
🟩 Глава 7. Кейс №3: Qlik Sense — восстановление удаленной истории из таблицы logs Repository
📦 Техническая фабула.
Бывший администратор BI перед увольнением удалил историю обновлений дашборда Qlik Sense, где были зафиксированы его манипуляции (завышение продаж на 15–20% перед квартальными отчетами).
Эксперты:
• получили доступ к серверу Qlik Sense;
• подключились к базе данных Repository (PostgreSQL);
• выполнили запрос: SELECT user, action, script_diff, time FROM logs WHERE app_name=’Sales_Report’ AND user=’admin’ AND time > ‘2022-01-01’;
• извлекли 345 записей за 2 года;
• анализ script_diff показал, что администратор изменял Load Script, добавляя коэффициент 1.15 к сумме продаж перед каждым квартальным отчетом;
• сопоставили временные метки с логами входа.
Суд удовлетворил иск. 💾
🟩 Глава 8. Инженерный анализ логов BI-серверов (Power BI Service, Tableau Server)
Логи BI-серверов — «черный ящик». 📋
Инженерные методы:
• Power BI Service — Office 365 Management Activity API (PowerShell: Search-UnifiedAuditLog -Operations «CreateReport»,»UpdateReport»,»DeleteReport»,»ViewReport»);
• выгрузка в CSV, анализ IP-адресов и пользователей;
• Tableau Server — доступ к базе данных репозитория (PostgreSQL);
• таблицы: _history (запуски отчетов), _background_tasks (фоновые задачи), _connections (источники);
• Qlik Sense — таблица logs (Repository);
• поиск аномалий: массовый экспорт отчетов (более 100 за час), изменение источников данных, удаление отчетов перед аудитом, активность в нерабочее время (00:00–06:00). 🕵️
🟩 Глава 9. Инженерное восстановление удаленных отчетов из резервных копий
Удаление отчета не всегда окончательно. 🗑️
Инженерные методы:
• Power BI Service — корзина хранения (до 90 дней). Восстановление через интерфейс или API;
• Tableau Server — резервные копии репозитория (SQL-дампы). Восстановление базы данных на тестовом сервере и извлечение удаленных отчетов;
• Qlik Sense — резервные копии Repository (SQL-дампы);
• Desktop BI — теневые копии Windows (VSS), корзина, временные файлы;
• оценка полноты восстановления: R = N_восстановленных / N_удаленных (по логам). 🧲
🟩 Глава 10. Инженерный анализ ETL-скриптов (Power Query M, Tableau Prep, Qlik Load Script)
ETL-скрипты — это код, который загружает и трансформирует данные. 🧬
Инженерные методы:
• Power Query M — извлечение из .pbix (файл DataModelSchema или Report);
• поиск конструкций: Table.SelectRows с условиями (например, each [Value] >= 0 — отбрасывание отрицательных значений), Table.TransformColumns с вычислениями;
• Tableau Prep — анализ файлов .tfl (JSON);
• Qlik Load Script — анализ LoadScript из .qvf;
• поиск WHERE, DROP, SET;
• сравнение с эталонной версией — diff скриптов из резервных копий;
• восстановление удаленных строк — запуск скрипта без фильтров на тестовых данных. 🦠
🟩 Глава 11. Инженерная перекрестная верификация с источниками данных
Самый надежный метод проверки — сравнение BI-отчета с первичными источниками (ERP, CRM, базы данных). 🌐
Инженерный метод:
• идентификация источников — анализ Connections в .pbix или .twb;
• выгрузка данных из источников — SQL-запросы к базам данных, экспорт из ERP;
• повторный ETL — запуск ETL-скрипта (Power Query, Tableau Prep) в тестовой среде;
• сравнение — вычисление расхождения Δ = |X_bi — X_source| / X_source для каждого числового показателя;
• документирование — таблица расхождений прикладывается к заключению. 📊
🟩 Глава 12. Инженерная оценка достоверности и целостности отчетов BI
Метрологический подход. 📏
• хеш-суммы SHA-256 — для каждого файла отчета;
• сравнение с резервными копиями — наличие идентичных файлов за прошлые периоды подтверждает неизменность;
• перекрестная верификация — сопоставление данных отчета с данными из первичных источников (не менее двух источников);
• статистическая оценка — для выявленных аномалий вычисляется p-value (вероятность случайного возникновения). При p < 0.001 аномалия считается значимой;
• указание погрешности — для временных меток ±1 с, для сумм ±0,01%. 🔬
🟩 Глава 13. Инженерное противодействие уничтожению доказательств
Недобросовестная сторона может попытаться удалить файлы отчетов или очистить логи. 🚫
Инженерные контрмеры:
• автоматический экспорт — настройка ежедневного экспорта логов через API (Power BI: Office 365 Management Activity API);
• немедленное создание резервных копий — при получении доступа копирование всех файлов .pbix, .twb, .qvf;
• анализ теневых копий — VSS на серверах;
• запрос резервных копий у провайдера (для облачных BI);
• фиксация факта удаления — даже если файл удален, логи сервера сохраняют запись об удалении (кто и когда удалил). 🛡️
🟩 Глава 14. Инженерная документация и цепочка хранения (chain of custody)
Chain of custody имеет критическое значение. 📑
Инженерный протокол:
• регистрация каждого файла — имя, размер, хеш SHA-256;
• видеофиксация процесса выгрузки (при нотариальном осмотре);
• хранение оригиналов на защищенном носителе (шифрованный диск);
• передача данных только по акту с подписями;
• уничтожение копий после завершения дела по акту.
Нарушение chain of custody является основанием для исключения доказательств. 🔒
🟩 Глава 15. Заключение: инженерная экспертиза BI — фундамент правосудия
Инженерная экспертиза систем Business Intelligence для подачи иска в суд — это инженерная дисциплина, требующая знаний форматов (.pbix, .twb, .qvf), языков (DAX, M, SQL), логов BI-серверов. 🟩
В статье представлены инженерные методы: анализ DAX-формул, логов репозитория Tableau, базы данных Repository Qlik, ETL-скриптов, восстановление удаленных отчетов.
Три кейса — Power BI (завышение KPI), Tableau (подмена источника), Qlik (восстановление из логов) — демонстрируют применимость.
Повторим ключевую фразу: инженерная экспертиза систем Business Intelligence для подачи иска в суд — единственный способ получить инженерно обоснованные доказательства.
Союз «Федерация судебных экспертов» (https://kompexp.ru/) готов помочь. Обращайтесь! 🟩






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