Добавить в цитаты Настройки чтения

Страница 51 из 110

Глава 21. Короткая память сервера

— Сервер ничего не забыл, — сказал Демьян. — Забыл отчёт, который нам показывали.

На отдельном экране стояли две таблицы. Слева — выгрузка, которой мы пользовались в первые дни проверки. Справа — восстановленная последовательность событий провайдера. В правой было на девять строк больше.

Мы сидели в конструкторской. Ада вела протокол. Нонна принесла прошитый производственный журнал и опечатанный накопитель с локальными копиями. Феликс пришёл с юристом, но говорил сам. Роберт находился у стены рядом с закрытой папкой «Контура».

Демьян объяснял не устройство всего сервера, а только разницу, которая меняла вывод.

Рабочая система позволяла администратору скрывать из пользовательского отчёта повторы и тестовые события. Строка исчезала с экрана, но исходная запись у провайдера оставалась в журнале операций. После первого уведомления о сохранении данных провайдер зафиксировал сырой журнал и дальнейшие команды изменения. Удалить его через обычный кабинет было нельзя.

— Значит, очистка ничего не уничтожила? — спросила Нонна.

— Она изменила то, что видел человек, открывший обычный отчёт. Для решения о сделке этого достаточно. Исходные данные сохранились потому, что запрос на фиксацию успел раньше.

Демьян увеличил первую восстановленную строку.

Административная команда пометила группу событий как тестовую и исключила её из видимой выгрузки. Команда прошла под коммерческой учётной записью Феликса. Источник совпал с внутренним портом его кабинета.

— Порт не равен человеку, — сказал Феликс.

— Верно, — ответил Демьян. — Поэтому я называю учётную запись, сеанс и точку подключения. Не руки на клавиатуре.

Следующая колонка содержала время.

Сабина передала специалисту исходный экспорт переписки с Тимуром. В нём сохранилось первое сообщение о «страховочной копии». Команду очистки запустили после него. Между предупреждением Тимура и изменением отчёта прошло меньше получаса.

Ещё один участок скрыли позднее. Источник был тот же: коммерческий сеанс и порт кабинета Феликса. Этот фрагмент исчез уже после того, как участникам проверки письменно запретили менять журналы.

Феликс снял очки и положил их на папку.

— Я не удалял исходные записи. Убрал из рабочего отчёта ошибочные тестовые операции, чтобы их не приняли за подтверждённую передачу.

— После требования сохранить всё? — спросила я.

— Требование касалось удаления доказательств. Функция исключения тестов предусмотрена самой системой. Исходный журнал, как мы сейчас видим, остался.

Он не отрицал действие. Только давал ему другое название.

— Какие операции были ошибочными? — спросил Демьян.

— Пробная сборка технического пакета. Тимур настраивал временное хранилище и несколько раз запускал сценарий. В отчёте смешались тест и фактическая передача.

— Какой объём был у теста?

— Небольшой. Техкарты и демонстрационные материалы. Точный объём не помню.

Нонна открыла свою папку.

— Зато сервер, кажется, помнил до того, как ему помогли.

Она достала прозрачный пакет с накопителем. На нём стояли дата, время и две подписи. Копию рабочего отчёта Нонна сохранила до отключения архивного компьютера, когда мы ещё только сопоставляли внешние ключи. Файл не открывали заново до сегодняшнего заседания. Демьян снял образ с накопителя через блокиратор записи и сверил контрольную сумму с нашей первоначальной описью.

— Локальная копия создана до обеих команд очистки, — сказал он. — Состояние файла после фиксации не менялось.

На экране появилась прежняя версия.

Скрытый интервал начинался не во время ранней настройки. Он шёл после приёма полного пакета временным хранилищем. Объём совпадал с манифестом семи корневых каталогов. Число объектов тоже совпадало. Последняя строка фиксировала завершённую передачу на неизвестный внешний адрес.

— Это не пробная папка, — сказала Нонна. — Тест не набирает по дороге семь каталогов, старые согласия и личные записи Жанны.

Феликс посмотрел на таблицу.

— Я видел другую выборку.

— Покажите, — сказал Демьян.

— Она находилась в административном кабинете.

— Экспорт сохранился?

— Должен был.

— В представленных вами материалах его нет.

Юрист Феликса записал формулировку и попросил приложить техническое описание функции исключения. Демьян согласился. Феликс не повышал голос.

— Я действовал в интересах компании, — сказал он. — В тот момент «Контур» мог принять тестовые дубли за несколько внешних передач и закрыть переговоры без проверки. Я убрал повторы из рабочей версии, чтобы сначала установить фактическую операцию.

— И не сообщил, что убрал, — сказала я.

— Потому что считал это подготовкой отчёта, а не вмешательством в доказательства.

— После угрозы Тимура?

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

— Он потребовал доплату за удаление.

— Это стало известно из переписки Сабины. Я её тогда целиком не видел.

Нонна придвинула к нему распечатку.

— Зато увидели строки, которые исчезли.

Феликс не взял лист.

Демьян отметил в протоколе две версии объяснения. Технический вывод оставался прежним: видимый отчёт изменили из коммерческого сеанса, связанного с кабинетом Феликса; скрытый интервал относился к полному пакету, а не к маленькой тестовой папке. Кто именно находился за клавиатурой, журналы не показывали.

— Коммерческая оценка сделки больше не будет проходить через меня, — сказал Роберт.

Он не повысил голос, но все повернулись.

Роберт положил на стол письмо. В нём руководство «Контура» подтверждало его отвод от расчёта цены, переговоров о контроле над готовой линией и решения о продолжении пилота. Материалы передавались другому директору, который не участвовал в первых встречах и не видел личные папки.

— Когда вы сообщили? — спросил Феликс.

— После того как возник личный конфликт интересов.

— Между вами и кем?

Роберт посмотрел на меня, но отвечать за меня не стал.

— Между мной и Жанной Ордынцевой.

Феликс выдержал паузу.

— Насколько личный?

— Достаточный для отвода. Подробности не относятся к восстановлению вашего журнала.