Microsoft выкатила новые патчи и рассказала, как исключить подмену DNS

Microsoft выкатила новые патчи и рассказала, как исключить подмену DNS

Microsoft выкатила новые патчи и рассказала, как исключить подмену DNS

Корпорация Microsoft выпустила декабрьский набор патчей, совокупно закрыв 58 уязвимостей; девять из них признаны критическими, 48 — существенными. Баги нулевого дня на сей раз в списке не числятся, использования какой-либо из новых лазеек в реальных атаках не замечено.

Обновления для систем безопасности получили 11 программных продуктов, в том числе ОС Windows, десктопный и мобильный браузеры Edge, программы из набора Microsoft Office, Exchange Server и Visual Studio.

Почти все проблемы, оцененные Microsoft как критические, относятся к классу «удаленное исполнение кода» (RCE). Они обнаружены в пяти продуктах:

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

  • CVE-2020-17096 — RCE в файловой системе NTFS; при локальном эксплойте позволяет повысить привилегии, при удаленном доступе по SMBv2 — выполнить любую команду;
  • CVE-2020-17099 — обход блокировки экрана; при наличии физического доступа к ПК позволяет выполнить произвольный код в контексте активной сессии, заблокированной пользователем.

Кроме бюллетеней, посвященных закрытым брешам, Microsoft выпустила руководство по защите от эксплойта CVE-2020-25705, грозящего отравлением кеша DNS. Эту уязвимость недавно обнаружила команда университетских исследователей из Китая и США. Новая дыра позволяет обойти стандартную защиту от подмены DNS (рандомизацию UDP-порта источника запроса) посредством атаки по стороннему каналу. Авторы исследования нарекли свою находку SAD DNS (Side-channel AttackeD DNS).

Возможность вернуть на повестку дня давнюю и уже, как казалось, решенную проблему возникла из-за ненадежного способа обработки входящего ICMP-трафика средствами ядра Linux. Атака SAD DNS позволяет за считанные секунды получить номера всех открытых портов DNS-клиента и затем угадать ID транзакции по методу, предложенному ИБ-экспертом Дэном Каминским еще в 2008 году.

По словам Microsoft, уязвимость CVE-2020-25705 затрагивает также Windows DNS Resolver — кеширующий сервер DNS, через который происходит обращение к локальному DNS-серверу, когда браузер пытается найти сайт по доменному имени, введенному в адресную строку. В случае успешной отработки эксплойта автор атаки сможет подменить DNS-пакет (результат преобразования домена в IP-адрес), который при последующих обращениях будет отдаваться из кеша.

Для противодействия эксплойту Microsoft советует внести изменения в системный реестр, задав предельный размер UDP-пакетов как 1221 байт. При превышении этого порога DNS-резолвер автоматически перейдет на протокол TCP.

Между тем тестирование, проведенное исследователями, показало, что проблема SAD DNS актуальна не только для Linux и Windows Server, но также для macOS и FreeBSD. Соответствующий патч для Linux уже интегрирован в сборку 5.10 (пока тестируется, выпуск стабильной версии ядра ожидается 20 декабря) и портирован на многие из более ранних сборок. Сроки выпуска заплатки для серверных Windows пока не определены, планы Apple и разработчиков FreeBSD на настоящий момент не известны.

Баг macOS ломает TCP через 49 дней без перезагрузки

В macOS нашли редкий, но очень неприятный баг: если компьютер работает без перезагрузки примерно 49,7 дня, у него может постепенно умирать TCP. По версии исследователей, проблема связана с переполнением 32-битного счётчика времени в ядре XNU, который используется TCP-подсистемой.

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

При этом ping может продолжать работать, что делает сбой особенно странным. В Photon пишут, что заметили аномалию на своих macOS-машинах, которые круглосуточно используются для мониторинга iMessage-сервисов.

По их описанию, часть узлов после примерно 49 дней 17 часов 2 минут 47 секунд аптайма перестала открывать новые TCP-сессии. После перезагрузки всё возвращалось в норму, но таймер, по сути, запускался заново.

Авторы утверждают, что смогли воспроизвести поведение на двух машинах и связали его с переменной tcp_now в XNU. В открытом репозитории Apple действительно есть TCP-код ядра Darwin/XNU, где используются 32-битные значения времени и логика сравнения временных меток TCP, на которую ссылаются исследователи.

Поведения бага выглядит так: сначала ничего не ломается в лоб, но закрытые TCP-соединения перестают вовремя исчезать из TIME_WAIT. Затем их становится всё больше, временные порты забиваются, новые подключения начинают зависать в SYN_SENT, а сервисы, которым нужны новые TCP-сокеты, начинают сыпаться.

Если эта находка подтвердится, то для обычного пользователя баг вряд ли станет массовой проблемой: большинство устройств на macOS перезагружаются чаще (хотя бы из-за обновлений). А вот для долго работающих Mac mini, билд-серверов, CI/CD-ферм, удалённых рабочих станций и серверных компьютеров, которые могут жить без ребута неделями, история выглядит уже куда серьёзнее.

Если у вас есть компьютер на macOS, который работает неделями без перезагрузки и критичен для сервисов, мы бы посоветовали следить за его аптаймом.

RSS: Новости на портале Anti-Malware.ru