Чем плох HTTP, хорош HTTPS и почему злоумышленникам интересны именно вы

Всем привет.

В этой статье немного затронем информационную безопасность, подогреем паранойю, узнаем, как и зачем шифруется трафик и как (возможно) в это самую минуту на вас кто-то зарабатывает (и это не я :))

Итак, ликбез!

Как работает HTTP

HTTP расшифровывается как «HyperText Transfer Protocol» -т.е. протокол передачи гипертекста. Понятно? =)

Гипертекст, в его изначальном понимании, это текст, который отображается на дисплее электронного устройства и часть этого текста ссылается на другой текст (самое близкое к этой концепции сегодня – Википедия). Авторы концепции гипертекста собирались структурировать всю информацию в интернете, подобно словарям, потом начали появляться разные идеи по передаче мультимедии, новые авторы, концепты, и в итоге все это менялось сотни раз и пришло к тому, что мы видим сегодня – к формату HTML (HyperText Markup Language) и его меньшим братьям.

Протокол передачи – это согласованное между участниками поведение программного обеспечения – в основном веб-серверов, браузеров и программных библиотек по работе с HTTP. Упрощенно протокол выглядит так – клиент инициирует запрос – выкидывает в сеть пакет байт, в которых написано «ДАЙТЕ МНЕ YOUTUBE.COM» и немного служебной информации (типа «у меня браузер Chrome, готов принять ответ в сжатом виде»).

Этот пакет путешествует по миру, пока не попадет на сервера youtube, там веб-сервер проверит служебную информацию и в ответ отправит свою служебную информацию (типа «Привет, я Youtube, сейчас отправлю тебе 967Кб текста сжатого с помощью gz2») и HTML текст страницы. Браузер клиента получит всё это, проверит размер, разархивирует и отобразит HTML код так, чтобы было понятно человеку.

Конечно, внутри всё посложнее, там и разбитие пакетов данных на фреймы, и маршрутизация, и сопоставление доменного имени ip-адресу и многое другое, но суть именно проста – клиент отправил кусок текста с пожеланием, и сервер отправил в ответ текст с результатом.

Так же в заголовках ответа возвращается код. Код 200 – значит всё хорошо и возвращается результат. Если такой страницы на сайте нет или произошла ошибка при обработке, сервер отправит соответствующий код ошибки, который браузер отобразит в понятном для клиента виде. Вместе с ошибкой может так же возвратиться HTML (или обычный текст) который должен быть отображен клиенту.

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


Реклама


Чем плох HTTP

Основная проблема, из-за которой идет эта кампания по переходу на HTTPS состоит в том, что трафик, которым обмениваются клиент и сервер, не зашифрован, и может быть как просмотрен, так и модифицирован злоумышленником.

Атака Man in the middle (MITM), атака посредника

Обычно человек говорит «да кому я нужен», или «да что с меня взять» или «да вот хакеру нечего делать, ломать МЕНЯ. Ладно там, банк…» и забивает на всё. Вроде бы логично, но вот только вас есть смысл ломать и на вас можно неплохо заработать, и вы еще можете понести незаслуженное наказание за чужие действия. Sad but true.

Итак, знакомьтесь, атака “Man in the middle” – «человек посередине». Название, собственно, прекрасно отображает суть – между вашим браузером и сайтом находится злоумышленник, желающий заработать. Этим негодяем может оказаться системный администратор у вашего интернет провайдера, сосед по подъезду, поломавший оборудование на чердаке, оказаться сотрудник ИТ отеля, в котором вы остановились, или даже ваш оператор сотовой связи.

Так же известны атаки вида Evil Twin, когда некто поднимает WiFi точку с тем же названием, какое уже есть в вашем телефоне, например, McDonalds или MT_Free (Московское метро), после чего ваш телефон автоматически подключается к этой сети и трафик течет через оборудование злоумышленника. Поиск WiFi сетей устроен так, чтобы устройства подключались к точке доступа с самым сильным сигналом, так что, если вы будете ехать в метро, где есть точка доступа MT_Free, а рядом с вами будет стоять человек, у которого в кармане на телефоне поднята мобильная точка доступа MT_Free, ваш телефон подключится к телефону негодяя.

Дальнейшее просто – негодяй притворяется, что он, например, Google (для вашей системы) и обращается к Google от вашего имени, притворяясь, что он и есть вы.

Тут надо понимать, что есть направленные атаки (когда негодяй пытается взломать конкретного человека), и есть ненаправленные. Атаки первого вида стоят дорого, но срабатывают практически всегда. Атаки второго рода призваны брать количеством. Злоумышленник с WiFi в метро может кататься весь день, рассчитывая повлиять на возможно большее количество людей. Негодяй с точкой доступа Макдональдса может менять макдаки каждый час, или вообще сидеть в парке – не так важно, кто попадется, главное, чтобы их было как можно больше.

Злоумышленник может преследовать несколько целей, и ему доступны разные сценарии. Причем, современный хакер, с обычных людей денег, как правило, не требует – ему выгоднее использовать их оборудование как часть ботнета. На самом деле, если вас или меня заразит шифровальщик и потребует 300 долларов, мы посмеемся и переставим винду. А ведь он писал вирус, заражал (ну либо купил вирус, купил заражение).

Поэтому сценарий заражения персонально вас будет, скорее всего, одним из следующих:

  1. Вы будете майнить криптовалюту (куда бы вы не пошли). Каждый раз, когда вы открываете какой-либо сайт, неважно какой, вы получаете не исходный HTML-код, который отдает вам сервер, а модифицированный, в который встроен код для майнинга. По тому же принципу вам показывают рекламу.
  2. Вам подменяют платежные реквизиты. Чаще всего это касается адресов криптовалюты, но может касаться и банковских реквизитов. Злоумышленник проверяет текст сайта, прежде чем передать его вам, и, если в тексте находится шаблон BTC адреса или БИК/ИНН, они заменяются на соответствующие данные негодяя. Раньше это касалось и оплаты банковскими картами (нагло воровали номер карты, CVV и прочее, сейчас все банки хорошо защитились). То же самое касается реквизитов, которые отправляете вы – ваш собеседник получает «немного модифицированный» вариант вашего сообщения.
  3. Вы рассылаете вирусы/спам, атакуете сайты. Вы посещаете свою невинную HTML страничку, на которой сроду вирусов не было, а ваш браузер выполняет адскую работу, сканирует чужие сайты на уязвимости, DDOS-ит, подбирает пароли.
  4. Ваши пароли к почте, социальным сетям, интернет-банкам еще пару лет назад попадали к злоумышленникам. Сейчас практически все крупные игроки перешли на HTTPS, бояться нечего. Но пароли к сайтам, переданные через HTTP, все равно могут попасть к злодеям.
  5. Злоумышленник запоминают сайты, которые вы посещаете. И если вы посещаете не то, что нужно, вы можете стать объектом шантажа. То же самое касается приватной информации, да и вообще любой другой, пересылаемой через интернет.
  6. Ну и, наконец, вы скачиваете драйвера/игру/программу или что вам там еще нужно со старого проверенного сайта, но по факту вы скачиваете и устанавливаете вирус, т.к. исполняемый файл по пути оказался подменен. На ваш компьютер установлен бэкдор, через который злоумышленник может войти в любой момент, а дальше с вашего компьютера пойти гулять по миру (используя ваш комп как VPN), заставить ваш компьютер исполнять программы (тот же майнинг, DDOS, сканирование сети, рассылка спама, распространение вирусов) и многое-многое другое.

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

Так что не думайте, что вас никому невыгодно взламывать. Вас намного проще взломать чем банк, с вашей помощью можно взломать банк, взламывать вас дешево, а если взломать несколько тысяч человек, то можно жить на острове и получать деньги, организуя вашими силами DDOS или используя ваши совокупные мощности для подбора паролей/майнинга.  


Реклама


С HTTPS такие атаки теряют силу

Ни вам, ни какому-либо приличному сайту не выгодно, что бы на вас зарабатывали преступники. Поэтому всё больше и больше сайтов переходит на HTTPS – это тот же протокол передачи гипертекста, но защищенный (secure). Тут цепочка вызовов становится сложнее, размер передаваемого трафика увеличивается, но зато растет безопасность и защищенность пользователя.

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

Браузер изучает сертификат, который возвратил сервер, получает оттуда домен, на который выдан сертификат и адрес центра сертификации. Иными словами, сервер говорит – смотри, я настоящий youtube, вот сертификат который выдал Google. Вы и сами может посмотреть сертификат, кстати, если нажмете на сертификат:

Далее ваш браузер идет в Google, и спрашивает, действительно ли он выдавал этот сертификат этому сайту? Если эта информация подтверждается, то дальнейшее общение с сайтом идет в зашифрованном виде – как правило, браузер и сайт обмениваются ключами шифрования (есть еще вариант без обмена, но в чистом виде редко используется), и всё дальнейшее общение между вами и сайтом идет в зашифрованном виде – все содержимое, которым вы обмениваетесь, оборачивается криптографическим алгоритмом, расшифровать которое может только другая сторона.

Злоумышленник видит только пакеты с непонятными байтами. Он не может их подделать, т.к. для этого надо расшифровать, внести изменения и зашифровать обратно, а нужных ключей у него нет. Теоретически, он может взять целиком пакет данных от вас и отправить повторно (например, чтобы инициировать какой-то платеж еще раз), но именно для этого в теле содержимого указывается nonce – число, которое увеличивается с каждым запросом.

Всё. Даже если ваш трафик будет перехвачен, злоумышленник мало что с ним может сделать. Он не видит логинов, паролей, не может модифицировать содержимое страниц, которые вы посещаете.

Так что, если у вас есть сайт – поставьте HTTPS – хотя бы бесплатный от LetsEncrypt. В любом случае, при серфинге в интернете, смотрите, куда и какие данные вы передаете. Если вы полагаете, что неинтересны злоумышленникам – то значит именно вы их основная аудитория. Поставьте антивирус. Хотя бы бесплатный. Читайте, о каких ошибках сообщает браузер. Если вчера пускало на ваш любимый сайт, а теперь не пускает и пишет что-то про сертификат – не отмахивайтесь, прочитайте.

И помните – если у вас паранойя, то это не значит, что за вами не следят (с)

Берегите себя и свои деньги!

 

Последнее изменение:

Не забудьте рассказать друзьям об этой статье.
Чтобы поддержать ресурс Bablofil достаточно просто поделиться с друзьями этой статьей в социальных сетях. Каждый репост - это самая высокая оценка качества материала. Спасибо, что читаете этот блог.



Комментарии
Пожалуйста, авторизуйтесь, что бы оставить свой комментарий
Крипто-кошельки для помощи и благодарности проекту:

Bitcoin адрес проекта: [[address]]

Перевод на сумму [[value]] BTC получен. Спасибо!.
[[error]]

Ethereum адрес проекта: [[address]]