Читать книгу «Протокол EDEN» онлайн полностью📖 — Эдуард Сероусов — MyBook.
image

Глава 4. Четыре часа

Сингапур. Институт молекулярной медицины. День седьмой.


Она нашла это случайно.

Не потому что искала – потому что была аккуратна. Аккуратность была её рабочей привычкой, сформировавшейся ещё в аспирантуре под давлением научного руководителя, который считал, что хаотичное рабочее место – это симптом хаотичного мышления. Рейчел с ним не соглашалась принципиально, но привычку усвоила: в конце каждого дня она проверяла логи активности своей рабочей станции. Не потому что ожидала найти что-то неожиданное. Потому что так было принято.

В логе за последние сорок восемь часов было стандартное: запуск скриптов, обращения к базам данных, синхронизация с облачным хранилищем, несколько автоматических системных процессов. Всё как обычно.

Кроме одной строки.

Она заметила её не сразу – пропустила на первом просмотре, потому что строка выглядела как стандартный процесс синхронизации. Только временна́я метка была неправильной: синхронизация происходила в 02:17 ночи, когда в лаборатории никого не было, а её рабочая станция, по всем правилам, должна была находиться в спящем режиме.

Она остановилась. Прочитала строку ещё раз.

02:17:44 – SYNC_PROCESS – /data/rachel/telomere_analysis/insert_region/ → [ENCRYPTED_BUFFER_EXT] – 847 объектов – 2.3 ГБстатус: ЗАВЕРШЕНО

Зашифрованный внешний буфер.

Рейчел смотрела на эту строку и чувствовала, как у неё очень медленно, очень методично переставляются вещи в голове – как бывает, когда что-то понимаешь не вдруг, а слоями, и каждый следующий слой холоднее предыдущего.

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

Её данные – папка с анализом региона Т2-Т4, всё, что она сделала за последние пять дней, – ушли куда-то ночью. Без её ведома. Без её команды.

Кто-то читал её работу в реальном времени.


Она не паниковала. Это важно – она не паниковала. Она почувствовала, как тело переходит в другой режим: дыхание выровнялось, стало чуть глубже, голос в голове – тот, которым она разговаривала с собой во время работы – стал тише и чётче. Гиперфокус. Она знала это состояние. Оно приходило в моменты, когда было по-настоящему важно думать без ошибок.

Паника придёт потом. Сейчас – работа.

Первый вопрос: когда следующий аудит системы?

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

Она попыталась проследить адрес назначения. Открыла сетевые инструменты, запустила трассировку.

Через двенадцать секунд трассировка вернула: Маршрут недоступен. Узел не отвечает.

Значит, буфер не просто зашифрован – он скрыт. За прокси, за несколькими узлами маршрутизации, за чем-то, что она не могла пробить стандартными инструментами.

Это не был институтский сервер. Это было что-то внешнее.

Второй вопрос: что именно ушло?

Она проверила список объектов в строке лога. 847 файлов. Совпадало с количеством образцов в её базе данных. Ушло всё – и сырые данные, и результаты обработки, и скрипты, и рабочие заметки. Всё, что она создала за пять дней.

Третий вопрос: что это означает?

Это означало: кто-то знает о существовании её анализа. Кто-то настроил перехват именно её данных именно по этой теме. Это не было случайной компрометацией системы – это была целевая операция. Под неё. Под регион Т2-Т4.

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

Рейчел посмотрела на часы. 11:43 утра.

Ма Лэй был за своим столом – спиной к ней, работал с центрифугой, наушники в ушах. Через стекло криобанка мигал синий огонь.

Она закрыла логи. Открыла браузер. Зашла на сайт технической поддержки Института и проверила расписание плановых работ на сети. Ближайшее техническое обслуживание серверной инфраструктуры – в четверг ночью. Это означало: в четверг в 23:00 системный администратор будет проводить регламентные работы и автоматически просматривать журналы сетевой активности.

Не в пятницу. В четверг.

До четверга – чуть меньше сорока восьми часов.

Но это был не реальный дедлайн. Реальный дедлайн – следующая автоматическая синхронизация с зашифрованным буфером. Она проверила: синхронизация была ночной. Значит, следующая – сегодня ночью, около двух.

После которой тот, кто настроил буфер, получит всё, что она сделает до двух часов ночи.

Это не годилось.

Четвёртый вопрос: что делать?


Рейчел встала из-за стола. Прошла к раковине. Открыла воду – холодную, до упора – и умылась. Выпрямилась. Посмотрела в зеркало.

Нормально. Бледная, но нормально.

Она думала.

Стандартное решение в ситуации компрометации данных – обратиться в службу безопасности Института, заблокировать доступ, провести расследование. Это то, что должен делать нормальный сотрудник нормального учреждения при нормальных обстоятельствах.

Обстоятельства были ненормальными.

Если кто-то настроил перехват её данных – и если этот кто-то имел доступ к архивам НУС, к системе маршрутизации запросов кластера, к метаданным медицинских баз – то служба безопасности Института была либо в курсе, либо бессильна. В обоих случаях обращение туда ничего не давало. Кроме того, что она обозначала своё знание о перехвате.

Нельзя показывать, что знаешь.

Значит: нужно вести себя нормально. Работать как обычно. Данные на рабочей станции должны оставаться – там, где они есть, без изменений. Ночная синхронизация должна произойти – как происходила вчера и позавчера.

Но копия – настоящая, полная, с тем, что она уже знает и что собирается узнать дальше – должна быть в другом месте. В месте, о котором этот буфер не знает.

Проблема была в том, что у неё не было изолированного носителя.

Внешний диск, флешка, карта памяти – всё это подключается к USB-порту рабочей станции. Рабочая станция скомпрометирована. Любое устройство, подключённое к ней, будет видно в логах – а значит, видно тому, кто эти логи читает. Личный ноутбук был дома. Принести его и работать параллельно – это бы обозначило, что она что-то поняла. Тоже нельзя.

Ей нужен был носитель, который нельзя обнаружить в сетевых логах. Который не подключается к USB. Который можно унести из лаборатории так, что никто не поймёт, что именно она уносит.

Она смотрела на криобанк за стеклом.

И поняла.


В лаборатории был синтезатор олигонуклеотидов. Не экзотика – стандартное оборудование для любой молекулярно-биологической лаборатории с современным оснащением. Он синтезировал короткие фрагменты одноцепочечной ДНК по заданной последовательности. Использовался для создания праймеров, зондов, контрольных фрагментов для секвенирования. Рейчел работала с ним каждую неделю.

ДНК-хранение данных существовало как технология с начала тридцатых годов. Принцип был простым: цифровые данные конвертировались в последовательность нуклеотидов по определённому коду – каждые два бита соответствовали одному основанию, – затем синтезировалась ДНК с этой последовательностью, упаковывалась в синтетическую наноструктуру для защиты, помещалась в криохранилище. Хранить можно было столетиями. Читать – через секвенирование.

Технология существовала не для частного использования – она существовала в промышленных масштабах, в дата-центрах, у корпораций с петабайтами архивных данных. Домашний вариант требовал специального оборудования, специального программного обеспечения, знания биохимических протоколов.

У Рейчел было всё это. И она умела этим пользоваться – не как специалист по ДНК-хранению данных, но достаточно хорошо. Она применяла технологию два года назад для совершенно другой цели: создавала синтетические контрольные образцы с точно известным паттерном метилирования для калибровки нанопорового ридера. Протокол был знакомым.

Проблема была в объёме.

Её данные: 2.3 гигабайта. ДНК-хранение при стандартной плотности кодирования – около 215 петабайт на грамм синтетической ДНК. 2.3 гигабайта – это меньше одной миллиардной доли грамма. Физически ничтожный объём. Несколько тысяч молекул, невидимых невооружённым глазом.

Синтезировать её за один прогон – нереально: синтезатор работал с олигонуклеотидами длиной до 200 оснований, а для хранения 2.3 гигабайта нужны были миллионы коротких фрагментов, потом лигирование, потом упаковка. Это была работа на несколько часов в лучшем случае.

У неё было четыре часа до следующего обеда – когда Ма Лэй уйдёт и у неё будет минимум сорок минут одной в лаборатории – плюс вечер, когда она оставалась одна регулярно. Итого – реальное рабочее время с оборудованием без посторонних глаз.

Сначала нужно было написать скрипт конвертации. Это можно было сделать на рабочей станции – конвертация данных в последовательность ДНК не будет выглядеть подозрительно в логах: это стандартная биоинформатическая операция. Синтетические последовательности она создавала регулярно. Один файл с последовательностью среди десятков других – незаметен.

Потом синтез. Потом упаковка в крионейтральный буфер. Потом – пробирка в криобанк.

И уничтожить запись о создании пробирки. Но так, чтобы её удаление не оставило след.

Она вернулась к столу.

Начала работать.


Скрипт конвертации она нашла готовый – открытый репозиторий, библиотека для работы с ДНК-кодированием, написанная исследовательской группой из ETH Zurich ещё в 2035-м. Хорошая библиотека, хорошо документированная. Она скачала её через стандартный запрос к институтскому репозиторию – незаметно, вместе с несколькими другими библиотеками для вида.

Адаптировала под свои данные за двадцать минут.

Запустила конвертацию. На экране побежали строки – миллионы оснований, A, T, G, C, складывающиеся в последовательности из её собственных расчётов. Паттерны метилирования, статистические модели, структура субъединиц Вставки – всё это превращалось в биологический алфавит. Парадокс, от которого она не стала отмахиваться: она прятала информацию о биологическом коде внутри биологического кода. Вставку – внутри синтетической ДНК.

Конвертация заняла восемь минут. Выходной файл: последовательность длиной 6.7 миллиона оснований, разбитая на фрагменты по 150 оснований для совместимости с синтезатором.

Она сохранила файл под именем calibration_standard_v4.fa – в папке с калибровочными данными, где таких файлов были десятки. Один среди многих.

Потом посмотрела на часы. 12:51.

Ма Лэй уходил на обед в 13:30. Обычно возвращался через сорок – сорок пять минут. Плюс время до его прихода – у неё было чуть меньше получаса сейчас и сорок минут в обед.

Этого не хватало для синтеза.

Она решила: начать сейчас, насколько возможно. Продолжить вечером.


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

Рейчел загрузила первые двести фрагментов последовательности.

Синтезатор запустился – тихо, деловито. На дисплее появился прогресс: Синтез 1 из 200. Длина: 150 оснований. Расчётное время: 4 мин 20 сек на фрагмент.

200 фрагментов. По четыре минуты каждый. Восемьсот минут только для первых двухсот. Потом ещё тысячи фрагментов – лигирование, очистка, упаковка.

Это была работа не на четыре часа. Это была работа на несколько дней.

Она остановилась. Думала секунд пятнадцать.

Потом открыла спецификацию синтезатора на сайте производителя – сделала это через телефон, не через рабочую станцию. Нашла раздел о режиме параллельного синтеза. Машина могла синтезировать до восьми фрагментов одновременно на разных колонках. Она никогда не использовала этот режим – не было нужды. Нужда появилась сейчас.

Параллельный синтез 8 фрагментов × 4 минуты = 4 минуты на восемь фрагментов. 6.7 миллиона оснований ÷ 150 оснований на фрагмент = около 44 700 фрагментов. ÷ 8 = около 5 600 циклов × 4 минуты = примерно 22 400 минут.

Всё ещё слишком много.