Цифровой детектив: Как проверять людей, компании и информацию по открытым источникам

- -
- 100%
- +
— Ты всё ещё считаешь, что завтра надо снова ехать в архив? — спросил Лев.
— Да.
— Тогда я еду с тобой.
— Ты и так едешь.
— Я имел в виду, что не собираюсь уходить домой и делать вид, будто этот адрес не совпал.
Вера повернулась к нему. Он выглядел измученным: на переносице осталась красная полоса от очков, на манжете рубашки — синяя отметка от ручки. Она вдруг поняла, что за весь день ни разу не спросила, обедал ли он.
— Тебе бы поужинать, — сказала она.
— И тебе. Ты сама призналась, что кофе не считается.
— Тогда еда. Без реестров.
— Постараюсь не упоминать их до десерта.
— У тебя нет шансов.
— Я всё равно рискну.
Она задержала взгляд на нём чуть дольше, чем требовалось. Лев понял это, но не отвёл глаз.
Они вышли из читального зала. Закрытая створка у стойки отражала их уже со стороны улицы; в темнеющем стекле Лев шёл рядом, не впереди и не позади. Вера прижала сумку к боку, бережно удерживая копии.
— Ты правда предлагаешь ужин? — спросила она.
— Пока предлагаю еду. Формулировку проверишь после.
За стеклом пустовала стойка, а на ноутбуке в её сумке лежали копии документов, которые городской портал больше не открывал.
Свидание у закрытого окна
Телефон Веры коротко дрогнул, пока они стояли у стеклянной двери архива. Холодный свет экрана выхватил из сумерек её пальцы.
Ника Ярова: «Кафе напротив. 18:10. Приходите оба. Окно справа от входа».
Вера подняла глаза на Льва.
— Ужин переносится, — сказал он, заметив имя на экране.
— Я не обещала, что он будет спокойным.
— Ты обещала не открывать реестры хотя бы до десерта.
— Это было до сообщения.
— Удобное время для отмены договора.
Лев произнёс это привычно сухо, но, когда Вера убрала телефон, задержал на ней взгляд. В сумке лежали копии и ноутбук с материалами, которые городской портал теперь не открывал. Вера подтянула ремень на плече, будто могла удержать всё содержимое от расползания по вечеру.
Кафе находилось через дорогу. Они дождались просвета между машинами и перешли улицу, обойдя лужу у бордюра. Муниципальный архив серел напротив в сумерках, строгий и безликий. В нижних окнах горел свет, но за стеклом не двигались люди.
Ника выбрала столик у окна — рама была заклеена по периметру, а в стекле дрожали отражения фар и тёплых ламп. Она сидела, не снимая пальто, с застёгнутым воротником и шарфом, закрывавшим подбородок. Перед ней стоял стакан воды. Ника к нему не притронулась.
Вера узнала её по фотографии, но вживую Ника выглядела старше и усталее: короткие тёмные волосы убраны за уши, под глазами залегли тени. Когда Вера с Львом подошли, Ника посмотрела сначала на неё, затем на него, словно сверяя их не с лицами, а с заранее составленным списком.
— Вы оба, — сказала она.
— Как ты просила, — ответила Вера.
— Садитесь. Спиной к стене, если вам так спокойнее.
Лев отодвинул стул и сел боком, оставив дверь в поле зрения.
— Мне спокойнее, когда официант приносит еду, — сказал он. — Но с этим, похоже, придётся подождать.
— Закажите. Я не собираюсь вас задерживать.
— Уже звучит как угроза, — заметил Лев.
На губах Ники мелькнуло что-то похожее на улыбку и тут же исчезло. Вера сняла пальто, но сумку оставила на коленях, придерживая ремень запястьем. Разговор у выхода из архива — про еду, обычный вечер и попытку не сводить всё к делу — ещё стоял между ними. Теперь напротив сидела Ника, не расстёгивая верхнюю пуговицу.
— Что случилось? — спросила Вера.
Ника вынула телефон.
— Сначала это.
Она положила его на стол экраном вверх, но не выпустила из рук. На дисплее была открыта городская страница с карточкой договора и перечнем приложений. Одно из названий было выделено тонкой синей рамкой: «Приложение 7. Схема зон оповещения и корректировки границ».
— Номер договора совпадает с тем, который вы смотрели? — спросила Вера.
— Да.
— А само приложение доступно?
Ника коснулась ссылки. Страница мигнула, загрузочная полоса замерла, а затем появилось серое сообщение: «Запрошенный материал не найден».
Вера подалась вперёд. В стекле телефона отразились её глаза и лампы под потолком.
— Когда ты сохранила ссылку?
— Адрес — несколько недель назад. Снимок карточки сделан сегодня. Сам файл я открывала раньше. Сейчас не открывается.
— Снимок подтверждает, что карточка с таким названием была на странице. Но не подтверждает, что внутри лежало именно то, о чём говорит заголовок.
Ника посмотрела на неё пристально.
— Верно.
— И ошибка по ссылке не говорит, кто её удалил. Или переместил.
— Тоже верно.
Вера поймала себя на том, что слишком быстро принялась раскладывать тревогу на проверяемые детали: название, адрес, код ошибки. Нерабочая ссылка ещё ничего не говорила о том, что случилось с файлом. Она достала телефон и показала Нике открытый снимок экрана.
— Можно я сфотографирую карточку и адрес? Без твоих сообщений и личных вкладок.
Ника чуть помедлила, затем придвинула телефон ближе, чтобы в кадр попали название приложения, номер договора и строка ссылки.
— Только это.
Вера сделала один снимок, проверила, что в него не попали уведомления, и убрала телефон. Лев до сих пор не спросил, откуда Ника получила адрес. Он разглядывал заголовок на экране, чуть нахмурившись.
— «Корректировка границ», — сказал он. — В сводном заключении этой схемы не было.
— В том, которое вы подписали? — спросила Ника.
Лев не отвёл взгляда от телефона.
— Да.
Его пальцы сжали край стола. На большом пальце осталась синяя полоска от ручки — та же, что Вера заметила у архива.
— Я помню, что к заключению не приложили часть карты, — продолжил он. — Тогда решил, что это техническая задержка. Подписал сводную версию.
— А схема могла быть в приложении к договору, — сказала Вера.
— Могла. По одному заголовку мы этого не докажем.
Ника втянула воздух через нос и наконец отодвинула телефон от себя.
— Я знаю, что было в файле.
Вера не торопила её. В кафе звякнула ложка о блюдце, за стойкой включили кофемолку. Рёв быстро смолк, и снова слышен стал только гул холодильника.
— Я не прошу тебя раскрывать источник, — сказала Вера. — Мне нужно понять, что именно ты помнишь.
Ника опустила глаза на свои руки. Из-под рукава пальто виднелся тонкий серебряный браслет, потёртый на застёжке.
— В приложении была схема зон оповещения и отдельная таблица изменений. Нижние Сады в ней обозначили иначе, чем на карте из открытых материалов. Я не стану утверждать, что это окончательная версия. Помню заголовок и структуру.
— Ты сохранила сам файл?
Ника молчала чуть дольше, чем требовал вопрос.
Лев поставил локти на стол, но не наклонился к ней.
— Нам не нужна история о том, где ты его взяла.
— Вам нужна сама схема.
— Нужна, — ответил он. — Но не ценой того, что ты не готова рассказать.
Ника посмотрела на него, будто проверяла, не последует ли за этой фразой торг. Потом закрыла страницу на телефоне.
— Я работала с публичными документами «Маяка». Каталогизировала ссылки, версии, даты загрузки. Часть справочника открытых источников собрала сама.
— Того самого, по которому можно было быстро найти документы о Лидии? — спросила Вера.
Ника кивнула.
— Я считала это полезной работой. Публикации, слушания, закупки, открытые приложения. Не чужие переписки, не закрытые базы — всё, что город сам оставлял доступным.
Она провела пальцем по краю стакана, но не подняла его.
— Потом вокруг Лидии стали собирать разрозненные страницы, словно из них можно сложить готовую вину. Я не знаю, кто именно это сделал. И не скажу, кто первым заметил исчезновение приложения.
Вера услышала, как Ника сменила «я» на «кто», и не стала давить.
— Ссылки достаточно, чтобы мы начали проверку, — сказала она. — Но мы не напишем, что город спрятал карту, пока не узнаем, что произошло с файлом.
— Хорошо.
— И не назовём человека, который подсказал нам адрес.
Плечи Ники чуть опустились. Она не расслабилась, но перестала прижимать локти к бокам.
Официантка подошла с блокнотом. Лев заказал суп и чай, Вера — кофе и бутерброд. Ника отказалась. Когда официантка отошла, Лев снял очки и протёр их краем салфетки.
— Ты позвала нас не ради одной ссылки, — сказал он. — Пришла с чем-то ещё.
Ника перевела взгляд на вход. За стеклом прошёл человек с бумажным пакетом; его силуэт на мгновение закрыл вывеску архива.
— Завтра в пять пятьдесят выйдет новый материал о Лидии.
Вера замерла, положив ладонь на стол.
— Где?
— Этого я пока не скажу.
— На каком основании ты называешь точное время?
Ника снова взяла телефон и раскрыла другую страницу. Белый экран заполнял заголовок: «Последняя правка Лидии Воронцовой. Кто изменил карту до аварии?» Ниже, над пустым серым прямоугольником, стояла строка: «Публикация: 19 октября, 05:50».
Вера прочла заголовок дважды.
— Там утверждается, что Лидия меняла карту?
— Анонс на это намекает. Полный текст мне недоступен.
— Страница открывается сейчас?
— Уже нет. Снимок я сохранила раньше.
— Когда?
— Сегодня.
Ника ответила быстро, но взгляд снова соскользнул к окну. Вера не стала спрашивать, кто прислал ей адрес страницы и как она узнала о публикации. Её интересовал след, который можно было проверить.
— На снимке дата и время видны как часть страницы?
Ника увеличила изображение. Строка была встроена в страницу, рядом с заголовком. Вера сделала ещё один снимок и остановилась.
— Разрешишь?
— Да. Только анонс и время.
Лев наклонился, не касаясь телефона.
— К началу рабочего дня заголовок уже успеет разойтись. До совета — меньше суток.
— Этого достаточно, чтобы история облетела город ещё до голосования, — сказала Вера.
— Ты считаешь, это сделано ради совета? — спросила Ника.
— Я считаю, что материал выйдет в день заседания и до голосования. Это повод проверить время, но не основание объявлять мотив.
— Если выясните площадку, увидите, что эта карточка не единственная.
— Там есть и другие?
Ника убрала телефон.
— Я видела одну, назначенную на пять пятьдесят. Остальное пересказывать не буду. Не потому, что хочу сыграть в загадки. Я не уверена, что всё, что мне показали, настоящее.
Вере захотелось попросить снимок, имя, прямую ссылку — вытянуть из Ники всё, что могло пригодиться. Три года назад она уже решила, что ещё одно совпадение поможет связать чужое лицо с чужой жизнью. Тогда она ошиблась. Пальцы сами собой коснулись телефона, но Вера не открыла заметки.
— Ты можешь прислать только снимок страницы, — сказала она. — Без переписки, без источника. Если не хочешь — не присылай.
Ника посмотрела на Веру дольше, чем прежде.
— Я пришла, чтобы вы знали о времени. Этого пока достаточно.
— Тогда мы не используем твоё имя. И не выдаём заголовок за факт.
— Заголовок уже сделает это сам.
— Возможно. Поэтому постараемся успеть проверить, что за ним стоит.
Лев снова надел очки.
— Само время публикации не доказывает, кто подготовил материал. Но когда он появится, у нас будет точка, с которой можно начинать.
— Не начинайте с меня, — сказала Ника.
— Не начнём.
Она чуть качнула головой, словно не могла принять обещание как достаточное, но и спорить не хотела.
Принесли заказ. Пар от супа поплыл над столом, запотев край стакана. Вера откусила бутерброд и только тогда поняла, насколько проголодалась. Она сделала глоток кофе: горечь стянула язык. Лев молча придвинул к ней блюдце с сахаром. Вера, как всегда, взяла один кусок.
Она взглянула на его руку. На синей полоске от ручки проступала тонкая царапина, которой раньше она не заметила.
— Ты не обязан всё время подставлять плечо расследованию, — сказала Вера негромко.
— Я не подставляю. Просто сижу за столом.
— И завтра едешь в архив.
— Там есть стулья. Вполне подходит для сидения.
Вера качнула головой, скрывая улыбку за чашкой. Ника следила за их руками — за сахаром, блюдцем, телефоном у Веры. Дыхание у неё оставалось ровным, однако пальцы снова сомкнулись вокруг стакана, не позволяя ему сдвинуться.
— Ты можешь уехать с нами, — сказал Лев. — Не будем спрашивать адрес. Оставим у метро или вызовем машину.
Ника перестала смотреть на стол.
— Нет.
Лев не стал настаивать сразу.
— До остановки хотя бы.
— Нет, Лев.
Он убрал руку от тарелки.
— Понял.
Вера услышала в имени Льва не раздражение, а усталое предупреждение: не заставляйте повторять.
— Ты не обязана объяснять отказ, — сказала она.
— Знаю.
— Если решишь прислать материалы, используй тот канал, которым мы связывались раньше.
— Я знаю адрес.
Вера не стала уточнять, что именно Ника имела в виду: почту, номер или что-то другое.
Ника допила воду и впервые расстегнула пальто, но тут же застегнула его снова, словно передумала от одного движения. Её взгляд остановился на окне.
У архива, почти под знаком, запрещавшим остановку, стоял тёмно-синий универсал. Фары не горели. Сквозь стекло кафе нельзя было разобрать, пуст ли салон: на заднем окне лежало отражение вывески, а лобовое затянуло влагой.
Ника побледнела. Вера последила за её взглядом, и разговор оборвался, будто кто-то выключил звук.
— Ты знаешь эту машину? — спросил Лев.
Ника встала.
— Не провожайте меня.
— Даже до остановки? — спросила Вера.
— Особенно до остановки. И не идите следом, чтобы проверить, куда я сверну.
Лев медленно поднялся. В его лице не было ни обиды, ни желания спорить — только напряжение, которое он не сумел скрыть.
— Хорошо, — сказал он.
Ника оставила стакан на столе и направилась к выходу. У двери она остановилась, не оборачиваясь.
— Про приложение не пишите, пока не увидите файл.
— Не будем, — ответила Вера.
Дверь закрылась за Никой. На секунду её отражение задержалось в стекле, наложившись на светлую стену архива, а потом растворилось среди прохожих.
Универсал всё ещё стоял у здания. Запотевшее стекло отражало кафе; разглядеть салон было невозможно.
Лев положил ладонь рядом с телефоном Веры, не касаясь его.
— Не выходи за ней, — сказал он.
— Не выйду.
Через окно они увидели, как Ника свернула за угол и исчезла из поля зрения. Машина осталась у архива, словно была просто одной из машин, оставленных в плохом месте.
Вера опустила взгляд на два сохранённых снимка. На одном — карточка приложения к городскому договору. На другом — анонс публикации о Лидии, назначенной на 05:50 следующего утра.
Кто убрал файл с городского портала и кто готовил материал, Вера не знала. Ещё меньше она понимала, какое отношение к этому имел универсал.
Три объяснения
Три объяснения
— Не выйду, — повторила Вера.
Лев не убрал руку с телефона, но пальцы разжались. За стеклом архива прохожие пересекали улицу, пряча лица в воротники. Универсал всё ещё стоял у тротуара; в запотевшем окне дрожал свет кафе.
— Хорошо, — сказал Лев. — Тогда не будем делать за водителя его работу.
Вера перевела взгляд на машину. Ника скрылась за углом. Универсал мог ждать кого угодно: пассажира, зелёного сигнала, пока освободится место. Или их.
— Я сниму номер, — сказала она.
Лев чуть повернул голову.
— Если ты его видишь.
Она различала лишь последние символы, размытые дождём. Достать телефон и сфотографировать машину было бы простейшим жестом — и именно поэтому Вера медлила. Снимок номера доказывал бы только то, что вечером восемнадцатого октября у архива стоял автомобиль. В прежней жизни она не раз принимала такие снимки за начало ответа. Теперь старалась не путать начало с ответом.
— Нет. Я не разглядела как следует.
Лев кивнул, словно она подтвердила цифры в его расчёте. Он всегда умел выдержать паузу после её решения — не подталкивая ни к осторожности, ни к риску.
Они дождались, пока автобус скроет универсал из виду. Вера надела пальто, забрала со стола телефон и проверила, сохранились ли оба снимка: карточка приложения к городскому договору и анонс материала о Лидии, назначенного на 05:50. По краям обоих кадров виднелись чужой экран и отражение лампы, зато адреса ссылок читались.
— Ссылка Ники у тебя? — спросил Лев.
— В сообщении.
— Не пересылай никому.
— Я знаю.
— Хорошо. Просто хотел услышать, как ты это говоришь.
На улицу они вышли не спеша. Универсал остался у архива, закрытый от глаз мокрым автобусом. Вера держалась подальше от машины, пока они шли к остановке. Телефон она сжимала в кармане так крепко, что корпус врезался в ладонь.
До редакции «Контура» они добрались на автобусе. К 18:47 этаж уже опустел: за стеклянной перегородкой темнел общий стол, в кухонном углу остывал чайник, а дежурная лампа делила коридор на жёлтые прямоугольники. Вера включила настольный свет и открыла редакционный календарь. Лев снял пальто, повесил на спинку стула и направился к передвижной доске.
— Если оставим всё в телефонах, утром будем спорить, кто что помнит.
— Я не собиралась спорить о памяти.
— Разумно. Память у нас с тобой дорогая и ненадёжная.
Он достал из ящика маркеры. Вера вывела снимки на большой монитор и подключила телефон кабелем. Белая доска казалась слишком чистой для такой работы; прежние надписи стёрли не до конца, и на поверхности проступали бледные следы. Лев провёл по ней ладонью, оставив серую полоску.
— Прекрасно, — сказал он. — Уже есть то, что не удалось удалить.
— Не превращай доску в улику.
— Она сама старается.
Вера взяла чёрный маркер и подошла к стеклянной стене. Там ещё оставались строки из предыдущего расследования; рядом с ними можно было отметить даты, не закрывая старых пометок. Вверху она написала: «18–20 октября». Под строкой провела длинную горизонталь, затем, помедлив, отодвинула дату к левому краю и добавила вторую: «18–19 марта». Отрезки не соприкасались.
— Нас интересуют два времени, — сказала она. — Когда происходило событие и когда о нём начали рассказывать.
Лев протянул ей зелёный маркер.
— А третье?
— Когда публикации понадобились.
Он посмотрел на неё, потом на даты.
— Это уже версия.
— Поэтому я и говорю «понадобились», а не «были заказаны».
На мартовской линии Вера отметила вечер восемнадцатого числа: гибель Лидии Воронцовой — согласно сообщению города. Рядом поставила звёздочку и приписала: «по сообщению города». Стрелку к следующей дате проводить не стала. Под «19 марта» записала: «00:43 — время, указанное для короткого ролика».
Лев подошёл ближе.
— Если ролик записан в 00:43, он появился через несколько часов после её смерти.
— Если это действительно время записи, — уточнила Вера. — На странице сказано именно так. Исходного файла с метаданными у нас нет. Да и время создания загруженной версии не скажет, кто её создал.
— Но короткий ролик — не то публичное выступление, которое мы смотрели.
— Полная запись старше. В короткой вырезаны её слова о неверной карте.
— Значит, монтаж установлен.
— Установлено, что контекст убрали. Кто это сделал — неизвестно.
Лев потёр большим пальцем колпачок маркера. На прежней работе он спокойно развёл бы факт и предположение. Теперь над любым его уточнением незримо висела подпись под старым сводным заключением о безопасности. Одной из карт, без которых нельзя было оценить риск, тогда не оказалось в комплекте. Лев этого не знал, но документ подписал. И теперь слушал каждое уточнение с такой неподвижностью, будто точность формулировки могла уберечь не только статью, но и его собственное имя.
Вера перешла к октябрьской шкале. Написала: «19 октября, 05:50 — публикация о Лидии». Ниже — «19 октября, 18:00 — заседание городского совета». Дальше оставила заметный промежуток и отметила: «20 октября, 04:20 — испытание системы», а у правого края — «20 октября, к 08:00 — опасный уровень воды в Нижних Садах».
— Двенадцать часов между публикацией и голосованием, — сказал Лев. — И десять часов двадцать минут от голосования до испытания.
— Если заседание закончится по расписанию.
— А испытание начнётся по расписанию.
— Система не читает наш календарь.
— У города, судя по документам, тоже проблемы с чтением.
На белой доске Вера вывела: «Время рядом — не причинность». Обвела фразу, но стрелок не провела.
На экране всё ещё светился анонс. Чёрная плашка, белые буквы, снимок Лидии из старой записи. Под фотографией обещали «признание, которое меняет всё». Вера увеличила надпись, пока буквы не распались на крупные квадраты.
— Формулировка рассчитана на то, чтобы читатель сначала решил, будто она призналась, — сказала Вера. — А у нас есть полная запись. Там она предупреждает о неверной карте.
— Значит, авторы уже знают, что контекст им мешает.
— Или взяли самый драматичный фрагмент ради кликов. Это не одно и то же.
— Ты сегодня щедра на альтернативы.
— Я сегодня не собираюсь снова назвать человека по фотографии, а потом выяснять, что за ним пришли не те, кого я ожидала.
Лев промолчал. Вера уменьшила изображение. Надпись снова стала аккуратной и почти нейтральной — удобный размер для тех, кто не станет искать полную запись.
— Три линии, — сказал Лев. — Внешнее вмешательство. Бывший сотрудник. Подрядчик.
Он написал версии на белой доске, оставив между ними равные промежутки. Вера провела под каждым заголовком короткую вертикальную черту: слева — то, что поддерживало версию, справа — то, что ей мешало. Таблицу она рисовать не стала; оставила достаточно места, чтобы аргументы не смешивались.
Лев сел за компьютер и открыл публичные сообщения о сбоях городской системы. Он молча переходил от новостной ленты к страницам муниципальных служб и обратно. Вера знала этот темп: так он проверял строки в старых бюджетных документах, когда замечал, что цифры сходятся подозрительно удобно.
— В мае город сообщал о задержке оповещения, — сказал он. — В официальной заметке написано: «кратковременное нарушение передачи через шлюз». Через два дня подрядчик объявил, что работы завершены.
Он переписал дату и фразу в первую колонку. Ниже добавил ещё одну запись: летом муниципальная страница предупреждала о технических работах на канале рассылки.
— Похоже на внешнюю атаку? — спросила Вера.
— Похоже на сообщения о сбоях.
— Оставь разницу.
— Оставляю.
Лев открыл старую запись городского совета. Представитель службы объяснял, что уведомления запаздывали из-за перехода между узлами связи. В публичном обсуждении несколько жителей писали: тревожное сообщение пришло уже после отбоя. Ни администрация, ни оператор не называли чужой доступ к системе; о взломе или утечке данных не сообщалось.
— Здесь есть история ненадёжной инфраструктуры, — сказал Лев. — Технический сбой возможен. Но следа внешнего управления нынешней публикацией это не даёт.
— И журнала доступа у нас нет.
— Нет. Журналы не публикуют.
— Тихая атака могла и не вызвать официального уведомления.
— Могла. Если шум был только на канале публикации, а не в работе всей системы, город мог ничего не заметить. Но это допущение, не находка.
Последние слова он произнёс нарочито сухо. Вера посмотрела на доску. В пользу внешнего вмешательства говорили прежние сбои и жалобы жителей. Против — отсутствие сообщений о вторжении и видимых признаков доступа, а ещё то, что короткий ролик обрезал именно предупреждение Лидии. Злоумышленник мог взять запись из публичного архива, но ни сбои, ни жалобы не объясняли, почему он выбрал этот фрагмент и приурочил публикацию к городскому голосованию.
— Если целью было сорвать испытание, — сказала Вера, — в материале мы бы ожидали увидеть хоть что-то о том, как систему ломали. Сбой, канал, изменённый маршрут.
— Может, техническую часть прячут.
— Тогда мы её пока не нашли. Есть ложное представление о Лидии и неверная карта.
Лев перевёл взгляд на мартовскую линию.
— Это может быть шумовой занавес.
— Может. Но эта фраза подходит к любой версии. Значит, не помогает ни одной.
На экране появились ещё несколько старых публикаций о сбоях. Внешняя атака не была фантазией: система уже давала сбои, а город не раскрывал её устройство. Но в открытых сообщениях не нашлось ни злоумышленника, ни следа, связывающего прежние неполадки с роликом.
— Если бы система падала сегодня, у нас была бы отдельная история, — сказал Лев. — Но, насколько известно, она работает.
— Мы не проверяли её внутреннее состояние.
— Не проверяли. Я говорю о публичных сообщениях.



