Разбор атак watering hole выявил новый бэкдор для macOS

Разбор атак watering hole выявил новый бэкдор для macOS

Разбор атак watering hole выявил новый бэкдор для macOS

Минувшей осенью эксперты ESET выявили кампанию кибершпионажа, направленную против участников демократического движения в Гонконге. Авторы атак использовали метод watering hole для раздачи через эксплойт незадокументированного macOS-зловреда — бэкдор, которому было присвоено кодовое имя DazzleSpy.

С этой целью злоумышленники взломали сайт гонконгской радиостанции D100 и внедрили на его страницы фреймы, загружающие эксплойт CVE-2021-1789. Соответствующая уязвимость в движке WebKit была закрыта в феврале 2021 года.

В результате отработки вредоносного кода на машине жертвы запускался промежуточный бинарник Mach-O — исполняемый в памяти простейший загрузчик. Этот зловред скачивает с указанного адреса целевую полезную нагрузку и запускает ее с правами root, используя эксплойт CVE-2021-30869 (устранена в сентябре).

Анализ DazzleSpy показал, что бэкдор обладает богатым набором функций и способен совершать следующие действия:

  • собирать информацию о зараженной системе;
  • выполнять произвольные шелл-команды;
  • составлять списки содержимого папок, проводить поиск файлов, переименовывать их, переносить и сливать на сторону;
  • открывать и завершать сессию screen (удаленного админа);
  • выводить данные из памяти iCloud Keychain с помощью эксплойта CVE-2019-8526 (актуален для macOS версий ниже 10.14.4);
  • удалять себя с компьютера.

Координаты C2-сервера DazzleSpy (IP-адрес и порт) жестко прописаны в коде. При установке связи вредонос использует TLS-хэндшейк, а затем кастомный протокол для обмена данными.

Баг 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