Страница 51 из 110
Глава 21. Короткая память сервера
— Сервер ничего не забыл, — сказал Демьян. — Забыл отчёт, который нам показывали.
На отдельном экране стояли две таблицы. Слева — выгрузка, которой мы пользовались в первые дни проверки. Справа — восстановленная последовательность событий провайдера. В правой было на девять строк больше.
Мы сидели в конструкторской. Ада вела протокол. Нонна принесла прошитый производственный журнал и опечатанный накопитель с локальными копиями. Феликс пришёл с юристом, но говорил сам. Роберт находился у стены рядом с закрытой папкой «Контура».
Демьян объяснял не устройство всего сервера, а только разницу, которая меняла вывод.
Рабочая система позволяла администратору скрывать из пользовательского отчёта повторы и тестовые события. Строка исчезала с экрана, но исходная запись у провайдера оставалась в журнале операций. После первого уведомления о сохранении данных провайдер зафиксировал сырой журнал и дальнейшие команды изменения. Удалить его через обычный кабинет было нельзя.
— Значит, очистка ничего не уничтожила? — спросила Нонна.
— Она изменила то, что видел человек, открывший обычный отчёт. Для решения о сделке этого достаточно. Исходные данные сохранились потому, что запрос на фиксацию успел раньше.
Демьян увеличил первую восстановленную строку.
Административная команда пометила группу событий как тестовую и исключила её из видимой выгрузки. Команда прошла под коммерческой учётной записью Феликса. Источник совпал с внутренним портом его кабинета.
— Порт не равен человеку, — сказал Феликс.
— Верно, — ответил Демьян. — Поэтому я называю учётную запись, сеанс и точку подключения. Не руки на клавиатуре.
Следующая колонка содержала время.
Сабина передала специалисту исходный экспорт переписки с Тимуром. В нём сохранилось первое сообщение о «страховочной копии». Команду очистки запустили после него. Между предупреждением Тимура и изменением отчёта прошло меньше получаса.
Ещё один участок скрыли позднее. Источник был тот же: коммерческий сеанс и порт кабинета Феликса. Этот фрагмент исчез уже после того, как участникам проверки письменно запретили менять журналы.
Феликс снял очки и положил их на папку.
— Я не удалял исходные записи. Убрал из рабочего отчёта ошибочные тестовые операции, чтобы их не приняли за подтверждённую передачу.
— После требования сохранить всё? — спросила я.
— Требование касалось удаления доказательств. Функция исключения тестов предусмотрена самой системой. Исходный журнал, как мы сейчас видим, остался.
Он не отрицал действие. Только давал ему другое название.
— Какие операции были ошибочными? — спросил Демьян.
— Пробная сборка технического пакета. Тимур настраивал временное хранилище и несколько раз запускал сценарий. В отчёте смешались тест и фактическая передача.
— Какой объём был у теста?
— Небольшой. Техкарты и демонстрационные материалы. Точный объём не помню.
Нонна открыла свою папку.
— Зато сервер, кажется, помнил до того, как ему помогли.
Она достала прозрачный пакет с накопителем. На нём стояли дата, время и две подписи. Копию рабочего отчёта Нонна сохранила до отключения архивного компьютера, когда мы ещё только сопоставляли внешние ключи. Файл не открывали заново до сегодняшнего заседания. Демьян снял образ с накопителя через блокиратор записи и сверил контрольную сумму с нашей первоначальной описью.
— Локальная копия создана до обеих команд очистки, — сказал он. — Состояние файла после фиксации не менялось.
На экране появилась прежняя версия.
Скрытый интервал начинался не во время ранней настройки. Он шёл после приёма полного пакета временным хранилищем. Объём совпадал с манифестом семи корневых каталогов. Число объектов тоже совпадало. Последняя строка фиксировала завершённую передачу на неизвестный внешний адрес.
— Это не пробная папка, — сказала Нонна. — Тест не набирает по дороге семь каталогов, старые согласия и личные записи Жанны.
Феликс посмотрел на таблицу.
— Я видел другую выборку.
— Покажите, — сказал Демьян.
— Она находилась в административном кабинете.
— Экспорт сохранился?
— Должен был.
— В представленных вами материалах его нет.
Юрист Феликса записал формулировку и попросил приложить техническое описание функции исключения. Демьян согласился. Феликс не повышал голос.
— Я действовал в интересах компании, — сказал он. — В тот момент «Контур» мог принять тестовые дубли за несколько внешних передач и закрыть переговоры без проверки. Я убрал повторы из рабочей версии, чтобы сначала установить фактическую операцию.
— И не сообщил, что убрал, — сказала я.
— Потому что считал это подготовкой отчёта, а не вмешательством в доказательства.
— После угрозы Тимура?
— Я не воспринимал его сообщение как подтверждение кражи. Подрядчики постоянно называют резервом копию, пока заказчик не принял работу.
— Он потребовал доплату за удаление.
— Это стало известно из переписки Сабины. Я её тогда целиком не видел.
Нонна придвинула к нему распечатку.
— Зато увидели строки, которые исчезли.
Феликс не взял лист.
Демьян отметил в протоколе две версии объяснения. Технический вывод оставался прежним: видимый отчёт изменили из коммерческого сеанса, связанного с кабинетом Феликса; скрытый интервал относился к полному пакету, а не к маленькой тестовой папке. Кто именно находился за клавиатурой, журналы не показывали.
— Коммерческая оценка сделки больше не будет проходить через меня, — сказал Роберт.
Он не повысил голос, но все повернулись.
Роберт положил на стол письмо. В нём руководство «Контура» подтверждало его отвод от расчёта цены, переговоров о контроле над готовой линией и решения о продолжении пилота. Материалы передавались другому директору, который не участвовал в первых встречах и не видел личные папки.
— Когда вы сообщили? — спросил Феликс.
— После того как возник личный конфликт интересов.
— Между вами и кем?
Роберт посмотрел на меня, но отвечать за меня не стал.
— Между мной и Жанной Ордынцевой.
Феликс выдержал паузу.
— Насколько личный?
— Достаточный для отвода. Подробности не относятся к восстановлению вашего журнала.