☭ Государев MitM для кардеров и фишеров

Posted: 2019-07-21 in IT, Security
Метки:, ,

Если вам не безразличны государевы потуги в борьбе со свободой интернета, то вам будут определённо интересны и возможные побочные эффекты, на которые почему-то редко обращают внимание. Подробности под катом.

Есть такая страна на планете Земля, как Казахстан. Правит там местный президент-монарх-олигарх-хан-пан-султан (в сортах плохо разбираюсь), очень волнующийся за спокойствие своего сна и неприкосновенность пятой точки. И вот решил он тоже за «суверенность» местного казах-нета побороться. Но поскольку ни изящества работы АНБ, ни информационной автаркии Китая позволить себе они не могут, то решили они дуболомить примерно также, как ркн в России.

Но вот незадача — после откровений Сноудена веб-траффик всё больше становился шифрованным, причём мода идёт всё больше в сторону всяких новых версий TLS, прямой секретности, эфемерных ключей и прочих вещей типа DNS-over-TLS, портящих сладкие мечты гэбни о полном всеобъемлющем контроле всего и вся.

И тут эти товарищи-в-погонах решили попробовать применить на государственном уровне такую технику, как HTTPS-MitM. Вообще эта техника впервые начала применяться в крупных локальных сетях всяких больших бизнесов, где местные СБ хотели контролировать возможные утечки ценных корпоративных данных или наличие вредоносной активности от злонамеренного софта, который регулярно пытаются закидывать на любое +/- живое предприятие. Также подобный подход могут использовать некоторые антивирусы прямо на локальных машинах, типа для инспекции сайтов на предмет вредоносной нагрузки.

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

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

Но для надёжности такого заверения, и особенно — для формирования ДОВЕРИЯ таким подписям, центрам авторизации приходится идти на невероятные ухищрения для защиты своего главного заверяющего ключа. Существуют целые церемонии формирования, использования и управления такими убер-важными ключами.

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

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

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

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

Вообще, сама централизованная инфраструктура PKI, которая и отвечает за подписывание ключей, оказалась тем ещё головняком — мы вынуждены доверять CA, а любой СА в спиcке доверенных может подписать сертификат для любого сайта. Только относительно недавно стали появляться инициативы типа DNS CAA, которые в совокупности с DNSSEC + DNS-over-TLS воззможно несколько уменьшат вакханалию.

А теперь смотрим и офигеваем: после неудачной попытки в 2016 году казахские держиморды решили снова попробовать во имя мистической «национальне безопасносте» проксить весь траффик, подписывая все сайты одним ключом. Это примерно как во все двери всех квартир, гаражей, магазинов, банков и складов поставить один и тот же замок, открываемый одним ключом.

Конечно, после этого сотрудники провайдеров, местная гебня, и прочие, мимо кого проходит траффик, получат возможность его перехватывать, выуживать оттуда пароли, одноразовые коды, приватные данные и смотреть, кто что куда читал/писал, и даже написать что-то крамольное вместо кого-то из «неблагонадёжных» персон (пароли-то — вот они), если уж говорить о совсем чернушном криминале.

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

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

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

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

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

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

Естественно, у киберкриминала найдутся деньги, чтобы подкупить кого-либо из имеющих доступ к приватному ключу, ведь круг лиц будет весьма широк, все честными быть не могут, а в случае успеха у кардеров появится совершенно убойной мощи штука — средство генерации сертификатов, позволяющих делать совершенно валидно выглядящие фишинговые сайты, гарантированно работающие в масштабах целой страны, и которые можно будет после такого успеха даже хостить прямо на взломанных серверах внутри страны, вообще не отсвечивая фишинговыми сайтами на DPI и внешнем периметре !
Сказочная мечта чёрной шляпы в чистом виде.
Омрачить радость злоумышленника сможет только то, что это не Германия, США или ОАЭ — денег на счетах лежит явно меньше.

Что можно посоветовать тем, кого это накроет в таком жутком Оруэлловском масштабе ? Первым делом, надо отказаться от онлайн-банкинга, закрыть возможности логина в банк-клиент. Вывести все криптовалюты с бирж на локальные хранилища. Вкладами / картами управлять только при личном визите в банк. При работающем MitM пользоваться сетевыми финансовыми услугами категорически нельзя и не имеет никакого смысла. Также придётся позакрывать учётки на любых сервисах, обрабатывающих ваши персональные/чувствительные данные — в таких условиях они становятся неконтролируемо опасны.
Да, это надо будет сделать даже ДО похода на барpикaды, если вы вдруг решите туда идти. =]

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

Толковые замечания и конструктивная критика приветствуются.

- комментарии
  1. Последний пункт про слитие приватных ключей чисто технически можно настроить так, чтобы 1) было понятно, кто, когда и откуда 2) ключ действовал очень ограниченное время. Мне больше интересно (и я запасаюсь попкорном), что будет, если основные браузеры такой сертификат внесут в черный список и будут показывать огромные красные окошки независимо от того, установлен ли он в систему вручную или нет. А обсуждение этого уже ведется и у Мозиллы, и у Гугла вроде как.

  2. Amin:

    1). Ну ок, есть следы взлома с китайского IP, збс;
    Или с IP-адреса какого-нить швейцарского датацентра.
    Даже если они сделают подключи — это им поможет мало, ибо сила их подписи в таком сценарии такая же, как и у корневых СА.

    2). Ага, 30 лет срок действия в мастер-ключе.

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

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

    Основные браузеры уже послали казахов лесом, и правильно сделали.

    Я только вот сегодня отключал HTTPS-инспекцию в касперском KES-11, потому что при ней не работает сайт ЛК налоговой. То есть даже в налоговой (вспомните, сколько нелицеприятных отзывов было в адрес их технической службы!) понимают, что https-mitm есть абсолютное зло.

    А вообще идея отдельно ругаться на шпонский перехват безотносительно настроек — это по-доброму так. да, таки поддерживаю.

  3. В мозилловском багтрекере вроде еще не послали (точнее, не приняли решения о посылании), когда я смотрел.

    Сила подключей в том, что слитый серт держится 10 минут, а при обнаружении ахтунга источник слития попячивается раскаленной кочергой ректальным способом и серт без свежей подпитки моментально протухает. А совсем мастер ключ, который uber alles, держится в дупле Нурсултана^W^W темном-темном бункере, и пределов специальной крипто-карточки не покидает.

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

  4. Amin:

    Чтобы подключ держался хоть сколько-то, он должен быть подписан ключом более высокого уровня доверия, вплоть до корня, а это значит, мы так или иначе приходим к долговременным ключам. Иначе новый «гос-сертификаты уровней ниже» придется импортировать слишком часто.

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

    Про «авторизованных» кардеров мне понравилось, значит, мой совет позакрывать счета не так уж и плох.

    Впрочем, силу «неавторизованных» тоже недооценивать не стоит — подобные личности попячили мэрию Балтимора и полицию Нью-Йорка — и как-то возмездие по их душу всё ещё никак не может завершить поиски, несмотря на содействие зубров из ФБР. А у полиции Нью-Йорка и ФБР квалификации явно побольше будет.

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

  5. >Чтобы подключ держался хоть сколько-то, он должен быть подписан ключом более высокого уровня доверия, вплоть до корня, а это значит, мы так или иначе приходим к долговременным ключам. Иначе новый «гос-сертификаты уровней ниже» придется импортировать слишком часто.

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

    Т.е. никто не говорит, что в KZ будет именно так, но при желании сделать так можно. И при такой схеме я не вижу какого-то простого способа для рядового инет-провайдера увести серт и не спалиться в том, что это именно его серт.

  6. Amin:

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

    Что касается отзыва сертификатов — то эта практика в глобальном масштабе работает довольно плохо, можно даже сказать, что почти не работает.

    К тому времени, когда сертификаты стухнут, кардеры уже будет переводить купленные на краденные деньги биткоины в монеро.
    И кто сказал, что уводить будет сам провайдер ? Ему-то это зачем ?

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.