Проверка SSL/TLS и атаки типа «человек в браузере»
Узнайте, когда и как проверять зашифрованный HTTPS-трафик на шлюзах безопасности, и изучите принцип работы атак через браузер, таких как удаление SSL-шифрования и вредоносные расширения.
«Проверка SSL/TLS и атаки типа «человек в браузере»» — бесплатный урок Security+ Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Security+ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Security+ Academy содержит 4 уроков всего.
Зачем проверять зашифрованный трафик
Сегодня на HTTPS приходится более 90% веб-трафика, включая загрузки Malware, каналы C2 и утечку данных. Средства защиты периметра, которые не могут проверять TLS, видят только зашифрованные блоки, создавая слепую зону, которую активно используют злоумышленники. Проверка SSL/TLS (также называемая SSL-перехватом, SSL-инспекцией или глубокой проверкой пакетов HTTPS) позволяет шлюзам Security расшифровывать, проверять и повторно шифровать HTTPS-трафик до его поступления на конечное устройство. Такая видимость необходима для фильтрации веб-контента, DLP и проверки на Malware в средах, где большая часть трафика передаётся по HTTPS.
Как работает проверка SSL/TLS
Проверка SSL технически представляет собой контролируемую атаку методом «человек посередине», выполняемую собственной инфраструктурой Security организации. Процесс: Шаг 1: Client устанавливает TLS с прокси, используя сертификат прокси, подписанный корпоративным CA. Шаг 2: прокси устанавливает отдельный сеанс TLS с фактическим Server, используя настоящий сертификат Server. Шаг 3: прокси расшифровывает трафик от Client, проверяет его, затем повторно шифрует и пересылает Server (и выполняет обратную операцию). Client доверяет сертификату прокси, поскольку сертификат корпоративного CA заранее установлен на всех управляемых конечных устройствах через MDM или Group Policy.
# SSL inspection flow
Client Proxy (SEG) Real Server
| | |
|--TLS ClientHello------>| |
| (proxy cert presented)| |
|<-TLS Established-------|--TLS ClientHello----->|
| |<-TLS Established------|
|--HTTPS Request-------->| |
| |--HTTPS Request------->|
| |<-HTTPS Response-------|
| (inspect, DLP, AV) | |
|<-HTTPS Response--------| |
| | |Исключения из проверки SSL
Проверять следует не весь трафик. Организации обычно исключают категории, содержащие юридически или этически чувствительные данные: банковские и Financial сайты, порталы Healthcare, базы данных юридических исследований, URL прозрачности сертификатов и OCSP (чтобы не нарушить проверку сертификатов), а также сайты, использующие закрепление сертификата (они отклонят повторно подписанные сертификаты, что нарушит работу приложения). Исключения хранятся в виде списка обхода в Policy проверки. В некоторых юрисдикциях законы о мониторинге сотрудников могут ограничивать проверку личного веб-сёрфинга, поэтому в политиках допустимого использования требуется ясно раскрывать эту информацию.
# SSL inspection bypass list examples
ssl_inspect_bypass:
# Financial sites
- *.bankofamerica.com
- *.chase.com
# Healthcare
- *.mychart.com
# Certificate infrastructure
- ocsp.*.com
- crl.*.com
# App that uses cert pinning
- api.corporate-erp.com
# Government sites
- *.irs.gov
- *.ssa.govЗакрепление сертификата и обход проверки
Закрепление сертификата — это метод, при котором приложение жёстко задаёт ожидаемый сертификат или открытый ключ конкретного Server и отказывается устанавливать соединение, если сертификат не совпадает, даже если он действителен и которому доверяет хранилище CA операционной системы. Это нарушает проверку SSL, поскольку повторно подписанный сертификат прокси не совпадает с закреплённым значением. Мобильные приложения (банковские приложения и платёжные приложения) часто используют закрепление сертификата как защиту от атак MitM. Enterprise должны обходить проверку для приложений с закреплёнными сертификатами, иначе их работа будет нарушена. Это также означает, что злоумышленники, желающие обойти проверку SSL с помощью своего Malware, могут реализовать закрепление сертификата.
Что такое SSL Stripping
SSL Stripping — это атака методом «человек посередине», при которой злоумышленник перехватывает HTTPS-трафик и понижает его до HTTP, получая возможность читать и изменять содержимое в открытом виде. Атака работает с соединениями, которые начинаются с HTTP, а затем перенаправляются на HTTPS: злоумышленник перехватывает исходный HTTP-запрос, поддерживает HTTP-соединение с жертвой, одновременно устанавливая HTTPS-соединение с легитимным Server, и прозрачно ретранслирует трафик. С точки зрения жертвы сайт выглядит как HTTP. HTTP Strict Transport Security (HSTS) защищает от SSL Stripping, сообщая Browser, что для домена всегда следует использовать HTTPS, даже если пользователь вводит HTTP.
# HSTS response header (server sends this)
Strict-Transport-Security: max-age=31536000;
includeSubDomains;
preload
# max-age=31536000 = 1 year in seconds
# includeSubDomains = also enforces HTTPS on subdomains
# preload = include in browser HSTS preload list
# (HSTS enforced even on first visit)
# After receiving HSTS header:
# Browser WILL NOT connect via HTTP for 1 year
# SSL stripping becomes ineffectiveАтаки методом «человек в Browser» (MitB)
Атака Man-in-the-Browser (MitB) — это разновидность банковского трояна, который внедряется внутрь веб-Browser в виде вредоносного расширения или внедрения в процесс Browser и изменяет веб-страницы и операции так, что пользователь этого не замечает. В отличие от сетевой атаки MitM, MitB работает внутри зашифрованного сеанса на уровне Browser, поэтому TLS не обеспечивает защиты. Malware MitB (Zeus, SpyEye) может изменять суммы платежей, подменять номера счетов получателей, перехватывать одноразовые пароли и незаметно изменять формы после их заполнения пользователем. Изменения происходят после расшифровки TLS и до того, как пользователь увидит отрисованную страницу.
Механизм атаки типа «человек-в-браузере»
Вредоносное ПО типа «человек-в-браузере» перехватывает API браузера на уровне приложения. В Windows оно внедряет код в процессы браузера (Chrome, Firefox, IE) с помощью внедрения DLL или перехвата COM, а затем перехватывает функции JavaScript и API для работы с DOM. Когда пользователь посещает свой банк, вредоносное ПО перехватывает JavaScript, который отображает страницу и подтверждение транзакции, и заменяет счёт получателя на счёт злоумышленника. Сервер видит корректную транзакцию; журналы HTTPS на стороне сервера не содержат ничего необычного. Пользователь видит правильное подтверждение — с указанной им суммой, — но фактический перевод отправляется на счёт злоумышленника.
Защита от атак типа «человек-в-браузере»
Защита от атак типа «человек-в-браузере» требует многоуровневых средств контроля. Изоляция браузера (Menlo Security, Zscaler Browser Isolation) выполняет отображение браузера на удалённой облачной VM и передаёт на экран пользователя только пиксели — вредоносное ПО не может внедриться в процесс браузера, работающий в удалённой среде. Проверка транзакций: банки подтверждают сведения о транзакции (сумму + получателя) через внеполосный канал (SMS OTP с указанием сведений о транзакции), чтобы пользователь мог проверить, что именно получил сервер. Конечный EDR, обнаруживающий внедрение DLL в процессы браузера, может выявить заражение атакой типа «человек-в-браузере». Разрешение браузерных расширений по списку предотвращает установку вредоносных расширений.
Вредоносные расширения браузера
Вредоносные расширения браузера представляют значительную угрозу для конечных устройств. Расширения обладают широкими разрешениями: они могут читать содержимое страниц, изменять запросы, перехватывать отправку форм и получать доступ к cookie. Расширение, выдающее себя за полезный инструмент (блокировщик рекламы, тёмный режим), может похищать Credentials, внедрять рекламу, перенаправлять трафик или действовать как агент атаки типа «человек-в-браузере». Корпоративные средства контроля: используйте Group Policy или MDM, чтобы ограничить установку расширений утверждённым списком разрешённых расширений. Блокируйте установку расширений из источников, отличных от Chrome Web Store или Firefox Add-ons. Регулярно проверяйте установленные расширения на управляемых конечных устройствах на предмет нарушений Policy.
# Chrome enterprise extension control (Group Policy)
# Computer Config > Admin Templates > Google Chrome
# > Extensions > 'Configure the list of force-installed apps'
# Add extensions by ID:
ExtensionInstallAllowlist:
- 'efaidnbmnnnibpcajpcglclefindmkaj' # Adobe Acrobat
- 'cjpalhdlnbpafiamejdnhcphjbkeiagm' # uBlock Origin
ExtensionInstallBlocklist:
- '*' # Block all others
# Force-install approved extensions from URL
ExtensionInstallForcelist:
- 'id;https://internal-extension-server/update.xml'Политика проверки TLS и баланс конфиденциальности
Организации, внедряющие проверку SSL, должны учитывать последствия для конфиденциальности сотрудников. Во многих юрисдикциях и согласно трудовому законодательству требуется ясно уведомить сотрудников до начала Monitoring за зашифрованным трафиком. Рекомендуемые методы: опубликовать Политику допустимого использования (AUP), в которой прямо указано, что сетевой трафик, включая HTTPS, может проверяться; получать от сотрудников подтверждение AUP во время оформления на работу; реализовать категории обхода проверки для сайтов личного банковского обслуживания и медицинских учреждений; а журналы расшифрованного трафика хранить только необходимое время (обычно 30–90 дней). Перед развертыванием программы проверки её должен изучить юридический консультант, особенно в странах EU, где GDPR устанавливает более строгие ограничения на Monitoring сотрудников.
Прозрачность сертификатов HTTPS (CT)
Certificate Transparency — это платформа (RFC 6962), требующая заносить все общедоверенные сертификаты TLS в общедоступные журналы CT, доступные для аудита и допускающие только добавление записей, прежде чем браузеры начнут им доверять. CT позволяет владельцам доменов отслеживать ошибочно выданные сертификаты: если злоумышленнику каким-либо образом удастся убедить CA выдать сертификат для вашего домена (как произошло с DigiNotar в 2011 году), журналы CT позволят обнаружить это почти в реальном времени. Такие инструменты, как crt.sh, позволяют командам безопасности искать в журналах CT все сертификаты, выданные для их домена. Браузеры обеспечивают соблюдение CT, требуя доказательство включения в журнал — подписанные временные метки сертификата (SCT), встроенные в рукопожатие TLS.
# Search CT logs for certificates issued for your domain
# Use crt.sh public CT log aggregator
curl 'https://crt.sh/?q=example.com&output=json' | \
python3 -m json.tool | grep '"name_value"'
# Result shows all certs issued for example.com and
# *.example.com including: issuer, validity, SANs
# Monitor for unexpected certs = potential mis-issuance
# Also subscribe to cert monitoring services:
# Facebook Certificate Transparency Monitoring
# sslmate.com/certspotter
# Google cert-manager webhook notificationsБыстрая проверка
Проверьте своё понимание концепций CompTIA Security+ (SY0-701), рассмотренных в этом уроке.
Итоги урока
В этом уроке Вы узнали, что проверка SSL/TLS расшифровывает, проверяет и повторно шифрует трафик HTTPS на прокси-сервере с помощью корпоративного сертификата CA, которому доверяют управляемые конечные устройства; снятие защиты SSL понижает HTTPS до HTTP и предотвращается с помощью HSTS; а атаки типа «человек-в-браузере» внедряются в процесс браузера выше уровня TLS и незаметно изменяют транзакции, поэтому для защиты требуются изоляция браузера или внеполосная проверка транзакций. Далее мы рассмотрим замену небезопасных Protocol на безопасные эквиваленты.
Часто задаваемые вопросы
Урок «Проверка SSL/TLS и атаки типа «человек в браузере»» бесплатный?
Да — полный текст урока «Проверка SSL/TLS и атаки типа «человек в браузере»» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Security+ Academy, подпишись на CoddyKit PRO. Курс Security+ Academy содержит 4 уроков всего.
Чему я научусь в уроке «Проверка SSL/TLS и атаки типа «человек в браузере»»?
Узнайте, когда и как проверять зашифрованный HTTPS-трафик на шлюзах безопасности, и изучите принцип работы атак через браузер, таких как удаление SSL-шифрования и вредоносные расширения. Ты практикуешь Security+ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Security+ Academy?
Предыдущий опыт не требуется. Security+ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Проверка SSL/TLS и атаки типа «человек в браузере»»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Security+ Academy?
Да. Каждый урок Security+ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Аутентификация электронной почты: SPF, DKIM и DMARC
- Безопасные шлюзы электронной почты и защита от спама
- Фильтрация веб-контента и DNS-ловушки
- Проверка SSL/TLS и атаки типа «человек в браузере»