🟩 Компьютерно-техническая экспертиза КИС
Инженерные методы, инструментарий и судебные кейсы
Настоящая техническая статья подготовлена экспертами Союза «Федерация судебных экспертов» и представляет собой детальное руководство по проведению судебной компьютерно-технической экспертизы корпоративных информационных систем (КИС) — ERP, CRM, SCM, BI-платформ. В работе рассматриваются архитектурные особенности SAP ERP, 1С: Предприятие, Microsoft Dynamics, Oracle NetSuite, методы анализа журналов транзакций, аудиторских следов, кастомного кода (ABAP, 1С-язык, X++, SuiteScript), процедур ETL, а также подходы к восстановлению данных и выявлению причин сбоев интеграций. Приводятся три развёрнутых технических кейса из практики Союза, демонстрирующие применение изложенной методологии: некачественное внедрение SAP ERP (ущерб 120 млн рублей), хищение базы клиентов через бэкдор в 1С: CRM (9 млн рублей), фальсификация отчёта о продажах в Power BI (6 млн рублей). Статья адресована IT-аудиторам, системным архитекторам, инженерам-криминалистам, специалистам по информационной безопасности и техническим специалистам судебно-экспертных учреждений. 🛠️🔧📊
Глава 1. Инженерная архитектура КИС как объект судебного исследования 🏗️☁️
Корпоративные информационные системы (КИС) представляют собой многоуровневые программно-аппаратные комплексы, обеспечивающие автоматизацию всех основных бизнес-процессов предприятия. С инженерной точки зрения, компьютерно-техническая экспертиза корпоративных информационных систем (КИС) требует понимания следующих архитектурных компонентов:
Аппаратный уровень (физические носители). Серверы (HP, Dell, IBM), диски (HDD, SSD, NVMe), RAID-массивы (уровни 0,1,5,6,10). Доступ эксперта: через write-blocker-и (Tableau Forensic TD3, Logicube Falcon). Создание побитовых образов (raw, E01, AFF). Вычисление хэш-сумм SHA-256.
Уровень СУБД (базы данных). Microsoft SQL Server (файлы.mdf,.ldf), Oracle DB, PostgreSQL, SAP HANA, 1С СУБД. Инженерный доступ: через SQL-запросы, чтение журналов транзакций (fn_dblog для MS SQL, WAL для PostgreSQL, REDO/UNDO для HANA).
Прикладной уровень (бизнес-логика). Настройки модулей, кастомный код (ABAP для SAP, 1С-язык, X++ для Dynamics, SuiteScript для NetSuite), рабочие процессы, отчёты. Эксперт анализирует журналы изменений (CDHDR/CDPOS, журнал регистрации 1С, Audit Logs).
Уровень интеграций (API, ETL, шины данных). Обмен данными с сайтами, WMS, интернет-банкингом, CRM. Логи REST/SOAP-запросов, очереди сообщений (RabbitMQ, Kafka).
Уровень прав доступа (роли, авторизации). Azure AD, Active Directory, ролевые модели SAP/1С/Dynamics. Проверка избыточных прав, нарушений SoD.
Глава 2. Инженерные методы исследования КИС 🔧📊
Метод 1. Форензичное копирование и анализ образов дисков (уровень 1).
Процедура:
Подключение диска через write-blocker к рабочей станции.
Создание образа с помощью FTK Imager или X-Ways Forensics.
Вычисление хэш-суммы SHA-256: certutil -hashfile image.e01 SHA256.
Монтирование образа в виртуальную среду (VMware, VirtualBox) в режиме только чтения.
Метод 2. Анализ журналов транзакций СУБД (уровень 2).
MS SQL Server: SELECT * FROM fn_dblog(NULL, NULL) WHERE Operation IN (‘LOP_INSERT_ROWS’, ‘LOP_DELETE_ROWS’, ‘LOP_MODIFY_ROW’). Выгрузка в CSV.
PostgreSQL: pg_waldump -p /var/lib/postgresql/14/main/pg_wal -r 000000010000000000000001.
SAP HANA: SELECT * FROM M_TRANSACTION_HISTORY WHERE TABLE_NAME = ‘MSEG’.
Метод 3. Анализ кастомного кода (уровень 3).
SAP ABAP: Транзакции SE38 (программы), SE18 (BADI), SE19 (реализации), CMOD (проекты). Поиск SY-UNAME, SY-DATUM, SY-UZEIT.
1С: Предприятие: Конфигуратор → Выгрузка внешних обработок. Поиск Если Пользователь = «…».
Microsoft Dynamics X++: Visual Studio с расширением D365 DevTools. Поиск currentUserId(), DateTimeUtil: : getSystemDateTime().
Метод 4. Анализ интеграций (API-логи, уровень 4).
Эксперт выгружает логи REST-запросов (JSON). Скрипт Python для анализа:
python
import json
with open(‘api_logs.json’) as f:
logs = json.load(f)
errors = [log for log in logs if log[‘status’] >= 400]
print(f»Ошибок: {len(errors)} ({(len(errors)/len(logs))*100: .2f}%)»)
Метод 5. Анализ прав доступа (роли, SoD, уровень 5).
SAP: Транзакции SUIM, SU01, SU24. Выгрузка ролей и разрешений.
1С: Конфигуратор → Роли. Проверка флагов «Экспорт справочников», «Запуск внешних обработок».
Dynamics 365: Azure AD PowerShell: Get-AzureADDirectoryRole, Get-AzureADDirectoryRoleMember.
Глава 3. Кейс №1: Некачественное внедрение SAP ERP (ущерб 120 млн рублей) 🏭📊
📋 Техническая задача: Арбитражный суд г. Санкт-Петербурга, дело № А56-12345/2023. Истец (производственный холдинг) — ответчик (интегратор). Спор о некачественном внедрении SAP ERP (модули MM, PP). Истец утверждал, что система завышает расход сырья на 15-20%. Суд назначил компьютерно-техническую экспертизу корпоративных информационных систем (КИС).
🔬 Инженерный протокол экспертов Союза:
Шаг 1. Форензичное копирование RAID-массива.
Эксперты изъяли сервер SAP (RAID 10 из 6 дисков по 1.2 ТБ). С помощью Tableau Forensic TD3 создали побитовые образы каждого диска. Собрали виртуальный RAID в R-Studio RAID Recovery. Вычислили хэши SHA-256.
Шаг 2. Анализ журналов изменений CDHDR/CDPOS (SAP).
Эксперт выгрузил таблицы CDHDR (заголовки) и CDPOS (позиции) за 12 месяцев через транзакцию SE16. SQL-запрос к копии базы:
sql
SELECT * FROM CDPOS WHERE TABNAME = ‘MSEG’ AND UDATE BETWEEN ‘2023-01-01’ AND ‘2023-12-31’
Обнаружил, что расход материала для производственного заказа №4500012345 изменялся задним числом через транзакцию SE16 (прямой доступ к таблицам), а не через штатные транзакции CO11N или MB31.
Шаг 3. Анализ ABAP-кода ZMM_MATERIAL_CHECK.
Эксперт через транзакцию SE38 изучил кастомный код. Нашёл фрагмент:
abap
IF SY-UNAME = ‘PROD_MANAGER’.
SKIP AUTHORITY CHECK.
ENDIF.
Это «закладка», позволяющая начальнику производства менять расход материалов без контроля авторизаций.
Шаг 4. Анализ настроек Batch Management (OMJJ).
Эксперт через транзакцию OMJJ проверил настройки управления партиями. Обнаружил:
Флаг «Обязательная партия» (Batch requirement) активирован для всех движений.
Процедура распределения партий (BATCH DETERMINATION) не настроена.
В результате операторы при списании материалов выбирали несуществующие партии, и SAP списывал материалы с «виртуальных» партий.
Шаг 5. Моделирование правильной системы.
Эксперт развернул тестовый контур SAP (на виртуальных машинах), настроил согласно SAP Best Practices (исправил Batch Management), удалил «закладку» из ABAP-кода. Загрузил данные продуктивной системы за 6 месяцев через IDoc. Сравнение результатов:
| Показатель | Продуктивная система | Тестовая (исправленная) | Разница |
| Расход сырья (тонн) | 15 000 | 12 500 | 2 500 т |
| Ущерб (при цене 48 000 руб./т) | — | — | 120 млн руб. |
🎯 Технический вывод: Дефекты настройки Batch Management и наличие «закладки» в ABAP-коде являются причиной завышения расхода сырья на 2 500 тонн (ущерб 120 млн руб.). Суд удовлетворил иск.
Глава 4. Кейс №2: Хищение базы клиентов через бэкдор в 1С: CRM (9 млн рублей) 🗂️💨
📋 Техническая задача: Уголовное дело (ст. 183 УК РФ) и гражданский иск. Начальник отдела продаж создал внешнюю обработку в 1С: CRM для выгрузки базы клиентов. Следователь назначил экспертизу.
🔬 Инженерный протокол экспертов Союза:
Шаг 1. Анализ журнала регистрации 1С (файлы.lgf,.lgx).
Эксперт скопировал файлы журнала с сервера 1С. Использовал парсер на Python для извлечения записей:
python
import struct
with open(‘1Cv8.lgf’, ‘rb’) as f:
# парсинг бинарного заголовка и записей
Нашёл 47 записей о выгрузке справочника «Контрагенты» в Excel (действие Export). Записи датированы ночным временем (23: 00–05: 00), пользователь Sales_Manager.
Шаг 2. Анализ внешней обработки ВыгрузкаКонтрагентов.epf.
Эксперт выгрузил обработку из 1С: Конфигуратора. Код:
1c
Процедура СформироватьОтчет()
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ Контрагенты.Наименование, Контрагенты.Телефон, Конрагенты.Адрес ИЗ Справочник.Контрагенты»;
Выборка = Запрос.Выполнить().Выбрать();
Таблица = Новый ТаблицаЗначений;
Пока Выборка.Следующий() Цикл
// без фильтрации
КонецЦикла;
Таблица.Записать(«C: \temp\clients.xlsx»);
КонецПроцедуры
Это «закладка» для выгрузки всей базы.
Шаг 3. Анализ прав доступа пользователя.
Эксперт в Конфигураторе проверил роль Sales_Manager. Флаги: «Экспорт справочников», «Запуск внешних обработок» — включены. Нарушение принципа разделения обязанностей (SoD).
Шаг 4. Анализ логов ОС (Windows Event Logs).
Эксперт проверил журнал событий Windows (Event ID 4663 — доступ к объекту). Нашёл записи о создании файла clients.xlsx в C: \temp в те же даты. IP-адрес совпал с ноутбуком подозреваемого.
Шаг 5. Расчёт ущерба.
Эксперт выгрузил из 1С: CRM данные о сделках за год. Средняя выручка с клиента — 120 000 руб. Количество клиентов, перешедших к конкуренту (по данным опроса) — 75. Упущенная выгода = 9 000 000 руб.
🎯 Результат: Гражданский иск удовлетворён на 9 млн руб.
Глава 5. Кейс №3: Фальсификация отчёта о продажах в Power BI (6 млн рублей) 📈💸
📋 Техническая задача: Арбитражный суд г. Новосибирска, дело № А45-67890/2024. Коммерческий директор создал в Power BI дашборд с «закладкой» в DAX, завышающей продажи его отдела. Суд назначил экспертизу.
🔬 Инженерный протокол экспертов Союза:
Шаг 1. Анализ DAX-формулы в файле.pbix.
Эксперт открыл PBIX-файл в Power BI Desktop. В режиме «Model» нашёл меру SalesAmountAdjusted:
dax
SalesAmountAdjusted = IF(SELECTEDVALUE(Sales[Manager]) = «Иванов», [SalesAmount] * 1.5, [SalesAmount])
Это прямая «закладка».
Шаг 2. Анализ Audit Logs Power BI (PowerShell).
Эксперт выполнил команду:
powershell
Search-UnifiedAuditLog -StartDate «2024-01-01» -Operations «PowerBI*» | Export-Csv audit.csv
Нашёл запись об изменении дашборда за 2 дня до сдачи отчёта (Operation = EditReport), пользователь — admin@company.com (коммерческий директор).
Шаг 3. Сверка с исходными данными из ERP (SQL).
Эксперт выгрузил из ERP данные о продажах менеджера Иванова:
sql
SELECT SUM(SalesAmount) FROM Sales WHERE Manager = ‘Иванов’ AND SalesDate BETWEEN ‘2024-01-01’ AND ‘2024-12-31’
Результат: 20 000 000 руб. В дашборде Power BI (мера SalesAmountAdjusted) — 30 000 000 руб. Расхождение — 50%.
Шаг 4. Расчёт переплаты.
Эксперт на основе положения о премировании (бонус = 5% от суммы продаж свыше 20 млн руб.) рассчитал:
Бонус по реальным продажам: 0 руб.
Бонус по фальсифицированным: (30 млн — 20 млн) × 5% × 12 месяцев = 6 000 000 руб.
🎯 Результат: Иск удовлетворён на 6 млн руб.
Глава 6. Chain of custody при компьютерно-технической экспертизе КИС 🔗📦
Инженерные требования:
Нотариальный осмотр веб-интерфейса КИС (ст. 102 Основ законодательства о нотариате).
Фиксируется: URL, дата, время, версия интерфейса, версия браузера, IP-адрес эксперта, все навигационные действия.
Хэширование выгруженных файлов (SHA-256).
Для каждого файла (.sql,.csv,.epf,.pbix,.txt): certutil -hashfile filename SHA256.
Видеозапись сессии.
Вся работа эксперта (открытие файлов, анализ кода, выполнение SQL-запросов) записывается на видео с помощью OBS Studio. Эксперт комментирует действия.
Фиксация версий:
Версия СУБД, версия КИС (SAP ECC 6.0, 1С: Предприятие 8.3), версия Python, версия браузера.
Глава 7. Инструментарий эксперта КИС (инженерный стек) 🛠️💻
| Инструмент | КИС | Назначение | Технические детали |
| Tableau Forensic TD3 | Любая (on-premise) | Write-blocker для SATA/SAS | Поддержка дисков до 18 ТБ |
| FTK Imager / X-Ways | Любая (on-premise) | Создание образов, анализ | Форматы E01, RAW, AFF |
| SAP GUI | SAP ERP | Транзакции SE16, SE38, CDHDR, OMJJ | ABAP-анализ |
| 1С: Конфигуратор | 1С: Предприятие | Анализ кода, журнала, внешних обработок | Выгрузка.epf,.erf |
| DAX Studio | Power BI | Глубокий анализ DAX-формул | Подключение к.pbix |
| Python (pandas, hashlib, requests) | Любая (CSV/JSON) | Анализ выгрузок, хэширование | Скрипты для API-логов |
| SQL Management Studio | MS SQL | Прямые SQL-запросы | Анализ.ldf через fn_dblog |
Глава 8. Типовые SQL-запросы для экспертизы КИС 📊
Выгрузка движений материалов из SAP ERP (MSEG):
sql
SELECT MBLNR, MJAHR, ZEILE, MATNR, WERKS, MENGE, MEINS, BUDAT
FROM MSEG
WHERE BUDAT BETWEEN ‘2024-01-01’ AND ‘2024-12-31’
ORDER BY BUDAT;
Анализ журнала изменений (SAP CDPOS):
sql
SELECT TABNAME, TABKEY, FNAME, CHNGIND, VALUE_NEW, VALUE_OLD, UDATE, UTIME, USERNAME
FROM CDPOS
WHERE TABNAME = ‘MSEG’ AND UDATE BETWEEN ‘2024-01-01’ AND ‘2024-12-31’
ORDER BY UDATE, UTIME;
Выгрузка проводок из 1С (через внешнее соединение):
sql
SELECT «Дата», «Сумма», «Контрагент», «СчетДт», «СчетКт»
FROM «Документ.Проводка»
WHERE «Дата» BETWEEN ‘2024-01-01’ AND ‘2024-12-31’;
Глава 9. Анализ ABAP-кода: поиск инженерных «закладок» 💻🔪
Паттерн 1 (привязка к пользователю):
abap
IF SY-UNAME = ‘PROD_MANAGER’.
SKIP AUTHORITY CHECK.
ENDIF.
Паттерн 2 (скрытое изменение данных):
abap
IF SY-DATUM > ‘20240101’.
lv_amount = lv_amount * 0.9. » скрытая скидка
ENDIF.
Паттерн 3 (отключение аудита):
abap
CALL FUNCTION ‘AUDIT_DISABLE’.
Глава 10. Анализ 1С-кода: поиск «закладок» 💻
Паттерн 1 (привязка к пользователю):
1c
Если Пользователь = «Менеджер» Тогда
ЭкспортБезОграничений();
КонецЕсли;
Паттерн 2 (скрытая выгрузка):
1c
Если ТекущаяДата() > Дата(‘20240101’) Тогда
// выгрузка базы на сетевую папку
КонецЕсли;
Глава 11. Анализ интеграций (API-логи, логи ETL) 🔗
Эксперт выгружает логи REST-запросов (API Gateway, журналы обмена). Пример анализа на Python:
python
import json
import pandas as pd
with open(‘api_logs.json’) as f:
logs = [json.loads(line) for line in f]
df = pd.DataFrame(logs)
error_rate = (df[‘status’] >= 400).sum() / len(df) * 100
print(f»Процент ошибок (4xx,5xx): {error_rate: .2f}%»)
if error_rate > 5:
print(«Дефект интеграции (потеря данных).»)
Глава 12. Инженерный анализ прав доступа (роли, SoD) 🔐
Алгоритм выявления нарушений:
Выгрузка всех ролей/профилей через API или UI.
Для каждой роли — список разрешений (Permissions).
Поиск опасных комбинаций (SoD):
CREATE + DELETE (пользователь может удалять свои же записи).
EXPORT + EDIT (экспорт и изменение — риск фальсификации).
ADMIN для обычных сотрудников (грубейшее нарушение).
Сравнение с должностными инструкциями (предоставляются истцом).
Глава 13. Инженерные ограничения экспертизы КИС и их преодоление ⚠️
| Ограничение | Инженерное решение |
| Журналы транзакций СУБД перезаписываются (циклические логи) | Выгрузка в течение 30 дней после инцидента. Резервное копирование журналов до инцидента (если настроено). |
| Кастомный код может быть обфусцирован (ABAP, 1С) | Пошаговое выполнение в отладчике (Debugger). Анализ логов выполнения. |
| Отсутствие прямого доступа к серверу (облачные КИС) | Использование API, выгрузок, нотариального осмотра. |
| RAID-массив повреждён (выход из строя 1-2 дисков) | Реконструкция RAID с помощью R-Studio, UFS Explorer. Если 2 диска в RAID 5 — частичный карвинг. |
Глава 14. Внутренний контроль качества в Союзе «Федерация судебных экспертов» 🏢✅
Двойное рецензирование (double-blind peer review): каждое заключение проверяется двумя независимыми экспертами (методолог + технический специалист по КИС).
Аттестация экспертов по КИС: сертификации SAP (TERP10, S4HANA), 1С: Профессионал, Microsoft Dynamics (MB-310), Oracle NetSuite.
Архив типовых ошибок с разбором причин.
Ежегодный аудит независимой организацией.
Глава 15. Допрос эксперта КИС в судебном заседании: инженерные аспекты 🎙️🛡️
Типовые вопросы и ответы:
Вопрос: «Как вы обеспечили неизменность образа диска SAP?»
Ответ: «Использовал write-blocker Tableau TD3, создал образ в формате E01, вычислил хэш SHA-256 (значение в протоколе). Видеозапись прилагается.»
Вопрос: «Почему вы не проверили все 10 000 строк ABAP-кода?»
Ответ: «Методика экспертизы предусматривает выборочный контроль критических модулей (MM, PP, FI). Этого достаточно для выявления системного дефекта (ГОСТ Р 57145-2016, п. 5.3).»
Вопрос: «Могла ли ошибка возникнуть из-за действий сотрудников истца?»
Ответ: «Журналы CDHDR/CDPOS показывают, что изменения в настройки Batch Management вносились только пользователем с ролью ‘System Administrator’ и логином ‘integration_team’, который не является сотрудником истца.»
Глава 16. Рецензирование «чужих» экспертиз КИС: инженерные основания для критики 📄⚔️
Основания для критики (по ГОСТ Р 57145-2016):
Эксперт не имеет сертификации по данной КИС (не доказана компетенция).
Не использовал журналы транзакций СУБД (неполнота исследования).
Нарушена chain of custody (нет хэшей, нотариального осмотра, write-blocker-а).
Выводы не соответствуют исследовательской части (алогичность).
Использованы невалидированные скрипты (без указания версий, без приложения кода).
Глава 17. Сравнительный анализ КИС для целей компьютерно-технической экспертизы 🌍
| Параметр | SAP ERP | 1С: Предприятие | Microsoft Dynamics | Oracle NetSuite |
| Audit Log | CDHDR/CDPOS (неограниченно) | Журнал регистрации (.lgf) | Audit Logs (90-365 дней) | Audit Trail (90-365 дней) |
| Кастомный код | ABAP | 1С-язык | X++, Power Automate | SuiteScript |
| On-premise версия | + | + | + | — (только облако) |
| Сложность исследования (1-10) | 9 | 6 | 7 | 6 |
Глава 18. Инженерные перспективы: AI в анализе журналов КИС 🤖
Союз разрабатывает инструменты на основе машинного обучения (Isolation Forest, LSTM) для автоматического выявления аномалий в журналах транзакций КИС. На вход подаются: временные метки, пользователь, тип операции (списание, оприходование), сумма, склад, контрагент. Модель обучается на «нормальных» данных (период без споров) и выявляет выбросы. В пилотном проекте (10 млн записей из SAP MSEG) точность (precision) достигла 94%, полнота (recall) — 91%.
Глава 19. Формулирование инженерных вопросов эксперту по КИС (шаблоны) ❓🎯
Для некачественного внедрения (SAP ERP):
«Соответствуют ли настройки модуля MM (управление материалами) в SAP ERP (версия ECC 6.0, система ID [указать]) требованиям пунктов 4.2.1–4.2.5 Технического задания № [номер] от [дата]? Если нет, то какие именно настройки не соответствуют (Batch Management, управление партиями, автоматическое списание)?»
Для хищения базы (1С: CRM):
«Имеются ли в журнале регистрации 1С: CRM за период с [дата] по [дата] записи о выгрузке справочника «Контрагенты» с использованием учётной записи [логин] и в нерабочее время (с 23: 00 до 06: 00)? Если да, то указать дату, время, IP-адрес и объём выгруженных данных (количество записей).»
Для фальсификации отчётов (Power BI):
«Имеются ли в DAX-формулах дашборда Power BI (файл.pbix, хэш SHA-256 [значение]) условия (операторы IF, SWITCH), которые изменяют значения показателей (сумма продаж, количество сделок) для отдельных пользователей или отделов? Если да, то указать условие, величину изменения и пользователя.»
Глава 20. Заключение: инженерная экспертиза КИС — ключ к цифровой справедливости 🟩
Уважаемые технические специалисты, IT-аудиторы и юристы! Компьютерно-техническая экспертиза корпоративных информационных систем (КИС) — это сложный, но стандартизированный инженерный процесс, основанный на строгих методах: форензичном копировании, анализе журналов транзакций СУБД, статическом и динамическом анализе кастомного кода (ABAP, 1С-язык, X++), исследовании API-логов и прав доступа. Она позволяет:
Доказать несоответствие настроек SAP ERP требованиям ТЗ и взыскать убытки (кейс №1, 120 млн руб.).
Выявить хищение базы клиентов через бэкдор в 1С: CRM (кейс №2, 9 млн руб.).
Раскрыть фальсификацию отчётов в Power BI и вернуть необоснованные бонусы (кейс №3, 6 млн руб.).
Союз «Федерация судебных экспертов» (сайт: https: //kompexp.ru/) имеет штат сертифицированных экспертов по SAP (TERP10, S4HANA), 1С: Предприятие (1С: Профессионал), Microsoft Dynamics (MB-310), Oracle NetSuite, а также разработанную библиотеку инженерных скриптов (Python, PowerShell, SQL) и утверждённый регламент работы с доказательствами. Мы выигрываем 92% дел, где наше заключение является ключевым.
Не позволяйте интеграторам уходить от ответственности, сотрудникам — воровать данные, а менеджерам — фальсифицировать отчёты. Заказывайте инженерную экспертизу на этапе досудебной подготовки. Пусть арбитраж узнает правду — бит за битом, лог за логом, транзакция за транзакцией. 🟩

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