JustPaste.it

Найденная закладка

В один прекрасный майский вечер я сидел в кафе “Пелегрини”, что на площади Свободы. На столе передо мной лежал ноутбук с недописанным сценарием к визуальной новелле “Synchro”, над которым я бился уже полгода. За этим же столом сидел мой приятель и сосед по общежитию, Лаврентий П. Айвазовский. Со стороны мы, наверное, походили на каких-нибудь фрилансеров, нагло оккупировавших столик и пользующихся бесплатным вайфаем для работы. Может быть это было справедливо для Лаврентия — он не гнушался любой подработки. Но я в тот момент обдумывал сюжетный ход с похищенным приглашением на турнир по Го. Что касается оккупации — после ковидных ограничений кафе пустовало и мы никому не мешали, хотя и сидели здесь уже добрых четыре часа.

Хотел бы сказать пару слов о Лаврентии — приятель мой всегда выглядел словно прибыл на машине времени из какой-нибудь викторианской эпохи. Никаких джинсов и футболок — Лавр всегда одевался в отглаженные брюки и белые рубашки с запонками. Запонки на рубашках, где он только находил эти анахронизмы? Впрочем, и речь его отличалась особой вальяжностью, под которую поневоле приходилось подстраиваться.

К моему недовольству, раздумья над сценарием прервал наш общий знакомый, влетевший в кафе так, словно за ним гнались ассасины из ордена тамплиеров. Сергей Белов, мой соотечественник и ещё один сосед по общежитию, учился на факультете информатики Масарикова университета вместе с Лавром. Однако большую часть семестра он пропадал по своим таинственным делам, появляясь только к началу сессии. Сессию тем не менее Белов закрывал всегда успешно, хотя и со скрипом. Ходили слухи, что он сын то ли полковника, то ли генерала из силовых структур, и просто хочет получить себе вид на жительство таким образом. Но слухи на то и слухи, чтобы делить их на десять. Тем не менее, было довольно странно видеть его сейчас — до экзаменов оставалось ещё две недели.

— Привет, пацаны!

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

— Рассказывай уже, чего там у тебя.

За что, в свою очередь, заслужил неодобрительный взгляд от Айвазовского. Сергей часто донимал Лаврентия просьбами о помощи с курсовыми и зачётами, так что его негодование я мог понять. Но работать над сценарием в такой обстановке не получалось. К тому же, судя по открытому окну проводника на экране его ноутбука, вряд ли эта просьба будет связана с учёбой.

— Да ерунда, честное слово, — Сергей замахал руками. Эта его привычка к излишней жестикуляции иронично подходила к антуражу итальянского кафе, в котором мы сидели. — Ничего такого, с чем я бы не справился. Просто история настолько странная, что я должен с кем-нибудь ей поделиться.

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

— Нет-нет, наоборот! В этот раз я играю на стороне закона! — Сергей перешёл на шёпот, хотя кроме нас в кафе никого не было. — Мне нужно найти закладку в одной программе. Правда я даже не могу сказать, для кого эта программа разрабатывалась, и что делает.

— Действительно, любопытная история, — Айвазовский отпил давно остывший кофе. — Каким образом студент Масарикова университета оказался связан со столь важным делом, как информационная безопасность государства?

— Откуда ты… А, ладно. Я сейчас всё объясню, — поднял руки Сергей, словно сдаваясь. — Дело в том, что моя родственница владеет галерой… простите, айти-компанией. Компания, в свою очередь, выполняет подряды, в том числе и государственные. И так случилось, что один из недавно нанятых программистов стал слишком много на себя брать. Критиковать тимлида на собраниях, требовать особого к себе отношения — короче, работать с ним стало невозможно.

— Ну так уволить его, и дело с концом, — я пожал плечами.

— В этом и заключается проблема, — закивал Белов. — Этот программист, назовём его Д., ключевой разработчик той самой программы, о которой я упоминал. Его увольнение выльется в задержку выпуска — а значит, срыву контракта. На такое моя родственница пойти не может, поэтому и терпит его закидоны. Но как только система будет сдана — Д. вылетит из компании как пробка из бутылки с шампанским. Это знает вся компания, и естественно это знает Д. Так что он внедрил в код закладку, мину замедленного действия, которая положит всю систему если её не обезвредить. Д. напрямую заявил мой родственнице о существовании этой мины, и готовности её взорвать, если с ним обойдутся “несправедливо”. Что приводит нас к текущему моменту.

— Однако каким образом ты оказался в этом замешан? Что может сделать без сомнения талантливый, но всего лишь студент, чего не могут безопасники компании?

Вопрос Лаврентия вызвал толику смущения у нашего приятеля. Он широко развёл руками. 

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

— Провёл что? — перебил я.

— А, ты же с научного, — Сергей сложил руки на груди и тут же нетерпеливо взмахнул ими. — Хорошо, объясняю для биологов. Представь, что есть тропинка в лесу, ведущая к домику бабушки. А злой волк натоптал вокруг неё ещё кучу тропинок. И теперь пройти к домику бабушки не заблудившись может только тот кто знает правильную дорогу. Вот это натаптывание лишних тропинок и есть обфускация. Понятно?

Я кивнул. Белов снова повернулся к Айвазовскому и продолжил:

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

— Д. мог держать исходник на флешке или смартфоне, в облачном хранилище, у себя дома. Почему вы так прицепились к его ноутбуку?

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

— Может быть этот ваш Д. блефует? — предположил я. — Сложно найти чёрную кошку в тёмной комнате, если её там нет.

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

— Ты про случай в компании К.? — спросил Айвазовский, резко поставив чашку кофе на стол.

— Да-да, про него. Говорят там чуть ли не до банкротства дошло.

— Как устроено помещение, где работает Д.? — Лаврентий положил подбородок на ладони и прикрыл глаза. Похоже, его заинтересовала эта история.

— Обычный опен-спейс. Ноутбуки коллег Д. тоже проверяли таким же тщательным образом, как и трафик с них.

— Ого! — присвистнул я. — Сколько же это времени заняло?

— Две недели. Более того, коллеги просмотрели все сохранившиеся записи с камер наблюдения. Д. за всё время не приближался к рабочим местам коллег. Как и они к нему не часто подходили.

— Оно и не удивительно, — пробормотал Айвазовский, — с его характером. Скажи мне, Сергей, а как ты собираешься искать закладку отсюда, из Брно? Я так полагаю, клиент находится в Москве.

—  У меня есть удалённый доступ на его рабочую станцию, — Белов развернул к нам ноутбук так, чтобы мы увидели его экран с множеством иконок на рабочем столе, из-под которых проглядывали аляпистые обои с оранжевой молнией посредине.

Лаврентий хмыкнул и поднялся.

— К сожалению, мне пора.

— Так что скажешь? — Сергей тоже вскочил, — Есть у меня шанс найти эту закладку?

— Полагаю, она всё ещё на том ноутбуке, — ответил Айвазовский. — Если, конечно, вообще существует.

— И я так думаю, — явно обрадованный Сергей протянул руку Лаврентию, — спасибо что выслушал.

Айвазовский кивнул и покинул кафе, а я остался в кафе с Беловым, который немедленно погрузился в исследование своего ноутбука.

Заказав двойной эспрессо, я вернулся к сценарию. Но увы, мысли постоянно возвращались к истории Д. и его спрятанной закладке.

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

— Так и есть! — тот с готовностью отодвинул ноутбук. — Я успел убедиться в этом, когда в прошлом году он вычислил читера на чемпионате по “Контр-страйку” — по одной только статистике игр. Совпадение, скажешь? Ещё он смог найти потерянный телефон Сэм, задав ей буквально пять вопросов. А помнишь убийство той девушки, которую нашли зимой в Свратке? Лавр угадал профессию убийцы по фотографиям с места происшествия в газете!

— Впечатляет.

Некоторое время мы молчали. 

— Ты мог попросить Лаврентия о помощи напрямую.

Сергей вздохнул.

— Я должен справиться сам. Это ведь не просто “родственная помощь”, это... Меня ведь готовили в академию ФСБ, репетиторов нанимали, физподготовка, знакомства с разными важными людьми. А потом внезапно свалился в обморок — диабет первого типа. И всё, бракованный сын стал никому не нужен. Я сюда-то сбежал, чтобы не видеть кислую рожу бати, когда он на меня смотрит. Зато, если я найду эту чёртову закладку, я докажу, что чего-то стою.

— Вот оно что, — такие откровения от Белова слушать было неловко, — тогда удачи тебе.

— Спасибо! — Сергей снова уткнулся в монитор, — Если понадобится, я каждый файл прочитаю...

 

Прошло больше недели с той неожиданной встречи. Университетские будни захлестнули меня в вихре подготовки к сессии, и я бы совсем забыл про эту историю, если бы судьба не свела нас троих снова. На этот раз в пабе “У трёх чертей”, куда меня пригласила на день рождения одногруппница Николь. Впрочем, не меня одного — в паб набилось целая толпа студентов. Был среди них и Лаврентий, по своей привычке забившийся в дальний угол, подальше от всех.

Я как раз объяснял подруге именинницы хитросплетения сюжета своей новеллы, как заметил вошедшего в паб Сергея. Он стоял у входа, высматривая кого-то в толпе. Мы встретились с ним взглядом, и Белов решительно двинулся в мою сторону. 

Вздохнув, я извинился перед Энни, и протянул приятелю руку.

— Где Лаврентий? — вместо приветствия спросил он.

Выглядел Белов отвратительно — осунувшийся, с грязными сальными волосами и красными от недосыпа глазами, он больше походил на бомжа, чем на студента одного из престижнейших европейских университетов. Я уже не говорю об амбре давно немытого тела. Разумеется, Энни тут же нашла повод сбежать.

Взяв Белова за рукав, я пошёл в угол, где засел Айвазовский. Вежливо попросив сидевшую там парочку уступить место, затолкал Белова на лавку. Сел рядом.

— Полагаю, ты не смог отыскать закладку, — ровным голосом сказал Лаврентий, даже не стараясь перекричать шум вечеринки.

Белов кивнул. Снял с плеча сумку, с которой пришёл, и вытащил оттуда знакомый ноутбук.

— Если я не отыщу её до полуночи по Москве, мне закроют доступ.

Он достал из кармана монету и положил её сверху на глянцевую крышку ноута.

— Надеюсь этого будет достаточно для оплаты помощи.

Я присмотрелся — на жёлто-серебряном кругляше отчётливо читался знак биткоина и номинал. Сувенирная монета в десять биткоинов? Или не сувенирная? Если она настоящая — то передо мной лежит целое состояние. Посмотрел на часы, прикинул время — до дедлайна осталось меньше часа.

Айвазовский подтянул к себе ноутбук, покрутил в пальцах монету, сверкнувшую голограммой в тусклом свете паба. Кивнул. Затем открыл крышку ноута и затарабанил пальцами по клавиатуре. Прошло не больше минуты, прежде чем Лаврентий развернул ноутбук к Сергею и сказал:

— Полагаю, это то что ты ищешь.

Я успел заметить на экране только открытое окно архиватора. Сергей вцепился в ноутбук как в спасательный круг. Его лицо просветлело, и, я готов поклясться, на глазах выступили слёзы. Не попрощавшись, он схватил ноут в обнимку и выбежал из паба, едва не столкнув меня на пол по дороге.

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

— Сергей, в некотором роде, действительно талантливый человек. Не сомневаюсь, что и он, и его коллеги в Москве, применили все свои способности для поиска. Полагаю даже, что Сергей рассказал не о всех методах, которые они использовали для получения нужной информации. Так что после его рассказа я не сомневался в том, что исходный код, если Д. посчитал нужным его оставить, всё ещё на рабочем ноутбуке.

— Но почему тогда они не нашли этот код?

Лаврентий впервые за вечер улыбнулся.

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

— Возможно сказалось волнение?

— Возможно.

— Но почему ты сразу не показал Сергею, где код? Неужели рассчитывал поживиться на его безвыходном положении?

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

— Монета всё-таки настоящая? — Я вытер пот со лба. Пусть даже курс биткоина упал, на эти деньги можно жить очень долго. — Подожди, а где вообще этот код был?

— На самом видном месте, разумеется. В файле обоев рабочего стола.

— Но… Как, чёрт возьми? — видит бог, я не хотел цитировать Уотсона, но более подходящей фразы для выражения моего тогдашнего состояния не найти.

— Всё дело в личности Д. Сложно, наверное, предположить, но мы с Д. знакомы — мир всё-таки до ужаса тесен. Когда-то, сто лет назад, мы зависали на одном широко известном в узких кругах анонимном форуме — его логотип ты видел на экране.

— Двач? Но причём здесь он?

— Тогда это была анонимная имиджборда без модерации, на которой можно было всё. Полная свобода, не то что сейчас… да. Единственным ограничением был сам формат борды — к сообщению можно было прикладывать только картинки. Но мы нашли способ обойти и это ограничение простой склейкой файлов джипега и любого архива. Сейчас про рарджипег мало кто знает, на чём Сергей и прогорел. Присоединённый таким образом архив не обнаружить, если не знать что искать.

— Но почему именно файл рабочего стола?

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

— Двач, конечно, та ещё клоака… то есть я там никогда не был, только слышал о нём. Но там же нет регистрации, как ты понял, что Д. всё ещё там бывает?

— Я узнал его по шизоидным словам и… а, извини. Двач и на меня влияет, даже после стольких лет, — Лаврентий вздохнул. — Вообщем, это было несложно. Стоило только создать пост о преимуществе ангуляра над реактом, как он тут же прибежал защищать свой любимый фреймворк. Ну а сопоставив несколько косвенных доказательств, я уже точно был уверен, что исходники спрятаны именно в обоях.

— Косвенных?

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

Теперь, когда Айвазовский всё рассказал, для меня тоже стало очевидным решение этой загадки. Однако кое-что ещё меня беспокоило.

— Разве это этично — подставлять человека таким образом? Д. ведь вышвырнут из компании, скорее всего не заплатив за сделанную работу.

Айвазовский пожал плечами.

— Я бы не стал переживать за Д. В своё время он здорово подгадил мне, устроив диверсию в компании К., где я тогда проходил летнюю практику. Пусть на своём примере убедится,  что аноним не забывает и не прощает. Мда, хотел бы я увидеть его лицо, когда он найдёт моё послание.

— Послание?

— Я добавил в его раржипег текстовый файл на несколько строчек:

 

Never gonna give you up, never gonna let you down

Never gonna run around and desert you

Never gonna make you cry, never gonna say goodbye

Never gonna tell a lie and hurt you

 

— Это должно быть... смешно? — удивился я. Послание было похоже больше на любовное.

Лаврентий вздохнул и, потеряв интерес к разговору, вернулся к пиву и сухарикам.

 

Мне казалось, что на этом история и закончится. Но продолжение не заставило себя ждать — два дня спустя Белов зашёл в общагу попрощаться. Он возвращался в Москву.

— Что-то случилось?

— Отца арестовали. Этот чёртов Д., оказывается, не одну закладку в программе оставил. И когда его выкинули на мороз молча слил гору компромата в СМИ. Чёрт, я должен был догадаться, что там не одна закладка! Просто эта была на самом видном месте.

— И что ты теперь будешь делать?

Белов пожал плечами.

— Как-нибудь проживу. Лаврентию привет передавай. И скажи, что Д. оценил шутку с рикроллом.