Глава 1. Случайное раскрытие
Ночь в квартире Кристины всегда выглядела одинаково: тусклый свет лампы, экран ноутбука и тихий гул вентилятора. За окном редкие машины скользили по мокрому асфальту, оставляя за собой шипящий звук шин.
Кристина сидела на кухне, поджав под себя одну ногу. На столе стояла чашка кофе, который давно остыл. Она даже не заметила, когда перестала его пить.
На экране ноутбука был открыт терминал.
— Ну давай… — тихо пробормотала она.
Она нажала Enter.
Логи прокрутились вниз длинной колонкой текста.
Кристина нахмурилась.
— Это ещё что…
Она быстро прокрутила файл вверх и снова начала читать строки.
Пакеты. Подключения. Переадресации.
Слишком много.
Она вздохнула и открыла второй терминал.
— Ладно… проверим иначе.
Пальцы быстро застучали по клавиатуре.
Через несколько секунд на экране появилась карта сетевых соединений. Несколько точек загорелись на карте мира.
Кристина наклонилась ближе к экрану.
— Варшава… Сингапур… Исландия… — она прищурилась. — Это шутка?
Она открыла конфигурационный файл, который нашла в одной из скрытых директорий сервера клиента.
Файл назывался странно: update_patch_v3
— Конечно. Патч. — Кристина тихо усмехнулась. — Самое подозрительное название, какое только можно придумать.
Она открыла файл.
Сначала всё выглядело нормально. Несколько строк обновления библиотек, комментарии, аккуратная структура.
Но потом она заметила блок кода, который не имел отношения ни к одному обновлению.
Кристина медленно выпрямилась.
— Подожди…
Она начала читать внимательнее.
Туннель. Шифрованный канал. Автоматическая авторизация.
— Это не патч… — прошептала она.
Она прокрутила код дальше.
Там был список серверов.
Сначала она не обратила внимания.
Потом увидела знакомое название банка.
Кристина резко наклонилась к экрану.
— Нет…
Она прокрутила ещё ниже.
Второй банк.
Третий.
Платёжная система.
Её сердце начало биться быстрее.
— Что за…
Она быстро открыла другой файл из той же папки.
Там была таблица.
С датами.
Суммами.
И параметром transfer_batch_limit.
Кристина несколько секунд смотрела на цифры.
— Один миллиард… двести миллионов… — тихо произнесла она.
Она откинулась на спинку стула.
— Кто-то собирается украсть миллиард.
Несколько секунд она просто сидела неподвижно.
Мозг работал быстро.
Это могла быть ошибка.
Мог быть тест.
Мог быть мусорный код.
Но интуиция программиста говорила другое.
Это выглядело слишком аккуратно.
Слишком профессионально.
Кристина быстро скопировала файл на свой компьютер.
Потом ещё один.
Потом весь каталог.
— На всякий случай…
Она создала архив и начала просматривать код дальше.
В этот момент на экране терминала появилась новая строка.
new connection established
Кристина замерла.
— Что?..
Она быстро открыла список активных соединений.
Появился новый IP.
Он не принадлежал ни одному из известных серверов клиента.
И он был активен.
Прямо сейчас.
Она почувствовала, как по спине пробежал холодок.
— Только не говорите, что…
Она открыла мониторинг сети.
Соединение было направлено прямо к её машине.
— Они меня видят.
Кристина резко выключила Wi-Fi.
Экран терминала замер.
Сеть исчезла.
В квартире снова стало тихо.
Она несколько секунд смотрела на ноутбук, будто ожидала, что он снова оживёт.
— Спокойно… — прошептала она.
Кристина взяла телефон.
Она открыла браузер и начала искать.
«Сообщить о киберпреступлении Европа».
Через минуту она нашла сайт отдела по борьбе с киберпреступностью.
Она открыла форму обращения.
Пальцы зависли над экраном.
— Если это окажется ерундой, я просто опозорюсь… — пробормотала она.
Но потом снова вспомнила цифру.
1.2 миллиарда.
Она начала печатать.
«Я программист-фрилансер. Во время работы обнаружила подозрительный код, связанный с возможной финансовой атакой…»
Телефон внезапно зазвонил.
Незнакомый номер.
Кристина посмотрела на экран.
— Серьёзно?
Звонок продолжался.
Она медленно нажала «принять».
— Алло?
Несколько секунд на линии было тихо.
Потом раздался мужской голос.
Спокойный. Низкий.
— Кристина Орлова?
Она выпрямилась.
— Да… а кто это?
— Андрей Лебедев. Отдел по борьбе с киберпреступностью.
Кристина моргнула.
— Подождите… я только что отправила сообщение.
— Именно поэтому я звоню.
— Но прошло секунд тридцать.
— Иногда тридцать секунд — это очень много.
Кристина нахмурилась.
— Вы меня пугаете.
— Это не цель. — Он помолчал. — Скажите, вы сейчас дома?
— Да.
— Одна?
Вопрос прозвучал неожиданно.
— Да… — осторожно ответила она. — А что?
На секунду он замолчал.
— Хорошо. Тогда слушайте внимательно.
Она напряглась.
— Немедленно отключите интернет на всех устройствах.
— Уже сделано.
— Отлично.
Он снова сделал паузу.
— Второй вопрос.
— Какой?
— Вы запускали файл update_patch_v3?
Кристина быстро покачала головой, будто он мог это увидеть.
— Нет. Я только читала код.
На линии послышался тихий выдох.
— Это хорошо.
— Может, вы объясните, что происходит?
Он ответил спокойно:
— Судя по вашему описанию, вы наткнулись на инфраструктуру крупной кибератаки.
Кристина нервно усмехнулась.
— Звучит как сюжет плохого фильма.
— Поверьте, мы бы тоже предпочли, чтобы это был фильм.
Она провела рукой по волосам.
— И что теперь?
— Теперь вы ничего не включаете и никуда не подключаетесь.
— Поняла.
Он помолчал секунду.
— И ещё один момент.
— Какой?
— Скорее всего, они уже заметили ваше присутствие в системе.
Кристина посмотрела на тёмный экран ноутбука.
— Отлично.
— Поэтому я еду к вам.
Она резко нахмурилась.
— Простите… что?
— Я буду у вас примерно через двадцать минут.
— Подождите… вы знаете мой адрес?
Короткая пауза.
— Да.
— Это вообще законно?
Он тихо усмехнулся.
— В данной ситуации это наименьшая из проблем.
Кристина медленно выдохнула.
— Хорошо… допустим.
— Кристина.
— Да?
— Пока я еду… никому не открывайте дверь.
Она посмотрела на вход в квартиру.
— Даже если постучат?
— Особенно если постучат.
Связь оборвалась.
Кристина опустила телефон на стол.
Квартира снова погрузилась в тишину.
Часы на стене тихо тикали.
Она посмотрела на дверь.
И впервые за вечер почувствовала настоящий страх.
Потому что если те люди заметили её в сети…
они могли узнать и её адрес.