惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
爱范儿
爱范儿
P
Proofpoint News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
Latest news
Latest news
The Hacker News
The Hacker News
Cyberwarzone
Cyberwarzone
博客园 - 【当耐特】
Project Zero
Project Zero
小众软件
小众软件
T
Tailwind CSS Blog
量子位
博客园 - 聂微东
I
Intezer
美团技术团队
S
SegmentFault 最新的问题
T
Tor Project blog
Spread Privacy
Spread Privacy
V
Vulnerabilities – Threatpost
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Jina AI
Jina AI
罗磊的独立博客
B
Blog RSS Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
C
Cisco Blogs
L
LINUX DO - 热门话题
Last Week in AI
Last Week in AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
L
LINUX DO - 最新话题
Know Your Adversary
Know Your Adversary
GbyAI
GbyAI
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
Lohrmann on Cybersecurity
The Register - Security
The Register - Security
L
LangChain Blog
博客园 - 叶小钗
T
Tenable Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как Flutter поймал MITM
lil_master · 2026-05-20 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение7 мин

Охват и читатели712

Итак, погрузимся в прошлое, помянем конец октября 2023 года.

При обновлении Flutter до версии 3.13.8 после запуска flutter doctor я получил неожиданное предупреждение:

[!] Network resources
    ✗ A cryptographic error occurred while checking "https://github.com/":
      Connection terminated during handshake
      You may be experiencing a man-in-the-middle attack, your network may
      be compromised, or you may have malware installed on your computer.

! Doctor found issues in 1 category.
Скриншот ошибки

Скриншот ошибки

Примерный перевод: Произошла криптографическая ошибка при проверке «https://github.com/»: Соединение прервано во время рукопожатия (handshake). Возможно, вы стали жертвой атаки «человек посередине» (man-in-the-middle), ваша сеть скомпрометирована, либо на вашем компьютере установлено вредоносное ПО.

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

После этого я установил бесплатный фаервол и начал сканировать исходящие HTTP-запросы со своего компьютера. Причиной оказалась некая программа Infatica P2B Network по пути: C:\Program Files (x86)\Infatica P2B\infatica-service-app.exe Она устанавливается на компьютер скрытно; Тут было над чем подумать. Дело в том, что я очень хорошо помню что устанавливал и ее я точно не устанавливал, причем там даже не было галочек а ля "Яндекс чай в комплекте", далее сортировка по времени выдала, что в моём случае она появилась после установки K-Lite Mega Codec Pack. Интересно, вроде бы этим набором кодеков пользуюсь долго, никогда подобного не замечал, с этими мыслями я пошел в интернет...

Ее величество

Ее величество

Исследование: что произошло на самом деле

Коротко о причинно-следственной цепочке:

Утилита flutter doctor проверяет доступность ключевых хостов (github.com, pub.dev, storage.googleapis.com, maven.google.com) обычным HTTPS-запросом и анализирует TLS-рукопожатие. Если рукопожатие прерывается или сертификат «не тот», Flutter не может отличить злонамеренный перехват от любого другого вмешательства в трафик — поэтому он выдаёт максимально пессимистичное сообщение про man-in-the-middle. Это известное и нередкое поведение: в трекере flutter/flutter и у других инструментов та же ошибка возникала, например, из-за локально установленных сертификатов mkcert или прокси.

Infatica встраивает SDK в мобильные приложения и браузерные расширения, заимствуя простаивающий трафик у реальных пользователей, а затем предоставляет эти IP-адреса проверенным компаниям для задач веб-разведки — сравнения цен, проверки рекламы, исследования рынка. То есть ваш компьютер становится узлом-посредником чужого трафика (GitHub Infatica SDK). Infatica P2B не устанавливается с K-Lite автоматически, но инсталлятор включает её как «рекомендованный пакет» в процессе установки. На практике пользователи жалуются, что даже при попытке отказаться от дополнительного ПО Infatica всё равно установилась, и они заметили это лишь через пару дней. (Seletronic Eleven Forum). Infatica формально легальна, поэтому большинство движков не считают её вирусом. Talos рекомендует относить proxyware к категории потенциально нежелательных приложений (PUA) из-за рисков, особенно в корпоративной среде — и часть антивирусов (Malwarebytes) детектирует её именно как PUP/PUA, а не как угрозу (SecurityWeek).

Теперь более разжевано:

Что такое Infatica P2B и почему она вообще оказалась в системе

Infatica P2B — это не вирус в классическом понимании. Это клиент так называемой residential-прокси-сети (peer-to-business, P2B). Принцип работы такой:

  • компания встраивает свой SDK в бесплатные приложения, медиаплееры и браузерные расширения;

  • когда вы устанавливаете такое приложение, вместе с ним в систему попадает прокси-клиент;

  • ваш компьютер становится узлом-посредником: через ваш домашний IP-адрес и ваш интернет-канал прогоняется чужой трафик;

  • бизнес-клиенты Infatica платят за доступ к пулу «настоящих» жилых IP-адресов и используют их для парсинга, сравнения цен, проверки рекламы, обхода гео-ограничений и антибот-систем.

Residential-прокси ценятся именно потому, что трафик идёт через реальные домашние IP обычных пользователей и выглядит «нормальным» — его сложно отличить от поведения живого человека. Расплачивается за это владелец компьютера: своим каналом, своей репутацией IP-адреса и своим доверием.

Ключевой вопрос: как такая программа попадает в систему «по умолчанию»? Ответ — через бандлинг. Установщик K-Lite Mega Codec Pack предлагает Infatica P2B как «рекомендованный пакет» на одном из шагов мастера установки. Формально это «опциональное предложение» с галочкой, но на практике галочка стоит заранее, шаг легко проскочить нажатием «Далее», а часть пользователей сообщает, что Infatica устанавливалась даже после попытки отказаться от дополнительного ПО — и обнаруживали они её лишь спустя дни.

Так заявленная цель «установить кодеки для проигрывания видео» незаметно превращается в «сдать свой компьютер в аренду под чужой трафик».

Почему flutter doctor закричал именно про man-in-the-middle

Здесь стоит остановиться подробнее, потому что само сообщение Flutter вводит в заблуждение сильнее, чем нужно.

flutter doctor среди прочего проверяет доступность ключевых хостов, от которых зависит сборка: github.com, pub.dev, storage.googleapis.com, maven.google.com, cocoapods.org. Для каждого выполняется обычный HTTPS-запрос, и инструмент анализирует ход TLS-рукопожатия.

Если рукопожатие прерывается, не завершается или сертификат отличается от ожидаемого — Flutter не может определить причину. С точки зрения утилиты вмешательство в TLS-соединение выглядит одинаково, кем бы оно ни было вызвано:

  • настоящей атакой «человек посередине»;

  • корпоративным SSL-инспектирующим прокси;

  • локально установленным доверенным сертификатом (например, от mkcert);

  • антивирусом, который вскрывает HTTPS-трафик для проверки;

  • посторонним сетевым ПО, которое перехватывает или маршрутизирует соединения.

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

В нашем случае в цепочку сетевых соединений вклинился прокси-клиент Infatica. Любое стороннее ПО, которое сидит между приложением и сетью и трогает TLS-трафик, способно «сломать» рукопожатие к конкретным доменам — и flutter doctor честно, но грубо, сообщает об этом как о возможной MITM-атаке. Технически он прав: ваш трафик действительно идёт не туда, куда вы думаете. Просто виновник — не хакер, а «легальная» прокси-сеть, которую вы установили сами, не зная об этом.

Почему антивирусы ничего не нашли

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

В лучшем случае такие программы попадают в категорию PUA / PUP — потенциально нежелательных приложений. Часть продуктов (например, Malwarebytes) детектирует Infatica именно так. Но классический антивирус, настроенный на поиск «вирусов», спокойно проходит мимо.

Отсюда практический вывод: «антивирус ничего не нашёл» не равно «система чистая». Целый класс ПО — proxyware, рекламные SDK, трекеры, бандл-приложения — живёт ровно в этой серой зоне между «вредоносным» и «легальным».

Это не единичный случай: индустрия proxyware

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

Ещё в 2021 году подразделение Cisco Talos выпустило исследование о целой категории ПО под названием proxyware — приложениях, которые превращают устройство пользователя в прокси-сервер. Основные выводы того и последующих отчётов:

  • Троянизированные установщики — один из самых распространённых векторов. Легальный продукт упаковывается в инсталлятор вместе с прокси-клиентом, а иногда и с откровенно вредоносным ПО. В одном из разобранных Talos случаев proxyware шёл единым набором с криптомайнером и инфостилером.

  • Злоумышленникам это выгодно. Прокси-сети из домашних IP позволяют скрывать происхождение атак эффективнее, чем Tor: список выходных узлов нельзя каталогизировать, потому что это обычные домашние компьютеры.

  • Масштаб огромен. Исследование Bitsight (2025) показало, что около 15% всех уникальных выходных IP-адресов residential-прокси-сетей одновременно были помечены как активно заражённые вредоносным ПО. Пользователи массово попадают в такие сети, просто принимая условия бесплатных приложений, VPN-сервисов и медиаплееров со встроенными прокси-SDK.

Конкретно по связке «K-Lite Codec Pack + Infatica» обсуждений тоже хватает: ветки на форумах по Windows 11, предупреждения на профильных площадках, и даже отдельный issue в одном из open-source проектов на GitHub с просьбой убрать K-Lite из рекомендаций именно из-за Infatica.

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

Чем это реально опасно

Даже если оставить за скобками вопрос «вирус или не вирус», скрытый прокси-клиент создаёт вполне конкретные проблемы:

  1. Чужой трафик от вашего имени. Через ваш IP может идти парсинг, накрутка, обход антибот-систем, а иногда и откровенно противоправная активность. Отвечать формально будет ваш адрес.

  2. Репутация IP. Ваш домашний IP может попасть в чёрные списки. Результат — капчи на каждом шагу, блокировки сайтов, проблемы с онлайн-сервисами и банками.

  3. Расход канала и трафика. На лимитных тарифах это прямые деньги; на безлимитных — просадка скорости и фоновая нагрузка.

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

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

Как обнаружить и удалить

Что в итоге помогло и что можно посоветовать.

Диагностика:

  • Проверьте список установленных программ на наличие Infatica P2B Network и подобных записей.

  • Поищите процесс infatica-service-app.exe (в моём случае — C:\Program Files (x86)\Infatica P2B\).

  • Загляните в планировщик заданий и в список служб Windows — proxyware любит прописываться в автозапуск.

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

Удаление:

В моём случае проблему решило удаление Infatica P2B Network. Подойдёт любой из вариантов:

  • стандартное удаление программ через «Параметры» / «Панель управления» Windows;

  • специализированные деинсталляторы вроде Revo Uninstaller Pro или Reg Organizer — они дополнительно подчищают остаточные файлы и записи в реестре.

После удаления стороннего прокси-клиента flutter doctor перестал выдавать предупреждение про MITM, и сборка снова заработала корректно.

Ну вот и сказке конец)