Специалист ИБ-компании Okta обнаружил серьезную проблему с подписью кода в продукции VirusTotal, Google, Facebook, F-Secure и так далее. Баг позволял малвари выдавать себя за легитимный продукт, подписанный Apple.

В блоге компании исследователь пишет, что сами по себе атаки на механизмы подписания кода не новы, однако обнаруженная им проблема не требует прав администратора, JIT’инга кода или эксплуатации нарушения целостности данных в памяти для обхода проверок подписи программы. Хуже того, по данным специалиста, баг существует с 2005 года.

Проблема заключается в том, как некоторые сторонние защитные решения для Mac (в том числе Little Snitch, F-Secure xFence, VirusTotal, Google Santa, Facebook OSQuery) имплементируют API для подписания кода программ, созданный Apple. Все эти продукты можно заставить поверить в то, что малварь – это легитимные ПО, подписанное разработчиками Apple.

Злоумышленнику достаточно создать специальный файл Fat/Universal, который будет содержать файлы Mach-O для разных архитектур (i386, x86_64, PPC). При этом только первый файл Mach-O из этой «пачки» должен быть подписан Apple. Идущий следом за этим вредоносный бинарник или неподписанный Apple код должен быть adhoc-подписаным и скомпилирован i386 для x86_64. В итоге он так же будет воспринят многими защитными продуктами как легитимный, так как те не осуществляют проверку всех компонентов файла Fat. Исследователь отмечает, что при этом CPU_TYPE в хедере Fat должен быть установлен неверно, чтобы он не соответствовал родному чипсету хоста.

Разработчиков Apple уведомили о проблеме еще в марте текущего года, однако в Купертино сочли, что разработчики сторонних решений должны сами разбираться с этим и «научить» свои решения корректно проверять содержимое Fat-файлов. Так, разработчикам предлагают использовать kSecCSCheckAllArchitectures, kSecCSStrictValidate и SecStaticCodeCheckValidity API, а Apple, в свою очередь, пообещала лишь обновить документацию. От себя специалисты Okta также советуют использовать для этих целей -R=’anchor apple’.

Исследователи уже помогают авторам сторонних защитных решений исправить уязвимости, для чего им пришлось выйти на контакт со специалистами CERT/CC. Аналитики Okta даже создали proof-of-concept примеры вредоносных файлов Fat, чтобы разработчикам было легче проверить свои продукты на уязвимость.    

В блоге Okta был опубликован список решений, уязвимых перед такими атаками, но исследователи подчеркивают, что на практике проблемных решений может быть гораздо больше:

  • VirusTotal (CVE-2018-10408);
  • Google— Santa, molcodesignchecker(CVE-2018-10405). Проблема устранена с релизом Santa .0.9.25;
  • Facebook— OSQuery (CVE-2018-6336). Исправлено с выходом версии 3.2.7;
  • Objective Development— LittleSnitch (CVE-2018-10470). Устранено в ночной сборке 4.1 (5165);
  • F-Secure— xFence и LittleFlocker (CVE-2018-10403); Патч для XFence вышел в минувшие выходные.
  • Objective-See— WhatsYourSign, ProcInfo, KnockKnock, LuLu, TaskExplorer и так далее (CVE-2018-10404). Исправлено в релизе WhatsYourSign 1.5.0;
  • Yelp— OSXCollector (CVE-2018-10406); Разработчики уверяют, что устранили проблему в OSXCollector временным патчем, а полноценное исправление выйдет позже.
  • Carbon Black— Cb Response (CVE-2018-10407).

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии