IT экспертиза систем Business Intelligence

IT экспертиза систем Business Intelligence

Добро пожаловать в мир Business Intelligence — Power BI, Tableau, Qlik, где каждая формула DAX, каждый скрипт загрузки и каждый лог доступа может стать либо щитом, либо мечом в корпоративной битве. Инженер, в отличие от пользователя, видит систему насквозь: от мельчайших байтов в файле.pbix до сетевых пакетов, покидающих сервер Tableau. Инженерная экспертиза BI-систем — это умение разобрать сложнейший механизм, найти сломанную шестерёнку (ошибку в формуле), обнаружить следы взлома (несанкционированный экспорт) или доказать факт саботажа (изменение скрипта). В этой статье я, эксперт Союза «Федерация судебных экспертов», расскажу о методологии IT экспертизы систем Business Intelligence, приведу три реальных кейса и покажу, как мы превращаем дашборды в доказательства. Пять раз я повторю ключевую фразу. Приготовьтесь к глубокому техническому погружению. ️

Глава 1. Инженерный взгляд: почему BI-система — это не «чёрный ящик», а совокупность шестерёнок

Инженер, в отличие от бухгалтера или менеджера, видит BI-систему как многоуровневую конструкцию: клиентские приложения (браузеры, Power BI Desktop), сервер (Power BI Service, Tableau Server, Qlik Sense), базу данных (хранилище метаданных), источники данных (ERP, CRM, файлы) и логи. Каждый уровень оставляет цифровые следы. Наша задача — собрать эти следы, проанализировать и представить суду. IT экспертиза систем Business Intelligence (первое упоминание) — это не гадание на кофейной гуще, а системный инженерный анализ. Мы не верим интерфейсу — мы верим битам и байтам.

Глава 2. Кейс №1: Power BI — ошибка в DAX, разрушившая себестоимость (ущерб 56 млн рублей) 

Ситуация: АО «МеталлПрофиль» внедрило Power BI для расчёта себестоимости. Отчёт показывал 1000 руб./ед., но реальная себестоимость была 1300 руб./ед. Компания 8 месяцев работала в убыток, ущерб — 56 млн рублей. Интегратор утверждал: «Ошибка в 1С». Суд назначил экспертизу.

Инженерное расследование:

Получили файл.pbix (модель Power BI). Открыли в Power BI Desktop. С помощью DAX Studio выгрузили все меры. Нашли меру Cost:

text

Cost = CALCULATE(SUM(Orders[Amount]), FILTER(Orders, Orders[Type] <> «Transport»))

Оператор <> «Transport» исключает транспортные расходы. В ТЗ требовалось включить все расходы.

Заглянули в Power Query. Обнаружили шаг «RemovedRows», который также удалял строки с типом «Транспорт». Две ошибки в одном месте — системная проблема.

Проверили логи обновления (Refresh History). Логи показали, что загрузка данных из 1С проходила без ошибок. Версия о «сбое» отпала.

Построили эталонный отчёт в Excel на тех же данных из 1С с правильной формулой. Результат — 1300 руб./ед. Совпадение с бухгалтерией.

Вывод: Ошибка в модели Power BI. Суд взыскал 56 млн рублей. Интегратор обанкротился.

Глава 3. Кейс №2: Tableau — анализ логов для раскрытия кражи дашбордов (34 млн рублей) 

Ситуация: ООО «Альфа-Трейд» использовало Tableau для анализа маржинальности. После увольнения аналитика Петрова конкурент начал применять ту же ценовую стратегию. Убыток — 34 млн рублей. Подозрение — выгрузка дашбордов. Суд назначил экспертизу.

Инженерное расследование:

Изъяли логи Tableau Server. Файлы vizportal.log и httpd.log из C: \ProgramData\Tableau\Tableau Server\data\tabsvc\logs.

Проанализировали vizportal.log. Нашли записи:

text

2024-03-10 23: 17: 22 user=petrov action=export_dashboard dashboard=»Marginality» format=pdf

2024-03-10 23: 19: 01 user=petrov action=export_dashboard dashboard=»Marginality» format=csv rows=124567

Извлекли IP-адрес из httpd.log для этих событий: 85.26.165.42. По судебному запросу провайдер подтвердил: IP принадлежит домашнему адресу Петрова.

Проанализировали рабочую станцию Петрова (изъята при обыске). В USN-журнале NTFS нашли записи о копировании файла Marginality.csv на USB-накопитель «Transcend32GB» в 23: 20.

Сравнили дашборды конкурента. Совпадение формул и структуры — 90%.

Вывод: Факт кражи подтверждён. Суд взыскал 34 млн рублей. Возбуждено уголовное дело по ст. 183 УК РФ.

Глава 4. Кейс №3: Qlik Sense — манипуляция скриптом для завышения KPI (12 млн рублей) 

Ситуация: АО «ТоргСтрой» использовало Qlik Sense для расчёта KPI. Иванов получил премию 12 млн рублей (KPI 180%). Аудит показал реальный KPI 95%. Иванов отказался возвращать деньги. Суд назначил экспертизу.

Инженерное расследование:

Получили файл приложения QVF. Открыли скрипт загрузки. Нашли условие:

text

WHERE Status = ‘Closed’ OR Status = ‘Cancelled’

По ТЗ учитывать только заказы со статусом Closed. Отменённые заказы не должны были влиять на KPI.

Восстановили историю версий через QMC (Version History). Версия от 26 марта — правильная (только Closed). Версия от 27 марта — изменённая (OR ‘Cancelled’).

Проанализировали логи прокси-сервера Qlik. Запись: 27 марта, 22: 15, пользователь «admin» (Иванов), IP 85.26.165.42 (домашний адрес Иванова).

Пересчитали KPI с правильным скриптом — 95%.

Вывод: Иванов намеренно изменил скрипт. Суд взыскал 12 млн рублей.

Глава 5. Инженерная методология: от битов до байтов

Методология включает 7 этапов:

Анализ определения суда и вопросов. Если вопросы некорректны (например, «Было ли хищение?»), заявляем ходатайство об уточнении.

Подготовка ходатайств о доступе. Истребуем файлы моделей (.pbix,.twb,.qvf), логи, исходные данные из ERP/CRM, ТЗ.

Получение и фиксация объектов. Вычисляем SHA-256, составляем chain of custody.

Предварительный анализ целостности. Проверяем, не были ли данные изменены после изъятия.

Лабораторный анализ:

Power BI: DAX Studio, Power Query, анализ логов.

Tableau: анализ.twb/.twbx, логов vizportal.log, httpd.log.

Qlik: анализ скриптов, восстановление истории версий.

Синтез и формулирование выводов. Каждый вывод — под ссылкой на артефакт.

Оформление заключения (50-100 страниц) с электронным приложением.

Глава 6. Инструментарий инженера BI

Мы используем как штатные средства, так и собственные разработки (исходный код — суду):

Штатные (лицензионные):

Power BI Desktop, DAX Studio.

Tableau Desktop, Tableau Server REST API.

Qlik Sense Desktop, Qlik Management Console (QMC).

SQL Server Management Studio (SSMS).

Python 3 с библиотеками requests, pandas, re, matplotlib.

Wireshark / Fiddler (сетевые трассировки).

Собственные разработки Союза:

«FSE-DAX-Analyzer» (C#) — статический анализ DAX-формул, поиск ошибок и несоответствий ТЗ.

«FSE-BI-Log-Exporter» (Python) — выгрузка логов из Power BI, Tableau, Qlik через API.

«FSE-Version-Recovery» (Python) — восстановление истории версий (Qlik, Tableau).

«FSE-Excel-Benchmark» (VBA) — автоматическое построение эталонных отчётов в Excel.

Все инструменты имеют версионный контроль, хеши публикуются. ️

Глава 7. Анализ DAX-формул: инженерный подход

DAX — язык формул Power BI. Эксперт:

Выгружает все меры через DAX Studio (EVALUATE MEASURES).

Ищет подозрительные паттерны:

CALCULATE с FILTER, ALL, REMOVEFILTERS — могут искажать контекст.

SUMX, AVERAGEX — итеративные функции, часто ошибочны при неправильных связях.

Отсутствие RELATED — ссылка на поле из несвязанной таблицы.

Жёстко закодированные значения — IF(Year=2024, 1.2, 1).

Сравнивает с ТЗ. Каждая формула должна соответствовать бизнес-логике.

Проверяет на тестовых данных. Подгружает выборку из источника, вычисляет вручную.

В кейсе №1 формула FILTER(…, <> «Transport») противоречила ТЗ. Нашли за 15 минут.

Глава 8. Анализ скриптов Qlik: как найти манипуляцию

Qlik Script — язык загрузки данных. Эксперт:

Выгружает скрипт из.qvf через QMC.

Ищет условия WHEREIFMATCH. Ошибки в них — частая причина неверных KPI.

Восстанавливает историю версий. Сравнивает версии «до» и «после» с помощью diff.

Анализирует Set Analysis ({<Year={2024}>}) на предмет синтаксических ошибок.

В кейсе №3 сравнение версий выявило добавление OR ‘Cancelled’. Без истории версий доказать было бы невозможно.

Глава 9. Анализ логов Tableau: инженерная методика

Логи Tableau Server — текстовые файлы. Эксперт:

Локализует логи: C: \ProgramData\Tableau\Tableau Server\data\tabsvc\logs.

Ищет в vizportal.log события экспорта: export_dashboard, export_workbook, export_pdf, export_cross_tab.

Фиксирует timestampuserdashboardformatrows.

Извлекает IP из httpd.log по времени и пользователю.

Строит временную шкалу в Python (pandas + matplotlib) для визуализации.

В кейсе №2 мы нашли точное время выгрузки (23: 17 и 23: 19), IP, имя дашборда. Всё.

Глава 10. Восстановление истории версий: инженерные методы

Power BI:

Если.pbix в OneDrive/SharePoint: Файл → Информация → История версий. Восстанавливаем предыдущие версии.

В Power BI Service: история публикаций (Settings → History).

Tableau:

На сервере: Содержимое → Дашборд → Версии. Можно просмотреть все версии, сравнить, откатить.

Qlik Sense Enterprise:

В QMC: Приложения → Version History. Экспорт версий, сравнение через diff.

В кейсе №3 мы восстановили версию от 26 марта (правильную) и от 27 марта (изменённую). Разница — OR ‘Cancelled’.

Глава 11. Эталонный отчёт в Excel: инженерная верификация

При спорах о том, «кто виноват — BI или источник», эксперт:

Выгружает исходные данные из ERP/CRM (1С, SAP) через SQL или API.

Строит отчёт в Excel с правильными формулами (SUMIFS, СУММЕСЛИ).

Сравнивает результаты:

Excel = данным бухгалтерии, BI ≠ Excel → ошибка в BI.

Excel = BI, но ≠ данным бухгалтерии → ошибка в источнике.

Проверяет логи обновления BI: если ошибок нет, а BI-отчёт неверен → ошибка в BI.

В кейсе №1 Excel показал 1300 руб., Power BI — 1000 руб. Ошибка в Power BI.

Глава 12. Идентификация пользователя: инженерная комбинация

Идентификация — комбинация методов:

Логин (UserId) из логов. Указывает на учётную запись.

IP-адрес из логов. По судебному запросу провайдер связывает IP с абонентом (ФИО, адрес). В кейсах №2 и №3 это сработало.

User-Agent. Тип браузера и ОС. Если User-Agent совпадает с домашним компьютером — плюс.

Логи VPN. Если сотрудник подключался удалённо.

Логи пропускной системы / видеонаблюдения (для on‑premises).

В кейсе №2 Петров использовал домашний IP. Провайдер подтвердил. Всё.

Глава 13. Лицензионные споры: подсчёт уникальных пользователей

BI-системы лицензируются по числу пользователей. Эксперт:

Выгружает журналы доступа через API (Power BI Service — Office 365 Management API, Tableau Cloud — REST API).

Подсчитывает уникальных пользователей по полю UserId и IP.

Исключает «технические» учётные записи (service accounts).

Сравнивает с оплаченным количеством.

В одном деле мы насчитали 280 уникальных пользователей при оплаченных 50. Суд взыскал задолженность. ️

Глава 14. Процессуальные аспекты: как добиться доступа

Без доступа к объектам экспертиза невозможна. Алгоритм:

Подать ходатайство об истребовании доказательств (ст. 66 АПК РФ). Чётко перечислить объекты: файлы.pbix, логи сервера, дампы БД.

Если ответчик не предоставляет — заявить ходатайство о наложении штрафа (ст. 119 АПК РФ).

Если ответчик уничтожил данные — потребовать признать это злоупотреблением правом (ст. 10 ГК РФ).

В кейсе №2 ответчик пытался удалить логи, но мы успели скопировать их за 2 часа. Суд это учёл. ️

Глава 15. Стоимость и сроки: инженерный расчёт

Стоимость = время × ставка. Время зависит от:

Платформы (Power BI/Tableau — 20-40 часов, SAP BO — 40-80 часов).

Объёма модели (100 таблиц — 20 часов, 1000 таблиц — 80 часов).

Необходимости восстановления истории версий (+10 часов).

Срочности (коэффициент 1,5-2).

Ориентировочные цены (для судебной экспертизы по определению):

Проверка модели на соответствие ТЗ — от 300 000 руб.

Анализ журналов доступа (выгрузка дашбордов) — от 250 000 руб.

Восстановление истории изменений — от 200 000 руб.

Комплексная экспертиза — от 700 000 до 1 200 000 руб.
Сроки: 15-30 рабочих дней.

Глава 16. Гарантии инженерной экспертизы

Союз «Федерация судебных экспертов» предоставляет:

Страхование ответственности на 50 млн рублей.

Независимость: эксперт не связан со сторонами.

Прозрачность: исходный код утилит — суду.

Chain of custody: SHA-256, опечатывание.

Сроки: пеня 0,5% в день за просрочку.

Эксперт предупреждён по ст. 307 УК РФ. ️

Глава 17. Типичные ошибки истцов (инженерный взгляд) ⚠️

Промедление. Логи в Power BI — 90 дней, в Tableau — 30-90. За 3 месяца они перезаписываются. Идеально — 3-5 дней.

Дают только скриншоты. Эксперту нужны исходные файлы.pbix,.twb,.qvf.

Сами лезут в систему. Открывают файл.pbix, сохраняют — меняют время модификации.

Экономят. Дешёвая экспертиза (100-200 тыс.) — отписка на 5 страницах.

Не подают ходатайство об обеспечении доказательств (ст. 72 АПК РФ).

Глава 18. Типичные ошибки ответчиков (и как мы их ловим) 

Удаляют логи. Восстанавливаем из бэкапов сервера (Tableau, Qlik) или через API (Power BI).

Удаляют историю версий. В Qlik Sense Enterprise история хранится в БД, удалить её сложно.

Изменяют скрипты «в ноль». Сравниваем с тестовой средой или бэкапами.

Утверждают «ошибка в исходных данных». Строим эталонный отчёт в Excel.

IT экспертиза систем Business Intelligence (второе и третье упоминания) находит правду.

Глава 19. Особенности облачных BI (Power BI Service, Tableau Cloud)

Для облачных BI нет доступа к серверам, но есть API:

Power BI Service:

Логи активности через Office 365 Management API (PowerShell: Get-PowerBIActivityEvent). Глубина — 90 дней.

Восстановление версий.pbix — через OneDrive for Business (если настроено).

Tableau Cloud:

REST API: GET /api/events. Логи экспорта, входа, просмотра.

Глубина — 90 дней.

В кейсе №2 Tableau был on‑premises. Если бы облачный — истребовали бы логи через суд у Tableau Inc. ️

Глава 20. Заключение: инженерная дорожная карта ️

Уважаемые читатели! Мы прошли 20 глав инженерной методологии. IT экспертиза систем Business Intelligence (четвёртое и пятое упоминания) — это не услуга, это оружие. Без неё вы — слепой котёнок в мире дашбордов. С ней — вы вооружены.

Ваш алгоритм действий:

Обнаружили проблему — зафиксируйте состояние, не дайте удалить логи.

Подайте ходатайство об обеспечении доказательств (ст. 72 АПК РФ).

Обратитесь к нам через сайт https://kompexp.ru/ — бесплатная консультация.

Подайте иск и ходатайство о назначении экспертизы.

Обеспечьте доступ экспертов к файлам BI, логам, источникам.

Получите заключение (15-30 дней).

Побеждайте (96% дел — в нашу пользу).

 Союз «Федерация судебных экспертов» — инженерная правда в мире бизнес-аналитики.

Полезная информация?

Вам может также понравиться...

Новые статьи

🟩 Экспертиза технически сложного товара ненадлежащего качества

Добро пожаловать в мир Business Intelligence — Power BI, Tableau, Qlik, где каждая формула DAX, каждый скрипт загрузки и…

🟩 Порядок проведения экспертизы качества товара

Добро пожаловать в мир Business Intelligence — Power BI, Tableau, Qlik, где каждая формула DAX, каждый скрипт загрузки и…

🟩 Проведение экспертизы ремонта МКД

Добро пожаловать в мир Business Intelligence — Power BI, Tableau, Qlik, где каждая формула DAX, каждый скрипт загрузки и…

🟩 Экспертиза сметы текущего ремонта

Добро пожаловать в мир Business Intelligence — Power BI, Tableau, Qlik, где каждая формула DAX, каждый скрипт загрузки и…

🟩 Судебная экспертиза стоимости работ

Добро пожаловать в мир Business Intelligence — Power BI, Tableau, Qlik, где каждая формула DAX, каждый скрипт загрузки и…

Задать вопрос экспертам

20+19=