Розширений звіт Мая подала о восьмій ранку — на годину раніше, ніж обіцяла, що для неї було майже надприродним явищем. Вона не спала до другої ночі: сиділа за столом із чаєм, що охолов ще о першій, та папером, де записувала від руки те, що не хотіла довіряти робочому інтерфейсу. Не тому, що боялася — просто думалося краще «на папері». Завжди так було.
Звіт вийшов на дев'ять сторінок із графіками. Чіткий, структурований, із посиланням на кожну цифру. Температурні піки, часова розбіжність із серверним навантаженням, порівняльний аналіз за кварталами. Все, що вона могла довести — довела. Все, чого не могла — залишила за межами документа.
Паралельний трафік у звіт не потрапив.
Вона сиділа за своїм столом і дивилася на відправлений документ. Баг на підвіконні перебував у своєму звичному стані абсолютного задоволення буттям. Мая подумала, що сукулент — ідеальна істота для роботи в корпорації. Нічого не питає, нічого не очікує, виживає за мінімальних умов.
О десятій надійшла відповідь від Діани.
Три рядки. «Дякую, отримала, передала технічному відділу. Якщо будуть питання — звернуться».
Мая перечитала тричі. Не тому, що там було багато змісту — якраз навпаки. Три рядки на дев'ять сторінок роботи. Передала технічному відділу. Якщо будуть питання.
Питань не буде. Вона знала це вже зараз.
Вона відкрила дані паралельного трафіку.
Він лежав у неї збережений в окремій папці на особистому розділі системи — не на робочому диску, а на приватному. Це теж було рішення, яке вона прийняла не замислюючись, і яке потім, увечері, усвідомила як інтуїтивний захист. Вона не хотіла, щоб цей файл був там, де його можуть побачити до того, як вона зрозуміє, що це таке.
Трафік ішов із нейроінтерфейсів під час активних ігрових сесій — це вона з’ясувала точно. Починався за дві-три хвилини після входу гравця в Аркадію і тривав увесь час, поки сесія була активною. Зашифрований пакетами однакового розміру, з рівними інтервалами. Не хаотично, а ритмічно. Ніби дихання.
Адреса призначення була замаскована — не грубо прихована, а акуратно проведена крізь кілька шарів переадресації. Мая не була фахівчинею з мережевої безпеки, але вміла читати структуру. Вона бачила, що за переадресацією щось є. Що саме — не бачила.
Вона записала в блокнот: «Трафік ритмічний, рівні пакети, постійний інтервал». Подивилася на це. Дописала: «Схоже на збір даних, а не на передачу команд».
Різниця суттєва. Якщо система передає команди на чіп — це один тип загрози. Якщо система збирає дані з чіпа — інший. Вона не знала, який гірший.
Вона закрила блокнот і вийшла по каву.
У коридорі біля кавового автомата стояв Максим із відділу системної гігієни — вона знала його в обличчя, вони іноді їхали в одному ліфті. Невисокий, завжди з виглядом людини, яка нещодавно добре виспалася і задоволена цим фактом.
— Привіт, — сказав він. — Мая, так?
— Так. — Вона натиснула на кнопку капучино. — Максим?
— Угу. — Він забрав свою каву і відступив, щоб не заважати. — Ти з тестувального?
— Так.
— Багато роботи зараз?
— Достатньо, — відповіла вона.
— У нас теж. — Він сказав це легко, без скарги. — Новий сезон в Аркадії — народ сидить до ранку, логів стає більше. Ми не встигаємо чистити за потоком.
Мая взяла каву і подивилася на нього уважніше, ніж він очікував.
— Чистити що саме? — спитала вона.
— Ну, все. Логи сесій, технічні записи, кеш. Стандартна гігієна системи. — Він трохи здивувався запитанню. — Тобі навіщо?
— Просто цікаво, як це влаштовано, — мовила вона і всміхнулася так, що це означало кінець теми.
Максим кивнув і пішов. Мая стояла з кавою і думала.
Логи сесій чистяться регулярно. Це означає: якщо паралельний трафік фіксується в логах — він там ненадовго. Вікно для аналізу менше, ніж вона гадала.
Вона повернулася на місце і відкрила архів швидше, ніж зазвичай.
До обіду вона знайшла ще дещо.
Не в трафіку — у самих нейроінтерфейсах. Вона «копала» глибше в технічну документацію чіпів і натрапила на параметр, який не був описаний у відкритій специфікації. Він просто існував — між двома задокументованими полями, без назви, з технічним індексом, який нічого не пояснював. Поле було активне. Воно щось робило. Що саме — документація мовчала.
Мая сиділа і дивилася на цей індекс.
Незадокументований параметр в апаратному забезпеченні, яке стоїть у мізках мільйонів людей.
Вона дуже акуратно і дуже спокійно закрила документацію. Взяла паперовий блокнот. Записала індекс від руки, поруч — коротку замітку. Закрила блокнот і поклала його в сумку, а не в стіл.
Потім відкрила новий робочий документ і почала писати другий звіт — уже про незадокументований параметр. Офіційно, структуровано, з технічними деталями. Якщо перший звіт ігнорували — може, другий змусить когось відповісти.
Вона писала, накручувала пасмо волосся на палець і намагалася не думати про те, що вже зрозуміла.
Незадокументований параметр. Паралельний трафік. Температурні піки, які починаються до ігрового навантаження.
Три речі, які могли бути непов'язаними. Три речі, які могли бути частинами одного цілого.
Вона відправила другий звіт Діані о четвертій дня, а о четвертій п'ятнадцять вийшла по каву вдруге — не тому, що хотіла пити, просто треба було кудись подіти себе, поки чекала на відповідь.
Відповідь надійшла о п'ятій.
Цього разу не три рядки — один. «Має, зайди, будь ласка, завтра вранці о дев'ятій».
Без пояснень. Просто — зайди.
Мая прочитала і відклала інтерфейс. Подивилася у вікно — Київ за склом жив своїм вечірнім ритмом, внизу на вулиці вже вмикалися ліхтарі, і живі фасади будинків переходили в нічний режим, спокійніший і тепліший. Десь там мільйони людей збиралися увійти в Аркадію після роботи. Знімали піджаки, лягали на дивани, заплющували очі. Чотири секунди — і вони там. І їхні чіпи починали грітися. І паралельний трафік починав іти кудись, куди не мав іти.