banner banner banner banner
Войти
Скачать книгу Уязвимость
Текст
отзывы: 0 | рейтинг: 0

Уязвимость

Язык: Русский
Тип: Текст
Год издания: 2021
Бесплатный фрагмент: a4.pdf a6.pdf epub fb2.zip fb3 ios.epub mobi.prc rtf.zip txt txt.zip
Уязвимость
Дмитрий Валерьевич Пяткин

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

Содержит нецензурную брань.

Дмитрий Пяткин

Уязвимость

Серая, непроницаемая водная гладь временами играла бликами фар редких машин, проезжавших по мосту в поздний час. Ветер гудел  в вантах  моста, соединявшего две части спящего города, которые стремилась разлучить широкая бурная река. Леша не помнил, как долго он здесь стоит и всматривается в холодную бездну. Всё кроме этой бездны перестало существовать и иметь значение. Даже звуки проезжающих авто, порой очень громкие, Леша будто бы не слышал. Он сосредоточенно смотрел вниз, выбирая момент для того, чтобы шагнуть в неизвестность. Если бы всего пару дней назад ему кто-то сказал, что он будет стоять здесь ночью на городском мосту,  планируя прыгнуть вниз, с высоты 40 метров, он бы просто покрутил пальцем у виска. "Прыжок в воду с 40 метров? Да это же верная смерть! Я что – самоубийца?" – изумленно выкрикнул бы он и развёл руками. Ответ на последний вопрос, к слову, он и сам пока точно не знал. Потому что, если бы знал, то уже давно бы прыгнул, а не стоял тут черт знает сколько времени. Но чем дольше он стоял, всматриваясь в темноту, тем больше ему казалось, что ответ вот-вот станет утвердительным. Леша начал мысленно прогонять по кругу все события прошедших дней, приведших его сюда, и сердце начинало с болью сжиматься от злобы, отчаяния и бессилия. Удивительно как быстро мир может разрушиться до основания, причем почти без каких-либо предпосылок. А мир этот был очень даже неплох, уютен и полон прекрасного.

Леше всего 27, он –  перспективный и крайне востребованный фронтенд-разработчик в международной IT-компании. Сервисами, в разработке которых он участвует, пользуются люди по всему миру. Леша очень любил свою работу за возможность непосредственного участия в улучшении жизни огромного количества людей. Его привлекало и вдохновляло, что он может, находясь где угодно, делать вещи, которые способны изменить жизнь человека в любом уголке планеты. Привлекало и то, что за свою работу он получал очень неплохие 5 тысяч долларов в месяц, которые позволяли ему быть совершенно самодостаточным, а главное – обеспечивать не только себя, но и  своих близких. Самыми близкими людьми у Леши были родители, а также любимая девушка Юля, с которой они встречались уже целых 2 года и которой он в скором времени планировал наконец-то сделать предложение. Круглую сумму, которая позволяла делать жизнь близких такой беззаботной он и сейчас получал, просто теперь, всё это, равно как и грандиозная миссия по развитию мира, перестала иметь хоть какое-то значение. Мир, для которого Алексей готов был вдохновенно трудиться, перестал существовать всего за пару последних дней.

Всё началось месяц назад. Алексей привычно коротал досуг, читая статьи на популярном IT-сайте. Там он любил делиться мнением с коллегами, общаться и узнавать новости о современных технологиях. Это было полезно для общего развития, а что-то можно было позаимствовать в качестве идей для основной деятельности. Так Алексей наткнулся на статью, опубликованную на официальной странице  компании StarChat – одного из самых популярных и надежных в мире мессенджеров, которым пользовался и сам Леша. Одной из главных фишек мессенджера была сфокусированность на безопасности персональных данных и приватности пользователей. В статье рассказывалось о том, как компания работает в этом направлении и в частности описывался один из способов поиска критических уязвимостей в системе. Компания предлагала всем желающим совершить попытку взлома мессенджера, с целью получения доступа к перепискам пользователей. Если это удастся сделать, первый сообщивший о найденной уязвимости, получит от компании солидное вознаграждение в виде 100 000 долларов. Таких людей называют багхантерами, Леша о них слышал и раньше, но никогда серьезно не погружался в эту тему. Хакером он никогда не был и вопросами сетевой безопасности не занимался. Он имел лишь общее представление об алгоритмах шифрования, и последний раз имел с этим дело еще в институте. И всё же в нем проснулся азарт – а что, если ему всё-таки удастся обнаружить уязвимость и получить 100 000 долларов? "Ведь я совершенно ничего не теряю. Это могло бы стать моим развлечением на ближайшие месяца два, к тому же заодно я смогу подтянуть знания по криптографии и браться за новые интересные задачи. Прокачаю себя как специалиста и интересно проведу время. А если надоест, то всегда можно бросить", – рассуждал Леша. Для участия в поиске уязвимостей нужно было подать заявку. Он заполнил несложную форму и приступил к поиску.

С этого момента и почти каждый вечер он копался в архитектуре StarChat, пытаясь уцепиться за какую-нибудь неточность в коде, которая могла бы намекнуть на возможность доступа к переписке пользователя. Чем больше он работал над поиском багов, тем больше восхищался работой своих коллег, а вот энтузиазм напротив угасал пропорционально восхищению. За первые две недели он проверил практически все потенциальные места взлома  – при регистрации в мессенджере, при отправке аудиосообщений, при совершении видео-вызовов, он даже пытался получить доступ с помощью специально написанного им бота, который маскировался под инструмент для создания собственных стикеров. Леша всё больше чувствовал себя героем фильма про хакеров, но ничего из перепробованного не приближало к нахождению уязвимости.

"Может, это просто их PR-ход и они давно уже закрыли все уязвимости?" – размышлял Леша. И действительно, за всё три года существования мессенджера, не было ни единого случая утечки данных, ни единого скандала. Мессенджер полностью оправдывал репутацию самого надежного и безопасного средства общения, что невероятными темпами сказывалось на количестве активных пользователей – за последний год их число увеличилось в целых три раза: по статистике, двести миллионов людей по всему миру заходили в мессенджер хотя бы один раз в месяц. "Ладно, поковыряюсь ещё недельку и ну его нафиг" – решил Леша. Но все-таки возможность получить 100 000 долларов грела ему душу. Не то чтобы он был зациклен на деньгах, это было совсем не так. Леша смотрел на деньги философски и  видел в них инструмент, с помощью которого можно улучшить мир и в первую очередь – улучшить жизнь дорогих ему людей. В тайне он мечтал купить своим родителям роскошный большой дом. Он знал, что мама с папой давно мечтали о нем, но даже со своей солидной зарплатой Леша не мог позволить просто взять и купить дом мечты. Он мог позволить себе очень неплохую квартиру средних размеров или просто залезть в большой кредит, но ему хотелось сразу сделать всё идеально, не залезая ни в какие долги. А еще он держал в уме свое намерение сделать предложение своей любимой Юле. И оно тоже должно было стать идеальным. Леша давно готов был сделать предложение, но, но как и в случае с домом для родителей, хотел создать совершенные условия. Его мечта состояла в том, чтобы отправиться с любимой в Париж, и оказаться в знаменитом ресторане Le Jules Verne, расположенном прямо в Эйфелевой башне. В идеале он бы хотел арендовать этот ресторан, чтобы в торжественной и романтичной обстановке, оставшись с Юлей один на один, преподнести возлюбленной дорогое и красивое кольцо. Все эти смелые мечты могли бы легко воплотиться в реальность, если бы он справился с задачей и нашел эту злосчастную уязвимость, которой, возможно и вовсе не существует. Только эти мечты и заставили Лешу дать себе еще неделю на поиск решения. И вот эта неделя подходила к концу. Вечером, после довольно загруженного рабочего дня, Леша раскинулся в кресле перед своим домашним компьютером. Мысли о рабочих задачах никак не выходили из головы и быть может, поэтому он смог посмотреть на проблему с иного ракурса. "Кажется, я проверил почти всё. Или нет? Регистрация, отправка сообщений, голосовые чаты, видеоконференции – всё проверено. Попробую пройтись заново. Итак, регистрация, как она осуществляется? На официальном сайте можно скачать приложение, также можно получить ссылку на регистрацию от друга, просто переходим по ссылке и попадаем на официальный сайт…" – на этом моменте Леша застыл, глядя в монитор.  Он понял, что для рассылки приглашений StarChat  использует не один из своих субдоменов, а отдельный домен, который никак не связан с основным приложением даже названием. Домен именовался forwardAUTOload.co.uk и использовал небезопасное http-соединение. Леша понял, что это может быть зацепкой. Он проверил логи SQL-запросов на предмет наличия ошибок и с удивлением для себя понял, что он может свободно формировать запросы самостоятельно, хотя он не должен был иметь такую возможность. Это означало, что он может произвольно видоизменить приглашение в мессенджер, сделав из него что угодно. Теперь, с помощью найденной лазейки, нужно было попытаться прочесть чью-либо переписку. Леша придумал способ. Он сможет отправить уведомление в мессенджер, замаскированное под сообщение от официального внутреннего аккаунта StarChat, с помощью которого мессенджер уведомляет о своих обновлениях. Пользователю достаточно просто прочитать этот уведомление и в теории Леша сможет получить доступ ко всему списку чатов, сможет читать переписку и даже отправлять другим пользователям сообщения от имени аккаунта "жертвы". Причем, ему даже не нужно будет знать логин и пароль от аккаунта! Для того, чтобы подтвердить гипотезу, Леша быстро зарегистрировал новый аккаунт в  StarChat и добавился к нему со своего личного профиля. Он быстро набросал абракадабру из произвольных букв в чат между своим профилем и профилем-фейком. Это была переписка, которую он должен суметь обнаружить с помощью гипотетической уязвимости. Еще час ушел чтобы перенастроить стандартные запросы сервера, подменив их собственными. И вот он, момент истины. Леша отправляет фальшивое сообщение об обновлении от аккаунта StarChat, читает его с помощью фейкового аккаунта и… Лицо Леши медленно расплывается в улыбке – перед ним на экране вся переписка, которую он только что смоделировал. Способ работает! Он получил доступ к переписке и теперь может читать её в режиме реального времени! От возбуждения Леше срочно потребовалось встать и пройтись по комнате, его переполняли эмоции. "100 000 долларов! Так просто! Ответ был на поверхности! И это самый надежный мессенджер в мире? Я даже не специалист в этой области, а сумел взломать переписку всего за 3 недели! " – Леша был вне себя, он чувствовал себя так, словно по дороге домой нашел чемодан с деньгами. "С другой стороны, мы же все пользуемся этим мессенджером и всё это время в нем есть такая дыра? А что, если я не первый, кто нашел эту уязвимость? Что если в мире куча хакеров, которые не сообщают о своей находке, а просто тихонько воруют данные, зарабатывая на их продаже гораздо больше, чем эти 100 000 долларов? Лешина радость резко сменилась тревогой. Он представил как все его переписки, а также переписки его родственников и  друзей могут стать добычей совершенно незнакомых ему людей, с непредсказуемыми намерениями. Но тут, мимолетная мысль о переписках близких свернула в совершенно неожиданное русло – Леша вдруг понял, что он прямо сейчас может запросто зайти и почитать абсолютно любую переписку кого-то из своих знакомых. Леше стало противно – почему такие мысли вообще лезут к нему в голову? Это же отвратительно! А хотел ли бы он, чтобы кто-то также вторгался в его личную жизнь? Леша решительно зашел на официальный сайт StarChat нашел раздел "разработчикам" и перешел к форме обратной связи, которую надлежало заполнять багхантеру, чтобы уведомить мессенджер о результатах своей работы. "Сейчас я сообщу о проблеме и они быстро всё залатают" – подумал Леша, набирая сообщение. Но вдруг раздался звонок.

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

– Леха, здорова! Я тебе не помешал?

– Привет, Гар, не всё в порядке, ты как?

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

– Круто, а сколько народу планируешь собрать?

– Да человек 10.

– Хаха, и это ты называешь "небольшой сабантуйчик"? – засмеялся Леша.

– Ну да, я прикинул, как раз все поместятся. Помнишь, ты меня еще как-то знакомил со своим другом, Юрой, не помню как его по фамилии… В общем, его тоже позови, а то у меня его контактов нет. Ну и Юля, разумеется, пусть тоже приходит, я всех зову.

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

– Да без проблем, Леш, но я очень рассчитываю тебя видеть, имей в виду, – добродушно настаивал Гарик.

– Ясно, тогда жди звонка.

– Жду, жду. Давай, пока!

Леша только успел завершить вызов, как тут же услышал звонок в дверь. "Кажется Юля вернулась, что-то поздновато сегодня" – подумал Леша и пошел открывать дверь.

– Привет, зайчик, это я, пустишь меня – из-за двери донесся веселый звонкий голос Юли.

– Может быть и пущу, если ты пообещаешь не кричать на весь подъезд о том, что я зайчик – весело и громко ответил Леша, приоткрывая дверь.

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

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

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

– Да, ты как всегда совершенно прав, Юльчонок, – Леше нравилось называть так свою девушку. Ему слышалось в этом прозвище что-то среднее между волчонком и бельчонком, что по его мнению весьма точно отражало переменчивый и противоречивый характер Юли. Она была словно полной противоположностью Леши по темпераменту, но именно этот факт парадоксальным образом уравновешивал их отношения.

– Ты опять меня так называешь? – сердито воскликнула Юля, – я же тебе сто раз говорила, что мне не нравится это дурацкое коверкание моего имени!

– А мне думаешь, всегда хочется быть зайчиком? – с улыбкой возразил Леша.

– Ну чего ты придираешься, а? Я же любя, тем более зайчик – это мило, а твой "юльчонок" – это фигня какая-то, честно слово, – с досадой фыркнула Юля, – у меня сегодня был очень тяжелый день, репетиция затянулась допоздна, Юрий Рейнольдович нас решил не щадить перед выпускным экзаменом.

– Да, я как раз хотел спросить тебя, как прошла репетиция, – тихо заметил Леша,

– Ой, это кошмар! Ты знаешь Риту? Помнишь, мы как-то сидели все вместе в ресторане "Букет Виктории"?

– Да, припоминаю, – задумчиво произнес Леша, хотя на самом деле он абсолютно не помнил никакую Риту и даже не особо припоминал этот ресторан со странным названием "Букет Виктории".

– Так вот, Юрий Рейнольдович так на неё кричал, что она три раза бегала в гримерку, чтобы выплакаться.

– Какой-то садист этот ваш Юрий Рейнольдович, а на тебя он тоже кричал? – с легким возмущением в голосе спросил Леша.

– На меня он ни разу еще не кричал, – гордо ответила Юля, – и потом, ты не прав насчет садизма. Это просто методы его работы с творческими людьми. В актерском ремесле никак без дисциплины, а Рита – просто тупица, до которой по-другому не доходит. Если бы она не забывала свои реплики и не путала интонации, всё было бы отлично.

– А тебе не приходило в голову, что ты так говоришь только потому, что он на тебя никогда не кричал? – иронично заметил Леша.

– Нет, ну вот зачем ты опять начинаешь? Я же тебе говорю – на меня он никогда не станет кричать, потому что я прекрасно понимаю свою задачу и хорошо готовлюсь к роли. И вообще, я же тебя не учу, как программировать твои программы. Знаешь, давай просто отдохнем, мне так не хочется говорить про театр сегодня. Он у меня уже вот где, – Юля характерным жестом провела воображаемую линию по своей шее.

– Да, милая, давай не будем. Я тут еды заказал, твои любимые мидии и wok с креветками, ты будешь? А еще в холодильнике стоит замечательная бутылка твоего любимого французского вина.

– Ты просто мой спаситель и настоящий рыцарь! – голос Юли смягчился, она нежно прижалась к Леше и быстро поцеловала его в губы.

***

Следующие два дня пролетели почти незаметно. Лешу захлестнул круговорот рабочих задач, которые отнимали всё его внимание и силы. Он совсем забыл про уязвимость, найденную в понедельник, и вспомнил про нее лишь вечером в четверг, когда ему снова позвонил Гарик. "Блин, я же ему обещал перезвонить в тот же вечер насчет вечеринки" – опомнился Леша.

– Привет, Леха! Ну что насчет пятницы? Ты обещался позвонить. Ждать вас с Юлей? – напористо произнес Гарик.

– Привет, Гар, да прости, я совсем замотался, тяжелые деньки. Я не забыл, давай через минут 10 перезвоню, только у Юли спрошу и сразу перезвоню. Сорри, правда, как-то неловко вышло.

– Да не парься, всё в порядке, я понимаю.

– Короче, жди звонка не позднее чем через 10 минут.

– Окей.

Леша направился в гостиную. Юля уютно устроилась на диване в легком домашнем халате. Она изящно держала в своей ладони бокал вина и смотрела свое любимое телешоу.

– Милая, прости, что отвлекаю.

– Я же просила не отвлекать меня когда я смотрю "Женщины против мужчин", ты ведь также злишься, когда я захожу в твою комнату, пока ты копаешься в своих закорючках.

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

– В эту пятницу? То есть завтра?

– Ага.

– Мне нравится идея, мне как раз хотелось развеяться, а еще интересно посмотреть, как Гарик устроился, я готова пойти.

– Ну, вот и отлично, сейчас ему наберу.

Леша открыл список контактов, набрал номер Гарика. Пошли длинные гудки, затем последовали короткие и сообщение "Абонент не отвечает". "Хм, видимо, занят, попробую чуть позже" – подумал Леша и вернулся в свою комнату. Его не покидало чувство неловкости. Он ведь обещал перезвонить старому приятелю, а в итоге забыл про него. Мысленно Леша представил как Гарик должно быть злится на него. Лешу всегда сопровождали болезненно-навязчивые мысли по поводу мнения других людей о собственной персоне. Иногда он просто ненавидел себя за это, но в конечном итоге всегда оправдывал эти переживания в собственных глазах, убеждая себя в том, что это лишь следствие критического отношения к своим поступкам. "Раз я переживаю о своих поступках и о том, как они выглядят, значит у меня есть совесть, а раз так, значит эти мысли делают меня лучше как человека" – рассуждал Леша.  Думая о реакции Гарика и ожидая обратного звонка, Леша машинально открыл страницу программы, которую он написал для доступа к перепискам в StarChat. Мысль, которая уже посещала его на днях, вернулась вновь, имея теперь новую, более твердую почву – Леше действительно было интересно, что сейчас про него мог бы написать или подумать его старый приятель. Рука сама потянулась к клавиатуре и Леша не заметил, как быстро проделал все необходимые подготовительные шаги для получения доступа к переписке Гарика. Оставалось только вбить адрес его профиля. "Что ты, мать твою, творишь такое?" – пронеслось в голове у Леши. "Да почему бы, черт возьми, и нет? Просто разовый прилив любопытства. Я же не буду читать все его переписки, просто гляну, что он мог писать про меня. Это просто маленькая шалость. К тому же, я проделал большую работу, чтобы отыскать эту уязвимость. Разве я не заслужил удовлетворения маленького любопытства?" – мысленно ответил себе Леша и уверенным жестом вбил нужные данные. Оставалось подождать, когда Гарик прочитает это сообщение и его переписка будет как на ладони.  Прошло 5 минут, Леша уже начал сомневаться, что его метод в принципе работает и возможно он что-то сделал неправильно. Но он все же решил подождать еще немного. Как-никак, это было "боевое крещение" разработанного им метода, а ради чистоты эксперимента можно и набраться терпения. Наконец, он увидел, как его программа запустилась и прямо в интерфейсе мессенджера, он увидел весь список чатов Гарика. "Работает!" – чуть было не вскрикнул Леша, тут же себя одернув. Он почувствовал себя доктором Франкенштейном из старого фильма, кричащим "It's alive!".  По спине Леши  пробежал легкий холодок, пальцы задрожали от прилива возбуждения и он приступил к просмотру профиля. Поначалу, в чатах не было ничего интересного. Вот сообщения от мамы Гарика, которая просит его обязательно купить пачку её любимого печенья к чаю, когда тот поедет её навестить. Вот переписка с коллегой, в которой Гарик обсуждает своего начальника. Начальник этот любит ставить задачи в самом конце рабочего дня, из-за чего Гарику постоянно приходится задерживаться на работе допоздна. Текст изобилует матерными эпитетами,  самым приличным из которых является "ссаный мудозвон". Леша тихонько похихикал, и продолжил листать список чатов дальше. Внезапно поводы для смеха и улыбок исчезли. Перед глазами Леши был чат с названием "мое новоселье!". В нем было 8 участников. "Гарик говорил, что на вечеринке будет 10 человек. 8 – это минус я и Юля. Так, стоп. Почему он просто не пригласил меня в чат?" – недоумевал Леша. Он тут же зашел в чат, чтобы посмотреть, что же такого там обсуждают. Он промотал переписку к саму началу и приступил к чтению. Сначала было не очень интересно – все обсуждали где лучше заказать еду, кто и какие напитки предпочитает, но очень скоро Леша увидел первое упоминание своего имени.

Знакомый Гарика по работе №1 (3№1):Гарик, ты этого Леху своего будешь добавлять?

Гарик(Г): Да не, ну его нахер, позвоню просто. Всё равно опять отморозится скорее всего. Придет, так придет, а нет – да и пофигу.
Популярные книги